| undefined {\n return this.plugins[id];\n }\n\n /**\n * Returns object with all plugins\n */\n getAll() {\n return this.plugins;\n }\n}\n","/**\n * File made for IE/Edge support\n * https://github.com/GrapesJS/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules: [string, RegExp][] = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument = DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement } from 'underscore';\nimport Editor from './editor';\nimport { EditorConfig } from './editor/config/config';\nimport PluginManager, { Plugin, getPlugin, logPluginWarn } from './plugin_manager';\nimport $ from './utils/cash-dom';\nimport polyfills from './utils/polyfills';\n\ninterface InitEditorConfig extends EditorConfig {\n grapesjs?: typeof grapesjs;\n}\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors: Editor[] = [];\n\nexport const usePlugin = | string>(plugin: P, opts?: P extends Plugin ? C : {}) => {\n let pluginResult = getPlugin(plugin, plugins);\n\n return (editor: Editor) => {\n if (pluginResult) {\n pluginResult(editor, opts || {});\n } else {\n logPluginWarn(editor, plugin as string);\n }\n };\n};\n\nexport const grapesjs = {\n $,\n\n editors,\n\n plugins,\n\n usePlugin,\n\n // @ts-ignore Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: 'Hello world',\n * style: '.hello{color: red}',\n * })\n */\n init(config: EditorConfig = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n const initConfig: InitEditorConfig = {\n autorender: true,\n plugins: [],\n pluginsOpts: {},\n ...config,\n grapesjs: this,\n el: headless ? undefined : isElement(els) ? els : (document.querySelector(els!) as HTMLElement),\n };\n const editor = new Editor(initConfig, { $ });\n const em = editor.getModel();\n\n // Load plugins\n initConfig.plugins!.forEach(pluginId => {\n const plugin = getPlugin(pluginId, plugins);\n const plgOptions = initConfig.pluginsOpts![pluginId as string] || {};\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else {\n logPluginWarn(editor, pluginId as string);\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n initConfig.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n\n// Exports for TS\nexport type { default as Asset } from './asset_manager/model/Asset';\nexport type { default as Assets } from './asset_manager/model/Assets';\nexport type { default as Block } from './block_manager/model/Block';\nexport type { default as Blocks } from './block_manager/model/Blocks';\nexport type { default as Categories } from './block_manager/model/Categories';\nexport type { default as Category } from './block_manager/model/Category';\nexport type { default as Canvas } from './canvas/model/Canvas';\nexport type { default as CanvasSpot } from './canvas/model/CanvasSpot';\nexport type { default as CanvasSpots } from './canvas/model/CanvasSpots';\nexport type { default as Frame } from './canvas/model/Frame';\nexport type { default as Frames } from './canvas/model/Frames';\nexport type { default as CssRule } from './css_composer/model/CssRule';\nexport type { default as CssRules } from './css_composer/model/CssRules';\nexport type { default as Device } from './device_manager/model/Device';\nexport type { default as Devices } from './device_manager/model/Devices';\nexport type { default as ComponentManager } from './dom_components';\nexport type { default as Component } from './dom_components/model/Component';\nexport type { default as Components } from './dom_components/model/Components';\nexport type { default as ComponentView } from './dom_components/view/ComponentView';\nexport type { default as Editor } from './editor';\nexport type { default as Modal } from './modal_dialog/model/Modal';\nexport type { default as Page } from './pages/model/Page';\nexport type { default as Pages } from './pages/model/Pages';\nexport type { default as Button } from './panels/model/Button';\nexport type { default as Buttons } from './panels/model/Buttons';\nexport type { default as Panel } from './panels/model/Panel';\nexport type { default as Panels } from './panels/model/Panels';\nexport type { default as Selector } from './selector_manager/model/Selector';\nexport type { default as Selectors } from './selector_manager/model/Selectors';\nexport type { default as State } from './selector_manager/model/State';\nexport type { default as Properties } from './style_manager/model/Properties';\nexport type { default as Property } from './style_manager/model/Property';\nexport type { default as PropertyRadio } from './style_manager/model/PropertyRadio';\nexport type { default as PropertySelect } from './style_manager/model/PropertySelect';\nexport type { default as PropertyNumber } from './style_manager/model/PropertyNumber';\nexport type { default as PropertySlider } from './style_manager/model/PropertySlider';\nexport type { default as PropertyComposite } from './style_manager/model/PropertyComposite';\nexport type { default as PropertyStack } from './style_manager/model/PropertyStack';\nexport type { default as Sector } from './style_manager/model/Sector';\nexport type { default as Sectors } from './style_manager/model/Sectors';\nexport type { default as Trait } from './trait_manager/model/Trait';\nexport type { default as Traits } from './trait_manager/model/Traits';\n\nexport default grapesjs;\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","_","Backbone","core_slice","Array","prototype","slice","apply","fn","ctx","args","length","call","arr","index","hasKeys","obj","keys","isArray","arguments","all","key","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","which","objects","i","l","objectRegistry","register","unregister","isFunction","actionUndoRedo","action","type","undoTypes","object","before","after","options","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","clone","models","at","where","get","pop","shift","trigger","validateUndoActionCreation","undoTypesType","condition","addToStack","track","res","diff","add","maximumStackLength","isRegistered","cid","contains","push","splice","indexOf","map","concat","UndoTypes","collection","ignore","model","remove","undefined","isEmpty","each","unset","set","unsetData","afterAttributes","changedAttributes","keysAfter","previousAttributes","pick","keysPrevious","val","reset","previousModels","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","isObject","extend","Action","Model","defaults","undo","attributes","redo","UndoStack","Collection","Infinity","setMaxLength","UndoManager","initialize","attr","on","value","startTracking","isArguments","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","s","merge","undoManager","addUndoType","changeUndoType","removeUndoType","clear","defaultAttributes","self","g","global","$","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","iteratee","events","name","callback","opts","names","context","test","split","_events","onApi","listening","_listeners","id","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","error","tryCatchOn","handlers","count","e","off","offApi","listeners","stopListening","ids","remaining","j","handler","_callback","cleanup","once","onceMap","bind","listenToOnce","offer","Math","max","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","listener","unbind","attrs","preinitialize","cidPrefix","parse","result","changed","validationError","idAttribute","toJSON","sync","escape","has","matches","_validate","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","prevId","_pending","hasChanged","old","previous","fetch","success","resp","serverAttrs","wrapError","save","wait","validate","method","isNew","patch","xhr","destroy","url","base","urlError","replace","encodeURIComponent","constructor","isValid","comparator","_reset","setOptions","addOptions","array","insert","min","tail","singular","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","isString","existing","_prepareModel","_addReference","orderChanged","some","m","_removeReference","unshift","_byId","modelId","first","findWhere","Error","sortBy","pluck","create","callbackOpts","values","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","_onModelEvent","event","$$iterator","Symbol","iterator","kind","_collection","_kind","_index","next","done","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","find","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","undelegate","_createElement","document","createElement","className","_setAttributes","addMethod","attribute","cb","defaultVal","addUnderscoreMethods","Class","methods","instance","modelMatcher","matcher","collectionMethods","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","filter","select","reject","every","any","include","includes","invoke","toArray","size","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","chain","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","modelMethods","pairs","invert","omit","config","Base","mixin","mappings","functions","memo","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","decodedFragment","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","CodeMirror","extendMode","commentStart","commentEnd","newlineAfterToken","_type","content","textAfter","state","jsonMode","lexical","inlineElements","inline","configuration","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","mode","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","substr","substring","cmInstance","indentLine","outer","text","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","token","cur","pos","string","blankLine","end","setSelection","getCursor","mod","userAgent","navigator","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","chrome_version","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","Number","flipCtrlCmd","captureRightClick","classTest","cls","range","rmClass","node","removeChildren","childNodes","removeChildrenAndAdd","appendChild","elt","tag","cssText","createTextNode","eltP","setAttribute","nodeType","parentNode","host","activeElt","doc","activeElement","shadowRoot","addClass","joinClasses","a","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","wrapper","ownerDocument","win","defaultView","f","copyObj","target","overwrite","prop","hasOwnProperty","countColumn","startValue","search","n","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","setTimeout","ms","clearTimeout","scrollerGap","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","score","priority","nothing","createObj","props","inst","Object","nonASCIISingleCaseWordChar","isWordCharBasic","toUpperCase","toLowerCase","isWordChar","helper","source","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","iterateBidiSections","order","found","part","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","types","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","reverse","getOrder","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","nl","rt","hasSelection","getSelection","te","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","properties","nstate","info","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","lineNo","no","lineAtHeight","h","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","customCursor","$customCursor","sel","ranges","primIndex","empty","drawSelectionCursor","showCursorWhenSelecting","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","defaultCharWidth","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","blinker","cursorDiv","visibility","cursorBlinkRate","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","active","anchorNode","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","clipPath","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","chromeScrollHack","pointerEvents","pixelsPerUnit","deltaMode","deltaX","deltaY","canScrollX","canScrollY","pixels","movedX","movedY","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","v","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","cloneNode","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","join","lineSeparator","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","option","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","doc$1","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","blur","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","toggle","enter","over","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","border","addEditorMethods","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","resetting","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","func","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","script","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","html","htmlState","inTag","endTagA","endTag","localState","localMode","local","statementIndent","jsonldMode","jsonld","json","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","firstChar","c","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","setStyle","inText","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","_module","em","CanvasSpotBuiltInTypes","getView","componentView","getBoxRect","cvView","Canvas","getCanvasView","boxRect","getElBoxRect","getStyle","translate","isType","run","ed","Components","Css","bindAll","editor","canvasModel","canvas","toggleMove","disableDragger","stopCommand","enableDragger","toggleDragger","enable","dragger","methodCls","getCanvas","classList","ppfx","getPosition","setPosition","onStart","onDrag","onEnd","methodEv","methodsEv","defineCommand","def","pfx","stylePrefix","pStylePrefix","hoverClass","badgeClass","plhClass","freezClass","onFrameScroll","getElement","getCanvasBody","getBody","getCanvasTools","getToolsEl","callRun","abort","sender","callStop","Commands","toSelect","components","component","getSelectedAll","Boolean","logWarning","evName","getEl","guidesStatic","guidesTarget","setupGuides","getModel","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","toggleDrag","getEventOpts","guides","item","guide","guidesEl","getConfig","elInfoX","elInfoY","guideContent","innerHTML","getGlobalToolsEl","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","debounce","updateGuides","debug","renderGuide","getElementGuides","lastEl","getElementPos","getGuidePosUpdate","originRect","un","guideSize","numEl","noScroll","getTranslate","transform","itemStr","trim","parseFloat","setTranslate","__p","styleUp","addStyle","avoidStore","Styles","__emitCmpStyleUpdate","getSelected","_getDragData","center","relPos","parentRel","pStyle","getMouseRelativeCanvas","offsetP","guidesInfo","renderGuideInfo","hideGuidesInfo","rectOrigin","isUndefined","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","coll","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","wrp","findType","rules","CssComposer","getAll","rule","mouseover","startDelete","mouseout","stopDelete","click","onDelete","$this","attachBadge","removeClass","badge","removeBadge","clean","updateBadgeLabel","getName","modal","Modal","CodeManager","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","class","textViewCode","setContent","getHtml","optsHtml","getCss","optsCss","codeName","createViewer","EditorView","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","disable","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","isElement","getContainer","noSelClass","getBadgeEl","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","drag","cacheEl","startSelectPosition","frameEl","contentDocument","sorter","onEndMove","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","onEndMoveFromModel","initSorterFromModels","lastModel","frameView","getCurrentFrame","toMove","onMoveClb","onSelect","endMove","$badge","getBadge","$hl","getHighlighter","am","custom","__customData","onceClose","AssetManager","accept","modalTitle","setTarget","onClick","onDblClick","__behaviour","rendered","__trgCustom","assets","uploadEl","bm","appendTo","firstRender","pn","Panels","getPanel","addPanel","Blocks","lm","LayerManager","lmConfig","layers","panels","$cnt","DeviceManager","SelectorManager","StyleManager","trgEvCnt","$cntInner","$cntSlm","$cntSm","append","showDevices","devicePanel","dvEl","slmConfig","sm","smConfig","$header","pnCnt","toggleSm","show","hide","panelC","Config","tm","TraitManager","confTm","$cn","$cn2","toggleTm","clp","lastSelected","addOpts","pasteable","cop","canMove","emitUpdate","cmdOutline","getPanels","preventDrag","tglEffects","mthEv","tlb","getToolbarEl","elP","querySelectorAll","shouldRunSwVisibility","isActive","stopDefault","editorEl","onclick","panel","canvasS","runCommand","runDefault","canvasView","getResizerEl","prefix","posFetcher","mousePosFetcher","getMouseRelativePos","canvasResizer","forceNew","Utils","Resizer","command","Toolbar","mousedown","handleClick","getFrameEl","Editor","onRender","DomainViews","ToolbarView","itemView","showOffsets","frameOff","canvasOff","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","getFrames","frame","getWindow","onHover","onOut","onFrameResize","getComponentView","parentEl","getComponentModel","currentDoc","setHovered","useValid","setCurrentFrame","updateLocalPos","views","getViewEl","elHovered","updateToolsLocal","toggleToolsEl","currentFrame","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","elPos","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","opacity","isEditing","isChildOf","updateBadge","bStyle","posOnly","icon","getIcon","clsBadge","customeLabel","customBadgeLabel","badgeLabel","getTargetToElementFixed","leftOff","showHighlighter","elem","resizable","spotTypeResize","CanvasSpot","Resize","hasCustomResize","hasCustomSpot","removeSpots","addSpot","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","toggleFramesEvents","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","getUnitFromValue","unitWidth","onMove","updateTarget","store","selectedHandler","onlyHeight","onlyWidth","bodyw","getDragMode","finalStyle","updateToolbar","toolbarEl","toolbarStyle","toolbar","showToolbar","noCustomSpotSelect","Select","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","refreshSpots","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","customHoverSpot","Hover","showOffsetsSelected","toolsEl","canvasRectOffset","topOff","_trgToolUp","targetToElem","canvasOffsetTop","canvasOffsetLeft","refreshCanvas","hideBadge","cleanPrevious","status","hasWin","preserveSelected","setSelected","trg","isPointed","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","wmargin","nested","canvasRelative","scale","getZoomDecimal","startSort","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","getOffsetMethod","zoom","Spacing","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","stateLow","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginRightSt","marginRight","marginTopSt","marginBottomSt","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","padBot","padSideH","padSideT","padRight","toggleVis","cv","mth","_onFramesChange","handleFrames","frames","loaded","_upFrame","__ol","isDef","CoordinatesTypes","DEFAULT_COORDS","autoAdd","itemsView","itemType","reuseView","addTo","items","itemViewNotFound","ns","warn","typeField","clearItems","onRemoveBefore","onRemove","xyArr","snapOffset","lastScroll","lastScrollDiff","startPointer","startPosition","globScrollDiff","currentPointer","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","actualScroll","scrollDiff","getPointerPos","getStartPosition","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","co","deltaPre","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","cancelled","xPos","yPos","parentWindow","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","ready","cash","eq","ele","camelCaseRe","camelCaseWhitespaceRe","camelCase","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","is","splitValuesRe","getSplitValues","unique","computeStyle","isVariable","getPropertyValue","computeStyleInt","hasClass","removeAttr","_value","toggleClass","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","removeData","boxSizing","includeMargins","eventsNamespace","eventsNamespacesSeparator","getEventsCache","parseEventName","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","addEvent","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","query","elements","checked","queryEncode","isMultiple","eleValue","containers","fragmentRe","singleTagRe","table","tr","td","thead","tbody","tfoot","initContainers","$1","insertContent","prepend","isStr","insertAdjacentHTML","insertElement","_this4","outerHTML","insertAfter","_this5","_this6","_this7","_this8","_this9","prependTo","replaceWith","_this10","$eles","replaceAll","docEle","clientTop","contents","nextElementSibling","not","closest","parents","previousElementSibling","siblings","KEY_TAG","KEY_ATTR","motionsEv","isDoc","Node","DOCUMENT_NODE","removeEl","inputs","attrUp","isVisible","oldEl","newEl","appendAtIndex","total","createEl","createText","createCustomEvent","oEvent","err","_parentEvent","keyCodeVal","defineProperty","appendVNodes","vNodes","vnode","isTextNode","TEXT_NODE","isTaggableNode","COMMENT_NODE","isCommentNode","getElRect","rectText","selectNode","getDocumentScroll","getKeyCode","getKeyChar","getPointerEvent","isEscKey","isEnterKey","hasModifierKey","hasCtrlKey","evs","els","mls","Promise","getGlobal","elProt","Element","getUiClass","defCls","appendStyles","stls","link","prepand","shallowDiff","objOrig","objNew","keysNew","origValue","newValue","upFirst","normalizeFloat","step","valueDef","stepDecimals","toFixed","hasDnd","nativeDnD","escapeNodeContent","deepMerge","targValue","srcValue","__cashData","isEmptyObj","capitalize","isRule","toCSS","__gjsv","isComponent","toHTML","setViewEl","createId","chars","random","buildBase64UrlFromSvg","svg","base64Str","btoa","Buffer","webpackContext","req","webpackContextResolve","__webpack_require__","resolve","Function","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","isNull","isBoolean","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","isNumber","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","hasName","commonInit","mapTail","mapMethods","setMethods","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","results","currentKey","noop","propertyOf","times","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","template","settings","oldSettings","argument","variable","fallback","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","TypeError","callArgs","strict","idx","memoize","hasher","address","throttle","timeout","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","computed","lastComputed","reStrSymbol","rand","temp","criteria","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","enumerable","toStringTag","literals","raw","acc","lit","subst","substs","fromElement","projectData","noticeOnUnload","forceClass","log","baseCss","protectedCss","canvasCss","defaultCommand","devicePreviewMode","mediaCondition","tagVarStart","tagVarEnd","keepEmptyTextNodes","jsInHtml","multipleSelection","avoidInlineStyle","avoidDefaults","clearStyles","cssIcons","icons","plus","caret","delete","arrowUp","chevron","eye","eyeOff","i18n","assetManager","layerManager","storageManager","richTextEditor","domComponents","codeManager","cssComposer","selectorManager","deviceManager","styleManager","blockManager","traitManager","keepUnusedStyles","customUI","getByComponent","getComponent","addComponent","hasComponent","Selectable","lastComponent","allComponents","removeComponent","moduleName","_em","_name","cfgParent","cfg","_disable","_config","postLoad","__logWarn","__appendTo","elTo","private","skipListen","__initListen","getProjectData","storageKey","loadProjectData","onResult","getAllMap","__catchAllEvent","collections","entity","md","__remove","removeBefore","__onAllEvent","renderProps","_createId","ln","allMap","__listenAdd","__listenRemove","__listenUpdate","__destroy","Module","scripts","autoscrollLimit","extHl","frameContent","frameStyle","notTextable","allowExternalDrop","default","devices","widthMedia","checkUnit","pr","getWidthMedia","Devices","updateSelect","startAdd","updateDevice","devEl","devicesEl","getDeviceModel","device","getOptions","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","chnSel","deviceEvents","Device","_onSelect","deviceId","newDevice","getDevices","ItemManagerModule","modelConstructor","newModel","keyAutoW","keyAutoH","getDimension","dim","viewDim","endsWith","domc","conf","allRules","idMap","modOpts","Wrapper","getType","selectors","sSel","idSel","changesCount","refFrame","_undo","_undoexc","initRefs","framesById","changesUp","temporary","noCount","getStyles","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","getPage","page","_emitUpdated","hasAutoHeight","infiniteCanvas","ModuleModel","fromUndo","loadedItems","itemsToLoad","onAdd","onReset","itemLoaded","listenToLoadItems","listenToLoad","defFrame","frms","getId","setName","getAllFrames","getMainFrame","getMainComponent","evPageSelect","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","pageEvents","selectBefore","addBefore","pages","__onChange","_onPageChange","onLoad","configPages","mainPage","getMain","Layers","mainComp","setRoot","um","pg","load","pagesMap","onZoomChange","onCoordsChange","onPointerChange","_pageUpdated","rulers","pointerScreen","getCurrentFrameModel","noUndo","getPointerCoords","World","onChange","refreshDbn","spot","__trgEvent","spotAdd","spotUpdate","spotRemove","CanvasEvents","viewCollection","renderView","important","getDeclaration","getBlockId","atRules","addToCollection","fragmentEl","renderStarted","atRule","getAtRule","atRuleEl","styleEl","appendData","clsName","mediaText","defaultBlockId","blockId","getMediaWidth","contRules","sortRules","isMobFirst","prs","rootEl","toggleEffects","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","__customTglEff","frameElement","sortOpts","customTarget","startCustom","endCustom","endDrop","dragStop","updateCounter","dt","dragContentOrigin","dragContent","inAbsoluteMode","getWrapper","canvasOffset","getOffset","postLeft","posTop","handleDragEnd","cnt","setDropContent","getContentByData","dragging","lastMaxHeight","tools","frameWrapView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","allowfullscreen","getCoords","frameRect","canvasRect","getCanvasOffset","vwDelta","getViewportDelta","zoomM","getZoomMultiplier","headEl","attrStr","stl","getJsContainer","jsContainer","elTools","_getTool","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","_toggleEffects","startAutoscroll","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","spots","updateClientY","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","write","normalize","prevStyles","_isEditor","passive","droppable","_emitUpdate","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","Dragger","posOpts","startDrag","__clear","destroyed","updateDim","__handleSize","noChanges","onScroll","onscroll","currW","currH","newW","newH","newWidth","newHeight","observer","ResizeObserver","observe","sizeObserver","disconnect","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","clsUnscale","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","currFrame","onWheel","onPointer","screenToWorld","docScroll","screenCoords","isInputFocused","isZooming","newZoom","setZoom","Screen","pointerX","pointerY","zoomDelta","setCoords","toolsWrpEl","defOpts","updateFramesArea","timerZoom","framesArea","cvStyle","mpl","zoomDc","fitViewport","elFrame","elRect","noHeight","ignoreHeight","gapIsNum","gapX","gapY","boxWidth","boxHeight","canvasWidth","canvasHeight","widthRatio","heightRatio","zoomRatio","zoomMltp","yDelta","isElInViewport","getFrameOffset","rTop","rLeft","getRectToScreen","zoomMlt","frameX","frameY","canvasEl","toScreen","getViewportRect","toWorld","frmOff","cvsOff","winEl","frEl","frameOffset","frameTop","avoidFrameOffset","frameLeft","avoidFrameZoom","getElementOffsets","bEl","fo","updateScript","scriptContainer","jsEl","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","mainFrame","renderFrames","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","spotsEl","getFrame","getFramesEl","getDocument","_getLocalEl","globalEl","compView","getGhostEl","getFixedOffsetViewerEl","getSpotsEl","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","rectOff","getFrameElFromDoc","fullHeight","addTop","addLeft","subWinOffset","yOffset","xOffset","toIgnore","fr","getZoom","hasX","hasY","getPointer","addFrame","getLastDragResult","spotProps","getSpots","cmpView","customSpots","getWorldRectToScreen","draggableComponents","disableTextInnerChilds","processor","voidElements","htmlType","defaultType","modelAttrStart","compTypes","getPropAttribute","attrName","attrValue","valueLen","lastChar","splitPropsFromAttr","propsResult","parseStyle","decls","decl","parseClass","cl","parseNode","nodes","attrsLen","nodePrev","nodeChild","ct","compType","namespaceURI","inSvg","void","comps","allTxt","foundTextNode","ci","cType","textTags","parserCss","cf","optionsHtml","parserHtml","DOMParser","mimeType","strF","parseFromString","BrowserParserHtml","allowScripts","allowUnsafeAttr","__clearUnsafeAttr","styleStr","resHtml","returnArray","getLastStyleValue","extendStyle","propOrig","propNew","newStyle","noEvent","removeStyle","styleToString","imp","getSelectors","getSelectorsString","selectorsToString","getFullString","getComponentIds","getComponentsFromDefs","visitedCmps","restAttr","getNewId","addAttributes","newComponents","cmps","resetChildren","newIds","idsToKeep","keepIds","resetFromString","cssc","allByID","allById","parsed","parseString","newCmps","getRules","newRule","__checkInnerChilds","isTemp","prevColl","Selectors","canRemoveStyle","rulesRemoved","it","__postRemove","df","componentTypes","Parser","parseHtml","checkId","componentsById","optsToPass","addCollection","isMult","processDef","__firstAdd","mdl","ccid","modelPr","$$typeof","avoidInline","Component","ensureInList","setClassRule","__postAdd","recursive","TYPE_CLASS","TYPE_ID","namePreEsc","escapeName","nameEsc","Selector","protected","isId","isClass","getFullName","getLabel","setLabel","getActive","setActive","objLen","combine","curr","getStyleable","getValid","noDisabled","combination","changeProp","initValue","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","trait","setTargetValue","getDefault","getOptionId","getOptionLabel","optId","propName","fromTarget","getAttributes","valueToSet","valueTrue","valueFalse","setValueFromInput","final","toSet","getInitValue","build","buildFromString","optionsTarget","handleAdd","handleReset","Traits","tmOpts","tf","traits","eventDrag","keySymbols","keySymbol","keySymbolOvrd","keyUpdate","keyUpdateInside","removable","badgable","stylable","unstylable","highlightable","copyable","editable","layerable","selectable","hoverable","locked","dmode","updated","parentAttr","toPropagate","initClasses","initComponents","initTraits","initToolbar","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","avoidUpdateStyle","__isSymbolOrInst","__initSymb","__hasUm","__changesUp","__propSelfToParent","setDragMode","$els","closestType","setClass","attrPrev","setAttributes","noClass","removeAttributes","attrArr","compAttr","optsAdd","getIdRule","setIdRule","noStyle","addId","__getSymbol","__getSymbols","classe","getClasses","classStr","__logSymbol","toUp","symbol","symbols","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","__isSymbolNested","symbTopSelf","__getSymbTop","symbTop","__getAllById","symb","symbs","__isSymbOvrd","ovrd","prp","__getSymbToUp","fromInstance","noPropagate","propsChanged","__upSymbCls","__upSymbComps","optUp","toUpOpts","addSymb","addedInstances","toAppend","addedInst","addedTop","symbolInv","isSymbNested","toUpFn","symbPrnt","newMods","attrCls","toListen","clsArr","normalizeClasses","addChild","avoidChildren","__loadTraits","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","getLastChild","tb","traitsI","getTraits","setTraits","getTrait","updateTrait","getTraitIndex","removeTrait","addTrait","clm","_inner","cloned","newId","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","customName","noCustom","sTag","customAttr","getAttrToHTML","withProps","valueRes","altQuoteAttr","attrString","getInnerHTML","__innerHTML","getChangedProps","setId","frm","getCurrentView","modelProps","scrStr","reg","onAll","clb","forEachChild","rmOpts","sameParent","isInstanceOf","byType","resetId","oldId","_getStyleRule","idS","_getStyleSelector","idUpdate","idPrev","getList","getDefaults","nextId","getIncrementId","ilen","uid","dm","__escapeContent","frameborder","svgAttrs","ratioDefault","cmdName","hasButtonBool","getSrcResult","isDefaultSrc","srcDef","parseUri","uri","URL","hostname","protocol","port","qrs","pair","getQueryObject","defs","mapUrl","mapType","parseFromSrc","updateSrc","getMapUrl","addr","qr","q","z","columns","rows","rowsToAdd","columnsToAdd","yt","vi","ytnc","defProvider","hasParam","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","color","modestbranding","sources","updatePropsFromAttr","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","childrenView","sameFrameView","getTypes","viewObject","logError","modelOpt","updateStyle","renderAttributes","updateHighlight","updateStatus","updateContent","handleChange","onActive","onDisable","avoidRender","getEvents","dragstart","_clbObj","__isDraggable","handleDragStart","updateClasses","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","noPointerCls","selCls","noExtHl","noCustomSpotTarget","Target","avoidHover","clsStr","isTextable","hl","styleOpts","__cmpStyleOpts","onAttrUpdate","updateAttributes","textable","defaultAttr","contenteditable","hasComps","getChildrenContainer","prevDef","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","frameH","frameW","_setData","postRender","createComment","__getSrc","dblclick","classEmpty","fetchFile","fu","Assets","FileUploader","uploadFile","asset","complete","getSrc","onError","noDrag","updateContentText","syncContent","rte","RichTextEditor","fromDisable","disableEditing","canActivate","rteEnabled","sameInEdit","getEditing","isInnerText","getContent","lastContent","activeRte","toggleEvents","contentOpt","customRte","parseContent","insertComponent","startContainer","startOffset","onInput","disablePropagation","mixins","setEditing","elDocs","getIframe","ifrm","frameBorder","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","createElementNS","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","CanMoveReason","ComponentTableView","ComponentView","ComponentsView","componentHovered","selectAdd","selectRemove","getComponents","setComponents","addType","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","getShallowWrapper","shallow","shallowEm","reason","InvalidSource","srcModel","SourceReject","isTargetInside","TargetReject","getById","maxValue","MAX_VALUE","compCls","buildFromModel","codeJson","onlyMatched","matchedRules","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","dump","selectorStrNoAdd","skipAdd","selectorsAdd","singleAtRule","__cleanSelector","getQueryLength","mediaQuery","itemsArr","mquery","getKey","CSS","ensureSelectors","atRuleType","typeStr","addSelector","selOpts","stateStr","skipState","allowEmpty","getDevice","deviceDefault","getState","stateValue","getStates","sngl","cmpId","ruleProps","wd","selAdd","a1S","a2S","parseCss","CssRules","slc","singleSel","checkNode","console","sl","newSels","le","selec","modelExists","styleUpdate","addRules","setRule","atRuleParams","addStyles","getRule","optRuleSel","media","getCurrentMedia","getClassRule","getComponentRules","rulesView","blocks","appendOnClick","category","activate","getMedia","getCategoryLabel","ctg","BlocksEvents","Categories","endDrag","dragend","__getModule","getSorter","validTarget","valid","__currentBlock","setDragHelper","__startDrag","handleDrag","__drag","__endDrag","clsAdd","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","iconEl","blocksEl","categories","renderedCategories","noCatClass","blockContClass","catsClass","updateConfig","ignoreCategories","catModel","catId","getCategoriesEl","catView","catsEl","Block","Category","blocksVisible","bhv","__getBehaviour","_dragBlock","dragResult","oldKey","oldActive","toActive","__getFrameViews","_bhv","fv","blocksView","getAllVisible","getCategories","getDragBlock","toRender","external","colls","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","inputProp","getInputEl","inputEl","startEditTag","endEditTag","rename","innerText","changeStatus","removeTag","removeSelected","$chk","stateInputId","stateInputC","componentChanged","checkSync","__handleStateChange","renderClasses","tagRemoved","renderStates","labelInfo","labelHead","syncStyle","getTarget","cssC","getCommonSelectors","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","startNewTag","$addBtn","$input","endNewTag","onInputKeyUp","addNewTag","checkStates","statesEl","targets","trgs","validSelectors","__getCommonSelectors","_commonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","selectedName","idRes","stateChanged","addSelected","$states","$statesC","labelStates","tmpOpts","renderRes","$classes","evCustom","evState","selectorEvents","cFirst","__update","__updateSelectedByComponents","__ctn","selTags","selectorTags","cOpts","cname","selModel","getSelector","newName","setState","setStates","__getCommon","duplicateSelected","commonSelectors","styleToApply","suffix","newSelector","getSelectedTargets","setComponentFirst","getComponentFirst","CSS_RULE_TYPES","AT_RULE_NAMES","AT_RULE_KEYS","SINGLE_AT_RULE_TYPES","NESTABLE_AT_RULE_NAMES","SINGLE_AT_RULE_NAMES","parseSelector","propValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","getNestableAtRule","cssRules","keyText","isSingleAtRule","subRules","subAtRuleType","lens","subRule","selsParsed","selsAdd","selsArr","lastRule","len3","selsAddStr","sheet","parsedNode","classSets","classSet","autosave","autoload","stepsBeforeSave","recovery","onStore","checkLocal","remote","headers","urlStore","urlLoad","contentTypeJson","fetchOptions","credentials","hasLocal","localStorage","setItem","getItem","thr","_typeof","then","AggregateError","errors","message","P","rejectionReasons","catch","ex","setTimeoutFunc","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","promise","finale","_unhandledRejectionFn","Handler","prom","promiseFinally","allSettled","race","setImmediate","rej","XMLHttpRequest","withCredentials","statusText","responseText","upload","onProgress","onprogress","send","request","__props","parsable","typeJson","fetchOpts","reqHead","typeHead","FormData","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","confirm","response","toStore","__clearKeys","onAfter","itemKey","canAutoload","appendInput","eventCapture","clsField","onValueChange","removeView","rerender","templateLabel","templateInput","getClbOpts","elInput","getInputElem","onUpdate","onEvent","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","createInput","hasLabel","noLabel","tmpl","TraitView","updatedCollection","TraitsView","resultName","valResult","toInit","targetValue","handleModelChange","holderClass","inputClass","elementUpdated","__onInputChange","fromInput","plh","Input","contClass","validateInputValue","deepCheck","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","unitEl","units","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","defValue","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","InputNumber","keydown","inputNumber","$unit","defaultOpts","beforeShow","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","spect","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","format","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","updateSelectionPaletteFromStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","getUniqueSelectionPalette","drawInitial","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","paletteElementClick","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","hex","pad2","clamp01","hue","slices","modification","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","colorEl","getColorEl","tc","valueClr","noneColor","movedColor","cpStyle","elToAppend","colorPickerConfig","colorPicker","noDefault","labelButton","TraitButtonView","typesDef","number","checkbox","upAll","__upSel","__onUp","getTraitsViewer","baseView","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","parentView","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","viewLayer","ItemView","opened","inputNameCls","clsTitleC","clsTitle","clsCaret","clsCount","clsMove","clsChildren","clsNoChild","clsEdit","clsNoEdit","initComponent","clsInput","gut","clsBase","checkChildren","updateOpening","updateLayerable","updateName","__render","getInputName","getVisibilityEl","eyeEl","hClass","toggleVisibility","setVisible","handleEdit","handleEditKey","handleEditEnd","inputName","clsOpen","clsChvOpen","getCaret","isOpen","toggleOpening","stopImmediatePropagation","setOpen","handleSelect","setLayerData","handleHover","hovered","handleHoverOut","_rendered","__clearItems","__isLayerable","evRoot","evComponent","propsToListen","__onRootChange","__onComponent","getRoot","prevDspKey","prevDisplay","updateLayer","setLocked","isLocked","getLayerData","cmpOpts","fromLayers","noAssets","uploadName","multiUpload","customFetch","embedAsBase64","beforeUpload","showUrlInput","dropzone","openAssetsOnDrop","dropzoneContent","getFilename","getExtension","Asset","unitDim","__getBhv","getPreview","getInfo","AssetImageView","TypeableCollection","baseType","getBaseType","typeFound","recognizeType","typeView","ModelInst","ViewInst","extendViewApi","renderAssets","addToAsset","removedAsset","deselectAll","handleSubmit","getAddInput","assetsEl","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","fuRendered","AssetsView","uploadId","disableUpload","FileUploaderView","onUploadStart","__propEv","onUploadEnd","onUploadError","onUploadResponse","fetchOptsResult","initDrop","that","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","updatedCls","dropzoneCls","cleanEditorElCls","onDragLeave","promises","mimeTypeMatcher","Image","readAsDataURL","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetCmd","assetEvents","uploadStart","uploadEnd","uploadError","uploadResponse","assetsVis","assts","__viewParams","editorView","traitInputAttr","localeFallback","detectLocale","messages","en","addButton","inputPlh","uploadTitle","labels","comment","image","video","row","cell","desktop","tablet","mobileLandscape","mobilePortrait","titles","preview","fullscreen","emptyState","hover","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","false","_blank","recover","messagesAdd","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","spotTarget","elT","elL","borderOffset","freezeClass","relative","offTop","offLeft","selectOnEnd","getScale","getDocuments","elDoc","dropModel","dropContent","updateTextViewCursorPosition","targetDoc","caretRangeFromPoint","poiner","rangeParent","rangeOffset","setContentEditable","activeTextModel","toggleSortCursor","clonedEl","moveDragHelper","posY","posX","dragHelperStyle","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","elIndex","dirValue","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","marg","margI","elDim","pT","pL","obj1","obj2","ancester","s1","toMoveArr","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","onUpdateContainer","minDim","maxDim","silentFrames","avoidContainerUpdate","tl","cr","bl","bc","br","setup","hdl","createHandler","toggleFrames","isHandler","getFocusedEl","getParentEl","getBoundingRect","updateContainer","forceShow","handleMouseDown","mouseFetch","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","calc","updateRect","getSelectedHandler","elStyle","parentW","parentH","startW","startH","ratioActive","ratio","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","return","esc","down","del","home","pageup","pagedown","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","modifiersMatch","dispatch","keymaster","keymaps","defKeys","handlerRes","removeAll","backdrop","updateOpen","updateTitle","getCollector","$collector","$content","getTitle","$title","updateAttr","currAttr","_evData","titl","setTitle","onceOpen","getContentEl","swv","expt","osm","otm","ola","obl","ful","prv","togglable","runDefaultCommand","stopDefaultCommand","deactivateAllExceptOne","except","deactivateAll","fromCollection","disableAllButtons","disableAllButtonsExceptOne","Buttons","btn","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","fromListen","$buttons","commandName","noStop","clicked","toggleActive","appendContent","toggleVisible","resz","resLen","resBools","forContainer","styleWidth","styleHeight","buttonsView","appendEl","getPanelsEl","PanelsViewObj","removePanel","panelId","removeButton","getButton","disableButtons","optsCodeViewer","htmlOpts","cleanId","beforeEach","isFunctionEmpty","mapModel","scrProps","mapJs","autoFormat","autoFormatRange","noRefresh","CodeMirrorEditor","defaultViewer","generators","viewers","defGenerators","js","defViewers","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","txtarea","updateViewer","getCode","genId","trackSelection","hasSkip","getChanged","hasUndo","chn","beforeCache","hasRedo","getInstance","getStack","getStackGroup","getGroupedStack","createItem","goToGroup","goTo","adjustToolbar","RichTextEditorActionState","RTE_KEY","btnState","isValidTag","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actionbar","inactive","isCustom","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","currentState","INACTIVE","newState","queryCommandSupported","queryCommandState","ACTIVE","__dbdTrgCustom","enabled","__toggleEffects","actionbarEl","syncActions","textHtml","deleteContents","nd","insertNode","toSel","eventsUp","initRte","globalRte","hideToolbar","actionRes","updatePosition","rteInst","currentView","commandsDef","CommandAbstract","defaultCommands","selAll","nativeDrag","defComOptions","hideTlb","altMode","cmdMove","oldCmd","cmdObj","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","functionName","fixedValues","toRequire","requires","requiresParent","parentTarget","__upTargets","Property","callInit","__getParentProp","parentProp","isClear","__getFullValue","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","_up","noTarget","hasValue","getDefaultValue","parentValue","getParentTarget","hasValueParent","noParent","upValue","__parseValue","canClear","getParent","__canClearProp","isFull","parseValue","valueStr","numeric","num","withDefault","getFullValue","fnParameter","skipImportant","__setParentTarget","__parseFn","__checkVisibility","stylableReq","sector","getProperties","callParentInit","skipInit","getIndex","getValues","getLayerLabel","isSelected","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","hasPreview","upValues","isNumberType","detached","separator","fromStyle","toStyle","__upProperties","getProperty","getPropertyAt","isDetached","byName","getSeparator","getSplitSeparator","getJoin","__getJoin","getStyleFromProps","__clearIn","__upTargetsStyleProps","__setProperties","__getSplitValue","__styleHasProps","nameProps","__splitValue","__splitStyleName","props4Nums","__getPropsFromStyle","valuesStr","VALUES_REG","PARTS_REG","layerSeparator","layerJoin","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","getLayers","__getLayers","getLayer","__select","selectLayerAt","currIndex","addLayer","removeLayerAt","getStyleFromLayer","joinLayers","__getJoinLayers","newVal","getLayerSeparator","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","__getLayersFromStyle","separatorLayers","inLayer","clearProp","__destroyFn","iconClose","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","inputValueChanged","emit","__setValueInput","clearCached","__unset","__change","__updateStyle","createdEl","clsType","propsView","iconMove","propertyView","pModel","updateLabel","removeItem","getPropertiesWrapper","propsWrapEl","getPreviewEl","previewEl","getLabelEl","prvEl","wrapEl","iconPlus","layersView","prvBoxEl","backgroundImage","openAssetManager","inputInst","__handleChange","addOption","propId","__onOptionChange","updateOptions","styleAttr","inputH","firstOpt","firstId","itemCls","elId","titleAttr","inputHld","inputIn","getUnits","getUnit","getMin","getMax","getStep","upUnit","valueProp","unitProp","getSliderEl","inputValueChangedSoft","propertyAdd","propertyRemove","builded","buildProperties","buildProps","extendProperties","checkExtend","propsModel","extendBuilded","withValue","withParentValue","addProperty","moProps","pLen","mProps","isolated","mProp","mPProps","buildP","builtIn","sect","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","propsToCreate","spread","propToUp","fromRes","iconCaret","clsPfx","getPropertiesEl","renderProperties","objs","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","stylesEvents","sectorAdd","sectorRemove","sectorUpdate","Sector","__clearStateTarget","upProps","__upProps","trgCustom","stateTarget","__getStateTarget","addSector","getSector","_logNoSector","getSectors","removeSector","sectorId","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","hasClasses","useClasses","deviceW","cssGen","optsSel","cmpRules","otherRules","createType","SectView","parentStyles","__upProp","sectorVisible","hasVal","isStack","isComposite","canUpdate","parentItem","deps","storableDeps","Window","ar","logs","warning","__skip","defaultRunning","dragMode","toLog","attrsOrig","pageManager","constr","loadModule","loadStorableModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","editing","clipboard","previousModel","storables","modules","toLoad","loadOnStart","headless","loadData","_storageTimeout","EditorModel","stm","getDirtyCount","updateItr","onbeforeunload","InitModule","Mod","handleUpdates","timedInterval","mltSel","multiple","toggleSelected","selColl","selIndex","upHovered","getHovered","selectedAll","typeHover","typeSpacing","getJs","avoidProt","avoidProtected","protCss","storeData","Storage","clearDirtyCount","loadOptions","editingCmp","destroyAll","grapesjs","logNs","logInfo","initBaseColorPicker","varName","classNames","contEl","shallowCanvasEl","I18n","Keymaps","addComponents","getSelectedToStyle","selectToggle","setDevice","setCustomRte","setCustomParserCss","onReady","getPlugin","plugin","plugins","pluginId","wplg","getPluginById","logPluginWarn","plg","agent","isIE","DOMImplementation","createHTMLDocument","implementation","polyfills","usePlugin","pluginResult","initConfig","autorender","pluginsOpts","plgOptions"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"grapes.min.js","mappings":"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","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./src/abstract/ModuleModel.ts","webpack://grapesjs/./src/canvas/model/CanvasSpot.ts","webpack://grapesjs/./src/commands/view/CanvasClear.ts","webpack://grapesjs/./src/commands/view/CanvasMove.ts","webpack://grapesjs/./src/commands/view/CommandAbstract.ts","webpack://grapesjs/./src/commands/view/ComponentDelete.ts","webpack://grapesjs/./src/commands/view/ComponentDrag.ts","webpack://grapesjs/./src/commands/view/ComponentEnter.ts","webpack://grapesjs/./src/commands/view/ComponentExit.ts","webpack://grapesjs/./src/commands/view/ComponentNext.ts","webpack://grapesjs/./src/commands/view/ComponentPrev.ts","webpack://grapesjs/./src/commands/view/ComponentStyleClear.ts","webpack://grapesjs/./src/commands/view/CopyComponent.ts","webpack://grapesjs/./src/commands/view/ExportTemplate.ts","webpack://grapesjs/./src/commands/view/Fullscreen.ts","webpack://grapesjs/./src/commands/view/MoveComponent.ts","webpack://grapesjs/./src/commands/view/OpenAssets.ts","webpack://grapesjs/./src/commands/view/OpenBlocks.ts","webpack://grapesjs/./src/commands/view/OpenLayers.ts","webpack://grapesjs/./src/commands/view/OpenStyleManager.ts","webpack://grapesjs/./src/commands/view/OpenTraitManager.ts","webpack://grapesjs/./src/commands/view/PasteComponent.ts","webpack://grapesjs/./src/commands/view/Preview.ts","webpack://grapesjs/./src/commands/view/Resize.ts","webpack://grapesjs/./src/dom_components/model/ToolbarButton.ts","webpack://grapesjs/./src/dom_components/model/Toolbar.ts","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.ts","webpack://grapesjs/./src/dom_components/view/ToolbarView.ts","webpack://grapesjs/./src/commands/view/SelectComponent.ts","webpack://grapesjs/./src/commands/view/SelectPosition.ts","webpack://grapesjs/./src/commands/view/ShowOffset.ts","webpack://grapesjs/./src/commands/view/SwitchVisibility.ts","webpack://grapesjs/./src/common/index.ts","webpack://grapesjs/./src/domain_abstract/view/DomainViews.ts","webpack://grapesjs/./src/utils/Dragger.ts","webpack://grapesjs/./src/utils/cash-dom.ts","webpack://grapesjs/./src/utils/dom.ts","webpack://grapesjs/./src/utils/mixins.ts","webpack://grapesjs/./src/commands/view/ sync ^\\.\\/.*$","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/utils/html.ts","webpack://grapesjs/./src/editor/config/config.ts","webpack://grapesjs/./src/editor/model/Selected.ts","webpack://grapesjs/./src/abstract/Module.ts","webpack://grapesjs/./src/canvas/config/config.ts","webpack://grapesjs/./src/device_manager/config/config.ts","webpack://grapesjs/./src/device_manager/model/Device.ts","webpack://grapesjs/./src/device_manager/model/Devices.ts","webpack://grapesjs/./src/device_manager/view/DevicesView.ts","webpack://grapesjs/./src/device_manager/index.ts","webpack://grapesjs/./src/abstract/ModuleCollection.ts","webpack://grapesjs/./src/canvas/model/Frame.ts","webpack://grapesjs/./src/canvas/model/Frames.ts","webpack://grapesjs/./src/pages/model/Page.ts","webpack://grapesjs/./src/pages/model/Pages.ts","webpack://grapesjs/./src/pages/index.ts","webpack://grapesjs/./src/canvas/model/Canvas.ts","webpack://grapesjs/./src/canvas/model/CanvasSpots.ts","webpack://grapesjs/./src/canvas/types.ts","webpack://grapesjs/./src/abstract/ModuleView.ts","webpack://grapesjs/./src/abstract/ModuleDomainViews.ts","webpack://grapesjs/./src/css_composer/view/CssRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssRulesView.ts","webpack://grapesjs/./src/utils/Droppable.ts","webpack://grapesjs/./src/canvas/view/FrameView.ts","webpack://grapesjs/./src/canvas/view/FrameWrapView.ts","webpack://grapesjs/./src/canvas/view/FramesView.ts","webpack://grapesjs/./src/canvas/view/CanvasView.ts","webpack://grapesjs/./src/canvas/index.ts","webpack://grapesjs/./src/dom_components/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserHtml.ts","webpack://grapesjs/./src/parser/model/ParserHtml.ts","webpack://grapesjs/./src/domain_abstract/model/StyleableModel.ts","webpack://grapesjs/./src/dom_components/model/Components.ts","webpack://grapesjs/./src/selector_manager/model/Selector.ts","webpack://grapesjs/./src/selector_manager/model/Selectors.ts","webpack://grapesjs/./src/trait_manager/model/Trait.ts","webpack://grapesjs/./src/trait_manager/model/TraitFactory.ts","webpack://grapesjs/./src/trait_manager/model/Traits.ts","webpack://grapesjs/./src/dom_components/model/Component.ts","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.ts","webpack://grapesjs/./src/dom_components/model/ComponentComment.ts","webpack://grapesjs/./src/dom_components/model/ComponentFrame.ts","webpack://grapesjs/./src/dom_components/model/ComponentImage.ts","webpack://grapesjs/./src/dom_components/model/ComponentText.ts","webpack://grapesjs/./src/dom_components/model/ComponentLabel.ts","webpack://grapesjs/./src/dom_components/model/ComponentLink.ts","webpack://grapesjs/./src/dom_components/model/ComponentMap.ts","webpack://grapesjs/./src/dom_components/model/ComponentScript.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvg.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.ts","webpack://grapesjs/./src/dom_components/model/ComponentTable.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.ts","webpack://grapesjs/./src/dom_components/model/ComponentVideo.ts","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.ts","webpack://grapesjs/./src/dom_components/view/ComponentsView.ts","webpack://grapesjs/./src/dom_components/view/ComponentView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.ts","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.ts","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.ts","webpack://grapesjs/./src/dom_components/view/ComponentImageView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextView.ts","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.ts","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.ts","webpack://grapesjs/./src/dom_components/view/ComponentMapView.ts","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.ts","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableView.ts","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.ts","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.ts","webpack://grapesjs/./src/dom_components/index.ts","webpack://grapesjs/./src/css_composer/config/config.ts","webpack://grapesjs/./src/code_manager/model/CssGenerator.ts","webpack://grapesjs/./src/css_composer/model/CssRule.ts","webpack://grapesjs/./src/css_composer/model/CssRules.ts","webpack://grapesjs/./src/css_composer/index.ts","webpack://grapesjs/./src/block_manager/config/config.ts","webpack://grapesjs/./src/block_manager/model/Block.ts","webpack://grapesjs/./src/block_manager/model/Blocks.ts","webpack://grapesjs/./src/block_manager/model/Category.ts","webpack://grapesjs/./src/block_manager/model/Categories.ts","webpack://grapesjs/./src/block_manager/types.ts","webpack://grapesjs/./src/block_manager/view/BlockView.ts","webpack://grapesjs/./src/block_manager/view/CategoryView.ts","webpack://grapesjs/./src/block_manager/view/BlocksView.ts","webpack://grapesjs/./src/block_manager/index.ts","webpack://grapesjs/./src/selector_manager/config/config.ts","webpack://grapesjs/./src/selector_manager/model/State.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagView.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.ts","webpack://grapesjs/./src/selector_manager/index.ts","webpack://grapesjs/./src/parser/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserCss.ts","webpack://grapesjs/./src/parser/model/ParserCss.ts","webpack://grapesjs/./src/parser/index.ts","webpack://grapesjs/./src/storage_manager/config/config.ts","webpack://grapesjs/./src/storage_manager/model/LocalStorage.ts","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/any.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.ts","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.ts","webpack://grapesjs/./src/storage_manager/types.ts","webpack://grapesjs/./src/storage_manager/index.ts","webpack://grapesjs/./src/trait_manager/config/config.ts","webpack://grapesjs/./src/trait_manager/view/TraitView.ts","webpack://grapesjs/./src/trait_manager/view/TraitsView.ts","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.ts","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.ts","webpack://grapesjs/./src/domain_abstract/ui/Input.ts","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.ts","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.ts","webpack://grapesjs/./src/domain_abstract/ui/InputColor.ts","webpack://grapesjs/./src/utils/ColorPicker.ts","webpack://grapesjs/./src/trait_manager/view/TraitColorView.ts","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.ts","webpack://grapesjs/./src/trait_manager/index.ts","webpack://grapesjs/./src/navigator/config/config.ts","webpack://grapesjs/./src/navigator/view/ItemsView.ts","webpack://grapesjs/./src/commands/config/config.ts","webpack://grapesjs/./src/commands/index.ts","webpack://grapesjs/./src/navigator/view/ItemView.ts","webpack://grapesjs/./src/navigator/index.ts","webpack://grapesjs/./src/asset_manager/config/config.ts","webpack://grapesjs/./src/asset_manager/model/Asset.ts","webpack://grapesjs/./src/asset_manager/model/AssetImage.ts","webpack://grapesjs/./src/asset_manager/view/AssetView.ts","webpack://grapesjs/./src/asset_manager/view/AssetImageView.ts","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.ts","webpack://grapesjs/./src/asset_manager/model/Assets.ts","webpack://grapesjs/./src/asset_manager/view/AssetsView.ts","webpack://grapesjs/./src/asset_manager/view/FileUploader.ts","webpack://grapesjs/./src/asset_manager/index.ts","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.ts","webpack://grapesjs/./src/i18n/index.ts","webpack://grapesjs/./src/utils/Sorter.ts","webpack://grapesjs/./src/utils/Resizer.ts","webpack://grapesjs/./src/utils/index.ts","webpack://grapesjs/./src/utils/keymaster.ts","webpack://grapesjs/./src/keymaps/config.ts","webpack://grapesjs/./src/keymaps/index.ts","webpack://grapesjs/./src/modal_dialog/config/config.ts","webpack://grapesjs/./src/modal_dialog/model/Modal.ts","webpack://grapesjs/./src/modal_dialog/view/ModalView.ts","webpack://grapesjs/./src/modal_dialog/index.ts","webpack://grapesjs/./src/panels/config/config.ts","webpack://grapesjs/./src/panels/model/Button.ts","webpack://grapesjs/./src/panels/model/Buttons.ts","webpack://grapesjs/./src/panels/model/Panel.ts","webpack://grapesjs/./src/panels/model/Panels.ts","webpack://grapesjs/./src/panels/view/ButtonView.ts","webpack://grapesjs/./src/panels/view/ButtonsView.ts","webpack://grapesjs/./src/panels/view/PanelView.ts","webpack://grapesjs/./src/panels/view/PanelsView.ts","webpack://grapesjs/./src/panels/index.ts","webpack://grapesjs/./src/code_manager/config/config.ts","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsonGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsGenerator.ts","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.ts","webpack://grapesjs/./src/code_manager/view/EditorView.ts","webpack://grapesjs/./src/code_manager/index.ts","webpack://grapesjs/./src/undo_manager/config.ts","webpack://grapesjs/./src/undo_manager/index.ts","webpack://grapesjs/./src/rich_text_editor/config/config.ts","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.ts","webpack://grapesjs/./src/rich_text_editor/index.ts","webpack://grapesjs/./src/style_manager/config/config.ts","webpack://grapesjs/./src/style_manager/model/Property.ts","webpack://grapesjs/./src/style_manager/model/Layer.ts","webpack://grapesjs/./src/style_manager/model/Layers.ts","webpack://grapesjs/./src/style_manager/model/PropertyComposite.ts","webpack://grapesjs/./src/style_manager/model/PropertyStack.ts","webpack://grapesjs/./src/style_manager/view/PropertyView.ts","webpack://grapesjs/./src/style_manager/view/PropertiesView.ts","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.ts","webpack://grapesjs/./src/style_manager/view/LayerView.ts","webpack://grapesjs/./src/style_manager/view/LayersView.ts","webpack://grapesjs/./src/style_manager/view/PropertyStackView.ts","webpack://grapesjs/./src/style_manager/view/PropertyFileView.ts","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.ts","webpack://grapesjs/./src/style_manager/view/PropertyColorView.ts","webpack://grapesjs/./src/style_manager/model/PropertySelect.ts","webpack://grapesjs/./src/style_manager/view/PropertySelectView.ts","webpack://grapesjs/./src/style_manager/model/PropertyRadio.ts","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.ts","webpack://grapesjs/./src/style_manager/model/PropertyNumber.ts","webpack://grapesjs/./src/style_manager/model/PropertySlider.ts","webpack://grapesjs/./src/style_manager/view/PropertySliderView.ts","webpack://grapesjs/./src/style_manager/model/Properties.ts","webpack://grapesjs/./src/style_manager/model/Sector.ts","webpack://grapesjs/./src/style_manager/model/Sectors.ts","webpack://grapesjs/./src/style_manager/model/PropertyFactory.ts","webpack://grapesjs/./src/style_manager/view/SectorView.ts","webpack://grapesjs/./src/style_manager/view/SectorsView.ts","webpack://grapesjs/./src/style_manager/index.ts","webpack://grapesjs/./src/editor/model/Editor.ts","webpack://grapesjs/./src/utils/extender.ts","webpack://grapesjs/./src/editor/view/EditorView.ts","webpack://grapesjs/./src/editor/index.ts","webpack://grapesjs/./src/plugin_manager/index.ts","webpack://grapesjs/./src/utils/polyfills.ts","webpack://grapesjs/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","/*!\n * Backbone.Undo.js v0.2\n * \n * Copyright (c)2013 Oliver Sartun\n * Released under the MIT License\n *\n * Documentation and full license available at\n * https://github.com/osartun/Backbone.Undo.js\n */\n\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\t// AMD support\n\t\tdefine([\"underscore\", \"backbone\"], factory);\n\t} else if (typeof exports !== 'undefined') {\n\t\t// CommonJS support\n\t\tmodule.exports = factory(\n\t\t\trequire(\"underscore\"),\n\t\t\trequire(\"backbone\")\n\t\t);\n\t} else {\n\t\t// Non-modular execution\n\t\tfactory(_, Backbone);\n }\n})(function (_, Backbone) {\n\n\tvar core_slice = Array.prototype.slice;\n\n\t/**\n\t * As call is faster than apply, this is a faster version of apply as it uses call.\n\t * \n\t * @param {Function} fn \tThe function to execute \n\t * @param {Object} ctx \tThe context the function should be called in\n\t * @param {Array} args \tThe array of arguments that should be applied to the function\n\t * @return Forwards whatever the called function returns\n\t */\n\tfunction apply (fn, ctx, args) {\n\t\treturn args.length <= 4 ?\n\t\t\tfn.call(ctx, args[0], args[1], args[2], args[3]) :\n\t\t\tfn.apply(ctx, args);\n\t}\n\n\t/**\n\t * Uses slice on an array or an array-like object.\n\t * \n\t * @param {Array|Object} \tarr \tThe array or array-like object.\n\t * @param {Number} \t\t[index]\tThe index from where the array should be sliced. Default is 0.\n\t * @return {Array} The sliced array\n\t */\n\tfunction slice (arr, index) {\n\t\treturn core_slice.call(arr, index);\n\t}\n\n\t/**\n\t * Checks if an object has one or more specific keys. The keys \n\t * don't have to be an owned property.\n\t * You can call this function either this way:\n\t * hasKeys(obj, [\"a\", \"b\", \"c\"])\n\t * or this way:\n\t * hasKeys(obj, \"a\", \"b\", \"c\")\n\t * \n\t * @param {Object} \tobj \tThe object to check on\n\t * @param {Array} \tkeys \tThe keys to check for\n\t * @return {Boolean} True, if the object has all those keys\n\t */\n\tfunction hasKeys (obj, keys) {\n\t\tif (obj == null) return false;\n\t\tif (!_.isArray(keys)) {\n\t\t\tkeys = slice(arguments, 1);\n\t\t}\n\t\treturn _.all(keys, function (key) {\n\t\t\treturn key in obj;\n\t\t});\n\t}\n\n\t/**\n\t * Returns a number that is unique per call stack. The number gets \n\t * changed after the call stack has been completely processed.\n\t * \n\t * @return {number} MagicFusionIndex\n\t */\n\tvar getMagicFusionIndex = (function () {\n\t\t// If you add several models to a collection or set several\n\t\t// attributes on a model all in sequence and yet all for\n\t\t// example in one function, then several Undo-Actions are\n\t\t// generated.\n\t\t// If you want to undo your last action only the last model\n\t\t// would be removed from the collection or the last set\n\t\t// attribute would be changed back to its previous value.\n\t\t// To prevent that we have to figure out a way to combine\n\t\t// all those actions that happened \"at the same time\". \n\t\t// Timestamps aren't exact enough. A complex routine could \n\t\t// run several milliseconds and in that time produce a lot \n\t\t// of actions with different timestamps.\n\t\t// Instead we take advantage of the single-threadedness of\n\t\t// JavaScript:\n\n\t\tvar callstackWasIndexed = false, magicFusionIndex = -1;\n\t\tfunction indexCycle() {\n\t\t\tmagicFusionIndex++;\n\t\t\tcallstackWasIndexed = true;\n\t\t\t_.defer(function () {\n\t\t\t\t// Here comes the magic. With a Timeout of 0 \n\t\t\t\t// milliseconds this function gets called whenever\n\t\t\t\t// the current callstack is completed\n\t\t\t\tcallstackWasIndexed = false;\n\t\t\t})\n\t\t}\n\t\treturn function () {\n\t\t\tif (!callstackWasIndexed) {\n\t\t\t\tindexCycle();\n\t\t\t}\n\t\t\treturn magicFusionIndex;\n\t\t}\n\t})();\n\n\t/**\n\t * To prevent binding a listener several times to one \n\t * object, we register the objects in an ObjectRegistry\n\t *\n\t * @constructor\n\t */\n\tfunction ObjectRegistry () {\n\t\t// This uses two different ways of storing\n\t\t// objects: In case the object has a cid\n\t\t// (which Backbone objects typically have)\n\t\t// it uses this cid as an index. That way\n\t\t// the Array's length attribute doesn't \n\t\t// change and the object isn't an item \n\t\t// in the array, but an object-property.\n\t\t// Otherwise it's added to the Array as an\n\t\t// item.\n\t\t// That way we can use the fast property-\n\t\t// lookup and only have to fall back to \n\t\t// iterating over the array in case \n\t\t// non-Backbone-objects are registered.\n\t\tthis.registeredObjects = [];\n\t\t// To return a list of all registered \n\t\t// objects in the 'get' method we have to\n\t\t// store the objects that have a cid in\n\t\t// an additional array. \n\t\tthis.cidIndexes = [];\n\t}\n\tObjectRegistry.prototype = {\n\t\t/**\n\t\t * Returns whether the object is already registered in this ObjectRegistry or not.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to check\n\t\t * @return \t{Boolean} True if the object is already registered\n\t\t */\n\t\tisRegistered: function (obj) {\n\t\t\t// This is where we get a performance boost \n\t\t\t// by using the two different ways of storing \n\t\t\t// objects.\n\t\t\treturn obj && obj.cid ? this.registeredObjects[obj.cid] : _.contains(this.registeredObjects, obj);\n\t\t},\n\t\t/**\n\t\t * Registers an object in this ObjectRegistry.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to register\n\t\t * @return \t{undefined}\n\t\t */\n\t\tregister: function (obj) {\n\t\t\tif (!this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tthis.registeredObjects[obj.cid] = obj;\n\t\t\t\t\tthis.cidIndexes.push(obj.cid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.registeredObjects.push(obj);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Unregisters an object from this ObjectRegistry.\n\t\t * \n\t\t * @this {ObjectRegistry}\n\t\t * @param {Object} obj The object to unregister\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function (obj) {\n\t\t\tif (this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tdelete this.registeredObjects[obj.cid];\n\t\t\t\t\tthis.cidIndexes.splice(_.indexOf(this.cidIndexes, obj.cid), 1);\n\t\t\t\t} else {\n\t\t\t\t\tvar i = _.indexOf(this.registeredObjects, obj);\n\t\t\t\t\tthis.registeredObjects.splice(i, 1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Returns an array of all objects that are currently in this ObjectRegistry.\n\t\t * \n\t\t * @return {Array} An array of all the objects which are currently in the ObjectRegistry\n\t\t */\n\t\tget: function () {\n\t\t\treturn (_.map(this.cidIndexes, function (cid) {return this.registeredObjects[cid];}, this)).concat(this.registeredObjects);\n\t\t}\n\t}\n\n\t/**\n\t * Binds or unbinds the \"all\"-listener for one or more objects.\n\t * \n\t * @param {String} which \tEither \"on\" or \"off\"\n\t * @param {Object[]} objects \tArray of the objects on which the \"all\"-listener should be bound / unbound to\n\t * @param {Function} [fn] \t\tThe function that should be bound / unbound. Optional in case of \"off\"\n\t * @param {Object} [ctx] \tThe context the function should be called in\n\t * @return {undefined}\n\t */\n\tfunction onoff(which, objects, fn, ctx) {\n\t\tfor (var i = 0, l = objects.length, obj; i < l; i++) {\n\t\t\tobj = objects[i];\n\t\t\tif (!obj) continue;\n\t\t\tif (which === \"on\") {\n\t\t\t\tif (!ctx.objectRegistry.register(obj)) {\n\t\t\t\t\t// register returned false, so obj was already registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ctx.objectRegistry.unregister(obj)) {\n\t\t\t\t\t// unregister returned false, so obj wasn't registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_.isFunction(obj[which])) {\n\t\t\t\tobj[which](\"all\", fn, ctx);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the undo/redo-function for a specific action.\n\t * \n\t * @param {String} which \tEither \"undo\" or \"redo\"\n\t * @param {Object} action \tThe Action's attributes\n\t * @return {undefined}\n\t */\n\tfunction actionUndoRedo (which, action) {\n\t\tvar type = action.type, undoTypes = action.undoTypes, fn = !undoTypes[type] || undoTypes[type][which];\n\t\tif (_.isFunction(fn)) {\n\t\t\tfn(action.object, action.before, action.after, action.options);\n\t\t}\n\t}\n\n\t/**\n\t * The main undo/redo function.\n\t *\n\t * @param {String} \t\twhich \t Either \"undo\" or \"redo\"\n\t * @param {UndoManager} \tmanager\t The UndoManager-instance on which an \"undo\"/\"redo\"-Event is triggered afterwards\n\t * @param {UndoStack} \t\tstack \t The UndoStack on which we perform\n\t * @param {Boolean} \t\tmagic \t If true, undoes / redoes all actions with the same magicFusionIndex\n\t * @param {Boolean} \t\teverything If true, undoes / redoes every action that had been tracked\n\t * @return {undefined}\n\t */\n\tfunction managerUndoRedo (which, manager, stack, magic, everything) {\n\t\tif (stack.isCurrentlyUndoRedoing || \n\t\t\t(which === \"undo\" && stack.pointer === -1) ||\n\t\t\t(which === \"redo\" && stack.pointer === stack.length - 1)) {\n\t\t\t// We're either currently in an undo- / redo-process or \n\t\t\t// we reached the end of the stack\n\t\t\treturn;\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = true;\n\t\tvar action, actions, isUndo = which === \"undo\";\n\t\tif (everything) {\n\t\t\t// Undo / Redo all steps until you reach the stack's beginning / end\n\t\t\tactions = isUndo && stack.pointer === stack.length - 1 || // If at the stack's end calling undo\n\t\t\t\t\t !isUndo && stack.pointer === -1 ? // or at the stack's beginning calling redo\n\t\t\t\t\t _.clone(stack.models) : // => Take all the models. Otherwise:\n\t\t\t\t\t core_slice.apply(stack.models, isUndo ? [0, stack.pointer] : [stack.pointer, stack.length - 1]);\n\t\t} else {\n\t\t\t// Undo / Redo only one step\n\t\t\taction = stack.at(isUndo ? stack.pointer : stack.pointer + 1);\n\t\t\tactions = magic ? stack.where({\"magicFusionIndex\": action.get(\"magicFusionIndex\")}) : [action];\n\t\t}\n\t\t\n\t\tstack.pointer += (isUndo ? -1 : 1) * actions.length;\n\t\twhile (action = isUndo ? actions.pop() : actions.shift()) {\n\t\t\t// Here we're calling the Action's undo / redo method\n\t\t\taction[which]();\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = false;\n\n\t\tmanager.trigger(which, manager);\n\t}\n\n\t/**\n\t * Checks whether an UndoAction should be created or not. Therefore it checks\n\t * whether a \"condition\" property is set in the undoTypes-object of the specific\n\t * event type. If not, it returns true. If it's set and a boolean, it returns it.\n\t * If it's a function, it returns its result, converting it into a boolean. \n\t * Otherwise it returns true.\n\t * \n\t * @param {Object} \tundoTypesType \tThe object within the UndoTypes that holds the function for this event type (i.e. \"change\")\n\t * @param {Arguments} \targs \t\tThe arguments the \"condition\" function is called with\n\t * @return {Boolean} \tTrue, if an UndoAction should be created\n\t */\n\tfunction validateUndoActionCreation (undoTypesType, args) {\n\t\tvar condition = undoTypesType.condition, type = typeof condition;\n\t\treturn type === \"function\" ? !!apply(condition, undoTypesType, args) :\n\t\t\ttype === \"boolean\" ? condition : true;\n\t}\n\n\t/**\n\t * Adds an Undo-Action to the stack.\n\t * \n\t * @param {UndoStack} \t\tstack \t\tThe undostack the action should be added to.\n\t * @param {String} \t\t\ttype \t\tThe event type (i.e. \"change\")\n\t * @param {Arguments} \t\targs \t\tThe arguments passed to the undoTypes' \"on\"-handler\n\t * @param {OwnedUndoTypes} \tundoTypes \tThe undoTypes-object which has the \"on\"-handler\n\t * @return {undefined}\n\t */\n\tfunction addToStack(stack, type, args, undoTypes) {\n\t\tif (stack.track && !stack.isCurrentlyUndoRedoing && type in undoTypes &&\n\t\t\tvalidateUndoActionCreation(undoTypes[type], args)) {\n\t\t\t// An UndoAction should be created\n\t\t\tvar res = apply(undoTypes[type][\"on\"], undoTypes[type], args), diff;\n\t\t\tif (hasKeys(res, \"object\", \"before\", \"after\")) {\n\t\t\t\tres.type = type;\n\t\t\t\tres.magicFusionIndex = getMagicFusionIndex();\n\t\t\t\tres.undoTypes = undoTypes;\n\t\t\t\tif (stack.pointer < stack.length - 1) {\n\t\t\t\t\t// New Actions must always be added to the end of the stack.\n\t\t\t\t\t// If the pointer is not pointed to the last action in the\n\t\t\t\t\t// stack, presumably because actions were undone before, then\n\t\t\t\t\t// all following actions must be discarded\n\t\t\t\t\tvar diff = stack.length - stack.pointer - 1;\n\t\t\t\t\twhile (diff--) {\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstack.pointer = stack.length;\n\t\t\t\tstack.add(res);\n\t\t\t\tif (stack.length > stack.maximumStackLength) {\n\t\t\t\t\tstack.shift();\n\t\t\t\t\tstack.pointer--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Predefined UndoTypes object with default handlers for the most common events.\n\t * @type {Object}\n\t */\n\tvar UndoTypes = {\n\t\t\"add\": {\n\t\t\t\"undo\": function (collection, ignore, model, options) {\n\t\t\t\t// Undo add = remove\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, ignore, model, options) {\n\t\t\t\t// Redo add = add\n\t\t\t\tif (options.index) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: undefined,\n\t\t\t\t\tafter: model,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"remove\": {\n\t\t\t\"undo\": function (collection, model, ignore, options) {\n\t\t\t\tif (\"index\" in options) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, model, ignore, options) {\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: model,\n\t\t\t\t\tafter: undefined,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"change\": {\n\t\t\t\"undo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(before)) {\n\t\t\t\t\t_.each(_.keys(after), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(before);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.before && options.unsetData.before.length) {\n\t\t\t\t\t\t_.each(options.unsetData.before, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"redo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(after)) {\n\t\t\t\t\t_.each(_.keys(before), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(after);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.after && options.unsetData.after.length) {\n\t\t\t\t\t\t_.each(options.unsetData.after, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"on\": function (model, options) {\n\t\t\t\tvar\n\t\t\t\tafterAttributes = model.changedAttributes(),\n\t\t\t\tkeysAfter = _.keys(afterAttributes),\n\t\t\t\tpreviousAttributes = _.pick(model.previousAttributes(), keysAfter),\n\t\t\t\tkeysPrevious = _.keys(previousAttributes),\n\t\t\t\tunsetData = (options || (options = {})).unsetData = {\n\t\t\t\t\tafter: [],\n\t\t\t\t\tbefore: []\n\t\t\t\t};\n\n\t\t\t\tif (keysAfter.length != keysPrevious.length) {\n\t\t\t\t\t// There are new attributes or old attributes have been unset\n\t\t\t\t\tif (keysAfter.length > keysPrevious.length) {\n\t\t\t\t\t\t// New attributes have been added\n\t\t\t\t\t\t_.each(keysAfter, function (val) {\n\t\t\t\t\t\t\tif (!(val in previousAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.before.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Old attributes have been unset\n\t\t\t\t\t\t_.each(keysPrevious, function (val) {\n\t\t\t\t\t\t\tif (!(val in afterAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.after.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tobject: model,\n\t\t\t\t\tbefore: previousAttributes,\n\t\t\t\t\tafter: afterAttributes,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"reset\": {\n\t\t\t\"undo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(before);\n\t\t\t},\n\t\t\t\"redo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(after);\n\t\t\t},\n\t\t\t\"on\": function (collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: options.previousModels,\n\t\t\t\t\tafter: _.clone(collection.models)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Every UndoManager instance has an own undoTypes object\n\t * which is an instance of OwnedUndoTypes. OwnedUndoTypes' \n\t * prototype is the global UndoTypes object. Changes to the \n\t * global UndoTypes object take effect on every instance of\n\t * UndoManager as the object is its prototype. And yet every \n\t * local UndoTypes object can be changed individually.\n\t *\n\t * @constructor\n\t */\n\tfunction OwnedUndoTypes () {}\n\tOwnedUndoTypes.prototype = UndoTypes;\n\n\t/**\n\t * Adds, changes or removes an undo-type from an UndoTypes-object.\n\t * You can call it this way:\n\t * manipulateUndoType (1, \"reset\", {\"on\": function () {}}, undoTypes)\n\t * or this way to perform bulk actions:\n\t * manipulateUndoType (1, {\"reset\": {\"on\": function () {}}}, undoTypes)\n\t * In case of removing undo-types you can pass an Array for performing\n\t * bulk actions:\n\t * manipulateUndoType(2, [\"reset\", \"change\"], undoTypes)\n\t * \n\t * @param {Number} \t\t\t\t manipType \t\tIndicates the kind of action to execute: 0 for add, 1 for change, 2 for remove\n\t * @param {String|Object|Array} \t undoType \t\t\tThe type of undoType that should be added/changed/removed. Can be an object / array to perform bulk actions\n\t * @param {Object} \t\t\t\t [fns] \t\t\tObject with the functions to add / change. Is optional in case you passed an object as undoType that contains these functions\n\t * @param {OwnedUndoTypes|UndoTypes} undoTypesInstance The undoTypes object to act on\n\t * @return {undefined}\n\t */\n\tfunction manipulateUndoType (manipType, undoType, fns, undoTypesInstance) {\n\t\t// manipType, passed by the calling function\n\t\t// 0: add\n\t\t// 1: change\n\t\t// 2: remove\n\t\tif (typeof undoType === \"object\") {\n\t\t\t// bulk action. Iterate over this data.\n\t\t\treturn _.each(undoType, function (val, key) {\n\t\t\t\t\tif (manipType === 2) { // remove\n\t\t\t\t\t\t// undoType is an array\n\t\t\t\t\t\tmanipulateUndoType (manipType, val, fns, undoTypesInstance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// undoType is an object\n\t\t\t\t\t\tmanipulateUndoType (manipType, key, val, fns);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\tswitch (manipType) {\n\t\t\tcase 0: // add\n\t\t\t\tif (hasKeys(fns, \"undo\", \"redo\", \"on\") && _.all(_.pick(fns, \"undo\", \"redo\", \"on\"), _.isFunction)) {\n\t\t\t\t\tundoTypesInstance[undoType] = fns;\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 1: // change\n\t\t\t\tif (undoTypesInstance[undoType] && _.isObject(fns)) {\n\t\t\t\t\t// undoTypeInstance[undoType] may be a prototype's property\n\t\t\t\t\t// So, if we did this _.extend(undoTypeInstance[undoType], fns)\n\t\t\t\t\t// we would extend the object on the prototype which means\n\t\t\t\t\t// that this change would have a global effect\n\t\t\t\t\t// Instead we just want to manipulate this instance. That's why\n\t\t\t\t\t// we're doing this:\n\t\t\t\t\tundoTypesInstance[undoType] = _.extend({}, undoTypesInstance[undoType], fns);\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 2: // remove\n\t\t\t\tdelete undoTypesInstance[undoType]; \n\t\t\tbreak;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Instantiating \"Action\" creates the UndoActions that \n\t * are collected in an UndoStack. It holds all relevant \n\t * data to undo / redo an action and has an undo / redo \n\t * method.\n\t */\n\tvar Action = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\ttype: null, // \"add\", \"change\", \"reset\", etc.\n\t\t\tobject: null, // The object on which the action occurred\n\t\t\tbefore: null, // The previous values which were changed with this action\n\t\t\tafter: null, // The values after this action\n\t\t\tmagicFusionIndex: null // The magicFusionIndex helps to combine \n\t\t\t// all actions that occurred \"at the same time\" to undo/redo them altogether\n\t\t},\n\t\t/**\n\t\t * Undoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"undo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"undo\", this.attributes);\n\t\t},\n\t\t/**\n\t\t * Redoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"redo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"redo\", this.attributes);\n\t\t}\n\t}),\n\t/**\n\t * An UndoStack is a collection of UndoActions in \n\t * chronological order.\n\t */\n\tUndoStack = Backbone.Collection.extend({\n\t\tmodel: Action,\n\t\tpointer: -1, // The pointer indicates the index where we are located within the stack. We start at -1\n\t\ttrack: false,\n\t\tisCurrentlyUndoRedoing: false,\n\t\tmaximumStackLength: Infinity,\n\t\tsetMaxLength: function (val) {\n\t\t\tthis.maximumStackLength = val;\n\t\t}\n\t}),\n\t/**\n\t * An instance of UndoManager can keep track of \n\t * changes to objects and helps to undo them.\n\t */\n\tUndoManager = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tmaximumStackLength: Infinity,\n\t\t\ttrack: false\n\t\t},\n\t\t/**\n\t\t * The constructor function.\n\t\t * @param {attr} \t\t[attr] Object with parameters. The available parameters are:\n\t\t * \t - maximumStackLength {number} \tSet the undo-stack's maximum size\n\t\t * - track \t\t\t\t{boolean}\tStart tracking changes right away\n\t\t * @return {undefined}\n\t\t */\n\t\tinitialize: function (attr) {\n\t\t\tthis.stack = new UndoStack;\n\t\t\tthis.objectRegistry = new ObjectRegistry();\n\t\t\tthis.undoTypes = new OwnedUndoTypes();\n\n\t\t\t// sync the maximumStackLength attribute with our stack\n\t\t\tthis.stack.setMaxLength(this.get(\"maximumStackLength\"));\n\t\t\tthis.on(\"change:maximumStackLength\", function (model, value) {\n\t\t\t\tthis.stack.setMaxLength(value);\n\t\t\t}, this);\n\n\t\t\t// Start tracking, if attr.track == true\n\t\t\tif (attr && attr.track) {\n\t\t\t\tthis.startTracking();\n\t\t\t}\n\n\t\t\t// Register objects passed in the \"register\" attribute\n\t\t\tif (attr && attr.register) {\n\t\t\t\tif (_.isArray(attr.register) || _.isArguments(attr.register)) {\n\t\t\t\t\tapply(this.register, this, attr.register);\n\t\t\t\t} else {\n\t\t\t\t\tthis.register(attr.register);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Starts tracking. Changes of registered objects won't be processed until you've called this function\n\t\t * @return {undefined}\n\t\t */\n\t\tstartTracking: function () {\n\t\t\tthis.set(\"track\", true);\n\t\t\tthis.stack.track = true;\n\t\t},\n\t\t/**\n\t\t * Stops tracking. Afterwards changes of registered objects won't be processed.\n\t\t * @return {undefined}\n\t\t */\n\t\tstopTracking: function () {\n\t\t\tthis.set(\"track\", false);\n\t\t\tthis.stack.track = false;\n\t\t},\n\t\t/**\n\t\t * Return the state of the tracking\n\t\t * @return {boolean}\n\t\t */\n\t\tisTracking: function () {\n\t\t\treturn this.get(\"track\");\n\t\t},\n\t\t/**\n\t\t * This is the \"all\"-handler which is bound to registered \n\t\t * objects. It creates an UndoAction from the event and adds \n\t\t * it to the stack.\n\t\t * \n\t\t * @param {String} \ttype \tThe event type\n\t\t * @return {undefined}\n\t\t */\n\t\t_addToStack: function (type) {\n\t\t\taddToStack(this.stack, type, slice(arguments, 1), this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Registers one or more objects to track their changes.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes should be tracked\n\t\t * @return {undefined}\n\t\t */\n\t\tregister: function () {\n\t\t\tonoff(\"on\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters one or more objects.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes shouldn't be tracked any longer\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function () {\n\t\t\tonoff(\"off\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters all previously registered objects.\n\t\t * @return {undefined}\n\t\t */\n\t\tunregisterAll: function () {\n\t\t\tapply(this.unregister, this, this.objectRegistry.get());\n\t\t},\n\t\t/**\n\t\t * Undoes the last action or the last set of actions in case 'magic' is true.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are undone together\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (magic) {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Undoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tundoAll: function () {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, false, true);\n\t\t},\n\n\t\t/**\n\t\t * Redoes a previously undone action or a set of actions.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are redone together\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (magic) {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Redoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tredoAll: function () {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, false, true);\n\t\t},\n\t\t/**\n\t\t * Checks if there's an action in the stack that can be undone / redone\n\t\t * @param {String} \ttype \tEither \"undo\" or \"redo\"\n\t\t * @return {Boolean} True if there is a set of actions which can be undone / redone\n\t\t */\n\t\tisAvailable: function (type) {\n\t\t\tvar s = this.stack, l = s.length;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"undo\": return l > 0 && s.pointer > -1;\n\t\t\t\tcase \"redo\": return l > 0 && s.pointer < l - 1;\n\t\t\t\tdefault: return false;\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Sets the stack-reference to the stack of another undoManager.\n\t\t * @param {UndoManager} \tundoManager \tThe undoManager whose stack-reference is set to this stack\n\t\t * @return {undefined}\n\t\t */\n\t\tmerge: function (undoManager) {\n\t\t\t// This sets the stack-reference to the stack of another \n\t\t\t// undoManager so that the stack of this other undoManager \n\t\t\t// is used by two different managers.\n\t\t\t// This enables to set up a main-undoManager and besides it\n\t\t\t// several others for special, exceptional cases (by using\n\t\t\t// instance-based custom UndoTypes). Models / collections \n\t\t\t// which need this special treatment are only registered at \n\t\t\t// those special undoManagers. Those special ones are then \n\t\t\t// merged into the main-undoManager to write on its stack. \n\t\t\t// That way it's easier to manage exceptional cases.\n\t\t\tvar args = _.isArray(undoManager) ? undoManager : slice(arguments), manager;\n\t\t\twhile (manager = args.pop()) {\n\t\t\t\tif (manager instanceof UndoManager &&\n\t\t\t\t\tmanager.stack instanceof UndoStack) {\n\t\t\t\t\t// set the stack reference to our stack\n\t\t\t\t\tmanager.stack = this.stack;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to this specific UndoManager-instance.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\taddUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType for this specific UndoManager-instance.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\tchangeUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\tremoveUndoType: function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, this.undoTypes);\n\t\t},\n\n\t\t/**\n\t\t * Removes all actions from the stack.\n\t\t * @return {undefined}\n\t\t */\n\t\tclear: function() {\n\t\t\tthis.stack.reset();\n\t\t\tthis.stack.pointer = -1;\n\t\t}\n\t});\n\n\t_.extend(UndoManager, {\n\t\t/**\n\t\t * Change the UndoManager's default attributes\n\t\t * @param {Object} defaultAttributes An object with the new default values.\n\t\t * @return {undefined}\n\t\t */\n\t\tdefaults: function (defaultAttributes) {\n\t\t\t_.extend(UndoManager.prototype.defaults, defaultAttributes);\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to the global UndoTypes-object.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\t\"addUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, UndoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType in the global UndoTypes-object.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"changeUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, UndoTypes)\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"removeUndoType\": function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, UndoTypes);\n\t\t}\n\t})\n\n\treturn Backbone.UndoManager = UndoManager;\n\n});\n","// Backbone.js 1.4.1\n\n// (c) 2010-2022 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.4.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n this.trigger('changeId', this, prevId, options);\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) collection.add(m, callbackOpts);\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var rootPath = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n});\n","(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"codemirror/lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"codemirror/lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\n CodeMirror.extendMode(\"css\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n newlineAfterToken: function(_type, content) {\n return /^[;{}]$/.test(content);\n }\n });\n\n CodeMirror.extendMode(\"javascript\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n // FIXME semicolons inside of for\n newlineAfterToken: function(_type, content, textAfter, state) {\n if (this.jsonMode) {\n return /^[\\[,{]$/.test(content) || /^}/.test(textAfter);\n } else {\n if (content == \";\" && state.lexical && state.lexical.type == \")\") return false;\n return /^[;{}]$/.test(content) && !/^;/.test(textAfter);\n }\n }\n });\n\n var inlineElements = /^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;\n\n CodeMirror.extendMode(\"xml\", {\n commentStart: \"\",\n newlineAfterToken: function(type, content, textAfter, state) {\n var inline = false;\n if (this.configuration == \"html\")\n inline = state.context ? inlineElements.test(state.context.tagName) : false;\n return !inline && ((type == \"tag\" && />$/.test(content) && state.context) ||\n /^ -1 && endIndex > -1 && endIndex > startIndex) {\n // Take string till comment start\n selText = selText.substr(0, startIndex) +\n // From comment start till comment end\n selText.substring(startIndex + curMode.commentStart.length, endIndex) +\n // From comment end till string end\n selText.substr(endIndex + curMode.commentEnd.length);\n }\n cm.replaceRange(selText, from, to);\n }\n });\n });\n\n // Applies automatic mode-aware indentation to the specified range\n CodeMirror.defineExtension(\"autoIndentRange\", function (from, to) {\n var cmInstance = this;\n this.operation(function () {\n for (var i = from.line; i <= to.line; i++) {\n cmInstance.indentLine(i, \"smart\");\n }\n });\n });\n\n // Applies automatic formatting to the specified range\n CodeMirror.defineExtension(\"autoFormatRange\", function (from, to) {\n var cm = this;\n var outer = cm.getMode(), text = cm.getRange(from, to).split(\"\\n\");\n var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);\n var tabSize = cm.getOption(\"tabSize\");\n\n var out = \"\", lines = 0, atSol = from.ch === 0;\n function newline() {\n out += \"\\n\";\n atSol = true;\n ++lines;\n }\n\n for (var i = 0; i < text.length; ++i) {\n var stream = new CodeMirror.StringStream(text[i], tabSize);\n while (!stream.eol()) {\n var inner = CodeMirror.innerMode(outer, state);\n var style = outer.token(stream, state), cur = stream.current();\n stream.start = stream.pos;\n if (!atSol || /\\S/.test(cur)) {\n out += cur;\n atSol = false;\n }\n if (!atSol && inner.mode.newlineAfterToken &&\n inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || \"\", inner.state))\n newline();\n }\n if (!stream.pos && outer.blankLine) outer.blankLine(state);\n if (!atSol && i < text.length - 1) newline();\n }\n\n cm.operation(function () {\n cm.replaceRange(out, from, to);\n for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)\n cm.indentLine(cur, \"smart\");\n cm.setSelection(from, cm.getCursor(false));\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt(doc) {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = doc.activeElement;\n } catch(e) {\n activeElement = doc.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function doc(cm) { return cm.display.wrapper.ownerDocument }\n\n function win(cm) { return doc(cm).defaultView }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX(doc) {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(doc.body.getBoundingClientRect().left - parseInt(getComputedStyle(doc.body).marginLeft)) }\n return doc.defaultView.pageXOffset || (doc.documentElement || doc.body).scrollLeft\n }\n function pageScrollY(doc) {\n if (chrome && android) { return -(doc.body.getBoundingClientRect().top - parseInt(getComputedStyle(doc.body).marginTop)) }\n return doc.defaultView.pageYOffset || (doc.documentElement || doc.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY(doc(cm)));\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX(doc(cm)));\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX(doc(cm));\n top -= pageScrollY(doc(cm));\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n var doc = display.wrapper.ownerDocument;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (doc.defaultView.innerHeight || doc.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt(doc(cm));\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt(doc(cm));\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = win(cm).getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt(snapshot.activeElt.ownerDocument)) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var doc = snapshot.activeElt.ownerDocument;\n var sel = doc.defaultView.getSelection(), range = doc.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n // See #6982. FIXME remove when this has been fixed for a while in Chrome\n if (chrome && chrome_version >= 105) { d.wrapper.style.clipPath = \"inset(0px)\"; }\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version == 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt(doc(cm));\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n win(cm).focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(doc(cm)); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc$1 = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc$1.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc$1.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc$1.sel.primary();\n ourIndex = doc$1.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc$1, new Selection([ourRange], 0), sel_mouse);\n startSel = doc$1.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc$1, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc$1, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc$1.sel;\n } else {\n replaceOneSelection(doc$1, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc$1, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc$1, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc$1, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc$1, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc$1, anchor), head));\n setSelection(doc$1, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt(doc(cm));\n extendTo(cur);\n var visible = visibleLines(display, doc$1);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc$1.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"on\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"on\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){win(this).focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt(doc(this)) },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, win(cm).innerHeight || doc(cm).documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n disableBrowserMagic(te);\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt(div.ownerDocument);\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt(this.div.ownerDocument) == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt(this.div.ownerDocument) != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n this.resetting = false;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n var opts = this.cm.options;\n disableBrowserMagic(this.textarea, opts.spellcheck, opts.autocorrect, opts.autocapitalize);\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing && typing) { return }\n var cm = this.cm;\n this.resetting = true;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n this.resetting = false;\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt(this.textarea.ownerDocument) != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || this.resetting || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = te.ownerDocument.defaultView.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { te.ownerDocument.defaultView.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt(textarea.ownerDocument);\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.15\";\n\n return CodeMirror;\n\n})));\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\\\s*\" + tagName + \"\\\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n pushcontext.lex = pushblockcontext.lex = true\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+#?[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","import { Model, ObjectHash, SetOptions, CombinedModelConstructorOptions } from '../common';\nimport EditorModel from '../editor/model/Editor';\nimport Module, { IBaseModule } from './Module';\n\nexport default class ModuleModel<\n TModule extends IBaseModule = Module,\n T extends ObjectHash = any,\n S = SetOptions,\n E = any\n> extends Model {\n private _module: TModule;\n\n constructor(module: TModule, attributes?: T, options?: CombinedModelConstructorOptions) {\n super(attributes, options);\n this._module = module;\n }\n\n public get module() {\n return this._module;\n }\n\n public get config(): TModule extends IBaseModule ? C : unknown {\n return this._module.config;\n }\n\n public get em(): EditorModel {\n return this._module.em;\n }\n}\n","import CanvasModule from '..';\nimport { ModuleModel } from '../../abstract';\nimport { BoxRect, LiteralUnion } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport ComponentView from '../../dom_components/view/ComponentView';\nimport { GetBoxRectOptions } from '../types';\nimport Frame from './Frame';\n\nexport enum CanvasSpotBuiltInTypes {\n Select = 'select',\n Hover = 'hover',\n Spacing = 'spacing',\n Target = 'target',\n Resize = 'resize',\n}\n\nexport type CanvasSpotBuiltInType = `${CanvasSpotBuiltInTypes}`;\n\nexport type CanvasSpotType = LiteralUnion;\n\n/** @private */\nexport interface CanvasSpotBase {\n /**\n * Spot type, eg. `select`.\n */\n type: T;\n /**\n * Spot ID.\n */\n id: string;\n /**\n * Fixed box rect of the spot, eg. `{ width: 100, height: 100, x: 0, y: 0 }`.\n */\n boxRect?: BoxRect;\n /**\n * Component to which the spot will be attached.\n */\n component?: Component;\n /**\n * ComponentView to which the spot will be attached.\n */\n componentView?: ComponentView;\n frame?: Frame;\n}\n\nexport interface CanvasSpotProps extends CanvasSpotBase {}\n\n/**\n * Canvas spots are elements drawn on top of the canvas. They can be used to represent anything you\n * might need but the most common use case of canvas spots is rendering information and managing\n * components rendered in the canvas.\n * Read here for more information about [Canvas Spots](https://grapesjs.com/docs/modules/Canvas.html#canvas-spots)\n *\n * [Component]: component.html\n *\n * @property {String} id Spot ID.\n * @property {String} type Spot type.\n * @property {[Component]} [component] Component to which the spot will be attached.\n * @property {ComponentView} [componentView] ComponentView to which the spot will be attached.\n * @property {Object} [boxRect] Fixed box rect of the spot, eg. `{ width: 100, height: 100, x: 0, y: 0 }`.\n *\n */\nexport default class CanvasSpot extends ModuleModel {\n defaults() {\n return {\n id: '',\n type: '',\n } as T;\n }\n\n get type() {\n return this.get('type') || '';\n }\n\n get component() {\n const cmp = this.get('component');\n return cmp || this.get('componentView')?.model;\n }\n\n get componentView() {\n const cmpView = this.get('componentView');\n return cmpView || this.get('component')?.getView();\n }\n\n get el() {\n return this.componentView?.el;\n }\n\n /**\n * Get the box rect of the spot.\n * @param {Object} [opts={}]\n * @returns {Object} The box rect object\n * @example\n * canvasSpot.getBoxRect();\n * // { width: 100, height: 50, x: 0, y: 0 }\n */\n getBoxRect(opts?: GetBoxRectOptions) {\n const { el, em } = this;\n const cvView = em.Canvas.getCanvasView();\n const boxRect = this.get('boxRect');\n\n if (boxRect) {\n return boxRect;\n } else if (el && cvView) {\n return cvView.getElBoxRect(el, opts);\n }\n\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n\n /**\n * Get the style object of the spot.\n * @param {Object} [opts={}]\n * @returns {CSSStyleDeclaration} [opts]\n * @example\n * canvasSpot.getStyle();\n * // { width: '100px', height: '...', ... }\n */\n getStyle(opts: { boxRect?: BoxRect } & GetBoxRectOptions = {}): Partial {\n const { width, height, x, y } = opts.boxRect || this.getBoxRect(opts);\n\n return {\n width: `${width}px`,\n height: `${height}px`,\n top: '0',\n left: '0',\n position: 'absolute',\n translate: `${x}px ${y}px`,\n };\n }\n\n /**\n * Check the spot type.\n * @param {String} type\n * @returns {Boolean}\n * @example\n * canvasSpot.isType('select');\n */\n isType(type: E['type']): this is CanvasSpot {\n return this.type === type;\n }\n}\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n ed.Components.clear();\n ed.Css.clear();\n },\n} as CommandObject;\n","import { bindAll } from 'underscore';\nimport Dragger from '../../utils/Dragger';\nimport { getKeyChar, off, on } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev: KeyboardEvent) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev: Event) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev: Event) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable: boolean, ev: Event) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y'),\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n },\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable: boolean) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n },\n} as CommandObject<\n any,\n {\n [key: string]: any;\n }\n>;\n","import CanvasModule from '../../canvas';\nimport { Model, ObjectAny } from '../../common';\nimport Editor from '../../editor';\nimport EditorModel from '../../editor/model/Editor';\n\ninterface ICommand {\n run?: CommandAbstract['run'];\n stop?: CommandAbstract['stop'];\n id?: string;\n [key: string]: unknown;\n}\n\nexport type CommandFunction = CommandAbstract['run'];\n\nexport type Command = CommandObject | CommandFunction;\n\nexport type CommandOptions = Record;\n\nexport type CommandObject = ICommand &\n T &\n ThisType>;\n\nexport function defineCommand(def: CommandObject) {\n return def;\n}\n\nexport default class CommandAbstract extends Model {\n config: any;\n em: EditorModel;\n pfx: string;\n ppfx: string;\n hoverClass: string;\n badgeClass: string;\n plhClass: string;\n freezClass: string;\n canvas: CanvasModule;\n\n constructor(o: any) {\n super(0);\n this.config = o || {};\n this.em = this.config.em || {};\n const pfx = this.config.stylePrefix;\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = `${pfx}hover`;\n this.badgeClass = `${pfx}badge`;\n this.plhClass = `${pfx}placeholder`;\n this.freezClass = `${this.ppfx}freezed`;\n this.canvas = this.em.Canvas;\n this.init(this.config);\n }\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e: any) {}\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n }\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n }\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el: HTMLElement) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft,\n };\n }\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o: any) {}\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor: Editor, options: any = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n }\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor: Editor, options: any = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n }\n\n /**\n * Stop current command\n */\n stopCommand(opts?: any) {\n this.em.Commands.stop(this.id as string, opts);\n }\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em: Editor, sender: any, options: O) {}\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em: Editor, sender: any, options: O) {}\n}\n","import { isArray } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nconst command: CommandObject<{ component?: Component }> = {\n run(ed, s, opts = {}) {\n const toSelect: Component[] = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n const cmp = component.delegate?.remove?.(component) || component;\n cmp.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n\nexport default command;\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from '../../utils/Dragger';\nimport { CommandObject } from './CommandAbstract';\n\ntype Rect = { left: number; width: number; top: number; height: number };\ntype OrigRect = { left: number; width: number; top: number; height: number; rect: Rect };\n\ntype Guide = {\n type: string;\n y: number;\n x: number;\n origin: HTMLElement;\n originRect: OrigRect;\n guide: HTMLElement;\n};\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger,\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic,\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach((item: any) => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig().stylePrefix;\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = ``;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides?.forEach((item: any) => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result: any = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides: any) {\n let lastEl: any;\n let lastPos: any;\n (guides || this.guides).forEach((item: any) => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item: any, rect: any) {\n const result: { x?: number; y?: number } = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item: any = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el: HTMLElement) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el: HTMLElement) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n // @ts-ignore\n const guides: Guide[] = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 }, // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item),\n }));\n guides.forEach(item => this.guides?.push(item));\n\n return guides;\n },\n\n getTranslate(transform: string, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform: string, axis: string, value: string) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }: any) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const __p = !end; // Indicate if partial change\n const left = `${parseInt(x, 10)}${unit}`;\n const top = `${parseInt(y, 10)}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, __p };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds: any = { position, width, height };\n const style: any = { left, top, __p };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n em?.Styles.__emitCmpStyleUpdate(styleUp, { components: em.getSelected() });\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index(),\n };\n },\n\n onStart(event: Event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position,\n });\n }\n },\n\n onDrag(...args: any) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach((item: any) => this.renderGuide(item));\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter((item: any) => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev: Event, dragger: any, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides: Guide[] = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n ?.filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\n guide: stat,\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt,\n });\n }\n });\n },\n\n toggleDrag(enable: boolean) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n },\n} as CommandObject<\n any,\n {\n guidesStatic?: Guide[];\n guides?: Guide[];\n [k: string]: any;\n }\n>;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter((c: any) => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import { flatten } from 'underscore';\nimport CssRule from '../../css_composer/model/CssRule';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove: CssRule[] = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n },\n} as CommandObject;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()].map(md => md.delegate?.copy?.(md) || md).filter(Boolean);\n models.length && em.set('clipboard', models);\n },\n} as CommandObject;\n","import { CommandObject } from './CommandAbstract';\nimport { EditorParam } from '../../editor';\nimport { createEl } from '../../utils/dom';\n\ninterface ExportTemplateRunOptions {\n optsHtml?: EditorParam<'getHtml', 0>;\n optsCss?: EditorParam<'getCss', 0>;\n}\n\nexport default {\n run(editor, sender, opts: ExportTemplateRunOptions = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.model;\n this.cssEditor = oCsslEd.model;\n const editors = createEl('div', { class: `${pfx}export-dl` });\n editors.appendChild(oHtmlEd.el);\n editors.appendChild(oCsslEd.el);\n this.editors = editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.editors,\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(`${this.id}`));\n this.htmlEditor.setContent(editor.getHtml(opts.optsHtml));\n this.cssEditor.setContent(editor.getCss(opts.optsCss));\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName: string, theme: string, label: string) {\n const cm = this.em.CodeManager;\n const model = cm.createViewer({\n label,\n codeName,\n theme,\n });\n\n const el = new cm.EditorView({\n model,\n config: cm.getConfig(),\n } as any).render().el;\n\n return { model, el };\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isElement } from 'underscore';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n const d = document;\n // @ts-ignore\n if (d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement) {\n return true;\n }\n return false;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el: any) {\n let pfx = '';\n\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n }\n\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d: any = document;\n\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx: string) {\n if (!this.isEnabled()) {\n this.stopCommand({ sender: this.sender });\n document.removeEventListener(`${pfx || ''}fullscreenchange`, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target) ? target : document.querySelector(target!);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n },\n} as CommandObject<{ target?: HTMLElement | string }, { [k: string]: any }>;\n","import { bindAll, extend } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport { off, on } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o: any) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args: any) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e: any) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model: Component) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n // @ts-ignore\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models: Component[]) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frameView = this.em.getCurrentFrame();\n const el = lastModel.getEl(frameView?.model)!;\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e: any, el: any) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e: any, force: boolean) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n // @ts-ignore\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\n },\n} as CommandObject<{}, { [k: string]: any }>);\n","import { isFunction } from 'underscore';\nimport Asset from '../../asset_manager/model/Asset';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open(content: string) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts,\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets: Asset[] = am.getAll().filter((i: Asset) => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(`input#${config.stylePrefix}uploadFile`);\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n },\n} as CommandObject;\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container,\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n const lmConfig = lm.getConfig();\n\n if (lmConfig.appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n // @ts-ignore\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n\n if (lmConfig.custom) {\n lm.__trgCustom({ container: layers });\n } else {\n layers.appendChild(lm.render());\n }\n\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cnt) {\n const config = editor.getConfig();\n const { Panels, DeviceManager, SelectorManager, StyleManager } = editor;\n const trgEvCnt = 'change:appendContent';\n const $cnt = $('');\n const $cntInner = $('');\n const $cntSlm = $('');\n const $cntSm = $('');\n this.$cnt = $cnt;\n this.$cntInner = $cntInner;\n $cntInner.append($cntSlm);\n $cntInner.append($cntSm);\n $cnt.append($cntInner);\n\n // Device Manager\n if (DeviceManager && config.showDevices) {\n const devicePanel = Panels.addPanel({ id: 'devices-c' });\n const dvEl = DeviceManager.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slmConfig = SelectorManager.getConfig();\n if (slmConfig.custom) {\n SelectorManager.__trgCustom({ container: $cntSlm.get(0) });\n } else if (!slmConfig.appendTo) {\n $cntSlm.append(SelectorManager.render([]));\n }\n\n // Style Manager\n this.sm = StyleManager;\n const smConfig = StyleManager.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(``);\n $cnt.append(this.$header);\n\n if (smConfig.custom) {\n StyleManager.__trgCustom({ container: $cntSm.get(0) });\n } else if (!smConfig.appendTo) {\n $cntSm.append(StyleManager.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n const pnl = Panels.getPanel(pnCnt) || Panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n pnl.set('appendContent', $cnt).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n const em = editor.getModel();\n this.listenTo(em, StyleManager.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm, $cntInner, $header } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n $cntInner?.show();\n $header?.hide();\n } else {\n $cntInner?.hide();\n $header?.show();\n }\n },\n\n stop() {\n this.$cntInner?.hide();\n this.$header?.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\nimport { $ } from '../../common';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('');\n this.$cn2 = $('');\n this.$cn.append(this.$cn2);\n this.$header = $('').append(``);\n this.$cn.append(this.$header);\n\n if (confTm.custom) {\n tm.__trgCustom({ container: this.$cn2.get(0) });\n } else {\n this.$cn2.append(`
${em.t('traitManager.label')}
`);\n this.$cn2.append(tm.render());\n }\n\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container')) {\n // @ts-ignore\n panelC = panels.addPanel({ id: 'views-container' });\n } else {\n panelC = panels.getPanel('views-container');\n }\n\n panelC?.set('appendContent', this.$cn.get(0)).trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isArray, contains } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\nimport Editor from '../../editor';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp: Component[] | null = em.get('clipboard');\n const lastSelected = ed.getSelected();\n\n if (clp?.length && lastSelected) {\n ed.getSelectedAll().forEach(sel => {\n const selected = sel.delegate?.copy?.(sel) || sel;\n const { collection } = selected;\n let added;\n if (collection) {\n const at = selected.index() + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n\n if (contains(clp, selected) && selected.get('copyable')) {\n added = collection.add(selected.clone(), addOpts);\n } else {\n added = doAdd(ed, clp, selected.parent()!, addOpts);\n }\n } else {\n // Page body is selected\n // Paste at the end of the body\n const pageBody = em.Pages.getSelected()?.getMainComponent();\n const addOpts = { at: pageBody?.components().length || 0, action: opts.action || 'paste-component' };\n\n added = doAdd(ed, clp, pageBody as Component, addOpts);\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n lastSelected.emitUpdate();\n }\n },\n} as CommandObject;\n\nfunction doAdd(ed: Editor, clp: Component[], parent: Component, addOpts: any): Component[] | Component {\n const copyable = clp.filter(cop => cop.get('copyable'));\n const pasteable = copyable.filter(cop => ed.Components.canMove(parent, cop).result);\n return parent.components().add(\n pasteable.map(cop => cop.clone()),\n addOpts\n );\n}\n","import { each } from 'underscore';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\n\nconst cmdOutline = 'core:component-outline';\n\nexport default {\n getPanels(editor: Editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts: any) {\n opts.abort = 1;\n },\n\n tglEffects(on: boolean) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.Canvas;\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => ((item as HTMLElement).style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdOutline);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdOutline);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl()!;\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach((panel: any) => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdOutline);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach((panel: any) => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import Resizer, { ResizerOptions } from '../../utils/Resizer';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options: ResizerOptions = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos.bind(canvas),\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = new editor.Utils.Resizer(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options, true);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n} as CommandObject<{ options?: {}; forceNew?: boolean; el: HTMLElement }, { canvasResizer?: Resizer }>;\n","import { CommandFunction } from '../../commands/view/CommandAbstract';\nimport { Model, ObjectAny } from '../../common';\n\nexport interface ToolbarButtonProps {\n /**\n * Command name.\n */\n command: CommandFunction | string;\n\n /**\n * Button label.\n */\n label?: string;\n\n id?: string;\n attributes?: ObjectAny;\n events?: ObjectAny;\n}\n\nexport default class ToolbarButton extends Model
{\n defaults() {\n return {\n command: '',\n attributes: {},\n };\n }\n}\n","import { Collection } from '../../common';\nimport ToolbarButton from './ToolbarButton';\n\nexport default class Toolbar extends Collection {}\n\nToolbar.prototype.model = ToolbarButton;\n","import { isFunction, isString } from 'underscore';\nimport { View } from '../../common';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButton from '../model/ToolbarButton';\n\nexport type ToolbarViewProps = { em: EditorModel };\n\nexport default class ToolbarButtonView extends View {\n em: EditorModel;\n\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick',\n }\n );\n }\n\n // @ts-ignore\n attributes() {\n return this.model.get('attributes');\n }\n\n constructor(props: { config: ToolbarViewProps; model: ToolbarButton }) {\n super(props);\n this.em = props.config.em;\n }\n\n handleClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/GrapesJS/grapesjs/issues/2372\n * https://github.com/GrapesJS/grapesjs/issues/2207\n */\n\n const { em } = this;\n const { left, top } = em.Canvas.getFrameEl().getBoundingClientRect();\n const ev = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top,\n };\n\n em.trigger('toolbar:run:before', { event: ev });\n this.execCommand(ev);\n }\n\n execCommand(event: MouseEvent) {\n const { em, model } = this;\n const opts = { event };\n const command = model.get('command');\n const editor = em.Editor;\n\n if (isFunction(command)) {\n command(editor, null, opts);\n }\n\n if (isString(command)) {\n editor.runCommand(command, opts);\n }\n }\n\n render() {\n const { em, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = em.getConfig().stylePrefix;\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n}\n","import DomainViews from '../../domain_abstract/view/DomainViews';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButtonView, { ToolbarViewProps } from './ToolbarButtonView';\n\nexport default class ToolbarView extends DomainViews {\n em: EditorModel;\n\n constructor(opts: ToolbarViewProps) {\n super(opts);\n const { em } = opts;\n this.em = em;\n this.config = { em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n\n onRender() {\n const pfx = this.em.config.stylePrefix!;\n this.el.className = `${pfx}toolbar-items`;\n }\n}\n\n// @ts-ignore\nToolbarView.prototype.itemView = ToolbarButtonView;\n","import { bindAll, debounce, isElement } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport Toolbar from '../../dom_components/model/Toolbar';\nimport ToolbarView from '../../dom_components/view/ToolbarView';\nimport { isDoc, isTaggableNode, isVisible, off, on } from '../../utils/dom';\nimport { getComponentModel, getComponentView, getUnitFromValue, getViewEl, hasWin, isObject } from '../../utils/mixins';\nimport { CommandObject } from './CommandAbstract';\nimport { CanvasSpotBuiltInTypes } from '../../canvas/model/CanvasSpot';\nimport { ResizerOptions } from '../../utils/Resizer';\n\nlet showOffsets: boolean;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init() {\n this.onSelect = debounce(this.onSelect, 0);\n bindAll(\n this,\n 'onHover',\n 'onOut',\n 'onClick',\n 'onFrameScroll',\n 'onFrameResize',\n 'onFrameUpdated',\n 'onContainerChange'\n );\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = true;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable: boolean) {\n const { em } = this;\n const listenToEl = em.getConfig().listenToEl!;\n const { parentNode } = em.getContainer()!;\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode as HTMLElement);\n const trigger = (win: Window, body: HTMLBodyElement) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click', this.onClick);\n methods[method](win, 'scroll', this.onFrameScroll, true);\n methods[method](win, 'resize', this.onFrameResize);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method]('component:resize styleable:change component:input', this.updateGlobalPos, this);\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.Canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view?.getBody()!);\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(ev: Event) {\n ev.stopPropagation();\n const { em } = this;\n const el = ev.target as HTMLElement;\n const view = getComponentView(el);\n const frameView = view?.frameView;\n let model = view?.model;\n\n // Get first valid model\n if (!model) {\n let parentEl = el.parentNode;\n while (!model && parentEl && !isDoc(parentEl)) {\n model = getComponentModel(parentEl);\n parentEl = parentEl.parentNode;\n }\n }\n\n this.currentDoc = el.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.setCurrentFrame(frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em: any, component: Component) {\n let result = {};\n\n if (component) {\n component.views?.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n\n if (el.ownerDocument === this.currentDoc) {\n this.elHovered = result;\n }\n\n this.updateToolsLocal(result);\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect() {\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.getCurrentFrame();\n const view = component && component.getView(currentFrame?.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n this.elSelected = result;\n this.updateToolsGlobal();\n // This will hide some elements from the select component\n this.updateLocalPos(result);\n this.initResize(component);\n },\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data: any) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered();\n },\n\n toggleToolsEl(on: boolean, view: any, opts: any = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el: HTMLElement, pos: any, opts: any = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view: any) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el: HTMLElement, pos: any) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset() {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev: Event) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n\n const el = ev.target as HTMLElement;\n let model = getComponentModel(el);\n\n if (!model) {\n let parentEl = el.parentNode;\n\n while (!model && parentEl && !isDoc(parentEl)) {\n model = getComponentModel(parentEl);\n parentEl = parentEl.parentNode;\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model: Component, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el: HTMLElement, pos: any, opts: any = {}) {\n const { canvas } = this;\n const model = getComponentModel(el);\n const badge = this.getBadge(opts);\n const bStyle = badge.style;\n\n if (!model || !model.get('badgable')) {\n bStyle.display = 'none';\n return;\n }\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `${icon}
` : ''}\n ${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem: HTMLElement) {\n const { em, canvas } = this;\n const editor = em.Editor;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model?.get('resizable');\n const spotTypeResize = CanvasSpotBuiltInTypes.Resize;\n const hasCustomResize = canvas.hasCustomSpot(spotTypeResize);\n canvas.removeSpots({ type: spotTypeResize });\n\n if (model && resizable) {\n canvas.addSpot({ type: spotTypeResize, component: model });\n const el = isElement(elem) ? elem : model.getEl();\n\n if (hasCustomResize || !el) return;\n\n let modelToStyle: any;\n const { config } = em;\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n\n const toggleBodyClass = (method: string, e: any, opts: any) => {\n const docs = opts.docs;\n docs &&\n docs.forEach((doc: Document) => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n const options: ResizerOptions = {\n // Here the resizer is updated with the current element height and width\n onStart(e: Event, opts: any = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.Styles.getModelToStyle(model);\n canvas.toggleFramesEvents(false);\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = false;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e: Event, opts: any) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(true);\n showOffsets = true;\n },\n\n updateTarget(el: any, rect: any, options: any = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style: any = {};\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n if (em.getDragMode(model)) {\n style.top = `${rect.t}${unitHeight}`;\n style.left = `${rect.l}${unitWidth}`;\n }\n\n const finalStyle = {\n ...style,\n // value for the partial update\n __p: !store,\n };\n modelToStyle.addStyle(finalStyle, { avoidStore: !store });\n em.Styles.__emitCmpStyleUpdate(finalStyle, { components: em.getSelected() });\n },\n ...(isObject(resizable) ? resizable : {}),\n };\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n if (hasCustomResize) return;\n\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod: Component) {\n const { canvas } = this;\n const { em } = this.config;\n const model = mod === em ? em.getSelected() : mod;\n const toolbarEl = canvas.getToolbarEl()!;\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.config.showToolbar;\n const noCustomSpotSelect = !canvas.hasCustomSpot(CanvasSpotBuiltInTypes.Select);\n\n if (model && showToolbar && toolbar && toolbar.length && noCustomSpotSelect) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n // @ts-ignore\n const toolbarView = new ToolbarView({ collection: this.toolbar, em });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = '0';\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos: any) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl()!;\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts: any = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n this.canvas.refreshSpots();\n },\n\n onFrameResize() {\n this.canvas.refreshSpots();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp: Component) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data: any) {\n const config = this.em.getConfig();\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n const customHoverSpot = this.canvas.hasCustomSpot(CanvasSpotBuiltInTypes.Hover);\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n customHoverSpot ? this.hideHighlighter(view) : this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n !config.showOffsetsSelected && this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n !customHoverSpot &&\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n // @ts-ignore\n this.updateToolsGlobal({ force: 1 });\n }, 0),\n\n _trgToolUp(type: string, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts: any = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl()!, { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n // @ts-ignore\n this.updateGlobalPos();\n }, 0),\n\n onContainerChange: debounce(function () {\n // @ts-ignore\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el: HTMLElement) {\n return this.canvas.getCanvasView().getElementPos(el, { noScroll: true });\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model: Component) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n // @ts-ignore\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected();\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n} as CommandObject;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg: HTMLElement, doc: Document, opts: any = {}) {\n this.isPointed = false;\n const utils = this.em.Utils;\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n // @ts-ignore\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal(),\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex = this.posMethod == 'after' && this.cDim.length !== 0 ? this.posIndex + 1 : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl = this.cDim.length !== 0 && this.posMethod == 'after' && this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array