| 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 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","a","i","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","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","activeElement","shadowRoot","addClass","joinClasses","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","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","ownerDocument","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","doc","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","wrapper","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","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","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","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","run","ed","DomComponents","CssComposer","bindAll","editor","canvasModel","canvas","getCanvasView","toggleMove","disableDragger","getKeyChar","stopCommand","enableDragger","toggleDragger","enable","em","dragger","methodCls","getCanvas","classList","ppfx","getPosition","setPosition","onStart","onDrag","onEnd","methodEv","methodsEv","defineCommand","def","pfx","stylePrefix","pStylePrefix","hoverClass","badgeClass","plhClass","freezClass","Canvas","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","getStyle","__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","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","frame","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","Components","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","win","getWindow","onHover","onOut","trg","getViewEl","frameView","_getFrame","currentDoc","setHovered","useValid","updateLocalPos","views","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","elPos","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","opacity","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","customBadgeLabel","badgeLabel","bStyle","getTargetToElementFixed","leftOff","showHighlighter","elem","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","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","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","showOffsetsSelected","toolsEl","canvasRectOffset","topOff","_trgToolUp","targetToElem","canvasOffsetTop","canvasOffsetLeft","refreshCanvas","hideBadge","cleanPrevious","status","hasWin","preserveSelected","setSelected","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","isTextNode","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","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","isEscKey","xPos","yPos","defaultView","parentWindow","getPos","getPointerPosition","pEv","getPointerEvent","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","removeEl","inputs","attrUp","isVisible","oldEl","newEl","appendAtIndex","total","createEl","createText","createCustomEvent","oEvent","err","_parentEvent","keyCodeVal","defineProperty","appendVNodes","vNodes","vnode","getDocumentScroll","getGlobal","elProt","Element","getUiClass","defCls","appendStyles","stls","link","prepand","shallowDiff","objOrig","objNew","keysNew","origValue","newValue","evs","upFirst","normalizeFloat","step","valueDef","stepDecimals","toFixed","hasDnd","nativeDnD","isCommentNode","escapeNodeContent","deepMerge","targValue","srcValue","__cashData","getElRect","rectText","selectNode","getKeyCode","isEnterKey","isEmptyObj","capitalize","isComponent","toHTML","isRule","toCSS","__gjsv","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","multiFrames","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","_module","modelConstructor","newModel","keyAutoW","keyAutoH","getDimension","dim","viewDim","endsWith","domc","conf","allRules","Css","idMap","modOpts","Wrapper","getType","selectors","sSel","idSel","changesCount","_undo","_undoexc","changesUp","temporary","noCount","getStyles","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","getPage","page","_emitUpdated","fromUndo","loadedItems","itemsToLoad","onReset","itemLoaded","listenToLoadItems","listenToLoad","defFrame","frms","getId","um","setName","getAllFrames","getMainFrame","getMainComponent","evAll","evPfx","evPageSelect","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","chnSel","typeMain","pageEvents","selectBefore","addBefore","pages","__onChange","_onPageChange","onLoad","configPages","mainPage","getMain","Layers","mainComp","setRoot","pg","load","pagesMap","ItemManagerModule","default","devices","widthMedia","checkUnit","pr","getWidthMedia","Devices","updateSelect","startAdd","updateDevice","devEl","devicesEl","getDeviceModel","device","getOptions","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","deviceEvents","Device","_onSelect","deviceId","newDevice","getDevices","onZoomChange","_pageUpdated","rulers","getCurrentFrameModel","noUndo","viewCollection","renderView","important","getDeclaration","getBlockId","atRules","addToCollection","fragmentEl","renderStarted","atRule","getAtRule","atRuleEl","styleEl","appendData","clsName","mediaText","defaultBlockId","blockId","getMediaWidth","contRules","sortRules","isMobFirst","prs","rootEl","els","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","headEl","attrStr","stl","getJsContainer","jsContainer","elTools","_getTool","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","_toggleEffects","startAutoscroll","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","updateClientY","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","write","normalize","prevStyles","_isEditor","droppable","_emitUpdate","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","Dragger","getZoomMultiplier","posOpts","startDrag","__clear","destroyed","updateDim","__handleSize","noChanges","onScroll","onscroll","currW","currH","newW","newH","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","wheel","_renderFrames","currFrame","onCanvasMove","isInputFocused","onWheel","defOpts","updateFramesArea","timerZoom","framesArea","zoomDc","mpl","fitViewport","canvasRect","getCanvasOffset","elFrame","boxRect","elRect","getElBoxRect","noHeight","ignoreHeight","gapIsNum","gapX","gapY","boxWidth","boxHeight","canvasWidth","canvasHeight","widthRatio","heightRatio","zoomRatio","setZoom","zoomMltp","yDelta","setCoords","isElInViewport","frameRect","getFrameOffset","rTop","rLeft","getViewportRect","toWorld","getCoords","vwDelta","getViewportDelta","frmOff","cvsOff","winEl","frEl","frameOffset","canvasEl","frameTop","avoidFrameOffset","frameLeft","avoidFrameZoom","getElementOffsets","bEl","fo","updateScript","scriptContainer","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","mainFrame","setCurrentFrame","renderFrames","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getFrame","getFramesEl","getDocument","_getLocalEl","globalEl","compView","getGhostEl","getFixedOffsetViewerEl","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","getCurrentFrame","getZoom","hasX","hasY","addFrame","getLastDragResult","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","addAttributes","newComponents","cmps","onAdd","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","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","getCurrentView","modelProps","scrStr","reg","onAll","clb","forEachChild","rmOpts","sameParent","isInstanceOf","byType","resetId","oldId","_getStyleRule","idS","_getStyleSelector","idUpdate","idPrev","getList","getDefaults","nextId","getIncrementId","getNewId","ilen","uid","dm","checkId","childrenView","sameFrameView","getTypes","viewObject","logError","parentEl","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","avoidHover","clsStr","isTextable","hl","styleOpts","__cmpStyleOpts","onAttrUpdate","updateAttributes","textable","defaultAttr","contenteditable","hasComps","getChildrenContainer","prevDef","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","elDoc","_setData","postRender","columns","rows","rowsToAdd","columnsToAdd","svgAttrs","ratioDefault","cmdName","hasButtonBool","getSrcResult","isDefaultSrc","srcDef","parseUri","uri","URL","hostname","protocol","port","qrs","pair","getQueryObject","defs","mapUrl","mapType","frameborder","parseFromSrc","updateSrc","getMapUrl","addr","qr","q","z","dblclick","classEmpty","fetchFile","fu","Assets","FileUploader","uploadFile","asset","complete","getSrc","onError","noDrag","getIframe","ifrm","frameBorder","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","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","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","createElementNS","__escapeContent","createComment","__getSrc","ComponentTableView","ComponentsView","componentHovered","selectAdd","selectRemove","getComponents","componentView","setComponents","addType","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","getShallowWrapper","shallow","shallowEm","reason","srcModel","isTargetInside","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","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","evDrag","blockEvents","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","evState","selectorEvents","cFirst","__update","__updateSelectedByComponents","__ctn","selTags","selectorTags","cOpts","cname","selModel","getSelector","newName","setState","setStates","__getCommon","duplicateSelected","commonSelectors","styleToApply","suffix","newSelector","getSelectedTargets","setComponentFirst","getComponentFirst","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","cssRules","keyText","isSingleAtRule","subRules","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","Promise","_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","onChange","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","rightclick","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","isType","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","elT","elL","borderOffset","freezeClass","relative","offTop","offLeft","selectOnEnd","getScale","getDocuments","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","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","getPointer","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","getHovered","getJs","avoidProt","avoidProtected","protCss","storeData","Storage","clearDirtyCount","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/DeleteComponent.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/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/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/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/commands/config/config.ts","webpack://grapesjs/./src/commands/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 {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\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.DomComponents.clear();\n ed.CssComposer.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 component.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()];\n models.length && em.set('clipboard', models);\n },\n} as CommandObject;\n","import { bindAll, extend } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\nimport SelectComponent from './SelectComponent';\n\nexport default extend({}, SelectComponent, {\n init() {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model: Component) {\n this.badge.html('Remove ' + model.getName());\n },\n} as CommandObject<{}, { [k: string]: any }>);\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';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp: Component[] = em.get('clipboard');\n const lastSelected = ed.getSelected();\n\n if (clp && lastSelected) {\n ed.getSelectedAll().forEach(selected => {\n const { collection } = selected;\n if (!collection) return;\n\n let added;\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 // @ts-ignore\n added = collection.add(selected.clone(), addOpts);\n } else {\n const copyable = clp.filter(cop => cop.get('copyable'));\n const pasteable = copyable.filter(cop => ed.Components.canMove(selected.parent()!, cop).result);\n added = collection.add(\n // @ts-ignore\n pasteable.map(cop => cop.clone()),\n addOpts\n );\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","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,\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](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\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\n if (hasCustomResize) 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 el = isElement(elem) ? elem : model.getEl();\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} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index: number, method: string, dims: any[]) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (len !== 0 && ((!isLast && !dims[i][4]) || (dims[i - 1] && !dims[i - 1][4]) || (isLast && !dims[i - 1][4])))\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isUndefined } from 'underscore';\nimport { CanvasSpotBuiltInTypes } from '../../canvas/model/CanvasSpot';\nimport { $ } from '../../common';\nimport { isTextNode } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n getOffsetMethod(state: string) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n const { canvas } = this;\n const opt = opts || {};\n const state = opt.state || '';\n const config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el as HTMLElement | undefined;\n\n if (!config.showOffsets || !el || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\n editor.stopCommand(`${this.id}`, opts);\n return;\n }\n\n if (canvas.hasCustomSpot(CanvasSpotBuiltInTypes.Spacing)) {\n return;\n }\n\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n // @ts-ignore\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(``).get(0) as HTMLElement;\n var paddingV = $(`
`).get(0) as HTMLElement;\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n const { view } = opts;\n const canvas = this.canvas;\n // @ts-ignore\n var offsetViewer = canvas[method](view);\n offsetViewer.style.opacity = 0;\n },\n} as CommandObject
;\n","import { bindAll } from 'underscore';\nimport Frame from '../../canvas/model/Frame';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\nimport { isDef } from '../../utils/mixins';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed, true);\n },\n\n stop(ed) {\n this.toggleVis(ed, false);\n },\n\n toggleVis(ed: Editor, active = true) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n const canvasModel = cv.getModel();\n canvasModel[mth]('change:frames', this._onFramesChange);\n this.handleFrames(cv.getFrames(), active);\n }\n },\n\n handleFrames(frames: Frame[], active?: boolean) {\n frames.forEach((frame: Frame & { __ol?: boolean }) => {\n frame.view?.loaded && this._upFrame(frame, active);\n\n if (!frame.__ol) {\n frame.on('loaded', () => this._upFrame(frame));\n frame.__ol = true;\n }\n });\n },\n\n _onFramesChange(_: any, frames: Frame[]) {\n this.handleFrames(frames);\n },\n\n _upFrame(frame: Frame, active?: boolean) {\n const { ppfx, em, id } = this;\n const isActive = isDef(active) ? active : em.Commands.isActive(id as string);\n const method = isActive ? 'add' : 'remove';\n const cls = `${ppfx}dashed`;\n frame.view?.getBody().classList[method](cls);\n },\n} as CommandObject<\n {},\n {\n [key: string]: any;\n }\n>;\n","import Backbone from 'backbone';\nexport { default as $ } from '../utils/cash-dom';\n\ninterface NOOP {}\n\nexport type Debounced = Function & { cancel(): void };\n\nexport type SetOptions = Backbone.ModelSetOptions & { avoidStore?: boolean };\n\nexport type AddOptions = Backbone.AddOptions & { temporary?: boolean };\n\nexport type RemoveOptions = Backbone.Silenceable;\n\nexport type EventHandler = Backbone.EventHandler;\n\nexport type ObjectHash = Backbone.ObjectHash;\n\nexport type ObjectAny = Record;\n\nexport type ObjectStrings = Record;\n\n// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-1483854699\nexport type LiteralUnion