{"version":3,"sources":["webpack:///./src/components/tinymce/plugins/linktools/plugin.js","webpack:///./node_modules/tinymce/themes/silver/theme.js","webpack:///./node_modules/tinymce/plugins/template/index.js","webpack:///./node_modules/tinymce/plugins/table/index.js","webpack:///./node_modules/tinymce/plugins/advlist/index.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/tinymce/plugins/visualblocks/index.js","webpack:///./node_modules/tinymce/plugins/template/plugin.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/tinymce/plugins/anchor/plugin.js","webpack:///./node_modules/tinymce/plugins/charmap/plugin.js","webpack:///./node_modules/tinymce/plugins/lists/plugin.js","webpack:///./node_modules/tinymce/plugins/autolink/plugin.js","webpack:///./node_modules/tinymce/plugins/searchreplace/plugin.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/tinymce/plugins/hr/index.js","webpack:///./node_modules/tinymce/plugins/autolink/index.js","webpack:///./node_modules/tinymce/plugins/visualchars/index.js","webpack:///./node_modules/tinymce/plugins/media/plugin.js","webpack:///./node_modules/tinymce/plugins/textpattern/plugin.js","webpack:///./node_modules/tinymce/plugins/media/index.js","webpack:///./node_modules/tinymce/plugins/link/index.js","webpack:///./node_modules/tinymce/plugins/insertdatetime/index.js","webpack:///./node_modules/tinymce/plugins/visualblocks/plugin.js","webpack:///./node_modules/tinymce/plugins/image/index.js","webpack:///./node_modules/tinymce/plugins/searchreplace/index.js","webpack:///./node_modules/tinymce/plugins/code/index.js","webpack:///./node_modules/tinymce/plugins/save/index.js","webpack:///./node_modules/tinymce/plugins/emoticons/index.js","webpack:///./node_modules/tinymce/plugins/autoresize/index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/tinymce/plugins/save/plugin.js","webpack:///./node_modules/tinymce/plugins/textpattern/index.js","webpack:///./node_modules/tinymce/plugins/paste/plugin.js","webpack:///./src/components/tinymce/langs/pl.js","webpack:///./node_modules/tinymce/plugins/lists/index.js","webpack:///./node_modules/tinymce/plugins/directionality/index.js","webpack:///./node_modules/tinymce/plugins/advlist/plugin.js","webpack:///./node_modules/tinymce/plugins/autosave/plugin.js","webpack:///./node_modules/tinymce/plugins/wordcount/index.js","webpack:///./node_modules/tinymce/plugins/table/plugin.js","webpack:///./src/components/tinymce/plugins/linktools/index.js","webpack:///./node_modules/tinymce/plugins/insertdatetime/plugin.js","webpack:///./node_modules/lodash/head.js","webpack:///./node_modules/tinymce/plugins/autoresize/plugin.js","webpack:///./src/components/Editor.vue?c67a","webpack:///./node_modules/tinymce/plugins/paste/index.js","webpack:///./node_modules/tinymce/plugins/link/plugin.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/tinymce/plugins/nonbreaking/plugin.js","webpack:///./node_modules/tinymce/plugins/charmap/index.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/tinymce/plugins/image/plugin.js","webpack:///./src/components/Editor.vue?f139","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/objectSpread.js","webpack:///./src/components/Editor.vue?f7ed","webpack:///./src/components/Editor.vue?ccbf","webpack:///./src/components/Editor.vue?f240","webpack:///./node_modules/tinymce/plugins/visualchars/plugin.js","webpack:///./node_modules/tinymce/plugins/emoticons/plugin.js","webpack:///./node_modules/tinymce/plugins/anchor/index.js","webpack:///./node_modules/tinymce/plugins/hr/plugin.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","webpack:///./node_modules/tinymce/plugins/directionality/plugin.js","webpack:///./node_modules/tinymce/tinymce.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/tinymce/plugins/wordcount/plugin.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-symbols.js","webpack:///./node_modules/tinymce/plugins/nonbreaking/index.js","webpack:///./node_modules/tinymce/plugins/code/plugin.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/tinymce/plugins/autosave/index.js"],"names":["pluginManager","tinymce","util","Tools","resolve","add","editor","gotoLink","url","$","selection","getNode","attr","indexOf","settings","document_base_url","window","open","addButtons","ui","registry","addButton","title","onclick","isEditableLink","each","contextToolbars","toolbar","panel","find","element","parent","$el","removeClass","hide","selectorMatched","dom","is","addToolbars","toolbarItems","linktools_toolbar","addContextToolbar","domGlobals","noop","args","_i","arguments","length","noarg","f","compose","fa","fb","apply","constant","value","identity","x","curry","fn","initialArgs","restArgs","all","concat","not","die","msg","Error","never","always","never$1","always$1","none","NONE","eq","o","isNone","call","thunk","id","n","nul","undef","me","fold","s","isSome","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","or","orThunk","map","ap","bind","flatten","exists","forall","filter","equals","equals_","toArray","toString","Object","freeze","some","a","constant_a","self","v","optfab","fab","elementEq","b","from","undefined","Option","typeOf","t","Array","prototype","isPrototypeOf","String","isType","type","isString","isObject","isArray","isBoolean","isFunction","isNumber","rawIndexOf","pIndexOf","fastIndex","xs","slowIndex","slowIndexOf","r","contains","pred","findIndex","chunk","array","size","i","slice","push","len","eachr","partition","pass","fail","arr","foldr","acc","foldl","output","reverse","difference","a1","a2","pure","sort","comparator","copy","head","last","from$1","keys","hasOwnProperty","each$1","obj","props","k","map$1","tupleMap","tuple","mapToArray","name","find$1","values","get","key","has","exclude","fields","readOpt","readOr","fallback","readOptFrom","hasKey","wrap","wrapAll","keyvalues","kv","opt","mapError","_","onValue","toOption","isValue","isError","error","message","onError","Result","generate","cases","constructors","adt","acase","count","keys$1","argLength","match","branches","branchKeys","join","allReqd","reqKey","target","log","label","console","constructor","params","Adt","partition$1","bothErrors","firstError","secondError","bothValues","results","errors","result","err","hasOwnProperty$1","shallow","old","nu","deep","bothObjects","deepMerge","baseMerge","merger","objects","ret","j","curObject","merge","exclude$1","readOpt$1","readOr$1","readOptFrom$1","wrap$1","wrapAll$1","mergeValues","base","mergeErrors","consolidate","objs","partitions","hasKey$1","Cell","initial","set","clone","cat","findMap","liftN","EventConfiguration","touchstart","touchmove","touchend","mousedown","mousemove","mouseout","mouseup","mouseover","focusin","focusout","keydown","keyup","input","change","click","transitionend","selectstart","cached","called","firstMatch","regexes","test","find$2","agent","major","minor","group","Number","replace","detect","versionRegexes","cleanedAgent","toLowerCase","unknown","Version","edge","chrome","ie","opera","firefox","safari","isBrowser","current","unknown$1","nu$1","version","info","isEdge","isChrome","isIE","isOpera","isFirefox","isSafari","Browser","windows","ios","android","linux","osx","solaris","freebsd","isOS","unknown$2","nu$2","isWindows","isiOS","isAndroid","isOSX","isLinux","isSolaris","isFreeBSD","OperatingSystem","DeviceType","os","browser","userAgent","isiPad","isiPhone","isAndroid3","isAndroid4","isTablet","isTouch","isPhone","iOSwebview","isWebView","detect$1","candidates","candidate","search","detectBrowser","browsers","detectOs","oses","UaString","checkRange","str","substr","start","contains$1","endsWith","suffix","trim","normalVersionRegex","checkContains","uastring","monstrosity","PlatformInfo","detect$2","deviceType","PlatformDetection","detect$3","navigator","PlatformDetection$1","alloy","tap","focus","postBlur","postPaste","receive","execute","focusItem","tapOrClick","longpress","sandboxClose","typeaheadCancel","systemInit","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight","dehighlight","fromHtml","html","scope","doc","document","div","createElement","innerHTML","hasChildNodes","childNodes","fromDom","fromTag","tag","node","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","Element","Immutable","struct","sort$1","reqMessage","required","unsuppMessage","unsupported","validateStrArr","checkDupes","everything","sorted","dupe","d","MixedBag","optional","req","Global","Function","path","parts","p","split","unsafe","actual","Global$1","compareDocumentPosition","documentPositionPreceding","DOCUMENT_POSITION_PRECEDING","documentPositionContainedBy","DOCUMENT_POSITION_CONTAINED_BY","Node","DOCUMENT","ATTRIBUTE_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_NODE","ELEMENT","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","ELEMENT_NODE","TEXT","TEXT_NODE","ELEMENT$1","PROCESSING_INSTRUCTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","DOCUMENT$1","selector","elem","nodeType","matches","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","querySelectorAll","one","querySelector","e1","e2","regularContains","d1","d2","ieContains","owner","ownerDocument","defaultView","el","defView","parentNode","offsetParent","nextSibling","children","child","index","cs","firstChild","fromHtml$1","before","marker","parent$1","insertBefore","after","sibling","append","prepend","firstChild$1","appendChild","appendAt","append$1","elements","empty","textContent","rogue","remove","removeChild","get$1","content","owner$1","docDom","fragment","createDocumentFragment","contentElements","getOuter","container","cloneNode","nodeName","isType$1","isElement","isText","isDocument","rawSet","setAttribute","set$1","setAll","attrs","get$2","getAttribute","has$1","hasAttribute","remove$1","removeAttribute","original","isDeep","shallow$1","getHtml","unknown$3","CHROME_INSPECTOR_GLOBAL","eventConfig","makeEventLogger","eventName","initialTarget","sequence","startTime","Date","getTime","logEventCut","purpose","outcome","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","write","finishTime","event","time","processEvent","status","patterns","NORMAL","noLogger","LOGGING","logger","STOP","path$1","getTrace","stack","lines","line","ignoreEvent","monitorEvent","inspectorInfo","comp","go","c","cSpec","spec","(original.spec)","(dom.ref)","(element)","(initComponents)","components","(components)","(bound.events)","events","(behaviours)","behaviours","config","configAsRaw","original-config","initialConfig","state","readState","getOrInitConnection","setEventStatus_1","evs","systems","lookup","uid","connections","conn","connGui","getByUid","setToNormal","setToLogging","setToStop","registerInspector","gui","connection","unique","generate$1","prefix","date","random","Math","floor","global","__assign","assign","this","__rest","e","getOwnPropertySymbols","SimpleResultType","strict","defaultedThunk","asOption","asDefaultedOptionThunk","mergeWithThunk","defaulted","mergeWith","res","stype","serror","svalue","partition$2","val","map$2","Value","bind$1","bindError","toResult","fromResult","SimpleResult","mergeValues$1","mergeErrors$1","consolidateObj","consolidateArr","ResultCombine","typeAdt","setOf","arrOf","objOf","itemOf","choiceOf","func","fieldAdt","field","json","parse","stringify","replacer","space","Json","formatObj","formatErrors","es","getErrorInfo","nu$3","missingStrict","missingKey","missingBranch","branch","unsupportedFields","custom","adt$1","strictAccess","fallbackAccess","fallbackThunk","optionAccess","optionDefaultedAccess","cExtractOne","strength","okey","presence","prop","bundle","av","extract","bundleAsOption","optValue","ov","baseThunk","instantiator","cExtract","value$2","validator","toDsl","getSetKeys","objOfOnly","delegate","fieldNames","extra","fieldStrings","validateKeys","validatedKeys","validKeys","schema","vk","anyValue","arrOfObj","chooseFrom","ch","fs","choose","choice","chosen","_anyValue","arrOfObj$1","objFields","arrOfVal","valueOf","setOf$1","errs","asRaw","getOrDie$1","extraction","errInfo","formatError","asRawOrDie","choose$1","anyValue$1","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","validateEnum","strict$1","strictOf","strictNumber","strictString","strictStringEnum","strictFunction","forbid","strictObjOf","objSchema","strictArrayOfObj","strictArrayOf","option","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","optionObjOfOnly","defaulted$1","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedObjOf","state$1","isSource","component","simulatedEvent","nu$4","all$1","handlers","handler","any","read","can","abort","run","fuse","emit","dispatchWith","emitWith","properties","emitExecute","dispatch","data","getSystem","triggerEvent","dispatchEvent","ClosestOrAncestor","ancestor","isRoot","inBody","body","getBody","predicate","stop","closest","descendant","descend","closest$1","transform","derive","configs","preventDefault","prevent","runActionExtra","action","runOnName","runOnSourceName","redirectToUid","redirectee","redirectToPart","detail","partName","partUids","runWithTarget","ev","getByDom","cutter","cut","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute","isRecursive","originator","warn","DefaultEvents","idAttr","prefix$1","idAttr$1","writeOnly","defineProperty","writable","read$1","generate$2","make","NoContextApi","getComp","debugInfo","triggerFocus","triggerEscape","build","addToWorld","removeFromWorld","addToGui","removeFromGui","broadcast","broadcastOn","broadcastEvent","isConnected","singleton","markAsBehaviourApi","apiName","apiFunction","endIndex","openBracketIndex","parameters","substring","toFunctionAnnotation","cleanParameters","markAsExtraApi","extraName","markAsSketchApi","premadeTag","premade","getPremade","makeApi","rest","getApis","NoState","init","nu$5","generateFrom","validated","list","optBlobThunk","optBlob","blob","getBehaviours","bData","getData","byInnerKey","indexKey","chain","nu$6","classes","attributes","styles","merge$1","defnA","mod","combine","baseMod","modsByBehaviour","behaviour","exhibit","nameAndMod","modification","byAspect","combineObjects","combinedClasses","combinedAttributes","combinedStyles","sortKeys","keyName","order","sliced","aKey","bKey","aIndex","bIndex","uncurried","curried","cHandler","curryArgs","descHandler","extraArgs","getCurried","behaviourTuple","nameToHandlers","groupByEvents","behaviourEvents","combine$1","eventOrder","byEventName","combineGroups","assemble","rawHandler","missingOrderError","tuples","fuse$1","sortedTuples","combined","assembled","toInfo","alloy.execute","alloy.focus","alloy.system.init","alloy.system.detached","toDefinition","domChildren","toModification","domModification","toEvents","read$2","remove$2","supports","classList","get$3","add$1","clazz","remove$3","add$2","cleanClass","remove$4","has$2","add$3","remove$5","isSupported","style","internalSet","property","setProperty","internalRemove","removeProperty","set$2","setAll$1","css","setOptions","get$4","getComputedStyle","getPropertyValue","getUnsafeProperty","getRaw","raw","isValidValue","remove$6","reflow","offsetWidth","get$5","set$3","renderToDom","definition","subject","innerHtml","getBehaviours$1","generateFrom$1","generate$3","getDomDefinition","bList","infoModification","baseModification","alloy.base.modification","getEvents","baseEvents","alloy.base.behaviour","getMe","systemApi","bBlob","modDefinition","item","subcomponents","connect","newApi","disconnect","syncComponents","children$1","subs","hasConfigured","apis","behaviourName","buildSubcomponents","build$1","buildFromSpec","userSpec","_a","specEvents","completeSpec","external","extSpec","uids","userSpecWithUid","prebuilt","premade$1","closest$2","ancestor$2","descendant$2","closest$3","find$3","queryElem","dependent","dep","manager","ariaId","link","unlink","isAriaPartOf","isPartOf","menuFields","itemFields","itemSchema","_initSize","itemMarkers","tieredMenuMarkers","markers","onPresenceHandler","fieldName","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","snapshot","initSize","executeEvent","bConfig","bState","executor","loadEvent","create","active","configSchema","schemaSchema","doCreate","createModes","modes","wrapApi","bName","revokeBehaviour","getConfig","wrappedApis","apiF","wrappedExtra","extraF","revoke","prepared","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$1","modeSchema","createModes$1","branchKey","chooseChannels","channels","universal","events$1","receiveConfig","channelMap","targetChannels","channelInfo","channelSchema","onReceive","ActiveReceiving","ReceivingSchema","Receiving","posConfig","useFixed","position","ActivePosition","attached","documentElement","windowOf","Window","parentWindow","left","top","translate","Position","boxPosition","box","getBoundingClientRect","firstDefinedOrZero","absolute","win","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","viewport","offsetLeft","offsetTop","get$6","_DOC","Dimension","getOffset","h","parseFloat","aggregate","parseInt","isNaN","max","cumulativeInclusions","absoluteMax","api","set$4","get$7","getOuter$1","api$1","height","offsetHeight","get$8","getOuter$2","setMax","inclusions","absMax","decision","adt$2","southeast","southwest","northeast","northwest","south","north","east","west","cata","cataVertical","middle","pointed","rect","bounds","width","right","bottom","xy","w","walkUp","navigation","frame","view","pathTo","paths","frameElement","Navigation","find$4","scroll","frames","offset","loc","innerWidth","innerHeight","adt$3","relative","fixed","positionWithDirection","posName","decisionX","decisionY","decisionWidth","decisionHeight","decisionRight","decisionBottom","direction","reposition","origin","toBox","rel","viewport$1","getBounds","cata$1","onNone","onRelative","onFixed","anchor","box$1","anchorBox","adt$4","fit","nofit","attempt","candidateX","candidateY","bubbleLeft","bubble","bubbleTop","boundsX","boundsY","boundsWidth","boundsHeight","newX","newY","xInBounds","yInBounds","originInBounds","xFit","yFit","sizeInBounds","deltaW","min","abs","deltaH","maxX","minX","limitX","limitY","upAvailable","downAvailable","maxHeight","on","classesOn","off","classesOff","candidateYforTest","attempts","elementBox","bubbles","panelWidth","panelHeight","attemptBestFit","layout","next","attemptLayout","newReposition","newDeltaW","newDeltaH","improved","abc","bestNext","elementSize","options","preference","setClasses","classInfo","setHeight","maxHeightFunction","addPx","num","newPosition","setMaxHeight","anchored","available","overflow-x","overflow-y","expandable","reparteeOptions","defaultOr","dephault","simple","layouts","overrideOptions","allAlignments","nu$7","yoffset","getClasses","xDelta","yDelta","alignmentsOn","alignmentsOff","nu$8","eastX","middleX","westX","northY","southY","centreY","eastEdgeX","westEdgeX","southeast$1","southwest$1","northeast$1","northwest$1","north$1","south$1","east$1","west$1","all$2","allRtl","nu$9","onDirection","isLtr","isRtl","getDirection","schema$1","get$9","defaultLtr","defaultRtl","ltr","ls","onLtr","rtl","onRtl","placement","anchorInfo","hotspot","overrides","placer","HotspotAnchor","placement$1","MakeshiftAnchor","zeroWidth","type$1","domRange","exact","range$1","exactFromRange","simRange","soffset","finish","foffset","makeRange","rng","createRange","setStart","setEnd","after$1","same","collapsed","situ","setStartBefore","setStartAfter","setFinish","setEndBefore","setEndAfter","relativeToNative","startSitu","finishSitu","range","exactToNative","toRect","getFirstRect","rects","getClientRects","adt$6","fromRange","startContainer","startOffset","endContainer","endOffset","getRanges","doDiagnose","ranges","reversed","rev","diagnose","asLtrRange","diagnosis","searchForPoint","rectForOffset","curDeltaX","inRect","NodeValue","getOption","getOptionIE10","getOptionSafe","nodeValue","api$2","get$a","locateOffset","textnode","rangeForOffset","collapse","locate","selectNode","foundRect","searchInChildren","nodes","locateNode","locator","locate$1","boundedX","boundedY","NBSP","isTextNodeWithCursorPosition","elementsWithCursorPosition","isCursorPosition","hasCursorPosition","first$2","last$1","descendantRtl","COLLAPSE_TO_LEFT","COLLAPSE_TO_RIGHT","getCollapseDirection","createCollapsedNode","collapseDirection","locateInElement","cursorRange","locateInEmpty","caretPositionFromPoint","pos","offsetNode","caretRangeFromPoint","searchTextNodes","searchFromPoint","descendants","readRange","rangeCount","firstRng","getRangeAt","lastRng","doGetExact","anchorNode","focusNode","anchorOffset","focusOffset","getExact","getSelection","sel","getFirstRect$1","point","descendOnce","adt$7","screen","toFixed","toAbsolute","sum","points","sumAsFixed","positions","sumAsAbsolute","absolute$1","root","hasSameOwner","frameOwner","compOwner","getRootPoint","outerScroll","capRect","newLeft","newTop","newWidth","newHeight","calcNewAnchor","optBox","rootPoint","topLeft","layoutsLtr","showAbove","layoutsRtl","ContentAnchorCommon","point$1","descendOnce$1","getAnchorSelection","modStart","modFinish","placement$2","selectionBox","optRect","rawRect","targetElement","SelectionAnchor","placement$3","nodeBox","NodeAnchor","eastX$1","westX$1","northY$1","southY$1","southeast$2","southwest$2","northeast$2","northwest$2","all$4","allRtl$1","placement$4","submenuInfo","SubmenuAnchor","AnchorSchema","submenu","makeshift","getFixedOrigin","getRelativeOrigin","place","anchoring","placee","position$1","posState","boxElement","positionWithin","anchorage","oldVisibility","boxElem","doPlace","vis","getMode","pConfig","pState","PositionApis","PositionSchema","Positioning","fireDetaching","fireAttaching","attach","attachWith","insertion","doDetach","detach","detachChildren","attachSystem","guiSystem","attachSystemInternal","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","getAttachPoint","built","newState","onOpen","openWhileCloaked","transaction","cloak","decloak","close","onClose","clear","isOpen","isPartOf$1","getState","store","cssKey","newValue","restore","oldValue","sink","cloakVisibilityAttr","hasPosition","SandboxApis","events$2","sandboxConfig","sandboxState","ActiveSandbox","SandboxSchema","contents","SandboxState","Sandboxing","dismissPopups","mouseReleased","schema$2","receivingConfig","rawSpec","receiving","isPart","isExtraPart","fireEventInstead","fe","field$1","forbidden","get$b","dump","augment","SketchBehaviours","_placeholder","adt$8","single","multiple","subPlaceholder","compSpec","placeholders","newSpec","scan","uiType","substitute","valueThunk","childSpecs","substituted","valuesThunk","preprocessor","preprocess","substituteAll","oneReplace","replacements","used","substitutePlaces","ps","ph","placeholder","adt$9","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","part","name$1","asCommon","convert","adtConstructor","partSchema","external$1","PartType","combine$2","partSpec","partValidated","defaults","internals","externals","pname","factory","_partSpec","_partValidated","units","u","generate$4","np","g","doGenerateOne","generateOne","schemas","names","substitutes","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","partSchemas","partUidsSchemas","asRawOrDie$1","baseS","single$1","specWithUid","supplyUid","composite","partUidsSchema","components$1","isSketchSpec","FocusInsideModes","singleSchema","compositeSchema","single$2","rawConfig","configFields","extraApis","partFields","composite$1","inside","getCurrent","composeConfig","composeState","ComposeApis","ComposeSchema","Composing","cycleBy","delta","cap","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","dehighlightAll","dehighlight$1","isHighlighted","highlight$1","onHighlight","highlightFirst","getFirst","firstComp","highlightLast","getLast","lastComp","highlightAt","getByIndex","highlightBy","getCandidates","targetComp","queryTarget","getHighlighted","items","itemClass","getDelta","selected","dest","getPrevious","getNext","HighlightApis","HighlightSchema","Highlighting","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","cyclePrev","tryPrev","cycleNext","tryNext","inSet","which","and","preds","isShift","shiftKey","isControl","ctrlKey","isNotShift","rule","classification","choose$2","transitions","transition","focus$1","blur","hasFocus","activeElement","search$1","reportFocusShifting","prevFocus","newFocus","noChange","focusee","highlights","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","rules","onFocusHandler","focusInside","OnFocusMode","focusIn","tryGoInsideComponent","isEnterOrSpace","OnEnterOrSpaceMode","create$2","cyclicField","isVisible","tabbingConfig","visibilitySelector","findInitial","tabstops","visibles","firstTabstop","findCurrent","focusManager","isTabstop","useTabstopAt","goFromTabstop","stopIndex","cycle","cyclic","tabstop","optStopIndex","goBackwards","tabbingState","navigate","goForwards","onEnter","exit","onEscape","AcyclicType","CyclicType","doDefaultExecute","focused","defaultExecute","stopEventForFirefox","schema$3","execute$1","executeConfig","executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","ExecutionType","flatgrid","dimensions","setGridSize","numRows","numColumns","getNumRows","getNumColumns","init$1","KeyingState","useH","movement","move","use","west$2","moveLeft","moveRight","east$2","useV","north$2","south$2","isHidden","indexInfo","locate$2","locateVisible","locateIn","filter$1","visible","findIndex$1","withGrid","numCols","oldRow","oldColumn","address","newIndex","row","column","cycleHorizontal","onLastRow","colsInRow","newColumn","cycleVertical","newRow","newCol","cycleRight","cycleLeft","cycleUp","cycleDown","schema$4","gridConfig","gridState","first","execute$2","doMove","identified","handleTab","captureTab","doEscape","moveNorth","moveSouth","getKeydownRules$1","getKeyupRules$1","FlatgridType","horizontal","isDisabledButton","tryCycle","schema$5","findCurrent$1","flowConfig","execute$3","focusIn$1","getInitial","moveLeft$1","moveRight$1","doMove$1","executeOnMove","doEscape$1","_flowState","getKeydownRules$2","_component","_se","westMovers","allowVertical","eastMovers","getKeyupRules$2","FlowType","toCell","matrix","rowIndex","columnIndex","cell","cycleHorizontal$1","startCol","deltaCol","newColIndex","cycleVertical$1","colIndex","startRow","deltaRow","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","cycleRight$1","cycleLeft$1","cycleUp$1","cycleDown$1","moveLeft$2","moveRight$2","moveUp","moveDown","schema$6","focusIn$2","matrixConfig","previousSelector","selectors","execute$4","toMatrix","rows","doMove$2","ifCycle","ifMove","cycles","inRow","cellsInRow","allRows","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$3","getKeyupRules$3","MatrixType","schema$7","execute$5","menuConfig","focusIn$3","moveUp$1","moveDown$1","fireShiftTab","moveOnTab","fireTab","getKeydownRules$4","getKeyupRules$4","MenuType","schema$8","getKeydownRules$5","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","getKeyupRules$5","stopSpaceKeyup","SpecialType","acyclic","flow","flatgrid$1","execution","menu","special","KeyboardBranches","Keying","keyConfig","keyState","sendFocusIn","preserve$1","ownerDoc","refocus","oldFocus","set$5","replaceConfig","replaceState","l","insert","childSpec","append$2","appendee","prepend$1","prependee","remove$7","removee","foundChild","replaceAt","replaceeIndex","replacee","replaceBy","replaceePred","ReplaceApis","Replacing","onLoad","repConfig","repState","onUnload","setValue","getValue","getState$1","RepresentApis","events$3","resetOnDom","se","ActiveRepresenting","memory","mode","isNotSet","manual","dataset","dataByValue","dataByText","itemString","update","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","init$2","RepresentState","setValue$1","onSetValue","getValue$1","getDataKey","getFallbackEntry","onLoad$1","initialValue","onUnload$1","DatasetStore","getValue$2","setValue$2","onLoad$2","ManualStore","setValue$3","getValue$3","onLoad$3","initVal","onUnload$2","MemoryStore","RepresentSchema","Representing","setValueFrom","source","focus$2","focusConfig","ignore","onFocus","blur$1","isFocused","FocusApis","exhibit$1","tabindex","events$4","stopMousedown","ActiveFocus","FocusSchema","Focusing","updateAriaState","toggleConfig","toggleState","ariaInfo","aria","updateClass","toggleClass","toggle$2","set$6","isOn","onLoad$4","ToggleApis","toggle","exhibit$2","events$5","load","toggleOnExecute","ActiveToggle","SetupBehaviourCellState","initialState","updatePressed","syncWithExpanded","updateExpanded","updateSelected","updateChecked","ToggleSchema","pressed","checked","expanded","Toggling","hoverEvent","focusEvent","onHover","hover","focus$3","events$6","eventHandlers","builder","role","toggling","aria-haspopup","hasSubmenu","aria-expanded","itemBehaviours","tConfig","ignoreFocus","schema$9","builder$1","schema$a","owner$2","builder$2","focusWidget","widget","onHorizontalArrow","autofocus","setSource","widgetBehaviours","schema$b","itemSchema$1","separator","configureGrid","movementInfo","configureMatrix","rowSelector","configureMenu","parts$1","itemInfo","unit","fakeFocus","schema$c","grid","focus$4","make$1","menuBehaviours","selectedItem","Menu","transpose","trace","byItem","byMenu","triggerItem","triggerMenu","generate$5","menus","expansions","menuItems","menuPaths","_triggerItem","init$3","primary","directory","isClear","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","dir","sPaths","expand","itemValue","refresh","lookupMenu","menuValue","otherMenus","menuValues","getPrimary","primaryName","prep","getMenus","LayeredState","make$2","rawUiSpec","ExpandHighlightDecision","submenuParentItems","buildMenus","makeSketch","nbMenu","layeredState","setup","componentMap","toDirectory","getItemValue","setActiveMenu","mv","closeOthers","others","backgroundMenu","stayInDom","getSubmenuParents","parentItems","itemComp","updateAriaExpansions","updateMenuPath","latestMenuName","menuPrep","activeMenu","buildIfRequired","expandRight","HighlightSubmenu","activeMenuPrep","onOpenSubmenu","collapseLeft","onCollapseMenu","updateView","keyOnItem","getSource","onExecute","onOpenMenu","highlightImmediately","navigateOnHover","HighlightParent","collapseMenuApi","currentMenu","currentItem","highlightPrimary","collapseMenu","tmenuBehaviours","keyInfo","selectedMenu","collapseItem","tieredData","singleData","collapseItem$1","tieredMenu","tmenu","makeMenu","menuSandbox","menuSpec","lazySink","isPartOfRelated","related","getRelated","setContent","thing","showAt","showWithin","onShow","showMenuAt","onHide","getContent","inlineBehaviours","fireDismissalEventInstead","InlineView","events$7","optAction","executeHandler","onClick","onMousedown","pointerEvents","factory$1","lookupAttr","getModAttributes","roleAttrs","buttonBehaviours","Button","record","anyInSystem","getOpt","asSpec","defaultIcon","icons","get$c","getFirst$1","notificationIconMap","success","warning","factory$2","memBannerText","translationProvider","renderPercentBar","percent","renderPercentText","memBannerProgress","progress","updateProgress","updateText","text$1","banner","iconChoices","icon","level","iconProvider","aria-label","onAction","Notification","global$1","NotificationManagerImpl","extras","uiMothership","backstage","getEditorContainer","inline","getElement","getContentAreaContainer","prePositionNotifications","notifications","notification","moveTo","positionNotifications","firstItem","moveRel","getEl","closeCallback","notificationWrapper","progressBar","shared","providers","getSink","timeout","setTimeout","anchors","nuText","getArgs","ItemResponse","last$2","rate","timer","cancel","clearTimeout","throttle","isValidTextRange","whiteSpace","parse$1","minChars","charAt","getContext","initRange","newText","cloneRange","onKeypress","redirectKeyToItem","getItem","getView","isActive","closeIfNecessary","AutocompleterEditorEvents","global$2","isStartOfWord","getTriggerContext","initText","database","triggerChars","triggerChar","getDatabase","getRng","startText","context","autocompleters","lookupByChar","autocompleter","lookupData","ac","fetchResult","fetch","maxResults","then","columns","autocompleterItemSchema","autocompleterSchema","createAutocompleterItem","createAutocompleter","stringArray","register","popups","getAll","popup","datasetValues","dv","commonMenuItemFields","menuItemSchema","createMenuItem","nestedMenuItemSchema","createNestedMenuItem","toggleMenuItemSchema","createToggleMenuItem","choiceMenuItemSchema","createChoiceMenuItem","separatorMenuItemSchema","createSeparatorMenuItem","fancyMenuItemSchema","createFancyMenuItem","detectSize","margin","selectorClass","descendants$1","columnLength","thisTop","cTop","ceil","namedEvents","unnamedEvents","SimpleBehaviours","TooltippingSchema","init$4","getTooltip","setTooltip","clearTooltip","clearTimer","resetTimer","delay","isShowing","TooltippingState","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","tState","setComponents","specs","tooltip","TooltippingApis","events$8","tooltipConfig","show","tooltipDom","tooltipComponents","receivingData","ActiveTooltipping","Tooltipping","getAttrs","fromHtml$2","global$3","navClass","selectableClass","colorClass","presetClasses","normal","color","tickedClass","groupHeadingClass","iconClass","textClass","accessoryClass","caretClass","checkmarkClass","activeClass","classForPreset","presets","global$4","convertText","mac","alt","ctrl","shift","access","other","shortcut","updated","segment","ConvertShortcut","renderIcon","iconHtml","renderText","renderStyledText","styleAttr","renderShortcut","renderCheckmark","renderSubmenuCaret","renderColorStructure","itemText","iconSvg","providerBackstage","colorPickerCommand","removeColorCommand","getDom","common","optComponents","renderNormalItemStructure","renderIcons","textRender","leftIcon","checkMark","domTitle","ariaLabel","menuItem","shortcutContent","caret","renderItemStructure","providersBackstage","fallbackIcon","iconContent","iconName","nativeDisabled","onLoad$5","disableConfig","disableState","disabled","disable","hasNative","nativeIsDisabled","nativeDisable","nativeEnable","ariaIsDisabled","ariaDisable","ariaEnable","disableClass","enable","isDisabled","set$7","DisableApis","exhibit$3","events$9","ActiveDisable","DisableSchema","Disabling","button","splitButton","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onDestroy","onSetup","onControlDetached","ItemResponse$1","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","structure","buildData","tooltipBehaviour","sharedBackstage","tooltipWorker","_tooltip","elm","renderAutocompleteItem","useText","onItemValueHandler","_api","renderChoiceItem","isSelected","setActive","setDisabled","parts$2","cellOverEvent","cellExecuteEvent","makeCell","col","labelId","emitCellOver","makeCells","cells","selectCells","selectedRow","selectedColumn","makeComponents","cellRow","makeLabelText","renderInsertTableMenuItem","sizeLabelId","memLabel","FocusMode","fancyMenuItems","inserttable","valueOpt","renderFancyMenuItem","fancytype","render","renderNormalItem","renderNestedItem","renderSeparatorItem","renderToggleMenuItem","autocomplete","nested","toggle$3","fancy","forMenu","hasIcons","markers$1","menuClasses","dom$1","deriveMenuMovement","menuMarkers","rowClass","deriveCollectionMovement","chunk$1","rowDom","chunks","forSwatch","forToolbar","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","handleError","hasIcon","menuHasIcons","createMenuItemFromBridge","createPartialMenuWithAlloyItems","createChoiceItems","itemPresets","select","createAutocompleteItems","createPartialChoiceMenu","presetItemTypes","alloyItems","createPartialMenu","createItem","getSubmenuItems","createTieredDataFrom","partialMenu","createMenuFrom","focusMode","ContentFocus","register$1","getAutocompleters","getCombinedItems","m","choices","itemMeta","nr","textNode","autocompleterApi","BUBBLE_TO_SANDBOX","optMatches","lookupInfo","combinedItems","ld","autocompleterUiApi","Autocompleter","mkEvent","kill","handle","rawEvent","stopPropagation","evt","clientX","clientY","binder","useCapture","wrapped","addEventListener","unbind","bind$2","capture","removeEventListener","bind$3","capture$1","closest$4","DelayedFunction","fun","ref","schedule","SIGNIFICANT_MOVE","LONGPRESS_DELAY","getTouch","touches","isFarEnough","touch","distX","distY","monitor","startData","longpress$1","handleTouchstart","handleTouchmove","handleTouchend","isSame","fireIfReady","isDangerous","keyEv","settingsSchema","bindFocus","bindBlur","setup$1","rawSettings","tapEvent","simpleEvents","tapStopped","stopped","pasteTimeout","onPaste","onKeydown","stopBackspace","onFocusIn","focusoutTimeout","onFocusOut","derive$2","rawTarget","getTarget","fromSource","isStopped","isCut","fromExternal","adt$a","resume","complete","doTriggerHandler","eventType","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerHandler","listeners","listener","triggerUntilStopped","triggerOnUntilStopped","broadcastHandler","EventRegistry","registerId","findHandler","reader","filterByType","isAboveRoot","readType","unregisterId","handlersById","Registry","readOrTag","failOnDuplicate","tagId","conflict","unregister","getById","ToolbarDrawer","factory$3","domWithoutAttributes","containerBehaviours","Container","takeover","domEvents","_alloyId","broadcast$1","destroy","broadcastData","receivers","receiver","global$5","global$6","getSkinUrl","skin","skinUrl","skin_url","skinName","documentBaseURI","baseURL","isReadOnly","getParam","isSkinDisabled","getHeightSetting","getMinWidthSetting","min_width","getMinHeightSetting","min_height","getMaxWidthSetting","getMaxHeightSetting","getUserStyleFormats","isMergeStyleFormats","getRemovedMenuItems","isMenubarEnabled","isToolbarEnabled","toolbarConfig","getMultipleToolbarsSetting","toolbarKeys","toolbars","toolbarArray","HighlightOnOpen","getToolbarDrawer","fixedContainerSelector","fixedContainerElement","isInline","useFixedContainer","getUiContainer","fixedContainer","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderAlertBanner","actionLabel","schema$d","parts$3","display","aria-hidden","excludeFactory","factory$4","fieldBehaviours","descriptor","descriptorId","getField","getLabel","FormField","getCoupled","coupleConfig","coupleState","getOrCreate","CouplingApis","CouplingSchema","init$5","coupled","CouplingState","Coupling","events$a","streamConfig","streamState","streams","stream","processor","cancelEvent","ActiveStreaming","_config","setTimer","init$6","StreamingState","setup$2","streamInfo","sInfo","throttler","onStream","stopEvent","StreamingSchema","Streaming","nu$a","baseFn","callbacks","nCallback","isReady","cbs","cb","pure$1","callback","LazyValue","bounce","nu$b","aFutureB","anonBind","futureB","toLazy","toCached","cache","pure$2","Future","partType","getAnchor","ourHotspot","getHotspot","mapFetch","fetcher","openF","highlightOnOpen","futureData","getLazySink","tdata","HighlightFirst","open$1","onOpenSync","processed","close$1","_externals","_onOpenSync","_highlightOnOpen","togglePopup","showing","matchWidth","useMinWidth","buttonWidth","sinkDetail","internalSink","lazySinkFn","makeSandbox","ariaOwner","sandboxClasses","sandboxBehaviours","setValueFromItem","model","itemData","setCursorAtEnd","setSelectionOn","setSelectionRange","setSelectionToEnd","attemptSelectOver","selectsOver","currentValue","inputDisplay_1","getDisplayText","itemDisplay","schema$e","focusBehaviours","selectOnFocus","inputBehaviours","dom$2","inputAttributes","inputStyles","inputClasses","itemExecute","make$3","navigateList","highlighter","previewing","focusBehaviours$1","initialData","responseTime","focusInInput","previousValue_1","_sandbox","pv","sandboxIsOpen","openClass","onItemExecute","dismissOnBlur","typeahead","typeaheadBehaviours","sandboxFields","schema$f","parts$4","populateFromBrowse","Typeahead","renderFormFieldWith","pLabel","pField","extraClasses","renderFormFieldSpecWith","renderFormField","renderFormFieldDomWith","renderFormFieldDom","renderLabel","isMenuItemReference","isExpandingMenuItem","separator$1","unwrapReferences","realItems","pop","getFromExpandingItem","submenuItems","newMenus","newExpansions","getFromItem","generateValueIfRequired","itemWithValue","newData","build$2","mainMenu","submenus","renderAutocomplete","getItems","renderBar","interpreter","factory$5","Input","isFirefox$1","offscreen","create$3","span","linkToDescription","token","base$1","getShoutAttrs","_text","aria-live","aria-atomic","shout","ariaElements","isAriaElement","markValid","invalidConfig","getRoot","invalidClass","notify","notifyInfo","getContainer","validHtml","onValid","markInvalid","invalidState","onInvalid","query","validatorInfo","validate","run$1","onValidate","valid","isInvalid","InvalidateApis","events$b","onEvent","validateOnLoad","ActiveInvalidate","InvalidateSchema","Invalidating","validation","exhibit$4","tabConfig","tabAttr","ActiveTabstopping","TabstopSchema","Tabstopping","hexColour","hexString","shorthandRegex","longformRegex","isHexString","hex","getLongForm","extractValues","longForm","splitForm","exec","toHex","fromRgba","rgbaColour","red","green","blue","round","rgbRegex","rgbaRegex","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","redColour","global$7","storageName","ColorCache","storageString","localstorage","JSON","prune","diff","unshift","setItem","idx","splice","choiceItem","defaultColors","colorCache","mapColors","colorMap","colors","getColorCols","defaultCols","hasCustomColors","getColorMap","getColors","unmapped","getCurrentColors","addColor","Settings","getCurrentColor","format","getParents","getStart","applyFormat","undoManager","transact","formatter","nodeChanged","removeFormat","registerCommands","addCommand","calcCols","sqrt","getColorCols$1","getAdditionalColors","hasCustom","applyColour","onChoice","dialog","colorPickerDialog","colorOpt","execCommand","getFetch","setIconColor","splitButtonApi","newColor","setIconFillAndStroke","pathId","setIconFill","setIconStroke","registerTextColorButton","lastColor","addSplitButton","optCurrentRgb","currentRgb","currentHex","onItemAction","newColour","getOnSubmit","colorpicker","details","submit","windowManager","buttons","onSubmit","onCancel","register$2","lastForeColor","lastBackColor","ColorSwatch","schema$g","parts$5","factory$6","_spec","switchToMenu","HighlightNone","triggerExecute","dropdownBehaviours","Dropdown","exhibit$5","unselectConfig","-webkit-user-select","user-select","-ms-user-select","-moz-user-select","unselectable","events$c","ActiveUnselecting","Unselecting","renderPanelButton","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","emitSwatchChange","colorBit","memColorButton","colorPicker","colorButton","hsvColour","fromRgb","minRGB","maxRGB","calcHex","rgb","fieldsUpdate","sliderUpdate","paletteUpdate","platform","labelPart","edgePart","edgeActions","touchEvents","mouseEvents","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","modelDetail","getValueFromEvent","spectrum","SliderParts","isTouch$1","_sliderChangeEvent","sliderChangeEvent","getEventSource","touchEvent","mouseEvent","reduceBy","step","increaseBy","capValue","snapValueOf","snapStart","initValue","extraValue","remainder","adjustment","rawSteps","maxSteps","numSteps","findOffsetOf","findValueOf","snap","rounded","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOfValue","maxOffset","centerMinEdge","centerMaxEdge","r$1","minY","min1X","min1Y","maxY","max1X","max1Y","range$2","xRange","yRange","halfX","halfY","stepSize","snapToGrid","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","xValue","yValue","xyValue","fireSliderChange","setToTLEdgeXY","setToTEdge","setToTEdgeXY","setToTREdgeXY","setToREdge","setToREdgeXY","setToBREdgeXY","setToBEdge","setToBEdgeXY","setToBLEdgeXY","setToLEdge","setToLEdgeXY","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$1","sliderValue","findValueOfOffset","sliderVal","setToMin","setToMax","moveBy","handleMovement","findOffsetOfValue$1","minEdge","maxEdge","minOffset","findPositionOfValue","slider","setPositionFromValue","thumb","edges","getSpectrum","getLeftEdge","getRightEdge","thumbRadius","top-left","top-right","bottom-right","bottom-left","HorizontalModel","fireSliderChange$2","sliderValue$1","findValueOfOffset$1","setValueFrom$1","setToMin$1","setToMax$1","moveBy$1","handleMovement$1","getValueFromEvent$1","findOffsetOfValue$2","findPositionOfValue$1","setPositionFromValue$1","getTopEdge","getBottomEdge","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange$3","sliderValue$2","setValueFrom$2","moveBy$2","isVerticalMovement","handleMovement$2","setToMin$2","mX","mY","setToMax$2","getValueFromEvent$2","setPositionFromValue$2","xPos","yPos","thumbXRadius","thumbYRadius","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","TwoDModel","isTouch$2","SliderSchema","isTouch$3","getThumb","changeValue","onChange","resetToMin","resetToMax","_simulatedEvent","onDragStart","onDragEnd","uiEventsArr","sliderBehaviours","mouse.released","wasDown","onChoose","getInitialValue","onInit","Slider","sliderFactory","getClass","_thumb","HueSlider","owner$3","schema$h","getPartName","sketch$1","fSpec","fieldParts","make$4","toResult$1","formBehaviours","form","resPs","resPThunk","pName","wrapper","Form","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","isValid","renderTextField","description","helptext","comps","concats","copyRgbToHex","hexField","copyRgbToForm","memPreview","background-color","updatePreview","preview","copyHexToRgb","setValueRgb","getValueRgb","onInvalidInput","onValidHex","onValidRgb","isHexInputEvent","onValidInput","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","rgbFormSketcher","RgbForm","paletteFactory","_translate","setColour","canvas","ctx","fillStyle","fillRect","grdWhite","createLinearGradient","addColorStop","grdBlack","setSliderColour","_detail","_slider","_value","saturationBrightnessPaletteSketcher","setRgba","_apis","SaturationBrightnessPalette","makeFactory","rgbForm","onInvalidHex","sbPalette","paletteRgba","memPalette","memRgb","updatePalette","palette","updateFields","runUpdates","updates","paletteUpdates","oldRgb","hsvColour$1","newHsvColour","nuHex","sliderUpdates","colourPickerSketcher","ColourPicker","memento","mem","childAt","ComposingConfigs","english","colorcustom.rgb.red.label","colorcustom.rgb.red.description","colorcustom.rgb.green.label","colorcustom.rgb.green.description","colorcustom.rgb.blue.label","colorcustom.rgb.blue.description","colorcustom.rgb.hex.label","colorcustom.rgb.hex.description","colorcustom.rgb.range","colorcustom.sb.saturation","colorcustom.sb.brightness","colorcustom.sb.picker","colorcustom.sb.palette","colorcustom.sb.instructions","colorcustom.hue.hue","colorcustom.hue.slider","colorcustom.hue.palette","colorcustom.hue.instructions","aria.color.picker","aria.input.invalid","getEnglishText","renderColorPicker","colourPickerFactory","memPicker","picker","optRgbForm","optHex","formValues","pattern","renderCustomEditor","editorApi","memReplaced","ta","ea","cvalue","ed","processors","memento$1","rawProcessors","rawValue","postprocess","withComp","optInitialValue","getter","setter","withElement","domValue","domHtml","memory$1","RepresentingConfigs","extensionsAccepted","filterByExtension","files","re","RegExp","file","renderDropZone","actions","onDrop","transferEvent","handleFiles","dataTransfer","onSelect","memInput","accept","renderField","inputComp","renderGrid","beforeObject","afterObject","craftWithClasses","outline","craft","triggerTab","onFocus$1","isPseudoStop","NavigableObject","platformNeedsSandboxing","getDynamicSource","isSandbox","cachedValue","frameComponent","encodeURIComponent","contentWindow","renderIFrame","sandboxed","sourcing","create$4","resize","clone$1","tCanvas","get2dContext","drawImage","get3dContext","gl","Canvas","getWidth","image","naturalWidth","getHeight","naturalHeight","ImageSize","promise","Promise","TypeError","_state","_deferreds","doResolve","reject","asap","immediateFn","setImmediate","thisArg","deferred","onFulfilled","onRejected","finale","Handler","done","reason","ex","remaining","race","Promise$1","Blob","FileReader","Uint8Array","requestAnimationFrame","atob","base64","imageToBlob","src","dataUriToBlob","anyUriToBlob","blobToImage","blobUrl","URL","createObjectURL","Image","removeListeners","loaded","xhr","XMLHttpRequest","responseType","onload","response","onerror","_this","corsError","code","genericError","send","dataUriToBlobSync","uri","mimetype","sliceSize","byteCharacters","bytesLength","slicesCount","byteArrays","sliceIndex","begin","end","bytes","charCodeAt","uriToBlob","canvasToBlob","quality","HTMLCanvasElement","toBlob","toDataURL","canvasToDataURL","getCanvas","blobToCanvas","revokeImageUrl","blobToDataUri","onloadend","readAsDataURL","blobToArrayBuffer","readAsArrayBuffer","blobToBase64","dataUri","revokeObjectURL","Conversions","create$5","initialType","getType","toBase64","toAdjustedBlob","toAdjustedDataURL","toAdjustedBase64","dataurl","toCanvas","fromBlob","fromCanvas","fromImage","fromBlobAndUrlSync","ImageResult","blobToImageResult","fromBlobAndUrlSync$1","imageToImageResult","imageResultToBlob","ir","imageResultToOriginalBlob","imageResultToDataURL","ResultConversions","clamp","identity$1","DELTA_INDEX","multiply","matrix1","matrix2","out","adjust","adjustValue","adjustContrast","adjustSaturation","lumR","lumG","lumB","adjustHue","angle","cosVal","sinVal","PI","cos","sin","adjustBrightness","adjustColors","adjustR","adjustG","adjustB","adjustSepia","adjustGrayscale","ColorMatrix","colorFilter","applyColorFilter","pixels","applyMatrix","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","getImageData","putImageData","convoluteFilter","applyConvoluteFilter","pixelsIn","pixelsOut","drgba","halfSide","cx","cy","scx","scy","wt","functionColorFilter","colorFn","filterImpl","applyLookup","complexAdjustableColorFilter","matrixAdjustFn","basicColorFilter","basicConvolutionFilter","kernel","Filters","invert","saturate","contrast","grayscale","sepia","colorize","sharpen","emboss","gamma","pow","exposure","exp","scale","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","_scale","ImageResizerCanvas","rotate","applyRotate","translateX","translateY","flip","axis","applyFlip","crop","applyCrop","resize$1","newCanvas","ImageTools","BinaryReader","ar","littleEndian","_dv","DataView","readByteAt","getUint8","BYTE","SHORT","LONG","SLONG","CHAR","fromCharCode","STRING","asArray","SEGMENT","buffer","byteLength","tags","tiff","274","270","271","272","305","34665","34853","exif","36864","40961","40962","40963","36867","33434","33437","34855","37377","37378","37383","37384","37385","37386","41986","41987","41990","41988","41992","41993","41994","gps","0","1","2","3","4","513","514","tagDescs","ColorSpace","MeteringMode","5","6","255","LightSource","9","10","11","12","13","14","15","17","18","19","20","21","22","23","24","Flash","7","16","25","29","31","32","65","69","71","73","77","79","89","93","95","ExposureMode","WhiteBalance","SceneCaptureType","Contrast","Saturation","Sharpness","GPSLatitudeRef","N","S","GPSLongitudeRef","E","W","ExifReader","_offsets","tiffHeader","IFD0","IFD1","exifIFD","gpsIFD","_tiffTags","_reader","_idx","toUpperCase","extractTags","ExifIFDPointer","GPSInfoIFDPointer","IFD1Offset","UNDEFINED","RATIONAL","SRATIONAL","ASCII","TIFF","EXIF","Exif","ExifVersion","exifVersion","GPS","GPSVersionID","IFD1Tags","JPEGInterchangeFormat","JPEGInterchangeFormatLength","IFD_offset","tags2extract","hash","types","sizes","extractFrom","br","headers","extractHeaders","app1","header","exifReader","rawHeaders","JPEGMeta","flip$1","crop$1","resize$2","rotate$1","exifRotate","ROTATE_90","ROTATE_180","ROTATE_270","checkRotation","orientation","Orientation","notJpeg","ImageTransformations","renderIcon$1","renderIconFromPack","iconsProvider","renderReplacableIconFromPack","renderLabel$1","renderCommonSpec","actionOpt","extraBehaviours","domFinal","renderCommon","specFinal","renderIconButtonSpec","tooltipAttributes","renderIconButton","iconButtonSpec","renderButton","translatedText","getAction","buttonType","renderFooterButton","renderDialogButton","schema$i","coupledPart","selfName","otherName","lock","onLockedChange","parts$6","locked","lockClass","factory$7","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","FormCoupledInputs","formatSize","unitDec","","px","pt","mm","pc","em","rem","cm","in","%","maxDecimal","numText","parseSize","sizeText","numPattern","convertUnit","inInch","supported","noSizeConversion","ratioSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","renderSizeInput","converter","ratioEvent","pLock","formGroup","getFieldPart","isField1","widthField","heightField","newSize","optCurrent","optOther","value1","value2","undo","redo","zoom","back","apply$1","swap","tempTransform","transformApply","internal","saveState","disable$1","enable$1","external$2","renderEditPanel","imagePanel","createButton","createIconButton","disableAllComponents","eventcomp","enableAllComponents","panelDom","noop$1","emit$1","emitDisable","emitEnable","emitTransform","emitTempTransform","getBackSwap","memContainer","ButtonPanel","emitTransformApply","createBackButton","createSpacer","createApplyButton","makeCropTransform","getRect","cropPanelComponents","hideCrop","CropPanel","memSize","constrain","makeResizeTransform","resizePanelComponents","sizeInput","ResizePanel","makeValueTransform","horizontalFlip","verticalFlip","counterclockwiseRotate","clockwiseRotate","flipRotateOnAction","operation","flipRotateComponents","FlipRotatePanel","makeSlider","makeVariableSlider","valTransform","variableFilterPanelComponents","createVariableFilterPanel","filterPanelComponents","FilterPanel","BrightnessPanel","ContrastPanel","GammaPanel","makeColorTransform","makeColorSlider","redOpt","memRed","blueOpt","memBlue","greenOpt","memGreen","colorizePanelComponents","ColorizePanel","getTransformPanelEvent","cropPanelUpdate","_anyInSystem","showCrop","resizePanelUpdate","measurements","getMeasurements","sharpenTransform","invertTransform","buttonPanelComponents","getApplyButton","global$8","global$9","global$a","global$b","global$c","getDocumentSize","scrollWidth","clientWidth","scrollHeight","clientHeight","updateWithTouchData","changedTouches","DragHelper","$eventOverlay","downButton","drag","startX","startY","handleElement","getElementById","handleElm","cursor","docSize","screenX","screenY","runtimeStyle","zIndex","opacity","appendTo","deltaX","deltaY","CropRect","currentRect","viewPortRect","clampRect","containerElm","instance","handles","dragHelpers","blockers","getAbsoluteRect","outerRect","relativeRect","getRelativeRect","innerRect","getInnerRect","moveRect","startRect","fire","setInnerRect","createDragHelper","blocker","repaint","activeHandle","moveAndBlock","keyCode","SPACEBAR","toggleVisibility","updateElementRect","xMul","yMul","setRect","setViewPortRect","setClampRect","helper","extend","loadImage","renderImagePanel","initialUrl","memBg","zoomState","cropRect","rectState","viewRectState","repaintImg","img","panelW","panelH","bg","cRect","zoomFit","updateSrc","aImg","lastViewRect","viewRect","inflate","currentZoom","newZoom","newRect","setButtonEnabled","enabled","renderSideBar","updateButtonUndoStates","undoEnabled","redoEnabled","memUndo","memRedo","UndoStack","removed","canUndo","canRedo","Delimiter","makeState","blobState","tempState","undoStack","getBlobState","setBlobState","getTempState","temp","updateTempState","newTempState","createState","destroyTempState","destroyState","destroyStates","states","addBlobState","addTempState","applyTempState","postApply","currentState","getHistoryStates","renderImageTools","historyStates","sideBar","disableUndoRedo","oImg","unblock","block","editPanel","applyButton","blobManipulate","catch","manipulate","tempManipulate","manipulateApply","currentUrl","factory$8","initialValues","selectClasses","selectAttributes","selectBehaviours","found","HtmlSelect","renderSelectBox","translatedOptions","chevron","selectWrap","baseInputBehaviours","multiline","validatingBehaviours","vl","classname","flex","renderInput","renderTextarea","wrap$2","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","nu$c","worker","value$3","error$1","fromResult$1","fromFuture","future","fromPromise","completer","FutureResult","separator$2","toMenuItem","staticMenuItem","toMenuItems","targets","filterLinkTargets","filteredTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","historyTargets","history","joinMenuLists","bothEmpty","filterByQuery","term","lowerCaseTerm","fileType","urlBackstage","urlInputValue","getLinkInformation","getHistory","renderInputButton","className","renderUrlInput","updateHistory","urlEntry","addToHistory","filetype","memUrlBox","getValidationHandler","urlBox","_menu","_entry","_item","makeIcon","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","controlHWrapper","openUrlPicker","urlData","chosenData","renderCheckbox","repBehaviour","toggleCheckboxHandler","memIcons","renderHtmlPanel","renderListbox","renderLabel$2","backstageShared","renderCollection","runOnItem","escapeAttribute","htmlLines","mapItemName"," - ","-","collectionEvents","tgt","currentActive","renderTable","renderTh","renderHeader","renderTd","renderTr","renderRows","make$5","makeIframe","iframeSpec","factories","bar","collection","alertbanner","textarea","listbox","iframe","checkbox","colorinput","dropzone","selectbox","sizeinput","urlinput","customeditor","htmlpanel","imagetools","table","noFormParts","_name","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","westEdgeX$1","middleX$1","eastEdgeX$1","northY$2","northeast$3","northwest$3","north$3","bubbleAlignments","valignCentre","alignCentre","alignLeft","alignRight","getToolbarAnchor","bodyElement","lazyAnchorbar","useFixedToolbarContainer","fixedToolbarAnchor","standardAnchor","getBannerAnchor","getToolbarOverflowAnchor","lazyMoreButton","getCursorAnchor","getNodeAnchor","getAnchors","toolbarOverflow","Anchors","hasCustomColors$1","getColors$1","ColorInputBackstage","defaultStyleFormats","isNestedFormat","isBlockFormat","isInlineFormat","isSelectorFormat","mapFormats","userFormats","fmt","customFormats","formats","formatName","registerCustomFormats","registerFormats","getStyleFormats","registeredUserFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","getStylePreview","register$3","enrichSupported","enrichMenu","submenuSpec","enrichCustom","customSpec","newItem","doEnrich","newItems_1","getStyleItems","init$7","getCssText","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","enriched","modifications","fromSettings","fromEvents","getFlattenedKeys","trim$1","hasContentEditableState","contentEditable","isContentEditableTrue","isContentEditableFalse","create$6","isChildOfContentEditableTrue","getElementText","innerText","getOrGenerateId","isAnchor","isValidAnchor","isEditable","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","elms","getAnchorTargets","getTargetElements","hasTitle","find$5","LinkTargets","STORAGE_KEY","HISTORY_LENGTH","isHttpUrl","isArrayOfUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","localStorage","SyntaxError","setAllHistory","itemsWithoutUrl","hasOwnProperty$2","isTruthy","makeMap","getTextSetting","defaultValue","getPicker","file_picker_callback","getPickerTypes","optFileTypes","file_picker_types","optLegacyTypes","file_browser_callback_types","optTypes","_picker","getPickerSetting","pickerTypes","entry","typeahead_urls","validatorHandler","filepicker_validator_handler","UrlInputBackstage","init$8","styleselect","showContextToolbarEvent","generate$6","output$1","apportion","total","parray","within","withinWidth","toUnit","fitLast","fits","overflow","overflower","fitAll","tryFit","divide","partition$3","getAnimationRoot","slideConfig","getDimensionProperty","dimension","getDimension","disableTransitions","shrinkingClass","growingClass","setShrunk","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","shrinker","doStartGrow","wasShrinking","beforeSize","fullSize","startPartialGrow","startCompleteGrow","setStartSize","setExpanded","onStartGrow","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isCollapsed","isGrowing","isShrinking","isTransitioning","toggleGrow","SlidingApis","exhibit$6","events$d","propertyName","onGrown","ActiveSliding","SlidingSchema","init$9","SlidingState","Sliding","schema$j","enhanceGroups","parts$7","factory$9","setGroups","groups","getGroupContainer","shell","toolbarBehaviours","Toolbar","schema$k","toolbarSchema","parts$8","toolbarDetail","overflowToggledClass","schema$l","parts$9","factory$a","tgroupBehaviours","itemSelector","ToolbarGroup","setStoredGroups","storedGroups","bGroups","refresh$1","toolbarToggleEvent","overf","builtGroups","overflowGroupSpec","_button","floating","overflowGroup","overflows","moreButton","factory$b","doSetGroups","getMoreButton","getOverflow","splitToolbarBehaviours","SplitToolbar","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","overflowOpt","onAttached","initGroups","eventBehaviours","memOverflow","builtoverFlow","builtOverflow","renderMoreToolbar","cyclicKeying","moreDrawerData","lazyToolbar","_moreButton","splitToolbarComponents","overflow-group","overflow-button","renderToolbar","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","MenuButtonSchema","createMenuButton","splitButtonSchema","createSplitButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","contextToolbarSchema","createContextToolbar","createContextForm","internalToolbarButtonExecute","onToolbarButtonExecute","itemApi","buttonApi","toolbarButtonEventOrder","getState$2","reflectState","ReflectingApis","events$e","reflectingConfig","reflectingState","updateState","renderComponents","newComponents","channel","rawData","ActiveReflecting","init$a","optS","ReflectingState","ReflectingSchema","Reflecting","schema$m","arrowPart","arrow","buttonPart","btn","splitDropdown","parts$a","factory$c","openMenu","executeOnButton","buttonEvents","ariaDescriptor","splitDropdownBehaviours","SplitDropdown","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","translatedTooltip","memDropdown","displayText","displayIcon","getButtonApi","getToggleApi","getMenuButtonApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","renderCommonToolbarButton","specialisation","toolbarButtonBehaviours","renderToolbarButton","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButton","renderToolbarToggleButtonWith","fetchChoices","renderSplitButton","displayChannel","underlinePath","buttonComp","aria-pressed","renderMenuButton","getFormApi","runOnExecute$1","formApi","renderContextButton","bridged","renderContextToggleButton","generateOne$1","generate$7","mementos","asSpecs","findPrimary","compInSystem","renderContextForm","commands","ContextForm","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","renderContextToolbar","currentWidth","newContents","oldContents","forwardContents","ancestor$3","transformed","matchTargetWith","toolbarApi","lookup$1","scopes","startNode","inNodeScope","inEditorScope","ToolbarLookup","categorise","forms","formNavigators","lookupTable","registerForm","contextForm","launch","registerToolbar","contextToolbar","ToolbarScopes","onSetupFormatToggle","unbindCell","formatChanged","initialized","onActionToggleFormat","rawItem","generateSelectItems","generateItem","si","invalid","validateItems","preItems","shouldHide","createMenuItems","createSelectButton","getComponent","nodeChangeHandler","process","rawFormats","buildBasicStaticDataset","ResizeTypes","delimiter","SemiColon","buildBasicSettingsDataset","settingName","alignMenuItems","getSpec","getMatchingValue","alignment","canApply","createAlignSelect","alignSelectMenu","addNestedMenuItem","defaultFontsFormats","systemStackFonts","isSystemFontStack","fontFamily","matchesSystemStack","fonts","font","getSpec$1","getFirstFont","queryCommandValue","createFontSelect","fontSelectMenu","defaultFontsizeFormats","round$1","precision","factor","toPt","fontSize","getSpec$2","matchOpt","_loop_1","Space","createFontsizeSelect","fontsizeSelectMenu","findNearest","getStyles","nodeChangeEvent","parents","matchNode","defaultBlocks","getSpec$3","detectedFormat","createFormatSelect","formatSelectMenu","getSpec$4","getFormatItems","flattenedItems","createStyleSelect","styleSelectMenu","defaultToolbar","renderFromBridge","bridgeBuilder","togglebutton","menubutton","splitbutton","styleSelectButton","fontsizeSelectButton","fontSelectButton","formatButton","alignMenuButton","extractFrom$1","bespokeButtons","fontsizeselect","fontselect","formatselect","align","removeUnusedDefaults","filteredItemGroups","subItem","convertStringToolbar","strToolbar","groupsStrings","createToolbar","lookupButton","toolbarItem","prefixes","identifyButtons","toolbarGroups","register$4","registryContextToolbars","contextbar","getBoxElement","contentAreaContainer","scroller","onScroll","lastAnchor","lastElement","nodeBounds","contentAreaBounds","aboveEditor","belowEditor","wrapInPopDialog","shortcuts","getScopes","alloySpec","buildToolbar","allButtons","toolbarKey","launchContext","anchorOverrides","lineAnchorSpec","anchorSpec","sElem","launchContextToolbar","setEditorTimeout","ContextToolbar","setup$3","mothership","ship","onTouchstart","onMouseup","onContentMousedown","onContentMouseup","onWindowScroll","onWindowResize","Events","parts$b","partType$1","factory$d","setMenus","buttonSpec","activeButton","hoveredButton","activeComp","hoveredComp","prev","SilverMenubar","owner$4","schema$n","getPartName$1","sketch$2","sSpec","slot","make$6","getSlotNames","getSlot","onSlot","def","onSlots","doShowing","doShow","doHide","hideSlot","hideSlots","hideAllSlots","showSlot","slotBehaviours","slotApis","SlotContainer","sidebarSchema","createSidebar","setup$4","sidebars","addToggleButton","handleToggle","makePanels","panelConfigs","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","setSidebar","sidebar","optSlider","toggleSidebar","optSlotContainer","whichSidebar","sidebarOpen","fixSize","autoSize","renderSidebar","renderSpinner","toggleThrobber","renderThrobber","setup$5","lazyThrobber","throbberState","timerId","factory$e","getSocket","getToolbar","setToolbar","getThrobber","focusToolbar","setMenubar","menubar","focusMenubar","partMenubar","partToolbar","renderer","sliding","partSocket","partSidebar","partThrobber","OuterContainer","grps","grp","defaultMenubar","defaultMenus","edit","tools","help","make$7","removedMenuItems","itemName","removedMenuItem","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","menuData","isNotSeparator","fireSkinLoaded","fireResizeEditor","fireBeforeRenderUI","fireResizeContent","Events$1","fireSkinLoaded$1","_skinLoaded","SkinLoaded","loadSkin","skinUiCss","contentCSS","DOM","styleSheetLoader","handleSwitchMode","uiComponents","outerContainer","forEach","rawUiConfig","targetNode","readonly","lastDimensions","removeResize","socket","setMode","addQueryValueHandler","drawer","refreshDrawer","iframeContainer","editorContainer","Iframe","getOrigin","offsetParent$1","offsetP","adt$b","subtract","add$4","transform$1","changes","asFixed","coord","asAbsolute","asOffset","withinRange","coord1","coord2","toStyles","translate$1","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","absolute$2","fixed$1","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","disappear","isPartiallyVisible","isCompletelyVisible","getAttr","getPrior","dockInfo","leftAttr","topAttr","setPrior","absLeft","absTop","clearPrior","morphToAbsolute","morphToFixed","asFixed$1","viewportPt","fixedViewport","fixedY","getMorph","isDocked","refresh$2","lazyViewport","contextual","contextInfo","lazyContext","method","morph","DockingApis","events$f","dockState","ActiveDocking","defaultLazyViewport","DockingSchema","Docking","render$1","floatContainer","splitSetting","calcPosition","location","setChromePosition","tbar","updateChromeUi","addClass","tb","uiContainer","getBehaviours$2","Inline","nu$d","transpose$1","dx","dy","fromPageXY","pageX","pageY","fromClientXY","transposeContentAreaContainer","containerPos","getPos","getPointAnchor","getSelectionAnchor","getNodeAnchor$1","patchPipeConfig","shouldNeverUseNative","contextmenu_never_use_native","getMenuItems","defaultItems","contextMenus","getContextMenu","Settings$1","isSeparator$1","separator$3","makeContextItem","addContextMenuGroup","groupItems","lastMenuItem","generateContextMenu","selectedElement","items_1","allItems","isNativeOverrideKeyEvent","setup$6","contextmenu","isTriggeredByKeyboardEvent","parseToInt","numToPx","Utils","initialAttribute","resetZIndex","initZIndex","changeZIndex","zindex","instigate","anyComponent","discard","get$d","snapsInfo","set$8","getCoords","snapInfo","moveOrSnap","newCoord","findSnap","fixedCoord","spanned","stopDrag","snaps","getSnapPoints","sensor","inRange","getCurrentCoord","calcNewCoord","optSnaps","currentCoord","translated","snapping","onSensor","dragBy","dragConfig","repositionTarget","onDrag","defaultLazyViewport$1","SnapSchema","init$b","dragApi","forceDrop","drop","delayDrop","getData$1","getDelta$1","MouseData","dragState","dlt","z-index","blockerClass","reset","schema$o","getDataFrom","getData$2","getDelta$2","TouchData","handlers$1","schema$p","mouse","DraggingBranches","init$c","previous","calculateDelta","dragEvent","nuData","DragState","Dragging","dragger","calcCappedSize","originalSize","minSize","maxSize","minOverride","maxOverride","getDimensions","deltas","resizeType","originalHeight","originalWidth","Both","resize$3","dim","isHidden$1","renderElementPath","getDataPath","newPathElements","data-index","tab-index","aria-level","divider","newAcc","updatePath","newPath","isDefaultPrevented","isPropagationStopped","ElementPath","renderWordCount","replaceCountText","words","characters","currentVal","newMode","wordCount","renderStatusbar","renderResizeHandlerIcon","renderBranding","linkHtml","getResizeType","plugins","None","Vertical","getTextComponents","getComponents","setup$7","lazyOuterContainer","dirAttributes","memAnchorBar","lazyAnchorBar","throbber","statusbar","socketSidebarContainer","hasToolbar","hasMenubar","editorComponents","containerComponents","visibility","getUi","broadcastAll","setEditorSize","baseWidth","getStyle","baseHeight","minWidth","minHeight","parsedWidth","mw","parsedHeight","mh","stringWidth","stringHeight","renderUI","Render","register$5","alignToolbarButtons","cmd","alignNoneToolbarButton","AlignmentButtons","toggleFormat","registerFormatButtons","registerCommandButtons","registerCommandToggleButtons","registerButtons","registerMenuItems","addMenuItem","register$6","SimpleControls","toggleUndoRedoState","checkState","onUndoStateChange","registerMenuItems$1","registerButtons$1","register$7","UndoRedo","toggleVisualAidState","hasVisual","onVisualAid","registerMenuItems$2","addToggleMenuItem","registerToolbarButton","register$8","VisualAid","toggleOutdentState","queryCommandState","onNodeChange","registerButtons$2","register$9","IndentOutdent","register$a","ComplexControls","setup$8","FormatControls","AriaLabel","labelledBy","labelledElement","labelElement","schema$q","basic$1","parts$c","dragBlockClass","describedBy","describedElement","describeElement","describeId","factory$f","dialogBusyEvent","dialogIdleEvent","busyBehaviours","showDialog","busyComp","externalBlocker","bc","getBusySpec","busySpec","busy","hideDialog","blockerDom","getDialogBody","getDialogFooter","setBusy","setIdle","modalEventsId","alloy.system.attached","getFooter","aria-modal","modalBehaviours","ModalDialog","alertBannerFields","createBarFields","itemsField","buttonFields","checkboxFields","checkboxDataProcessor","formComponentFields","colorInputFields","colorInputDataProcessor","colorPickerFields","colorPickerDataProcessor","dropZoneFields","dropZoneDataProcessor","createGridFields","iframeFields","iframeDataProcessor","inputFields","inputDataProcessor","selectBoxFields","selectBoxDataProcessor","sizeInputFields","sizeInputDataProcessor","textAreaFields","textAreaDataProcessor","urlInputFields","urlInputDataProcessor","customEditorFields","customEditorDataProcessor","htmlPanelFields","imageToolsFields","collectionFields","collectionDataProcessor","createLabelFields","tableFields","createItemsField","itemSchema$2","sErr","passValue","panelFields","tabFields","tabPanelFields","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","createDialog","getAllObjects","isNamedItem","dataProcessors","getDataProcessor","getNamedItems","createDataValidator","urlDialogButtonSchema","urlDialogSchema","createUrlDialog","extract$1","internalDialog","dataValidator","DialogManager","openUrl","redial","toValidValues","renderBodyPanel","memForm","formValue","vals","factory$g","tabButtonBehaviours","TabButton","aria-selected","schema$r","tabsPart","barDetail","tabSpec","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$d","factory$h","debug.sketcher","tabbarBehaviours","selectedClass","tab","Tabbar","factory$i","tabviewBehaviours","Tabview","schema$s","barPart","tabs","viewPart","parts$e","factory$j","tabValue","tabview","tabWithValue","tabData","onChangeTab","changeTabBy","section","byPred","tabSectionBehaviours","selectFirst","onDismissTab","getViewItems","showTab","tabKey","getTabIfNotActive","optTab","TabSection","measureHeights","allTabs","tabviewComp","getMaxHeight","heights","getMaxTabviewHeight","dialogBody","rootElm","isFixed","dialogChrome","updateTabviewHeight","maxTabHeight","smartTabHeight","extraEvents","maxTabHeightOpt","oldHeight","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","currentData","setDataOnForm","oldTab","tabMode","_viewItems","oldTitle","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","foo","ariaAttrs","incoming","_comp","isTabPanel","ariaAttributes","renderInlineBody","contentId","renderModalBody","bodySpec","renderIframeBody","initCommonEvents","fireApiEvent","_event","onUnblock","onBlock","initUrlDialog","getInstanceApi","withSpec","_c","currentDialog","initDialog","currentDialogInit","onTabChange","SilverDialogEvents","makeButton","lookup$2","footerButtons","buttonName","memButton","_data","buttonGroups","makeGroup","startButtons","endButtons","renderFooter","initFoo","lookupByName","renderInlineFooter","renderModalFooter","footer","getCompByName","form_1","getFormWrapper","footerState","validateData","dialogState","getDialogApi","doRedial","withRoot","valueComp","setData","prevData","instanceApi","mergedData","newInternalData","bodyState","tabSection","dialogInit","renderClose","renderTitle","renderInlineHeader","titleId","renderModalHeader","pTitle","pHandle","draghandle","pClose","draggable","getHeader","getEventExtras","lazyDialog","closeWindow","blockEvent","bs","renderModalDialog","dialogEvents","extraStyles","renderDialog","dialogSize","modalAccess","getForm","outerForm","global$d","getUrlDialogApi","sendMessage","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","isCustomMessage","handleMessage","insertContent","renderUrlDialog","max-height","max-width","iframeUri","base_uri","href","iframeDomain","protocol","host","port","messageHandlerUnbinder","isSameOrigin","onMessage","unbinder","iframeEle","iframeWin","postMessage","renderInlineDialog","_b","dialogLabelId","dialogContentId","memHeader","memBody","memFooter","pUntitled","pBodyMessage","pFooter","pFooterGroup","renderDialog$1","partSpecs","setup$9","closeDialog","alertDialog","memFooterClose","footerCloseButton","setup$a","confirmDialog","memFooterYes","footerNo","footerYesButton","validateData$1","setup$b","openInlineDialog","openModalDialog","openModalUrlDialog","internalInitialData","config$1","dialogUi","inlineDialog","confirm","alert","WindowManager","Theme","windowMgr","getWindowManagerImpl","getNotificationManagerImpl","__webpack_require__","IObject","toObject","toLength","asc","module","exports","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","that","O","getCreationDateClasses","getModificationDateClasses","getSelectedContentClasses","getPreviewReplaceValues","getTemplateReplaceValues","getTemplates","editorSettings","templates","getCdateFormat","getMdateFormat","addZeros","getDateTime","daysShort","daysLong","monthsShort","monthsLong","getFullYear","getYear","getMonth","getDate","getHours","getMinutes","getSeconds","getDay","DateTimeHelper","createTemplateList","templateList","replaceTemplateValues","templateValues","replaceVals","hasClass","insertTemplate","addVisual","Templates","Commands","dateFormat","FilterContent","entitiesAttr","\"","<",">","&","'","htmlEscape","getPreviewContent","contentCssLinks_1","bodyClass","body_class","createTemplates","notificationManager","template","createSelectBoxItems","findTemplate","templateTitle","getTemplateContent","updateDialog","newTemplateTitle","previewHtml","openDialog","selectBoxItems","buildDialogSpec","bodyItems","dialogApi","optTemplates","Dialog","Buttons","Plugin","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","noGlobal","getProto","getPrototypeOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","noModule","DOMEval","script","toType","jQuery","rtrim","isArrayLike","jquery","pushStack","elems","prevObject","copyIsArray","isPlainObject","expando","proto","Ctor","isEmptyObject","globalEval","makeArray","inArray","second","grep","callbackInverse","callbackExpect","arg","guid","Symbol","iterator","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","identifier","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escaped","escapedWhitespace","high","rcssescape","fcssescape","asCodePoint","unloadHandler","disabledAncestor","addCombinator","els","seed","nid","newSelector","newContext","getElementsByTagName","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","cur","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","hasCompare","subWindow","attachEvent","createComment","getElementsByName","attrId","getAttributeNode","tmp","matchesSelector","oMatchesSelector","disconnectedMatch","adown","bup","compare","sortDetached","aup","bp","expr","specified","escape","uniqueSort","duplicates","detectDuplicates","sortStable","createPseudo"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","tabIndex","selectedIndex","even","odd","lt","gt","radio","password","tokens","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","compiled","isXMLDoc","escapeSelector","until","truncate","siblings","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","createOptions","object","flag","Identity","Thrower","adoptValue","noValue","Callbacks","firing","fired","queue","firingIndex","once","stopOnFalse","fireWith","Deferred","pipe","fns","newDefer","returned","onProgress","maxDepth","depth","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","readyException","readyList","completed","readyWait","wait","readyState","doScroll","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","letter","camelCase","acceptData","Data","configurable","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","clearQueue","defer","pnum","rcssNum","cssExpand","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","wrapMap","thead","tr","td","_default","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","rhtml","buildFragment","scripts","ignored","htmlPrefilter","checkClone","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","origFn","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","triggered","delegateType","bindType","namespace","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","noBubble","trigger","beforeunload","returnValue","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","stopImmediatePropagation","altKey","cancelable","eventPhase","metaKey","char","charCode","offsetX","offsetY","pointerId","pointerType","targetTouches","toElement","mouseenter","mouseleave","pointerenter","pointerleave","orig","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","replaceWith","replaceChild","prependTo","insertAfter","replaceAll","rnumnonpx","opener","rboxStyle","curCSS","computed","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","boxModelAdjustment","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","Tween","easing","cssHooks","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","orphans","widows","origName","isCustomProp","isFinite","padding","border","propHooks","eased","duration","fx","linear","swing","fxNow","inProgress","rfxtypes","rrun","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflowX","overflowY","propFilter","specialEasing","prefilters","currentTime","tweens","originalProperties","originalOptions","gotoEnd","*","tweener","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","classesToArray","removeProp","propFix","for","class","curValue","finalValue","stateVal","classNames","rreturn","valHooks","optionSet","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","simulate","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","conv","responseFields","dataFilter","throws","lastModified","etag","isLocal","processData","async","contentType","accepts","* text","text html","text json","text xml","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","statusText","finalText","crossDomain","hasContent","ifModified","beforeSend","nativeStatusText","modified","getJSON","getScript","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","onreadystatechange","responseText","binary","text script","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","fnOver","fnOut","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","cof","isValidId","getId","selectedNode","tagName","getAttrib","createHTML","Anchor","insertAnchor","newId","currentId","isAnchorNode","setContentEditable","parser","addNodeFilter","serializer","selectorChangedWithUnbind","fireInsertCustomChar","chr","insertChar","evtChr","Actions","getCharMap","charmap","getCharMapAppend","charmap_append","UserDefined","getDefaultCharMap","charmapFilter","getCharsFromSetting","settingValue","extendCharMap","userCharMap","userCharMapAppend","userDefinedGroup","cg","getCharMap$1","CharMap","Api","charMatches","lowerCasePattern","Scan","patternName","charMap","makeGroupItems","makeTabs","charGroup","currentTab","makePanel","makeTabPanel","scanAndSet","SEARCH_DELAY","updateFilter","bridgeSpec","changeData","addAutocompleter","autocompleteApi","setRng","isTextNode","isListNode","isOlUlNode","isListItemNode","isDlItemNode","isTableCellNode","isBr","isFirstChild","isLastChild","isTextBlock","getTextBlockElements","isBlock","blockElements","isBogusBr","previousSibling","isEmpty","keepBookmarks","isChildOfBody","isChildOf","NodeType","getNormalizedPoint","normalizeRange","outRng","rangeStart","rangeEnd","Range","createBookmark","bookmark","setupEndPoint","data-mce-type","resolveBookmark","restoreEndPoint","createRng","Bookmark","groupBy","wasType","htmlElement","HTMLElement","getParentList","selectionStart","getParent","getClosestListRootElm","isParentListSelected","parentList","selectedBlocks","findSubLists","getSelectedSubLists","getSelectedBlocks","findParentListItemsNodes","listItemsElms","parentLi","getSelectedListItems","getSelectedDlItems","parentTableCell","findLastParentListNode","parentLists","getSelectedLists","firstList","subsequentLists","getSelectedListRoots","selectedLists","getUniqueListRoots","lists","listRoots","isList","Selection","fromElements","contains$2","is$1","before$1","shallowAs","mutate","joinSegment","joinSegments","segments","appendSegments","head$1","tail","createSegment","listType","createSegments","populateSegments","listAttributes","itemAttributes","normalizeSegment","appendItem","writeShallow","cast","newCast","writeDeep","composeList","entries","isList$1","hasFirstChildList","hasLastChildList","isIndented","cloneItemContent","li","createEntry","indentEntry","indentation","cloneListProperties","previousSiblingEntry","normalizeEntries","matchingEntry","parseItem","itemSelection","selectionState","currentItemEntry","childListEntries","parseList","newDepth","parseLists","initialDepth","sourceList","createTextBlock","contentNode","textBlock","blockName","hasContentNode","getBlockElements","createFragment","forced_root_block","setAttribs","forced_root_block_attrs","data-mce-bogus","fireListEvent","outdentedComposer","indentedComposer","composeEntries","groupIsIndented","indentSelectedEntries","getItemSelection","selectedListItems","listsIndentation","entrySets","entrySet","composedLists","composedList","DOM$1","splitList","ul","tmpRng","bookmarks","newBlock","removeAndKeepBookmarks","extractContents","SplitList","outdentDlItem","dl","indentDlItem","dlIndentation","dlItems","selectionIndentation","isHandled","getBookmark","moveToBookmark","indentListSelection","outdentListSelection","flattenListSelection","isCustomList","listToggleActionFromListName","listName","updateListStyle","setStyle","updateListAttrs","updateListWithDetails","removeStyles","getEndPointNode","getSelectedTextBlocks","textBlocks","endNode","isBookmarkNode","hasCompatibleStyle","sib","sibStyle","detailStyle","applyList","listItemName","getContentEditable","listBlock","rename","mergeWithAdjacentLists","isValidLists","list1","list2","hasSameListStyle","targetStyle","hasSameClasses","elm1","elm2","shouldMerge","updateList","newList","toggleMultipleLists","hasListStyleDetail","toggleSingleList","toggleList","selectedSubLists","ToggleList","DOM$2","normalizeList","normalizeLists","NormalizeLists","findNextCaretContainer","isForward","nonEmptyBlocks","getNonEmptyElements","walker","hasOnlyOneBlockChild","unwrapSingleBlockChild","moveChildren","fromElm","toElm","targetElm","mergeLiElements","listNode","nestedLists","mergeIntoEmptyLi","fromLi","toLi","setCursorLocation","mergeForward","mergeBackward","resolvedBookmark","backspaceDeleteFromListToListCaret","otherLi","selectionStartElm","removeBlock","parentBlock","backspaceDeleteIntoListCaret","otherLi_1","backspaceDeleteCaret","backspaceDeleteRange","startListParent","backspaceDelete","DELETE","Delete","queryListCommandState","command","addQueryStateHandler","shouldIndentOnTab","setupTabKey","metaKeyPressed","Keyboard","listState","tableCellIndex","hasPlugin","plugin","getAutoLinkPattern","getDefaultLinkTarget","rangeEqualsDelimiterOrSpace","rangeString","handleEclipse","parseCurrentLine","handleSpacebar","handleEnter","scopeIndex","rngText","autoLinkPattern","defaultLinkTarget","setAttrib","autoUrlDetectState","Keys","findAndReplaceDOMText","regex","replacementNode","captureGroup","blockElementsMap","hiddenTextElementsMap","shortEndedElementsMap","getMatchIndexes","txt","stepThroughMatches","replaceFn","startNodeIndex","endNodeIndex","innerNodes","atIndex","curNode","matchLocation","matchIndex","genReplacer","makeReplacementNode","stencilNode_1","fill","node_1","elA","innerNode","innerEl","elB","getWhiteSpaceElements","getShortEndedElements","FindReplaceText","getElmIndex","markAllMatches","currentIndexState","findSpansByIndex","spans","moveSelection","testIndex","scrollIntoView","removeNode","matchCase","wholeWord","isMatchSpan","currentMatchIndex","hasMore","nextIndex","hasNext","hasPrev","keepEditorSelection","selectedText","updateButtonStates","updateNext","updatePrev","disableAll","notFoundAlert","doSubmit","findtext","caseState","matchcase","wholewords","replacetext","getScripts","getAudioTemplateCallback","getVideoTemplateCallback","hasLiveEmbeds","shouldFilterHtml","getUrlResolver","hasAltSource","hasPoster","hasDimensions","getVideoScriptMatch","VideoScript","trimPx","getSize","setSize","Size","getMaxWidth","setMaxWidth","getEphoxEmbedIri","isEphoxEmbed","htmlToDataSax","allow_conditional_comments","source1","movie","videoScript","source2","poster","ephoxEmbedHtmlToData","htmlToData","HtmlToData","guess","mimes","mp3","wav","mp4","webm","ogg","swf","fileEnd","mime","Mime","setAttributes","updatedAttrs","normalizeHtml","writer","updateHtmlSax","updateAll","hasImage","sourceCount","comment","cdata","imgAttrs","isEphoxEmbed$1","updateEphoxEmbed","outerHTML","updateHtml","UpdateHtml","urlPatterns","allowFullscreen","getUrl","newUrl","matchPattern","getIframeHtml","getFlashHtml","getAudioHtml","audioTemplateCallback","source2mime","getVideoHtml","videoTemplateCallback","source1mime","getScriptHtml","dataToHtml","dataIn","embed","convertURL","encode","DataToHtml","embedPromise","rej","wrappedResolve","defaultPromise","loadedData","getEmbedHtml","embedHandler","isCached","Service","errorMessage","snippetToData","embedSnippet","getEditorData","dataEmbed","addEmbedHtml","snippetData_1","nuData_1","selectPlaceholder","beforeObjects","afterObjects","handleInsert","submitForm","editorData","defaultData","getSourceData","handleSource1","serviceData","handleEmbed","dataFromEmbed","mediaInput","generalTab","embedTextarea","embedTab","advancedFormItems","advancedTab","sanitize","blocked","serializeStyle","parseStyle","Sanitize","createPlaceholderNode","placeHolder","shortEnded","retainAttributesAndInnerHtml","transparentSrc","data-mce-object","createPreviewIframeNode","previewWrapper","previewNode","shimNode","allowfullscreen","frameborder","sourceNode","attrName","attrValue","attribs","ai","isPageEmbedWrapper","nodeClass","isWithinEmbedWrapper","placeHolderConverter","ceFalse","Nodes","specialElements","getSpecialElements","boolAttrs","getBoolAttrs","addAttributeFilter","realElm","realElmName","unescape","$elm","ResolveName","objectType","stateSelectorAdapter","isInlinePattern","isBlockPattern","sortPatterns","normalizePattern","formatOrCmd","onFormat","onCommand","start_1","end_1","replacement","commandValue","denormalizePattern","createPatternSet","inlinePatterns","blockPatterns","patternsState","setPatterns","newPatterns","normalized","getPatterns","defaultPatterns","getPatternSet","startsWith","generatePath","generatePathRange","resolvePath","nodePath","optNode","resolvePathRange","findPattern","lastIndexOf","textBefore","tw","findInlinePatternStart","requireGap","sameBlockParent","spot","startPos","findInlinePatternRec","newOffset","allowInner","recursiveMatch","patternsWithoutCurrent","areas","outermostRange","state_1","findNestedInlinePatterns","findBlockPattern","firstTextNode","lift","applyInlinePatterns","newMarker","markerRange","ids","markerPrefix","markerIds","_area","textOutsideRange","splitText","deleteData","_d","textInsideRange","optRange","isBlockFormatName","formatSet","applyBlockPattern","patternSet","inlineAreas","blockArea","handleInlineKey","checkKeyEvent","codes","checkKeyCode","modifierPressed","checkCharCode","chars","KeyHandler","charCodes","keyCodes","fireVisualBlocks","toggleVisualBlocks","pluginUrl","enabledState","VisualBlocks","isEnabledByDefault","Bindings","toggleActiveState","editorEventCallback","$export","$find","KEY","forced","P","F","enableWhenDirty","hasOnSaveCallback","hasOnCancelCallback","displayErrorMessage","save","formObj","isDirty","execCallback","setDirty","onsubmit","startContent","resetContent","stateToggle","addShortcut","hasProPlugin","DetectProPlugin","clipboard","quirks","firePastePreProcess","isWordHtml","wordContent","firePastePostProcess","firePastePlainTextToggle","firePaste","ieFake","togglePlainTextPaste","pasteFormat","pasteHtml","pasteText","internalMimeType","internalMark","mark","unmark","isMarked","InternalHtml","internalHtmlMime","isPlainText","toBRs","openContainer","rootTag","rootAttrs","encodeAllRaw","toBlockElements","blocks","tagOpen","tagClose","paragraphs","stitch","Newlines","shouldBlockDrop","shouldPasteDataImages","shouldFilterDrop","getPreProcess","getPostProcess","getWebkitStyles","shouldRemoveWebKitStyles","shouldMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getRetainStyleProps","getWordValidElements","defaultValidElements","shouldConvertWordFakeLists","shouldUseDefaultFilters","domParser","shortEndedElements","ignoreElements","walk","currentNode","trimHtml","trimSpaces","s1","s2","createIdGenerator","isMsEdge","isWordContent","isNumericList","isBulletList","convertFakeListsToProperLists","currentListNode","prevListNode","lastLevel","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","_listLevel","nodeText","filterStyles","validStyles","styleValue","outputStyles","filterWordContent","retainStyleProperties","spaces","validElements","valid_elements","valid_children","attributesOrder","rootNode","preProcess","WordFilter","processResult","cancelled","postProcessFilter","tempBody","postProcessArgs","filterContent","preProcessArgs","hasEventListeners","ProcessFilters","removeMeta","paste","isAbsoluteUrl","isImageUrl","createImage","pasteHtmlFn","createLink","linkSelection","insertImage","smartInsertContent","SmartPaste","par","asyncValues","asyncValue","par$1","futures","mapM","pasteHtml$1","internalFlag","getDataTransferItems","mceInternalUrlPrefix","legacyText","getClipboardContent","clipboardEvent","clipboardData","getDoc","text/html","hasContentType","clipboardContent","hasHtmlOrText","getBase64FromUri","isValidDataUriImage","imgElm","images_dataimg_filter","extractFilename","uniqueId","pasteImage","imageItem","images_reuse_filename","blobCache","editorUpload","blobInfo","existingBlobInfo","findFirst","cachedBlobInfo","blobUri","isClipboardEvent","readBlobsAsDataUris","getAsFile","getImagesFromDataTransfer","images","pasteImageData","paste_data_images","blobResults","isBrokenAndroidClipboardEvent","isKeyboardPasteEvent","registerEventHandlers","pasteBin","keyboardPastePlainTextState","keyboardPasteTimeStamp","insertClipboardContent","isKeyBoardPaste","plainTextMode","isPlainTextHtml","isDefaultContent","removePasteBinOnKeyUp","webkit","getLastRng","clipboardTimer","clipboardDelay","registerEventsAndFilters","isPasteInsert","isWebKitFakeUrl","isDataUri","allow_html_data_urls","getPasteBinParent","isExternalPasteBin","delegatePasteEvents","pasteBinElm","pasteBinDefaultContent","isDefault","lastRngCell","gecko","pasteBinClone","pasteBinClones","dirtyWrappers","cleanWrapper","copyAndRemove","isPasteBin","PasteBin","Clipboard","hasWorkingClipboardApi","iOS","setHtml5Clipboard","clearData","setClipboardData","markedHtml","outer","contenteditable","inner","setStyles","offscreenRange","selectNodeContents","isTableSelection","hasSelectedContent","CutCopy","getCaretRangeFromEvent","getCaretRangeFromPoint","isPlainTextFileUrl","plainTextContent","setFocusedRange","draggingInternallyState","dropContent","content_1","DragDrop","postProcess","PrePostProcess","addPreProcessFilter","filterFunc","addPostProcessFilter","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","webKitStylesSetting","dom_1","decode","removeUnderlineAndFontInAnchor","Quirks","makeSetupHandler","pastePlainTextToggleHandler","addI18n","Redo","Undo","Cut","Copy","Paste","Select all","New document","Ok","Cancel","Visual aids","Bold","Italic","Underline","Strikethrough","Superscript","Subscript","Clear formatting","Align left","Align center","Align right","Justify","Bullet list","Numbered list","Decrease indent","Increase indent","Close","Formats","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.","Headers","Header 1","Header 2","Header 3","Header 4","Header 5","Header 6","Headings","Heading 1","Heading 2","Heading 3","Heading 4","Heading 5","Heading 6","Preformatted","Div","Pre","Code","Paragraph","Blockquote","Blocks","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.","Fonts","Font Sizes","Class","Browse for an image","OR","Drop an image here","Upload","Block","Align","Default","Circle","Disc","Square","Lower Alpha","Lower Greek","Lower Roman","Upper Alpha","Upper Roman","Anchor...","Name","Id","Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.","You have unsaved changes are you sure you want to navigate away?","Restore last draft","Special characters...","Source code","Insert/Edit code sample","Language","Code sample...","Color Picker","R","G","B","Left to right","Right to left","Emoticons...","Metadata and Document Properties","Title","Keywords","Description","Robots","Author","Encoding","Fullscreen","Action","Shortcut","Help","Address","Focus to menubar","Focus to toolbar","Focus to element path","Focus to contextual toolbar","Insert link (if link plugin activated)","Save (if save plugin activated)","Find (if searchreplace plugin activated)","Plugins installed ({0}):","Premium plugins:","Learn more...","You are using {0}","Plugins","Handy Shortcuts","Horizontal line","Insert/edit image","Image description","Source","Dimensions","Constrain proportions","General","Advanced","Style","Vertical space","Horizontal space","Border","Insert image","Image...","Image list","Rotate counterclockwise","Rotate clockwise","Flip vertically","Flip horizontally","Edit image","Image options","Zoom in","Zoom out","Crop","Resize","Brightness","Sharpen","Color levels","Gamma","Invert","Apply","Back","Insert date/time","Date/time","Insert/Edit Link","Insert/edit link","Text to display","Url","Open link in...","Current window","New window","Remove link","Link...","Paste or type a link","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?","Link list","Insert video","Insert/edit video","Insert/edit media","Alternative source","Alternative source URL","Media poster (Image URL)","Paste your embed code below:","Embed","Media...","Nonbreaking space","Page break","Paste as text","Preview","Print...","Save","Find","Replace with","Replace","Replace all","Previous","Next","Find and replace...","Could not find the specified string.","Match case","Find whole words only","Spell check","Ignore","Ignore all","Finish","Add to Dictionary","Insert table","Table properties","Delete table","Row","Column","Cell properties","Merge cells","Split cell","Insert row before","Insert row after","Delete row","Row properties","Cut row","Copy row","Paste row before","Paste row after","Insert column before","Insert column after","Delete column","Cols","Rows","Cell spacing","Cell padding","Show caption","Left","Center","Right","Cell type","Scope","Alignment","H Align","V Align","Top","Middle","Bottom","Header cell","Row group","Column group","Row type","Header","Body","Footer","Border color","Insert template...","Template","Text color","Background color","Custom...","Custom color","No color","Remove color","Table of Contents","Show blocks","Show invisible characters","Word count","Words: {0}","{0} words","File","Edit","Insert","View","Format","Table","Powered by {0}","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help","Image title","Border width","Border style","Warn","Valid","To open the popup, press Shift+Enter","Rich Text Area. Press ALT-0 for help.","System Font","Failed to upload image: {0}","Failed to load plugin: {0} from url {1}","Failed to load plugin url: {0}","Failed to initialize plugin: {0}","example","Search","All","Currency","Text","Quotations","Mathematical","Extended Latin","Symbols","Arrows","User Defined","dollar sign","currency sign","euro-currency sign","colon sign","cruzeiro sign","french franc sign","lira sign","mill sign","naira sign","peseta sign","rupee sign","won sign","new sheqel sign","dong sign","kip sign","tugrik sign","drachma sign","german penny symbol","peso sign","guarani sign","austral sign","hryvnia sign","cedi sign","livre tournois sign","spesmilo sign","tenge sign","indian rupee sign","turkish lira sign","nordic mark sign","manat sign","ruble sign","yen character","yuan character","yuan character, in hong kong and taiwan","yen/yuan character variant one","Loading emoticons...","Could not load emoticons","People","Animals and Nature","Food and Drink","Activity","Travel and Places","Objects","Flags","Characters","Characters (no spaces)","Error: Form submit field collision.","Error: No form element found.","Update","Color swatch","Turquoise","Green","Blue","Purple","Navy Blue","Dark Turquoise","Dark Green","Medium Blue","Medium Purple","Midnight Blue","Yellow","Orange","Red","Light Gray","Gray","Dark Yellow","Dark Orange","Dark Red","Medium Gray","Dark Gray","Black","White","Switch to or from fullscreen mode","Open help dialog","formatting","permanent pen","comments","Special character","Code sample","Color","Emoticons","Document properties","Insert link","Target","Link","Poster","Media","Print","Prev","Find and replace","Whole words","Spellcheck","Caption","Insert template","applyListFormat","list-style-type","getNumberStyles","getBulletStyles","getSelectedStyleType","listElm","ListUtils","styleValueToText","isWithinList","iconStyle","listStyleType","listStyle","addControl","fireRestoreDraft","fireStoreDraft","fireRemoveDraft","timeString","defaultTime","multiples","toParse","parsedTime","shouldAskBeforeUnload","getAutoSavePrefix","pathname","shouldRestoreWhenEmpty","getAutoSaveInterval","autosave_interval","getAutoSaveRetention","autosave_retention","forcedRootBlockName","hasDraft","removeDraft","removeItem","storeDraft","no_events","restoreDraft","startStoreDraft","started","setInterval","restoreLastDraft","_beforeUnloadHandler","autosave","onbeforeunload","invalidTypeMessage","incorrect","COMMENT","isComment","sourceDom","targetDom","Node$1","rawParent","prevSibling","coords","detailnew","extended","rowdata","elementnew","rowdatanew","rowcells","rowdetails","Structs","ancestors","ancestors$1","children$2","child$1","ancestor$1","child$2","descendant$1","firstLayer","filterFirstLayer","LayerSelector","_isRoot","isRootOrUpperTable","notCell","neighbours","neighbourCells","neighbourRows","firstCell","grid$1","rowProp","colProp","rowsCount","cols","TableLookup","fromTable","parentSection","parentName","rowspan","colspan","fromPastedRows","DetailsList","getAt","warehouse","findItem","filtered","filterItems","maxRows","maxColumns","currentRow","cr","cc","newpos","justCells","Warehouse","statsStruct","findSelectedStats","house","totalColumns","totalRows","minRow","minCol","maxRow","maxCol","endRow","endCol","seenSelected","fillInGaps","stats","needCell","clean","emptyRows","selectedSelector","unselectedCells","CopySelected","getEnd","first$1","copy$1","cloneChildren","createCell","replica","pasteReplace","cellContent","cloneFormats","oldCell","newCell","firstText","formatSelector","clonedFormat","cellOperations","formatsToClone","docu","lastNode","gap","TableFill","TagBoundaries","DomUniverse","isBoundary","isEmptyTag","comparePosition","copyAttributesTo","destination","as","up","down","copyTo","afterAll","appendAll","setText","leftRight","bisect","universe","ind","breakToRight","breakToLeft","prior","breakPath","isTop","breaker","splits","breakage","nextChild","Breaker","look","oneAll","unsafeOne","commonElement","Shared","eq$1","unsafeSubset","ps1","ps2","finder","topDown","startIndex","sIndex","eIndex","ancestors$2","pruned1","pruned2","firstpath","secondpath","subset","ancs","Subset","sharedOne","subset$1","ancestors$3","breakToLeft$1","breakToRight$1","breakPath$1","Parent","sharedOne$1","subset$2","ancestors$4","breakToLeft$2","breakToRight$2","breakPath$2","DomParent","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","finishCol","finishRow","isWithin","isRectangular","isRect","detailIsWithin","CellBounds","detailA","detailB","getAnyBox","startCell","finishCell","startCoords","finishCoords","sc","fc","getBox","CellGroup","intercepts","parentCell","innerCell","isContainedBy","c1","c2","CellFinder","deltaColumn","getWarehouse","intercepts$1","nestedIntercepts","firstTable","lastTable","lastCell","getBox$1","TablePositions","identify","getIsRoot","rootTable","boxes","startTable","finishTable","ancestorCells","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve","sels","lastSelectedSelector","getEdges","firstSelectedSelector","tbl","expandTo","shiftSelection","CellSelection","retrieve$1","retrieveBox","firstAncestor","lastAncestor","fA","lA","TableSelection","attributeSelector","firstSelected","lastSelected","Ephemera","onMultiple","onSingle","SelectionTypes","selections","unmergable","hasSpan","mergable","_env","CellOperations","noMenu","notCell$1","paste$1","pasteRows","generators","TableTargets","extractSelected","serializeElements","getTextContent","registerEvents","cellSelection","multiCellContext","cellOpt","domCell","pasteCells","needManualCalc","toNumber","getProp","getCalculatedHeight","paddingTop","paddingBottom","borderTop","borderBottom","boxSizing","borders","RuntimeSize","genericSizeRegex","percentageBasedSizeRegex","pixelBasedSizeRegex","setPixelWidth","amount","setPercentageWidth","getHeightValue","normalizePixelSize","getTotalHeight","getSpan","getRawWidth","cssWidth","normalizePercentageWidth","cellWidth","tableSize","pixelWidth","choosePercentageSize","percentMatch","intWidth","getPercentageWidth","normalizePixelWidth","choosePixelSize","pixelMatch","floatWidth","getPixelWidth","getHeight$1","getGenericWidth","setGenericWidth","Sizes","halve","main","CellMutations","rowInfo","colInfo","rtlEdge","ltrEdge","getTop","findPositions","getInnerEdge","getOuterEdge","cellOption","lastLine","negate","_table","BarPositions","ResizeDirection","TableDirection","directionAt","auto","getGridSize","TableGridSize","setIfNot","newRows","newCells","renderSection","gridSection","sectionName","isNew","removeSection","renderOrRemoveSection","headSection","bodySection","footSection","copy$2","clonedCell","Redraw","repeat","repititions","deduce","aa","Util","rowsArr","getBlock","isSingle","getFallback","decide","inBlock","singleInBlock","detailOption","rows$1","dashNamespace","Styles","data-column","row$1","data-row","Bar","resizeBar","resizeRowBar","resizeColBar","BAR_THICKNESS","wire","drawBar","cpOption","cp","refreshCol","colPositions","tableHeight","colBar","refreshRow","rowPositions","tableWidth","rowBar","refreshGrid","hdirection","vdirection","each$2","bars","isRowBar","isColBar","Bars","addCell","gridRow","setCells","mutateCell","mapCells","getCell","getCellElement","cellLength","GridRow","getColumn","getRow","findDiff","subgrid","restOfRow","endColIndex","restOfColumn","endRowIndex","TableGrid","toDetails","seen","ri","ci","updateSeen","toGrid","rowCells","Transitions","fromWarehouse","deriveRows","rendered","findRow","rowOfCells","toDetailList","findInWarehouse","postAction","genWrappers","newElements","onCell","onPasteRows","lc","onMergable","onUnmergable","onCells","RunOperation","value$1","startAddress","gridA","gridB","rowRemainder","colRemainder","colRequired","rowRequired","rowDelta","colDelta","measureWidth","colLengthA","colLengthB","generator","rowFill","_row","colFill","tailor","fillCols","fillRows","modifiedCols","tailoredGrid","Fitment","substitution","unmerge","isToReplace","uniqueCells","currentCell","splitRows","rowPrevCells","_loop_2","sub","MergingOperations","isSpanning","matching","mergeTables","mergeHeight","mergeWidth","merge$2","fittedGrid","fittedNewGrid","secondDelta","fittedOldGrid","TableMerge","insertRowAt","between","withinSpan","insertColumnAt","splitCellIntoColumns","exampleRow","exampleCol","isTargetCell","splitCellIntoRows","deleteColumnsAt","deleteRowsAt","ModificationOperations","replaceIn","isTarget","notStartRow","notStartColumn","replaceColumn","alreadyAdded","replaceRow","targetRow","TransformOperations","none$1","folder","only","ColumnContext","neighbours$1","determine","zero","onOnly","singleColumnWidth","newNext","minCellWidth","newThis","diffx","onMiddle","Deltas","getSpan$1","hasColspan","hasRowspan","getInt","CellUtils","getRaw$1","getRawW","getRawH","getWidthFrom","backups","columnCell","deduced","getDeduced","getRawWidths","getPercentageWidths","getPixelWidths","getHeightFrom","rowCell","getPixelHeights","getRawHeights","ColumnSizes","measures","recalculateWidth","widths","recalculateHeight","matchRowHeight","Recalculations","percentageSize","getCellDelta","_delta","setTableWidth","_newWidths","getWidths","setElementWidth","pixelSize","newWidths","chooseSize","fallbackWidth","getTableSize","TableSize","getWarehouse$1","sumUp","getTableWarehouse","adjustWidth","newSizes","adjustHeight","newHeights","newCellSizes","newRowSizes","adjustWidthTo","Adjustments","handleUnsupported","baseWith","invalidKeys","handleExact","exactly","elementToData","_toData","contract","toData","nuFrom","recent","getOrInit","makeNew","replaceOrInit","merging","Generators","blockList","isFormatting","isHeading","isContainer","isFrame","Structure","universe$1","isBlock$1","isFormatting$1","isHeading$1","isContainer$1","isEmptyTag$1","isFrame$1","isInline$1","DomStructure","merge$3","advancedBr","isListItem","siblingIsBlock","rightSibling","markCell","rightSiblingIsBlock","markContent","TableContent","elementFromGrid","findIn","uniqueRows","currentDetail","uniqueColumns","insertRowBefore","targetIndex","newGrid","insertRowsBefore","newG","insertRowAfter","insertRowsAfter","insertColumnBefore","insertColumnsBefore","insertColumnAfter","insertColumnsAfter","makeRowHeader","makeColumnHeader","unmakeRowHeader","unmakeColumnHeader","splitCellIntoColumns$1","splitCellIntoRows$1","eraseColumns","_genWrappers","eraseRows","mergeCells","unmergeCells","pasteDetails","gridify","wh","mergedGrid","nuGrid","gridifyRows","pasteRowsBefore","pasteRowsAfter","TableOperations","getBody$1","getPixelWidth$1","getPixelHeight","removePxSuffix","addSizeSuffix","removeDataStyle","dataStyleCells","ltr$1","rtl$1","Direction","defaultTableToolbar","defaultStyles","border-collapse","defaultAttributes","getDefaultAttributes","getDefaultStyles","hasTableResizeBars","hasTabNavigation","hasAdvancedCellTab","hasAdvancedRowTab","hasAdvancedTableTab","hasAppearanceOptions","hasTableGrid","shouldStyleWithCss","getCellClassList","getRowClassList","getTableClassList","isPixelsForced","getCloneElements","cloneElements","hasObjectResizing","objectResizing","fireNewRow","fireNewCell","fireObjectResizeStart","fireObjectResized","TableActions","lazyWire","isTableBody","lastRowGuard","lastColumnGuard","guard","deleteRow","deleteColumn","copyRows","selectedCells","slicedGrid","slicedDetails","CopyRows","getTDTHOverallStyle","firstChildStyle","checkChildren","currentStyle","applyAlign","applyVAlign","unApplyAlign","unApplyVAlign","Styles$1","buildListItems","inputList","itemCallback","startItems","appendItems","extractAdvancedStyles","rgbToHex","borderStyle","borderColor","bgColor","borderstyle","bordercolor","backgroundcolor","getSharedValues","baseData","comparisonData","itemKey","comparisonValue","getAdvancedTab","getAlignment","alignments","dataName","alignmentData","getHAlignment","getVAlignment","extractDataFromSettings","hasAdvTableTab","extractAdvancedStyleData","cellspacing","cellpadding","getBorder","borderWidth","advStyle","getCellPaddingCellSpacing","spacing","extractDataFromTableElement","optBorderWidth","extractDataFromRowElement","extractDataFromCellElement","celltype","Helpers","getClassList","rowClassList","textStyle","children$3","classlist","CellDialogGeneralTab","ifTruthy","DomModifiers","updateSimpleProps","modifiers","updateAdvancedProps","applyToSingle","cellElm","halign","valign","applyToMultiple","onSubmitCellForm","applicator","cellsData","dialogTabPanel","dialogPanel","CellDialog","getClassList$1","formChildren","items$1","RowDialogGeneralTab","switchRowType","rowElm","tableElm","oldParentElm","parentElm","updateAdvancedProps$1","onSubmitRowForm","oldData","createModifier","rowsData","RowDialog","DefaultRenderOptions","percentages","makeTable","tableBody","tableRow","tableHeaderCell","tableCell","rowHeaders","columnHeaders","renderOpts","trs","placeCaretInCell","selectFirstCellInTable","fireEvents","isPercentage","insert$1","InsertTable","styleTDTH","applyDataToElement","border-width","border-color","onSubmitTableForm","captionElm","open$2","hasClasses","rowColCountItems","alwaysItems","appearanceItems","alignmentItem","classListItem","generalTabItems","generalPanel","nonAdvancedForm","advancedForm","TableDialog","getSelectionStartFromSelector","getSelectionStartCell","getSelectionStartCellOrCaption","each$3","clipboardRows","eraseTable","cellOrCaption","tableOpt","getTableFromCell","resizeChange","oldSize","actOnSelection","copyRowSelection","pasteOnSelection","clonedRows","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutRow","mceTableCopyRow","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","mceInsertTable","mceTableProps","mceTableRowProps","mceTableCellProps","only$1","detached","editable","body$1","ResizeWire","typeDefs","api$3","DragApis","styles$1","Styles$2","Blocker","layerClass","mutation","sink$1","mdown","mup","mmove","mout","MouseDrag","InDrag","dataOption","NoDrag","Movement","noDragState","inDragState","throttledDrop","runIfActive","Dragger","Mutation","BarMutation","resizeBarDragging","BarManager","resizing","hoverTable","getResizer","_dataRow","_dataCol","currentCol","oldX","startAdjust","ht","hideBars","showBars","TableResize","beforeResize","afterResize","startDrag","createContainer","TableWire","ResizeHandler","startW","startRawW","selectionRng","isTable","lazyResize","sz","rawWire","rawTable","percentW","targetPercentW","newCellSizes_1","newCellSize","folder$1","none$2","middle$1","last$3","CellLocation","detect$4","detection","CellNavigation","onBefore","onOn","onAfter","before$2","after$2","Situ","type$2","getStart$1","getWin","after$3","selectNodeContentsUsing","availableSearch","fromPoint$1","beforeSpecial","preprocessRelative","preprocessExact","doSetNativeRange","removeAllRanges","addRange","doSetRange","setLegacyRtlRange","setRangeFromRelative","setBaseAndExtent","setExact","setRelative","toNative","getDomRange","setToElement","getAtPoint","clear$1","backward","getCellFirstCursorPosition","getNewRowCursorPosition","rootElements","handle$1","body_1","isRoot_1","TabContext","Responses","isKey","keycode","isUp","isDown","isNavigation","SelectionKeys","isBackward","convertToRange","makeSitus","Util$1","by","scrollBy","WindowBridge","getRangedRect","structRect","exactAdt","fromSitus","situs","relative$1","situsFromPoint","clearSelection","selectContents","setSelection","setRelativeSelection","getInnerHeight","getScrollY","sync","selectRange","detect$5","cellSel","annotations","updateSelection","newSels","KeySelection","moveBottomTo","moveTopTo","getTop$1","getBottom","Carets","getPartialBox","bridge","toCaret","getElemBox","getBoxAt","getEntireBox","Rectangles","traverse","backtrack","_direction","sidestep","advance","successors","go$1","ruleOpt","succ","left$1","right$1","Walkers","hone","left$2","right$2","isLeaf","before$3","seekLeft","after$4","seekRight","universe$2","before$4","after$5","seekLeft$1","seekRight$1","JUMP_SIZE","NUM_RETRIES","retry","isOutside","inOutsideBlock","adjustDown","guessBox","lowerCaret","adjustUp","higherCaret","upMovement","adjuster","gather","downMovement","isAtTable","adjustForTable","numRetries","adjustTil","newCaret","ieTryDown","ieTryUp","checkScroll","moved","Retries","tryUp","tryDown","getJumpSize","failedUp","failedDown","isOverlapping","beforeBounds","afterBounds","verify","beforeOffset","afterOffset","failure","afterCell","beforeCell","isRow","sharedRow","cata$2","onSuccess","onFailedUp","onFailedDown","BeforeAfter","inParent","indexInParent","indexOf$1","gatherer","cand","handleBr","findBr","handleParent","adjacent","tryBr","analysis","BrTags","MAX_RETRIES","platform$1","findSpot","brNeighbour","tryCursor","tryAgain","tryAt","otherRetry","ieRetry","handle$2","TableKeys","inSameTable","precheck","firstUpCheck","lastOffset","lastDownCheck","VerticalMovement","findCell","MouseSelection","clearState","KeyDirection","rc","keyboard","clearToNavigate","InputHandlers","removeClasses","byClass","ephemera","addSelectionClass","removeSelectionClasses","byAttr","removeSelectionAttributes","addSelectionAttribute","SelectionAnnotation","hasInternalTarget","CellSelection$1","handlerStruct","syncSelection","mouseHandlers","keyHandlers","hasShiftKey","handleResponse","ns","wrappedEvent","wrapEvent","isMouseEvent","isLeftMouse","isLeftButtonPressed","mouseDown","mouseOver","mouseUp","Selections","SelectionTargets","changeHandlers","findTargets","resetTargets","onSetupTable","onSetupCellOrRow","onSetupMergeable","onSetupUnmergeable","selectionTargets","addMenuButton","addMenuItems","insertTableAction","tableProperties","deleteTable","addContextMenu","MenuItems","getClipboardRows","setClipboardRows","sugarRows","insertTable","resizeHandler","addTempAttr","Plugin$1","require","getDateFormat","getTimeFormat","getFormats","getDefaultDateTime","shouldInsertTimeElement","updateElement","timeElm","computerTime","userTime","newTimeElm","datetime","insertDateTime","defaultFormat","makeMenuItemHandler","getAutoResizeMinHeight","getAutoResizeMaxHeight","getAutoResizeOverflowPadding","getAutoResizeBottomMargin","shouldAutoResizeOnInit","isFullscreen","fullscreen","times","toggleScrolling","parseCssValueToInt","deltaSize","resizeHeight","contentHeight","marginTop","marginBottom","containerHeight","contentAreaHeight","chromeHeight","overflowPadding","bottomMargin","paddingLeft","paddingRight","min-height","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","assumeExternalTargets","link_assume_external_targets","hasContextToolbar","link_context_toolbar","getLinkList","link_list","hasDefaultLinkTarget","default_link_target","useQuickLink","link_quicklink","getTargetList","target_list","setTargetList","shouldShowTargetList","getRelList","rel_list","hasRelList","getLinkClassList","link_class_list","hasLinkClassList","shouldShowLinkTitle","link_title","allowUnsafeLinkTarget","allow_unsafe_link_target","appendClickRemove","createEvent","initMouseEvent","OpenUrl","getHref","applyRelTargetRules","isUnsafe","rels","addTargetRules","removeTargetRules","newRels","trimCaretContainers","getAnchorElement","selectedElm","isImageFigure","getAnchorText","anchorElm","isLink","hasLinks","isOnlyTextSelected","getLinkAttrs","updateLink","linkAttrs","linkImageFigure","attachState","newRel","unlinkImageFigure","fig","sanitizeList","extractValue","sanitizeWith","extracter","createUi","ListOptions","findTextByValue","catalog","persistentText","hasPersistentText","findCatalog","catalogs","linkSettings","onUrlChange","urlText","onCatalogChange","DialogChanges","delayedConfirm","tryEmailTransform","suggestMailTo","tryProtocolTransform","suggestProtocol","DialogConfirms","anchorNodes","AnchorListOptions","ClassListOptions","parseJson","getLinks","extractor","linkList","LinkListOptions","getRels","isTargetBlank_1","enforceSafe","safeRelExtractor","sanitizer","RelOptions","fallbacks","getTargets","TargetOptions","nonEmptyAttr","extractFromAnchor","onlyText","linkClass","collect","linkNode","links","flags","titleEnabled","DialogInfo","handleSubmit","getChangedValue","changedData","pData","collectData","getInitialData","defaultTarget","makeDialog","urlInput","titleText","dialogDelta","getLink","getSelectedLink","hasOnlyAltModifier","targetEl","gotoSelectedLink","leftClickedOnAHref","setupGotoLinks","toggleEnabledState","setupButtons","setupMenuItems","setupContextMenu","noLink","inLink","setupContextToolbars","collapseSelectionToEnd","onSetupLink","addContextForm","Controls","toIObject","$getOwnPropertyDescriptor","it","stringRepeat","repeats","isVisualCharsEnabled","visualchars","isEnabled","insertNbsp","nbsp","getKeyboardSpaces","speciesConstructor","makeItems","imageUrl","imageList","imageDescription","imageTitle","imageDimensions","hasDescription","hasImageTitle","hasImageCaption","makeTab","MainTab","image_dimensions","hasAdvTab","image_advtab","getPrependUrl","image_description","image_title","image_caption","getImageList","hasUploadUrl","hasUploadHandler","getUploadUrl","getUploadHandler","getUploadBasePath","getUploadCredentials","parseIntAndGetMax","val1","val2","getImageSize","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","createImageList","waitLoadImage","selectImage","isPlaceholderImage","getHspace","marginRight","getVspace","hasCaption","wrapInFigure","figureElm","removeFigure","toggleCaption","normalizeStyle","normalizeCss","setHspace","pxValue","setVspace","setBorder","setBorderStyle","getBorderStyle","isFigure","isImage","hspace","vspace","getStyleValue","figure","updateProp","mergedCss","compressed","getSelectedImage","splitTextBlock","readImageDataFromSelection","insertImageAtCaret","insertedElm","syncSrcAttr","deleteImage","writeImageDataToSelection","insertOrUpdateImage","isGroup","findEntryDelegate","findEntry","optList","pathJoin","path1","path2","Uploader","defaultHandler","withCredentials","credentials","upload","onprogress","basePath","FormData","filename","uploadBlob","isDefaultHandler","makeTab$1","AdvTab","urlListSanitizer","futureImageList","prependURL","preUrl","makeTab$2","UploadTab","prevImage","prevAlt","fromImageData","fileinput","toImageData","addPrependUrl2","srcURL","prependUrl","addPrependUrl","formFillFromMeta2","dataCopy_1","formFillFromMeta","calculateImageSize","helpers","imageSize","updateImagesDropdown","changeSrc","changeImages","updateAlt","calcVSpace","matchingTopBottom","calcHSpace","matchingLeftRight","calcBorderWidth","calcBorderStyle","calcStyle","changeStyle2","dataCopy","changeStyle","changeAStyle","changeFileInput","uploader","finalize","dataUrl","createBlobCache","alertErr","changeHandler","closeHandler","makeDialogBody","tabPanel","submitHandler","uploadImagesAuto","normalizeCss$1","stylesArg","hasImageClass","toggleContentEditableState","toggleContentEditable","getRootElement","makeContextMenuItem","_vm","_h","$createElement","_self","staticClass","modal","media","_e","staticRenderFns","_defineProperty","define_property_default","_objectSpread","ownKeys","keys_default","get_own_property_symbols_default","sym","get_own_property_descriptor_default","Editorvue_type_script_lang_ts_Editor","_Vue","Editor","classCallCheck","filemanager","inherits","createClass","$events","$on","closeModal","callbackValue","tinymce_default","$off","_this2","language","$i18n","shortLocale","content_css","toolbar1","toolbar2","relative_urls","browser_spellcheck","entity_encoding","autoresize_bottom_margin","autoresize_on_init","nowrap","table_style_by_css","$emit","otherOptions","$t","head_default","$options","baseurl","filesize","contentLength","vue_property_decorator","tslib_es6","default","Editorvue_type_script_lang_ts_","components_Editorvue_type_script_lang_ts_","componentNormalizer","__webpack_exports__","fireVisualChars"," ","­","charMapToRegExp","charMapToSelector","regExpGlobal","wrapCharWithSpan","Html","isMatch","filterDescendants","findParentElm","replaceWithSpans","nodeList","withSpans","VisualChars","toggleVisualChars","debouncedToggle","debounce","valueForToggling","enabledStated","emojiMatches","emoji","keywords","emojisFrom","reachedLimit","waitForLoad","listAll","getEmoticonDatabaseUrl","getAppendedEmoticons","ALL_CATEGORY","categoryNameMap","symbols","people","animals_and_nature","food_and_drink","activity","travel_and_places","user","GLOBAL_NAME","extractGlobal","translateCategory","categories","getUserDefinedEmoticons","userDefinedEmoticons","category","initDatabase","databaseUrl","processEmojis","emojis","cats","lib","ScriptLoader","loadScript","userEmojis","listCategory","listCategories","hasLoaded","clearInterval","insertEmoticon","dialogData","searchField","resultsField","getInitialState","actionData","setDir","curDir","getNodeChangeHandler","ie11","ie12","iDevice","fileApi","phone","tablet","windowsPhone","isNull","mapToObject","nav","matchMediaQuery","matchMedia","appName","requestAnimationFramePromise","Env","caretAfter","documentMode","cacheSuffix","overrideViewPort","experimentalShadowDom","canHaveCSP","desktop","promiseObj","requestAnimationFrameFunc","vendors","featurefill","wrappedSetTimeout","wrappedSetInterval","wrappedClearTimeout","wrappedClearInterval","Delay","setEditorInterval","eventExpandoPrefix","mouseEventRe","deprecated","keyLocation","layerX","layerY","webkitMovementX","webkitMovementY","keyIdentifier","hasIsDefaultPrevented","addEvent","detachEvent","getTargetFromShadowDom","composedPath","srcElement","eventDoc","cancelBubble","bindOnReady","eventUtils","domLoaded","isDocReady","readyHandler","waitForDomLoaded","tryScroll","EventUtils","hasMouseEnterLeave","hasFocusIn","callbackList","fakeName","nativeHandler","defaultNativeHandler","executeHandlers","namesList","mouseEnterLeave","eventMap","strundefined","MAX_NEGATIVE","push$1","slice$1","rescape","nth","isArray$1","indexOf$2","reduce","iteratee","accumulator","ArrUtils","whiteSpaceRegExp","delim","sp","cn","scn","de","createNS","onCreate","static","ext","resolve$1","explode","_addCacheSuffix","push$2","slice$2","rquickExpr$1","skipUniques","isDefined","isString$1","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","lastParent","newWrapper","numericCssMap","booleanMap","cssFix","float","DomQueryConstructor","whiteSpaceRegExp$1","camel","dashed","existingClassName","classState","siblingName","firstSibling","wrappedResult","overrideDefaults","appendHooks","targetHooks","maxlength","maxLength","ie$1","opera$1","android$1","trim$2","lTrim","rTrim","bifilter","toArray$1","recurse","Recurse","contains$3","prevSiblings","nextSiblings","childNodesCount","browser$1","firstElement","getTableCaptionDeltaY","bodyTop","captionTop","captionHeight","StyleSheetLoader","maxLoadTime","idCount","loadedStates","appendToHead","loadedCallback","passed","failed","isOldWebKit","webKitChunks","testCallback","waitCallback","waitForWebKitLinkLoaded","styleSheet","styleSheets","ownerNode","owningElement","waitForGeckoLinkLoaded","cssRules","sheet","contentCssCors","crossOrigin","loadF","unbox","loadAll","urls","namedEntities","baseEntities","reverseEntities","isNodeType","isElement$1","matchNodeNames","matchStyleValues","cssValue","hasPropValue","propName","propValue","hasAttributeValue","isBogus","isBogusAll","isText$1","isDocumentFragment","TreeWalker","prev2","findSibling","findPreviousNode","startName","voids","tableCells","tableSections","headings","listItems","wsElements","lazyLookup","isTable$1","isBr$1","isVoid","isTableSection","isTableCell","isWsPreserveElement","surroundedBySpans","previousIsSpan","nextIsSpan","trimNode","trimmedLength","TrimNode","makeMap$1","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","128","130","131","132","133","134","135","136","137","138","139","140","142","145","146","147","148","149","150","151","152","153","154","155","156","158","159","`","<",">","&",""","'","nativeDecode","buildEntitiesLookup","radix","entity","encodeRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","entitiesMap","encodeNamedAndNumeric","encodeCustomNamed","nameMap","named","numeric","Entities","mapCache","dummyObj","makeMap$2","each$4","extend$1","explode$1","inArray$1","compileSchema","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","ni","arrayToMap","addAttrs","schemaItem","compileElementMap","Schema","invalidStyles","schemaItems","whiteSpaceElementsMap","selfClosingElementsMap","boolAttrMap","validClasses","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","textInlineElementsMap","patternElements","customElementsMap","createLookupTable","extendWith","verify_html","valid_styles","invalid_styles","valid_classes","patternToRegExp","addValidElements","ei","al","attrData","elementName","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","#comment","getElementRule","custom_elements","extended_valid_elements","dd","dt","legend","area","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getTextInlineElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","isValidChild","attrPatterns","getCustomElements","encodingItems","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","compress2","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","lastIndex","serializeStyles","styleList","styleMap","each$5","grep$1","simpleSelectorRe","whiteSpaceRegExp$2","setupAttrHooks","keepValues","keep_values","keepUrlHook","updateInternalStyleAttr","findNodeIndex","lastNodeType","DOMUtils","addedStyles","counter","stdMode","boxModel","boundEvents","ownEvents","$$","defaultVal","getAttribs","originalValue","onSetAttrib","attrElm","clone_1","root_element","getViewPort","argWin","actWin","update_styles","selectorVal","_findSib","getPrev","setHTML","canHaveHTML","newElm","outHtml","keepChildren","$node","removeAllAttribs","removeAttributeNode","addStyle","styleElm","loadCSS","cls","getOuterHTML","setOuterHTML","reference","referenceNode","oldElm","attrNode","findCommonAncestor","pe","rgbVal","brCount","bogusVal","splitElm","replacementElm","bef","aft","pa","rv","getContentEditableParent","dumpRng","DOMUtils$1","each$6","grep$2","QUEUED","LOADING","LOADED","FAILED","scriptLoadedCallbacks","queueLoadedCallbacks","loading","isDone","markDone","loadQueue","loadScripts","failures","execCallbacks","loadingScripts","notifyCallbacks","isRaw","isTokenised","currentCode","setCode","newCode","getCode","langData","getLangData","textstr","lowercaseTextstr","removeContext","values_1","substitued","$1","$2","hasCode","I18n","each$7","AddOnManager","_listeners","dependencies","requireLangPack","languages","languageLoad","addOn","createUrl","baseUrl","resource","addComponents","pluginName","loadDependencies","addOnUrl","deps","urlString","waitFor","PluginManager","ThemeManager","AddOnManager$1","annotation","dataAnnotation","dataAnnotationId","annotationName","an","newStart","findMarkers","isAnnotation","findAll","nodesAlready","changeCallbacks","initData","withCallbacks","updateCallbacks","callbackMap","outputData","fireCallbacks","fireNoAnnotation","addListener","identifyParserNode","persistent","ZWSP","isZwsp","trim$3","Zwsp","isElement$2","isText$2","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","insertInline","endsWithCaretContainer","startsWithCaretContainer","isBeforeInline","isAtStart","isAfterInline","isAtEnd","createBogusBr","insertBlock","blockNode","trimBogusBr","brs","lastBr","showCaretContainerBlock","caretContainer","isRangeInCaretContainerBlock","isContentEditableTrue$1","isContentEditableFalse$1","isBr$2","isText$3","isInvalidTextElement","isAtomicInline","isTable$2","isCaretContainer$1","isCaretCandidate","isNonUiContentEditableFalse","isUnselectable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","toStart","isEqual","rect1","rect2","isValidOverflow","isAbove","isBelow","containsXY","getSelectedNode","extendingChars","isExtendingChar","slice$3","Predicate","isElement$3","isCaretCandidate$1","isFloated","isValidElementCaretCandidate","isNotPre","isText$4","isBr$3","resolveIndex","isWhiteSpace","isRange","isHiddenWhiteSpaceRange","getBrClientRect","brNode","clientRect","getBoundingClientRectWebKitText","ec","so","eo","newRng","isZeroRect","clientRects","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","beforeNode","addUniqueAndValidRect","addCharacterOffset","CaretPosition","toRange","fromRangeStart","fromRangeEnd","pos1","pos2","isTextPosition","isElementPosition","HDirection","CaretPosition$1","isText$5","isBogus$1","nodeIndex$1","normalizedParent","getChildNodes","normalizedTextOffset","equal$1","normalizedNodeIndex","numTextFragments","createPathItem","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","resolve$2","trimEmptyTextNode","insertNode","insertFragment","rangeInsertNode","isContentEditableFalse$2","getNormalizedTextOffset","trimmedOffset","getPoint","getLocation","findIndex$2","moveEndPoint","normalizeTableCellSelection","findAdjacentContentEditableFalseElm","getOffsetBookmark","getCaretBookmark","getRangeBookmark","createBookmarkSpan","filled","getPersistentBookmark","rng2","endBookmarkNode","startBookmarkNode","keep","GetBookmark","getUndoBookmark","CARET_ID","isCaretNode","getParentCaretContainer","isElement$4","isText$6","getNodeValue","setNodeValue","trimCount","trimmedText","removeUnchanged","removeTextAndReposition","removeElementAndReposition","removeTextCaretContainer","removeElementCaretContainer","removeAndReposition","caretContainerNode","CaretContainerRemove","browser$2","isContentEditableFalse$3","isTableCell$1","getAbsoluteClientRect","scrollX","scrollY","rootRect","trimInlineCaretContainers","contentEditableFalseNodes","FakeCaret","cursorInterval","lastVisualCaret","caretState","startBlink","getCss","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableFalse$4","isBlockLike","isCaretContainer$2","isCaretContainerBlock$1","isElement$5","isCaretCandidate$2","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","getParentBlock","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","leanLeft","leanRight","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getElementFromPrevPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","isContentEditableFalse$5","isText$7","isElement$6","isBr$4","isCaretCandidate$3","isAtomic$1","isEditableCaretCandidate$1","nodeAtIndex","getCaretCandidatePosition","moveForwardFromBr","nextNode","findCaretPosition","Forwards","rootContentEditableFalseElm","CaretWalker","Backwards","walkToPositionIn","fromPosition","afterElement","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","isAtBr","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","nextPosition","prevPosition","CaretFinder","firstPositionIn","lastPositionIn","isStringPathBookmark","isRangeBookmark","isIdBookmark","isIndexBookmark","isPathBookmark","addBogus","resolveCaretPositionBookmark","insertZwsp","tryFindRangePosition","padEmptyCaretContainer","setEndPoint","isValidTextNode","appendData","o1","o2","resolvePaths","resolveId","endPos","spos","epos","resolveIndex$1","resolve$3","ResolveBookmark","getBookmark$1","isBookmarkNode$1","Bookmarks","isInlineBlock","moveStart","isWhiteSpaceNode","getNonWhiteSpaceSibling","inc","isTextBlock$1","replaceVars","vars","isEq","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$1","FormatUtils","isBookmarkNode$2","getParents$2","isWhiteSpaceNode$1","isTextBlock$2","findLeaf","excludeTrailingWhitespace","leaf","findParentContentEditable","findSpace","findWordEndPoint","lastTextNode","findSelectorEndPoint","curFormat","findBlockEndPoint","scopeRoot","findParentContainer","block_expand","expandRng","endPoint","ExpandRange","each$8","getEndChild","walk$1","startPoint","collectSiblings","findEndPoint","walkBoundary","RangeWalk","isZeroWidth","wrapName","shouldApplyToTrailingSpaces","applyWordGrab","makeAnnotation","eDoc","decorate","annotate","newWrappers","finishWrapper","getOrOpenWrapper","processElements","processElement","processNodes","annotateWithBookmark","initialRng","Annotator","annotationChanged","whiteSpaceRegExp$3","typeLookup","#text","#cdata","#pi","#doctype","#document-fragment","walk$2","selfAttrs","selfAttr","cloneAttrs","refNode","isValidPrefixAttrName","trimComments","isInvalidUri","findEndTagIndex","tokenRegExp","checkBogusAttribute","attrString","SaxParser","fix_self_closing","pi","doctype","endRegExp","attrList","textData","isInternalElement","removeInternalElements","fillAttrsMap","isShortEnded","elementRule","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","processHtml","anyAttributesRequired","selfClosing","attrRegExp","fixSelfClosing","filteredUrlAttrs","scriptUriRegExp","processEndTag","parseAttribute","val3","attrRule","trimRegExp","decodeURIComponent","self_closing_elements","remove_internals","bogusValue","findEndTag","SaxParser$1","tempAttrs","trimContentRegExp","trimInternal","endTagIndex","matchLength","bogusAllRegExp","getTempAttrs","trimExternal","TrimHtml","getBodySetting","bodyObj","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre","getForcedRootBlock","getForcedRootBlockAttrs","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","getFontStyleValues","getFontSizeClasses","getImagesDataImgFilter","isAutomaticUploadsEnabled","shouldReuseFileName","shouldReplaceBlobUris","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","contentCss","trimEmptyContents","emptyRegExp","getContentFromBody","getInner","makeMap$3","Writer","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","element_format","Serializer","8","sortedAttrs","findMatchingNodes","nodeFilters","attributeFilters","nodeMatches","attrMatches","filter$2","browser$3","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","getBookmark$2","bookmarkToNativeRng","newBookmark","storeNative","SelectionBookmark","getContentEditableHost","getCollapsedNode","getFocusInElement","normalizeSelection","normalize","caretPos","focusBody","hasElementFocus","hasIframeFocus","iframeElement","hasInlineFocus","rawBody","hasFocus$1","focusEditor","refreshContentEditable","contentEditableHost","activateEditor","bookmarkRng","editorManager","skipFocus","EditorFocus","defaultFormat$1","isTreeNode","setEditorHtml","setContentString","padd","isRootContent","setContentTree","getNodeFilters","getAttributeFilters","firePreProcess","firePostProcess","fireRemove","fireDetach","fireSwitchMode","restoreOriginalStyles","orgDisplay","safeDestroy","clearDomReferences","formElement","restoreForm","_mceOldSubmit","formEventDelegate","_selectionOverrides","is_removing","unbindAllNativeEvents","hasHiddenInput","automatic","destroyed","_beforeUnload","theme","sectionResult","mobilePlugins","defaultMobileSettings","normalizePlugins","pluginNames","trimmedPlugins","filterMobilePlugins","extractSections","getSection","sections","sectionSettings","hasSection","getDefaultSettings","documentBaseUrl","popup_css","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","remove_script_host","object_resizing","visual","font_size_style_values","font_size_legacy_values","hidden_input","render_ui","inline_styles","convert_fonts_to_spans","ie7_compat","getExternalPlugins","overrideSettings","userDefinedExternalPlugins","external_plugins","combinePlugins","forcedPlugins","processPlugins","isTouchDevice","defaultOverrideSettings","forced_plugins","platformPlugins","combinedPlugins","isOnMobile","combineSettings","defaultSettings","extendedSettings","getEditorSettings","getFiltered","getString","getParamObject","isArrayOf","rawElm","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","getBoundingClientRect$1","isInsideElementContentArea","bodyElm","isXYInContentArea","transposedPoint","fromDomSafe","isEditorAttachedToDom","rawContainer","EditorView","unimplemented","NotificationManager","getImplementation","getTopNotification","addNotification","closeNotification","otherNotification","getNotifications","serviceMessage","service_message","WindowManagerImpl","getParams","setParams","dialogs","funcBind","fireOpenEvent","fireCloseEvent","addDialog","otherDialog","getTopDialog","storeSelectionAndOpenDialog","resolvePluginName","targetUrl","matchUrl","pluginUrlToMessage","displayNotification","displayError","uploadError","pluginLoadError","pluginInitError","initError","ErrorReporter","accessibility-check","align-center","align-justify","align-left","align-none","align-right","arrow-left","arrow-right","bold","browse","change-case","character-count","checklist","checkmark","chevron-down","chevron-left","chevron-right","chevron-up","code-sample","color-levels","color-picker","color-swatch-remove-color","color-swatch","document-properties","duplicate","edit-image","embed-page","flip-horizontally","flip-vertically","format-painter","highlight-bg-color","home","horizontal-rule","image-options","insert-character","insert-time","italic","list-bull-circle","list-bull-default","list-bull-square","list-num-default","list-num-lower-alpha","list-num-lower-greek","list-num-lower-roman","list-num-upper-alpha","list-num-upper-roman","more-drawer","new-document","new-tab","non-breaking","notice","ordered-list","outdent","page-break","paragraph","paste-text","permanent-pen","plus","preferences","print","quote","reload","remove-formatting","resize-handle","restore-draft","rotate-left","rotate-right","select-all","sourcecode","spell-check","strike-through","subscript","superscript","table-cell-properties","table-cell-select-all","table-cell-select-inner","table-delete-column","table-delete-row","table-delete-table","table-insert-column-after","table-insert-column-before","table-insert-row-above","table-insert-row-after","table-left-header","table-merge-cells","table-row-properties","table-split-cells","table-top-header","temporary-placeholder","text-color","toc","underline","unlock","unordered-list","unselected","zoom-in","zoom-out","CreateIconManager","iconPack","IconManager","PluginManager$1","uploadStatus","pendingPromises","noUpload","handlerSuccess","handlerFailure","resolvePending","uploadBlobInfo","openNotification","markPending","closeNotification_1","markUploaded","removeFailed","pendingUploadBlobInfo","uploadBlobs","blobInfos","isUploaded","isPending","requestAnimationFrame$1","blobUriToBlob","rejectWithError","parseDataUri","uriParts","imageToBlobInfo","getByUri","getAllImages","ImageScanner","cachedPromises","promises","imageInfo","newPromise","count$1","rnd","uuid","Uuid","BlobCache","mimeToExt","image/jpeg","image/jpg","image/gif","image/png","toBlobInfo","removeByUri","UploadStatus","PENDING","UPLOADED","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","VDirection","EditorUpload","imageScanner","urlFilters","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","replacementUrl","replaceUrlInUndoStack","fragments","replaceImageUri","data-mce-src","uploadImages","scanForImages","imageInfos","filteredResult","uploadInfo","dataImgFilter","addFilter","resultItem","replaceBlobUris","source_view","dropLast","parentsUntil$1","parents$1","parentsAndSelf","Parents","isBlockElement","isValidTarget","hasBlockParent","shouldRemoveTextNode","addRootBlocks","rootBlockNode","tempNode","restoreSelection","rootNodeName","forcedRootBlock","ForceBlocks","isEq$1","rng1","RangeCompare","getStartNode","getEndNode","getFirstChildren","getLastChildren","hasAllContentsSelected","moveEndPoint$1","hasAnyRanges","getSel","NodeChange","lastPath","nativeRng","fakeRng","startElm","isSameElementPath","selectionChange","disable_nodechange","currentPath","getAbsolutePosition","getBodyPosition","getScrollPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","bodyPosition","mousePosition","calc","MousePosition","isContentEditableFalse$6","isContentEditableTrue$2","isDraggable","isValidDropTarget","dragElement","cloneElement","cloneElm","createGhost","clonedElm","ghostElm","appendGhostToBody","moveGhost","removeElement","isLeftMouseButtonPressed","hasDraggableElement","applyRelPos","relX","ceElm","elmPos","relY","ghost","throttledPlaceCaretAt","hideFakeCaret","placeCaretAt","dragging","targetPos","getRawTarget","targetClone_1","targetClone","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","rootDocument","blockIeDrop","realTarget","DragDropOverrides","getNodeClientRects","toArrayWithNode","findUntil","walkUntil","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","lineNumber","isLineNumber","upUntil","Up","downUntil","Down","positionsUntil","isBelowFn","caretWalker","getClientRect","isAboveLine","isLine","isContentEditableFalse$7","findNode$1","distanceToRectLeft","distanceToRectRight","isInside","findClosestClientRect","oldClientRect","oldDistance","newDistance","walkUntil$1","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getFakeCaretTargets","caretInfo","closestCaret","closestNodeRect","contentEditableFalseNodeRects","targetNodeRects","isXYWithinRange","RangePoint","isContentEditableTrue$3","isContentEditableFalse$8","showCaret","getNodeRange","renderCaretAtRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","caretRange","renderFocusCaret","CefFocus","VK","END","HOME","is$2","expected","isNbsp","isWhiteSpace$1","isContent","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBeforeImageBlock","isAfterImageBlock","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","isContentEditableTrue$4","isContentEditableFalse$9","getContentEditableRoot","SelectionOverrides","selectedContentEditableNode","fakeCaret","realSelectionId","isFakeSelectionElement","getRealSelectionElement","setRange","getRange","showBlockCaretContainer","blockCaretContainer","contentEditableRoot","removeContentEditableSelection","handleTouchSelect","setContentEditableSelection","hasNormalCaretPosition","newPos","block1","block2","hasBetterMouseTarget","caretNode","targetBlock","caretBlock","isRangeInCaretContainer","realSelectionElement","outerText","isWithinCaretContainer","$realSelectionContainer","origTargetClone","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","getMiddleSnake","i2","buildSnake","Diff","getOuterHtml","createFragment$1","insertAt","removeAt","applyDiff","currentFragments","Fragments","undoLevelDocument","lazyTempDocument","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","trimmed","applyToEditor","getLevelContent","getCleanLevelContent","hasEqualContent","level1","level2","hasEqualCleanedContent","isEq$2","Levels","UndoManager","isFirstTypedCharacter","locks","isUnlocked","setTyping","typing","addNonTypingUndoLevel","endTyping","beforeChange","modKey","isInsertReplacementText","inputType","isInsertTextDataNull","currentLevel","custom_undo_redo_levels","hasUndo","hasRedo","callback1","callback2","getLastChildren$1","rawNode","removeTrailingBr","allBrs","fillWithPaddingBr","isPaddingContents","isPaddedElement","trimBlockTrailingBr","lastChildPrevSibling","PaddingBr","isEq$3","matchesUnInheritedFormatSelector","formatList","inherit","matchParents","matchName","matchItems","similar","onmatch","matchAll","startElement","matchedFormatNames","checkedMap","defaultBlock","MatchFormat","split$1","isCollapsibleWhitespace","normalizeContent","isStartOfContent","isEndOfContent","previousCharIsSpace","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","normalizeWhitespace","whitespaceOffset","hasWhitespacePreserveParent","rootElement","isWhitespace","isNamedAnchor","isContent$1","isBookmark","isBogus$2","isBogusAll$1","isEmptyNode","isEmpty$1","Empty","needsReposition","beforeOrStartOf","afterOrEndOf","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwardsFromElm","startPosition","findCaretPositionForwardsFromElm","findCaretPositionBackwards","findCaretPositionForward","findCaretPosition$1","findCaretPosOutsideElmAfterDelete","eqRawNode","isBlock$2","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","prevTextOpt","nextTextOpt","isInlineElement","deleteElement","moveCaret","afterDeletePos","normalizedAfterDeletePos","paddPos","DeleteElement","ZWSP$1","CARET_ID$1","importNode","getEmptyCaretContainers","isCaretContainerEmpty","findFirstTextNode","createCaretContainer","trimZwspFromCaretContainer","removeCaretContainerNode","removeCaretContainer","insertCaretContainerNode","formatNode","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","disableCaretContainer","replaceWithCaretFormat","innerMost","isFormatElement","inlineElements","isEmptyCaretFormatElement","postProcessHooks","filter$3","each$9","addPostProcessHook","isPre","hasPreSibling","pre","joinPre","pre1","pre2","Hooks","each$a","ElementUtils","compareObjects","obj1","obj2","MCE_ATTR_RE","each$b","isEq$4","isTableCell$2","isChildOfInlineParent","lastIdx","wrapWithSiblings","matchName$1","isColorFormatAndAnchor","removeNode$1","rootBlockElm","list_block","compareNode","stylesModified","remove_similar","valueOut","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","mixed","splitToFormatRoot","isRemoveBookmarkNode","lastContentEditable","removeRngStyle","commonAncestorContainer","textDecoration","ceFalseOverride","RemoveFormat","each$c","isElementNode","findElementSibling","mergeSiblingsNodes","tmpSibling","elementUtils","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","processUnderlineAndColor","mergeUnderlineAndColor","mergeBackgroundColorAndFontSize","backgroundColor","mergeSubSup","mergeSiblings","merge_siblings","clearChildStyles","clear_child_styles","mergeWithChildren","mergeWithParents","merge_with_parents","MergeFormats","createRange$1","normalizeBlockSelectionRange","newEndPos","normalize$1","RangeNormalizer","each$d","isElementNode$1","setElementFormat","onformat","styleVal","applyNodeStyle","applyRngStyle","nodeSpecific","wrapElm","currentWrapElm","childCount","getChildCount","getChildElementNode","mergeStyles","curSelNode","ApplyFormat","registeredFormatListeners","currentFormats","updateAndFireChangeCallbacks","formatChangeData","formatsList","newFormats","matchedFormats","remainingFormats","filterRemainingFormats","addListeners","formatChangeItems","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","aligncenter","alignright","alignjustify","fontStyle","strikethrough","forecolor","hilitecolor","fontname","fontsize","fontsize_class","blockquote","removeformat","DefaultFormats","FormatRegistry","each$e","parsedSelectorToHtml","ancestry","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","parentRequired","ancestorName","siblingElm","selectorToHtml","parseSelector","parseSelectorItem","$0","$3","$4","previewFrag","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","removeVars","numValue","toggle$1","ToggleFormat","FormatShortcuts","Formatter","formatChangeState","htmlParser","internalName","cleanup","hasChildren","trimTrailingBr","brNode1","brNode2","DomSerializerFilters","impl","oldDoc","shouldFireEvent","DomSerializerPreProcess","removeAttrs","addFontToSpansFilter","fontSizes","face","addStrikeToSpanFilter","addFilters","LegacyFilter","paddEmptyNode","brPreferred","padd_empty_with_br","isPaddedWithNbsp","hasOnlyChild","isPadded","isEmpty$2","nonEmptyElements","whitespaceElements","isLineBreakNode","remove_trailing_brs","prevName","whiteSpaceElements","appendRel","addNoOpener","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","makeMap$4","each$f","explode$2","extend$2","DomParser","matchedNodes","matchedAttributes","root_name","fixInvalidChildren","newParent","childNode","nonSplitableElements","textBlockElements","filterNode","fi","fl","isInWhiteSpacePreservedElement","invalidChildren","getRootBlockName","rootBlockName","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","createNode","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","newNode","attrFiltersLen","postProcess$1","outArgs","getHtmlFromNode","parseHtml","parserArgs","serializeNode","htmlSerializer","toHtml","DomSerializer","addRules","setRules","Serializer$1","domSerializer","BookmarkManager","BookmarkManager$1","isContentEditableFalse$a","isContentEditableTrue$5","getContentEditableRoot$1","ControlSelection","selectedElmGhost","resizeHelper","resizeHandles","selectedHandle","selectedElmX","selectedElmY","startH","ratio","resizeStarted","startScrollWidth","startScrollHeight","editableDoc","nw","ne","sw","isEventOnImageOutsideRange","contextMenuSelectImage","getResizeTarget","isResizable","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","resize_img_proportional","endGhostResize","setSizeProp","showResizeRect","targetWidth","targetHeight","hideResizeRect","unbindResizeHandleEvents","unSelectabe","updateResizeRect","controlElm","isChildOrEqual","disableGeckoResize","isWithinContentEditableFalse","delayedSelect","throttledUpdateResizeRect","composing","getPos$1","fireScrollIntoViewEvent","alignToTop","scrollEvent","scrollElementIntoView","viewPort","viewPortY","viewPortH","scrollContainer","getScrollContainer","getViewPortRect","scrollRangeIntoView","rngRect","bodyRect","ScrollIntoView","hasCeProperty","findParent","findClosestIeRange","createTextRange","moveToElementText","moveToPoint","moveOutOfContentEditableFalse","parentElement","pointDoc","CaretRangeFromPoint","processRanges","EventProcessRanges","tableModel","cellPosition","fillout","y2","x2","cellExists","skipCellsX","findElementPos","extractRows","sx","sy","ey","subTable","createDomTable","tableElement","modelRowsToDomRows","fromDom$1","toDom","subsection","endElement","SimpleTableModel","getSelectedNodes","hasMultipleRanges","MultiRange","getCellsFromRanges","getCellsFromElement","getCellsFromElementOrRanges","rangeCells","getCellsFromEditor","TableCellSelection","findParentListContainer","getFullySelectedListWrappers","listCont","wrap$3","innerElm","directListWrappers","commonAnchorContainer","getWrapElements","wrapElements","listWrappers","allWrappers","emptyFragment","getFragmentFromRange","cloneContents","getParentTable","getTableFragment","selectedTableCells","fullTableModel","sectionedTableModel","getSelectionFragment","FragmentReader","bin","getHtmlContent","tmpElm","getContent$1","GetSelectionContent","findParent$1","hasParent","hasParentWithName","isTable$3","isTableCell$3","isCeFalseCaretContainer","hasBrBeforeAfter","isPrevNode","hasContentEditableFalseParent","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","normalize$2","normRng","NormalizeRange","prependData","insertData","rngSetContent","deleteContents","prevText","nextText","oldLength","setupArgs","setContent$1","createContextualFragment","SetSelectionContent","getEndpointElement","real","skipEmptyTextNodes","forwards","getNode$1","endElm","select$1","deleteFromCallbackMap","newCallbacks","SelectorChanged","selectorChangedData","currentSelectors","BreakType","isNativeIeSelection","isAttachedToDom","isValidRange","bookmarkManager","controlSelection","selectedRange","explicitRange","getEnd$1","compareEndPoints","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","ieRange","setNode","getSelectedBlocks$1","anchorRange","focusRange","selectorChanged","isText$8","startsWithCaretContainer$1","endsWithCaretContainer$1","createZwsp","insertInline$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","renderCaret","BoundaryCaret","strongRtl","hasStrongRtl","isInlineTarget","isRtl$1","findInlineParents","findRootInline","hasSameParentBlock","isAtZwsp","normalizePosition","normalizeForwards","normalizeBackwards","InlineUtils","evaluateUntil","LazyEvaluator","Location","rescope","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","prevPos","nextPos","isValidLocation","readLocation","getName","outside","isEq$5","location1","location2","betweenInlines","fromInline","toInline","skipNoMovement","fromLocation","toLocation","findLocationTraverse","findLocationSimple","findLocation","BoundaryLocation","prevLocation","nextLocation","hasSelectionModifyApi","modify","moveByWord","WordSelection","setCaretPosition","isFeatureEnabled","inline_boundaries","setSelected","renderCaretLocation","findLocation$1","toggleInlines","selectedInlines","targetInlines","safeRemoveCaretContainer","renderInsideInlineCaret","inlines","move$1","moveWord","setupSelectedState","moveNextWord","movePrevWord","BoundarySelection","customEventRootDelegates","documentFocusInHandler","beforeUnloadDelegate","walk$3","getBreakType","currentPos","Br","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastPos","lastRect","lastDist","newDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","isAtFirstLine","isAtLastLine","getPositionsAbove","getPositionsBelow","getFirstLinePositions","getLastLinePositions","isContentEditableFalse$b","getSelectedNode$1","moveToCeFalseHorizontally","getNextPosFn","isBeforeContentEditableFalseFn","rangeIsInContainerBlock","nextCaretPosition","peekCaretPosition","moveToCeFalseVertically","walkerFn","linePositions","nextLinePositions","closestNextLineRect","caretClientRect","dist1","dist2","contentEditableFalseNode","caretPositions","exitPreBlock","getNextVisualCaretPosition","getPrevVisualCaretPosition","getHorizontalRange","newRange","getVerticalRange","moveH","moveV","isCefPosition","moveToLineEndPoint","deflate","getCorners","getYAxisValue","tds","findClosestCorner","corners","newCorner","oldCorner","oldDist","getClosestCell","isTargetCorner","corner","getBottomValue","getTopValue","isAbove$1","isBelow$1","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","moveToRange","hasNextBreak","lineInfo","breakPos","startsWithWrapBreak","startsWithBrBreak","isAtTableCellLine","isAtFirstTableCellLine","isAtLastTableCellLine","isCaretAtStartOrEndOfTable","navigateHorizontally","getClosestAbovePosition","getClosestBelowPosition","getTable","renderBlock","navigateVertically","moveH$1","moveV$1","rangeBefore","insertElement","insertBr","insertBlock$1","insertEmptyLine","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","rootBlock","rootBlockAttrs","moveV$2","matchesEvent","match$1","MatchKeys","executeKeydownOverride","ArrowKeys","isBeforeRoot","getParentBlock$1","placeCaretInEmptyBody","paddEmptyBody","willDeleteLastPositionInElement","fromPos","firstPos","normalizedFirstPos","normalizedLastPos","normalizedFromPos","DeleteUtils","BlockPosition","BlockBoundary","getBlockPosition","isDifferentBlocks","blockBoundary","hasSameParent","parent1","parent2","skipLastBr","blockPosition","lastPositionInBlock","readFromRange","fromBlockPos","toBlockPos","blockPos","read$3","BlockMergeBoundary","getChildrenUntilBlockBoundary","extractChildren","removeEmptyRoot","isEmptyBefore","nestedBlockMerge","fromBlock","toBlock","insertionPoint","sidelongBlockMerge","findInsertionPoint","getInsertionPoint","trimBr","mergeBlockInto","mergeBlocks","MergeBlocks","BlockBoundaryDelete","deleteRangeMergeBlocks","isRawNodeInTable","isSelectionInTable","isEverythingSelected","noPrevious","noNext","emptyEditor","deleteRange","backspaceDelete$1","BlockRangeDelete","isBr$5","parentBlocks","isBeforeBr","isAfterBr","findPreviousBr","findNextBr","isCompoundElement","DeleteAction","moveToElement","moveToPosition","isAtContentEditableBlockCaret","caretLocation","isDeleteFromCefDifferentBlocks","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","deleteAction","getContentEditableAction","read$4","deleteElement$1","deleteOffscreenSelection","getContentEditableRoot$2","paddEmptyElement","backspaceDelete$2","CefDelete","trimEmptyTextNode$1","deleteContentAndShowCaret","deleteCefBoundaryText","backspaceDelete$3","CefBoundaryDelete","isFeatureEnabled$1","rangeFromPositions","hasOnlyTwoOrLessPositionsLeft","setCaretLocation","deleteFromTo","rescope$1","backspaceDeleteCollapsed","toPosition","backspaceDelete$4","BoundaryDelete","getParentInlines","hasOnlyOneChild","deleteLastPosition","parentInlines","isFormatElement$1","deleteCaret","backspaceDelete$5","InlineFormatDelete","tableCellRng","tableSelection","removeTable","emptyCells","isRootFromElement","getClosestCell$1","getClosestTable","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableCells","getCellRangeFromStartTable","endCell","partialSelection","isWithinSameTable","getCellRng","getTableSelectionFromCellRng","getTableSelectionFromRng","getCellIndex","getSelectedCells","getActionFromCells","getActionFromRange","TableDeleteAction","deleteTableElement","deleteCellRange","deleteCaptionRange","emptyElement","deleteTableRange","getParentCaption","deleteRange$1","getParentCell","deleteBetweenCells","fromCell","isDeleteOfLastCharPos","fromCaption","emptyCaretCaption","validateCaretCaption","toCaption","deleteCaretInsideCaption","deleteCaretCells","deleteCaretCaption","isNearTable","isBeforeOrAfterTable","deleteCaret$1","backspaceDelete$6","TableDelete","deleteCaret$2","backspaceDelete$7","PageBreakDelete","executeKeydownOverride$1","executeKeyupOverride","DeleteBackspaceKeys","firstNonWhiteSpaceNodeSibling","moveToCaretPosition","getEditableRoot","editableRoot","getParentBlock$2","getParentBlockName","isListItemParentBlock","NewLineUtils","hasFirstChild","hasParent$1","isListBlock","isNestedList","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","createNewBlock","newBlockName","InsertLi","trimZwsp","isEmptyAnchor","isTableCell$4","emptyBlock","containerAndSiblingName","canSplitBlock","trimInlineElementsOnLeftSideOfBlock","firstChilds","normalizeZwspOffset","includeZwspInRange","trimLeadingLineBreaks","getEditableRoot$1","setForcedBlockAttrs","wrapSelfAndSiblingsInDefaultBlock","addBrToBlockIfNeeded","parentBlockName","containerBlockName","isAfterLastNodeInContainer","clonedNode","textInlineElements","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","InsertBlock","hasRightSideContent","scrollToBr","brElm","moveSelectionToBr","extraBr","insertBrAtCaret","isControlKey","insertBrBefore","insertBrAfter","hasBrAfter","isBeforeBr$1","isAnchorLink","isInsideAnchor","readInlineAnchorLocation","insertBrOutsideAnchor","insert$2","anchorLocation","InsertBr","shouldInsertBr","shouldBlockNewLine","ContextSelectors","newLineAction","shouldBlockNewLine$1","isBrMode","requiredState","brMode","inListBlock","inPreBlock","inSummaryBlock","shouldPutBrInPre$1","inBrContext","canInsertIntoEditableRoot","rootEditable","match$2","predicates","getAction$1","NewLineAction","insert$3","InsertNewLine","endTypingLevel","handleEnterKeyEvent","EnterKey","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","navigateIgnoreEmptyTextNodes","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isInMiddleOfText","getClosestBlock","hasSpaceBefore","hasSpaceAfter","isPreValue","isInPre","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToHaveNbsp","needsToBeNbspLeft","needsToBeNbspRight","afterPos","needsToBeNbsp","isNbspAt","hasNbsp","normalizeNbspMiddle","normalizeNbspAtStart","normalizeNbspInMiddleOfTextNode","normalizeNbspAtEnd","normalizeNbsps","normalizeNbspsInEditor","locationToCaretPosition","insertInlineBoundarySpaceOrNbsp","checkPos","setSelection$1","insertSpaceOrNbspAtSelection","executeKeydownOverride$2","SpaceKey","findBlockCaretContainer","removeIeControlRect","handleBlockContainer","CaretContainerInput","browser$4","setupIeInput","keypressThrotter","setup$c","isComposing","executeKeydownOverride$3","setup$d","HomeEndKeys","setup$e","KeyboardOverrides","isGecko","isWebKit","mceInternalDataType","setEditorCommandState","setMceInternalContent","selectionHtml","internalContent","getMceInternalContent","insertClipboardContents","queryCommandSupported","emptyEditorWhenDeleting","serializeRng","allContentsSelected","allRng","allSelection","selectAll","inputMethodFocus","removeHrOnBackspace","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","setAttributeNode","isSelectionAcrossElements","applyAttributes","disableBackspaceIntoATable","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","addBrAfterLastLinks","fixLinks","setDefaultBlockType","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","selection_1","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","isTextBlockNode","normalizeSelection$1","setup$f","preventSummaryToggle","filterDetails","setup$g","appendStyle","createParser","autoFocus","auto_focus","initEditor","bindPendingEventDelegates","getStyleSheetLoader","initContentBody","skipWrite","contentCssText","orgVisibility","iframeHTML","bodyEl","content_document","content_window","hex_colors","force_hex_style_colors","annotator","_nodeChangeDispatcher","gecko_spellcheck","spellcheck","directionality","protect","content_style","InitContentBody","DOM$3","relaxDomain","ifr","domain","hostname","bodyUuid","domainRelaxUrl","createIframeElement","customAttrs","frameBorder","allowTransparency","bodyId","getURI","createIframe","isDomainRelaxed","boxInfo","InitIframe","isContentCssSkinName","getContentCssUrls","contentCssFile","appendContentCssFromSettings","DOM$4","initPlugin","initializedPlugins","pluginInstance","trimLegacyPrefix","initPlugins","initIcons","iconPackName","currentIcons","defaultIcons","loadIcons","svgData","addIcon","initTheme","renderFromLoadedTheme","renderFromThemeFunc","iframeHeight","createThemeFalseResult","renderThemeFalseIframe","renderThemeFalse","renderThemeUi","Init","DOM$5","hasSkipLoadPrefix","loadLanguage","scriptLoader","languageCode","languageUrl","loadTheme","themeUrl","theme_url","loadPlugins","triggerSave","encoding","set_dirty","activeMode","defaultModes","availableModes","design","activate","deactivate","editorReadOnly","toggleReadOnly","switchToMode","oldMode","hasOnlyOneChild$1","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","isListFragment","cleanupDomFragment","domFragment","toDomFragment","listItems$1","isPadding","isListItemPadded","isEmptyOrPadded","trimListItems","getParentLi","isParentBlockLi","getSplit","beforeRng","afterRng","findFirstIn","newCaretPos","findLastOf","insertMiddle","insertBefore$1","insertAfter$1","insertAtCaret","liTarget","liElms","BEGINNING","isAt","InsertList","isAfterNbsp","trimOrPadLeftRight","hasSiblingText","trimNbspAfterDeleteAndPadValue","isTableCell$5","selectionSetContent","validInsertion","trimBrsFromTableCell","reduceInlineTextElements","root_1","elementUtils_1","testNode","markFragmentElements","umarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","parentEditableFalseElm","nextRng","getContentEditableFalseParent","findNextCaretRng","insertHtmlAtCaret","bookmarkHtml","caretElement","processValue","insertAtCaret$1","InsertContent","nativeCommand","deleteCommand","forwardDeleteCommand","DeleteCommands","getSpecifiedFontProp","getProperty","normalizeFontFamily","getComputedFontProp","getFontProp","FontInfo","getFontSize","getFontFamily","findFirstCaretElement","isRangeAtStartOfNode","getCaretElement","fromFontSizeNumber","fontSizeNumber","fontClasses","fontNameAction","fontNameQuery","fontSizeAction","fontSizeQuery","isEditable$1","parseIndentValue","getIndentStyleName","useMargin","indentStyleName","indentElement","validateBlocks","intentValue","canOutdent","getBlocksToIndent","isListComponent","parentIsListComponent","indentUnit","indentValue","each$g","map$3","inArray$2","EditorCommands","setupCommands","customCommand","skip_focus","addCommands","commandList","hasCustomCommand","execNativeCommand","isFormatMatch","storeSelection","selectionBookmark","mceResetDesignMode,mceBeginUndoLevel","mceEndUndoLevel,mceAddUndoLevel","Cut,Copy,Paste","queryCommandEnabled","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone","InsertUnorderedList,InsertOrderedList","listParent","Bold,Italic,Underline,Strikethrough,Superscript,Subscript","ForeColor,HiliteColor","FontName","FontSize","mceBlockQuote","FormatBlock","mceCleanup","mceRemoveNode","mceSelectNodeDepth","mceSelectNode","mceInsertContent","mceInsertRawHTML","mceInsertNewLine","mceToggleFormat","mceSetContent","Indent,Outdent","mceRepaint","InsertHorizontalRule","mceToggleVisualAid","mceReplaceContent","mceInsertLink","editingHost","delete","forwardDelete","mceNewDocument","InsertLineBreak","alignStates","JustifyLeft","JustifyCenter","JustifyRight","JustifyFull","Outdent","nativeEvents","returnFalse$1","returnTrue$1","EventDispatcher","bindings","toggleEvent","isNative","beforeFire","wrappedCallback","bindingName","hi","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","dispatcherArgs","DOM$6","getEventTarget","event_root","eventRoot","isListening","fireEvent","bindEventDelegate","eventRootElm","delegates","activeEditor","editors","EditorObservable","_pendingNativeEvents","each$h","explode$3","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","desc","cmdFunc","createShortcut","parseShortcut","each$i","trim$4","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","URI","baseUri","isProtocolRelative","toAbsPath","urlMatch","userInfo","uriComponents","setPath","pathMatch","toRelative","relativeUri","tu","uu","toRelPath","noHost","absoluteUri","defaultPort","breakPoint","normalizedBase","outPath","nb","normalizedPath","noProtoHost","addSidebar","DOM$7","extend$3","each$j","resolve$4","ie$2","loadedCSS","isNotDirty","documentBaseURL","baseURI","language_load","editorCommands","cache_suffix","override_viewport","modeInstance","callbackLookup","focusedEditor","setProgressState","initialContent","oldState","urlconverter_callback","visual_table_class","visual_anchor_class","_scanForImages","isEditorUIElement","FocusManager","isManualNodeChange","registerPageMouseUp","throttledStore","mouseUpPage","registerFocusOut","registerMouseUp","registerEditorEvents","SelectionRestore","DOM$8","isEditorUIElement$1","isUIElement","customSelector","custom_ui_selector","getActiveElement","blurredEditor","unregisterDocumentEvents","setup$h","FocusController","DOM$9","explode$4","each$k","extend$4","instanceCounter","boundGlobalEvents","legacyEditors","isValidLegacyKey","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","purgeDestroyedEditor","majorVersion","minorVersion","releaseDate","i18n","preInit","tinyMCEPreInit","srcScript","currentScript","base_url","pluginBaseUrls","plugin_base_urls","invalidInlineTargets","isInvalidInlineTarget","createId","editor_deselector","editor_selector","provideResults","initEditors","initCount","createEditor","existingEditor","RangeUtils","normalizedRng","compareRanges","extendClass","initializing","RangeUtils$1","round$2","relativePosition","targetW","targetH","findBestRelativePosition","constrainRect","intersect","x1","y1","clamp$1","fixedSize","underflowX1","underflowY1","overflowX2","overflowY2","cx2","cy2","fromClientRect","Rect","each$l","extend$5","member","_super","mixins","mixin","Mixins","dummy","createMethod","name_1","Methods","Properties","Statics","Defaults","min$1","max$1","round$3","rgb2hsv","hsvToRgb","toRgb","toHsv","hexCode","JSONUtils","JSONP","XHR","success_scope","error_scope","content_type","requestheaders","extend$6","JSONRequest","sendRPC","ecb","scb","xhrArgs","ty","storage","LocalStorage","publicApi","geom","isMac","exportToModuleLoaders","exportToWindowGlobal","tinyMCE","SPECIES","C","regExps","aletter","midnumlet","midletter","midnum","lf","newline","katakana","extendnumlet","punctuation","characterIndices","ALETTER","MIDNUMLET","MIDLETTER","MIDNUM","NUMERIC","CR","LF","NEWLINE","EXTEND","FORMAT","KATAKANA","EXTENDNUMLET","AT","OTHER","SETS","EMPTY_STRING","PUNCTUATION","WHITESPACE","SETS$1","setsLength","memoize","classify","memoized","isWordBoundary","prevType","nextNextType","nextType","EMPTY_STRING$1","WHITESPACE$1","PUNCTUATION$1","isProtocol","findWordEnd","findUrlEnd","peakedWord","findWords","sChars","characterMap","word","includeWhitespace","includePunctuation","startOfWord","endOfWord","endOfUrl","getDefaultOptions","getWords","filteredChars","extractedChars","getWords$1","treeWalker","getCount","charactersNoSpace","getEditorWordcount","getSelectionWordcount","fireWordCountUpdate","updateCount","debouncedUpdate","documentCount","selectionCount","Content","editorContent","$Object","getOwnPropertyDescriptor"],"mappings":"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AAxvF,EAAA6sF,IAEA+C,GAAA,SAAAvG,GACA,OAAAoG,GAAAF,UAAAlG,IAEAwG,GAAA,SAAAC,EAAA5gH,EAAAy+G,GACA,YAAAl/G,IAAAS,QAAAT,IAAAk/G,EACAoC,GAAAD,GAEAA,EAAAd,eAAA9/G,EAAAy+G,IAGAoC,GAAA,SAAAD,GACA,OAAAA,EAAAjC,UAEAmC,GAAA,SAAAF,GACA,OAAAA,EAAAhC,aAEAmC,GAAA,CACAP,qBACAF,mBAAAG,GACAC,sBACAC,qBACAE,6BACAC,yBAGA,SAAAE,GAAAvlH,EAAAwrC,EAAAlG,GAOA,OANAtlC,EAAAklC,WAAAllC,GACAA,EAAAslC,EACAtlC,EAAAslC,EACOtlC,EAAAwrC,IACPxrC,EAAAwrC,GAEAxrC,EAEA,SAAAwlH,KACA,OACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAGA,IAAAC,GAAA,CACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,EACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,IAEA,SAAAC,GAAAC,EAAAC,GACA,IAAAjgH,EAAAuG,EAAA1E,EAAAse,EAAAk6D,EAAA,GAAA6lC,EAAA,IAAA3hH,MAAA,IACA,IAAA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A,CACA,KACA,eAEA,CACA,KACA,gBAEA,CACA,KACA,uBAEA,CACA,KACA,aAEA,CACA,KACA,gBAEA,CACA,KACA,gBAEA,CACA,KACA,gBAEA,CACA,KACA,aAEA,CACA,KACA,uBAEA,CACA,KACA,iBAEA,CACA,KACA,cAEA,CACA,KACA,qBAEA,CACA,KACA,qBAEA,CACA,KACA,oBAEA,CACA,KACA,cAEA,CACA,KACA,cAEA,CACA,MACA,iBAEA,CACA,MACA,kBAEA,CACA,MACA,2CAEA,CACA,MACA,oCAIA,CACAvhK,KAAA,OACAuhK,WAAA,CACA,CACA,IACA,kBAEA,CACA,IACA,mBAEA,CACA,KACA,mBAEA,CACA,KACA,kBAEA,CACA,IACA,cAEA,CACA,IACA,cAEA,CACA,KACA,UAEA,CACA,KACA,oBAEA,CACA,KACA,kBAEA,CACA,KACA,oBAEA,CACA,IACA,gBAEA,CACA,IACA,kBAEA,CACA,IACA,uBAIA,CACAvhK,KAAA,aACAuhK,WAAA,CACA,CACA,KACA,6CAEA,CACA,KACA,8CAEA,CACA,IACA,2BAEA,CACA,IACA,4BAEA,CACA,KACA,8BAEA,CACA,KACA,+BAEA,CACA,KACA,8BAEA,CACA,KACA,+BAEA,CACA,KACA,+BAEA,CACA,KACA,+BAEA,CACA,GACA,kBAEA,CACA,GACA,qBAEA,CACA,KACA,yBAEA,CACA,KACA,4BAEA,CACA,KACA,WAEA,CACA,KACA,WAEA,CACA,IACA,UAEA,CACA,KACA,YAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,aAEA,CACA,IACA,6BAEA,CACA,IACA,wBAEA,CACA,IACA,qBAEA,CACA,IACA,eAEA,CACA,IACA,eAEA,CACA,KACA,cAEA,CACA,IACA,mBAEA,CACA,IACA,iBAEA,CACA,KACA,kBAEA,CACA,IACA,uBAEA,CACA,IACA,mBAEA,CACA,IACA,mBAEA,CACA,IACA,qBAEA,CACA,IACA,wBAEA,CACA,IACA,qBAEA,CACA,IACA,6BAIA,CACAvhK,KAAA,eACAuhK,WAAA,CACA,CACA,IACA,qBAEA,CACA,KACA,YAEA,CACA,KACA,kBAEA,CACA,KACA,YAEA,CACA,KACA,eAEA,CACA,KACA,cAEA,CACA,KACA,0BAEA,CACA,KACA,mBAEA,CACA,KACA,gBAEA,CACA,KACA,gBAEA,CACA,KACA,cAEA,CACA,KACA,qBAEA,CACA,KACA,sBAEA,CACA,KACA,iBAEA,CACA,KACA,eAEA,CACA,KACA,cAEA,CACA,IACA,YAEA,CACA,KACA,gBAEA,CACA,KACA,SAEA,CACA,KACA,wBAEA,CACA,KACA,WAEA,CACA,KACA,gBAEA,CACA,KACA,YAEA,CACA,KACA,uBAEA,CACA,KACA,qBAEA,CACA,KACA,mBAEA,CACA,KACA,WAIA,CACAvhK,KAAA,iBACAuhK,WAAA,CACA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,aAEA,CACA,IACA,iBAEA,CACA,IACA,kBAEA,CACA,IACA,cAEA,CACA,IACA,eAEA,CACA,IACA,eAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,OAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,aAEA,CACA,IACA,iBAEA,CACA,IACA,aAEA,CACA,IACA,cAEA,CACA,IACA,eAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,aAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,SAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,aAEA,CACA,IACA,iBAEA,CACA,IACA,kBAEA,CACA,IACA,cAEA,CACA,IACA,eAEA,CACA,IACA,eAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,OAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,aAEA,CACA,IACA,iBAEA,CACA,IACA,WAEA,CACA,IACA,YAEA,CACA,IACA,eAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,aAEA,CACA,IACA,kBAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,aAEA,CACA,IACA,SAEA,CACA,IACA,iBAEA,CACA,IACA,cAEA,CACA,IACA,SAEA,CACA,IACA,QAEA,CACA,IACA,SAEA,CACA,IACA,SAEA,CACA,IACA,WAEA,CACA,IACA,QAEA,CACA,IACA,OAEA,CACA,IACA,SAEA,CACA,IACA,QAEA,CACA,IACA,SAEA,CACA,IACA,UAEA,CACA,IACA,MAEA,CACA,IACA,MAEA,CACA,IACA,MAEA,CACA,IACA,WAEA,CACA,IACA,MAEA,CACA,IACA,OAEA,CACA,IACA,SAEA,CACA,IACA,OAEA,CACA,IACA,WAEA,CACA,IACA,OAEA,CACA,IACA,OAEA,CACA,IACA,OAEA,CACA,IACA,SAEA,CACA,IACA,SAEA,CACA,IACA,QAEA,CACA,IACA,SAEA,CACA,IACA,SAEA,CACA,IACA,WAEA,CACA,IACA,QAEA,CACA,IACA,OAEA,CACA,IACA,SAEA,CACA,IACA,QAEA,CACA,IACA,SAEA,CACA,IACA,UAEA,CACA,IACA,MAEA,CACA,IACA,MAEA,CACA,IACA,MAEA,CACA,IACA,WAEA,CACA,IACA,MAEA,CACA,IACA,OAEA,CACA,IACA,eAEA,CACA,IACA,SAEA,CACA,IACA,OAEA,CACA,IACA,WAEA,CACA,IACA,OAEA,CACA,IACA,OAEA,CACA,IACA,OAEA,CACA,IACA,WAIA,CACAvhK,KAAA,UACAuhK,WAAA,CACA,CACA,KACA,eAEA,CACA,IACA,aAEA,CACA,KACA,oBAEA,CACA,IACA,yBAEA,CACA,KACA,iBAEA,CACA,KACA,oBAIA,CACAvhK,KAAA,SACAuhK,WAAA,CACA,CACA,KACA,mBAEA,CACA,KACA,iBAEA,CACA,KACA,oBAEA,CACA,KACA,mBAEA,CACA,KACA,oBAEA,CACA,KACA,mBAEA,CACA,KACA,0BAEA,CACA,KACA,wBAEA,CACA,KACA,2BAEA,CACA,KACA,0BAEA,CACA,KACA,2BAEA,CACA,KACA,aAEA,CACA,KACA,aAEA,CACA,KACA,eAEA,CACA,KACA,mBAEA,CACA,KACA,yBAEA,CACA,KACA,2BAEA,CACA,KACA,gBAEA,CACA,KACA,iBAEA,CACA,KACA,iBAEA,CACA,KACA,gBAEA,CACA,KACA,gBAEA,CACA,KACA,iBAEA,CACA,KACA,cAEA,CACA,KACA,eAEA,CACA,KACA,+BAEA,CACA,KACA,gCAEA,CACA,KACA,WAEA,CACA,KACA,oBAEA,CACA,KACA,mBAEA,CACA,KACA,oBAEA,CACA,KACA,sBAEA,CACA,KACA,YAEA,CACA,KACA,YAEA,CACA,KACA,cAEA,CACA,KACA,yBAEA,CACA,KACA,qBAEA,CACA,KACA,sBAEA,CACA,KACA,0BAMAwwC,EAAA,SAAAL,GACA,OAAAxpI,EAAA06G,KAAA8uB,EAAA,SAAAv8K,GACA,OAAAt4B,EAAAs4B,IAAA,IAAAA,EAAAx9B,UAGAq6M,EAAA,SAAAC,GACA,OAAAp1M,EAAAo1M,GACA,GAAAt5M,OAAAo5M,EAAAE,IAEA,oBAAAA,EACAA,IAEA,IAEAC,EAAA,SAAAh9M,EAAAw8M,GACA,IAAAS,EAAAz5G,EAAA+4G,WAAAv8M,GACAi9M,IACAT,EAAA,EACA1xM,KAAA6xM,EACAtwC,WAAAywC,EAAAG,MAGA,IAAAC,EAAA15G,EAAAi5G,iBAAAz8M,GACA,GAAAk9M,EAAA,CACA,IAAAC,EAAAnqI,EAAA06G,KAAA8uB,EAAA,SAAAY,GACA,OAAAA,EAAAtyM,OAAA6xM,IAEA,OAAAQ,EAAA16M,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,SACA,UACA,SACA,aACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,MACA,MACA,YACA,OACA,MACA,KACA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,WAEAu2E,GAAA,CACA,OACA,OACA,WACA,KACA,MACA,QACA,KACA,MACA,QACA,UACA,OACA,OACA,QACA,QACA,SACA,MACA,SAEAC,GAAA,CACA,KACA,MAEAC,GAAA,CACA,QACA,QACA,SAEAnyF,GAAA,CACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,UACA,MACA,OACA,aACA,SACA,MACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,MACA,UAEAoyF,GAAA,CACA,KACA,KACA,KACA,KACA,KACA,MAEAC,GAAA,CACA,KACA,KACA,MAEAj5F,GAAA,CACA,KACA,KACA,MAEAk5F,GAAA,CACA,MACA,SACA,WACA,SAEAC,GAAA,SAAAjuP,GACA,IAAAnnC,EACA,gBAAAvM,GAEA,OADAuM,KAAAspR,GAAAniP,EAAA3qD,GAAA,IACAwjB,EAAAnc,eAAAS,GAAAmP,MAGAi1P,GAAA0sC,GAAAH,IACAn8F,GAAAs8F,GAAA72E,IACA82E,GAAA,SAAA5hS,GACA,gBAAAnP,GAAAmP,IAEAi3E,GAAA,SAAAj3E,GACA,OAAAuH,GAAAvH,KAAAqlM,GAAArlM,IAEA6hS,GAAA,SAAA7hS,GACA,OAAAuH,GAAAvH,IAAA,OAAAnP,GAAAmP,IAEAmlM,GAAAw8F,GAAAvyF,IACA1G,GAAAi5F,GAAAn5F,IACAwtD,GAAA2rC,GAAAF,IACAK,GAAAH,GAAAN,IACAU,GAAAJ,GAAAJ,IACAS,GAAAL,GAAAL,IACAW,GAAAN,GAAAD,IAEAQ,GAAA,SAAAliS,GACA,IAAAmiS,EAAAniS,EAAAwlM,iBAAA,SAAAxlM,EAAAwlM,gBAAAn+L,SACA+6R,EAAApiS,EAAAkF,aAAA,SAAAlF,EAAAkF,YAAAmC,SACA,OAAA86R,GAAAC,GAEA9yF,GAAA,SAAAtvM,GACA,OAAAA,GAAA,SAAAA,EAAAohM,SAAA,a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","file":"static/js/editor.8f089ec6.js","sourcesContent":["/* global tinymce:true */\n/* global $:true */\n/* eslint-disable */\n(function ()\n{\n var pluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n pluginManager.add('linktools', function(editor)\n {\n function gotoLink()\n {\n return function()\n {\n var url = $(editor.selection.getNode()).attr('href');\n\n if (url)\n {\n if (url.indexOf('http://') == -1 && url.indexOf('https://') == -1)\n {\n url = editor.settings.document_base_url + url;\n }\n\n window.open(url);\n }\n\n return '';\n };\n }\n\n function addButtons()\n {\n editor.ui.registry.addButton('gotolink', {\n title: 'Preview',\n onclick: gotoLink()\n });\n }\n\n function isEditableLink(url)\n {\n // Fix for multiple toolbar visible\n tinymce.each(editor.contextToolbars || [], function(toolbar)\n {\n if (toolbar.panel)\n {\n // Fix for wrong mce-active behavior on toolbar\n tinymce.each(toolbar.panel.find('button'), function(element)\n {\n element.parent().$el.find('.mce-active').removeClass('mce-active');\n });\n\n toolbar.panel.hide();\n }\n });\n\n var selectorMatched = editor.dom.is(url, 'a:not([data-mce-object],[data-mce-placeholder])');\n\n return selectorMatched;\n }\n\n function addToolbars()\n {\n var toolbarItems = editor.settings.linktools_toolbar;\n\n if (!toolbarItems)\n {\n toolbarItems = 'gotolink unlink | link';\n }\n\n editor.ui.registry.addContextToolbar(\n 'linktools',\n isEditableLink,\n toolbarItems\n );\n }\n\n addButtons();\n addToolbars();\n });\n})();\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar silver = (function (domGlobals) {\n 'use strict';\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var noarg = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f();\n };\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var tripleEquals = function (a, b) {\n return a === b;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var apply = function (f) {\n return f();\n };\n var call = function (f) {\n f();\n };\n var never = constant(false);\n var always = constant(true);\n\n var Fun = /*#__PURE__*/Object.freeze({\n noop: noop,\n noarg: noarg,\n compose: compose,\n constant: constant,\n identity: identity,\n tripleEquals: tripleEquals,\n curry: curry,\n not: not,\n die: die,\n apply: apply,\n call: call,\n never: never,\n always: always\n });\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isNull = isType('null');\n var isBoolean = isType('boolean');\n var isUndefined = isType('undefined');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var Type = /*#__PURE__*/Object.freeze({\n isString: isString,\n isObject: isObject,\n isArray: isArray,\n isNull: isNull,\n isBoolean: isBoolean,\n isUndefined: isUndefined,\n isFunction: isFunction,\n isNumber: isNumber\n });\n\n var rawIndexOf = function () {\n var pIndexOf = Array.prototype.indexOf;\n var fastIndex = function (xs, x) {\n return pIndexOf.call(xs, x);\n };\n var slowIndex = function (xs, x) {\n return slowIndexOf(xs, x);\n };\n return pIndexOf === undefined ? slowIndex : fastIndex;\n }();\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Option.none() : Option.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n return findIndex(xs, pred).isSome();\n };\n var range = function (num, f) {\n var r = [];\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n var chunk = function (array, size) {\n var r = [];\n for (var i = 0; i < array.length; i += size) {\n var s = array.slice(i, i + size);\n r.push(s);\n }\n return r;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i, xs) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n r.push(x);\n }\n }\n return r;\n };\n var groupBy = function (xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var slowIndexOf = function (xs, x) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (xs[i] === x) {\n return i;\n }\n }\n return -1;\n };\n var push = Array.prototype.push;\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!Array.prototype.isPrototypeOf(xs[i]))\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n push.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i, xs) !== true) {\n return false;\n }\n }\n return true;\n };\n var equal = function (a1, a2) {\n return a1.length === a2.length && forall(a1, function (x, i) {\n return x === a2[i];\n });\n };\n var slice = Array.prototype.slice;\n var reverse = function (xs) {\n var r = slice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var mapToObject = function (xs, f) {\n var r = {};\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n var pure = function (x) {\n return [x];\n };\n var sort = function (xs, comparator) {\n var copy = slice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var Arr = /*#__PURE__*/Object.freeze({\n indexOf: indexOf,\n contains: contains,\n exists: exists,\n range: range,\n chunk: chunk,\n map: map,\n each: each,\n eachr: eachr,\n partition: partition,\n filter: filter,\n groupBy: groupBy,\n foldr: foldr,\n foldl: foldl,\n find: find,\n findIndex: findIndex,\n flatten: flatten,\n bind: bind,\n forall: forall,\n equal: equal,\n reverse: reverse,\n difference: difference,\n mapToObject: mapToObject,\n pure: pure,\n sort: sort,\n head: head,\n last: last,\n from: from$1\n });\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i, obj);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i, obj) {\n return {\n k: i,\n v: f(x, i, obj)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i, obj);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var bifilter = function (obj, pred) {\n var t = {};\n var f = {};\n each$1(obj, function (x, i) {\n var branch = pred(x, i) ? t : f;\n branch[i] = x;\n });\n return {\n t: t,\n f: f\n };\n };\n var mapToArray = function (obj, f) {\n var r = [];\n each$1(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n var find$1 = function (obj, pred) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n if (pred(x, i, obj)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var values = function (obj) {\n return mapToArray(obj, function (v) {\n return v;\n });\n };\n var size = function (obj) {\n return keys(obj).length;\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var Obj = /*#__PURE__*/Object.freeze({\n keys: keys,\n hasOwnProperty: hasOwnProperty,\n each: each$1,\n map: map$1,\n tupleMap: tupleMap,\n bifilter: bifilter,\n mapToArray: mapToArray,\n find: find$1,\n values: values,\n size: size,\n get: get,\n has: has\n });\n\n var narrow = function (obj, fields) {\n var r = {};\n each(fields, function (field) {\n if (obj[field] !== undefined && has(obj, field)) {\n r[field] = obj[field];\n }\n });\n return r;\n };\n var indexOnKey = function (array, key) {\n var obj = {};\n each(array, function (a) {\n var keyValue = a[key];\n obj[keyValue] = a;\n });\n return obj;\n };\n var exclude = function (obj, fields) {\n var r = {};\n each$1(obj, function (v, k) {\n if (!contains(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n var readOpt = function (key) {\n return function (obj) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n };\n var readOr = function (key, fallback) {\n return function (obj) {\n return has(obj, key) ? obj[key] : fallback;\n };\n };\n var readOptFrom = function (obj, key) {\n return readOpt(key)(obj);\n };\n var hasKey = function (obj, key) {\n return has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var wrap = function (key, value) {\n var r = {};\n r[key] = value;\n return r;\n };\n var wrapAll = function (keyvalues) {\n var r = {};\n each(keyvalues, function (kv) {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value,\n error: error\n };\n\n var generate = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++)\n args[i] = arguments[i];\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd)\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate };\n\n var comparison = Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n var partition$1 = function (results) {\n var errors = [];\n var values = [];\n each(results, function (result) {\n result.fold(function (err) {\n errors.push(err);\n }, function (value) {\n values.push(value);\n });\n });\n return {\n errors: errors,\n values: values\n };\n };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var deep = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++)\n objects[i] = arguments[i];\n if (objects.length === 0)\n throw new Error('Can\\'t merge zero objects');\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject)\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge = baseMerge(shallow);\n\n var narrow$1 = function (obj, fields) {\n return narrow(obj, fields);\n };\n var exclude$1 = function (obj, fields) {\n return exclude(obj, fields);\n };\n var readOpt$1 = function (key) {\n return readOpt(key);\n };\n var readOr$1 = function (key, fallback) {\n return readOr(key, fallback);\n };\n var readOptFrom$1 = function (obj, key) {\n return readOptFrom(obj, key);\n };\n var wrap$1 = function (key, value) {\n return wrap(key, value);\n };\n var wrapAll$1 = function (keyvalues) {\n return wrapAll(keyvalues);\n };\n var indexOnKey$1 = function (array, key) {\n return indexOnKey(array, key);\n };\n var mergeValues = function (values, base) {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge.apply(undefined, values)));\n };\n var mergeErrors = function (errors) {\n return compose(Result.error, flatten)(errors);\n };\n var consolidate = function (objs, base) {\n var partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n var hasKey$1 = function (obj, key) {\n return hasKey(obj, key);\n };\n\n var Objects = /*#__PURE__*/Object.freeze({\n narrow: narrow$1,\n exclude: exclude$1,\n readOpt: readOpt$1,\n readOr: readOr$1,\n readOptFrom: readOptFrom$1,\n wrap: wrap$1,\n wrapAll: wrapAll$1,\n indexOnKey: indexOnKey$1,\n hasKey: hasKey$1,\n consolidate: consolidate\n });\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n var liftN = function (arr, f) {\n var r = [];\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Option.none();\n }\n }\n return Option.some(f.apply(null, r));\n };\n function lift() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var f = args.pop();\n return liftN(args, f);\n }\n\n var Options = /*#__PURE__*/Object.freeze({\n cat: cat,\n findMap: findMap,\n liftN: liftN,\n lift: lift\n });\n\n var touchstart = constant('touchstart');\n var touchmove = constant('touchmove');\n var touchend = constant('touchend');\n var mousedown = constant('mousedown');\n var mousemove = constant('mousemove');\n var mouseout = constant('mouseout');\n var mouseup = constant('mouseup');\n var mouseover = constant('mouseover');\n var focusin = constant('focusin');\n var focusout = constant('focusout');\n var keydown = constant('keydown');\n var keyup = constant('keyup');\n var input = constant('input');\n var change = constant('change');\n var click = constant('click');\n var transitionend = constant('transitionend');\n var selectstart = constant('selectstart');\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s))\n return x;\n }\n return undefined;\n };\n var find$2 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r)\n return {\n major: 0,\n minor: 0\n };\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0)\n return unknown();\n return find$2(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\n var isTouch = os.isiOS() || os.isAndroid();\n var isPhone = isTouch && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '')\n return true;\n if (str.length < substr.length)\n return false;\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n return monstrosity;\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var detect$3 = cached(function () {\n var userAgent = domGlobals.navigator.userAgent;\n return PlatformDetection.detect(userAgent);\n });\n var PlatformDetection$1 = { detect: detect$3 };\n\n var alloy = { tap: constant('alloy.tap') };\n var focus = constant('alloy.focus');\n var postBlur = constant('alloy.blur.post');\n var postPaste = constant('alloy.paste.post');\n var receive = constant('alloy.receive');\n var execute = constant('alloy.execute');\n var focusItem = constant('alloy.focus.item');\n var tap = alloy.tap;\n var tapOrClick = PlatformDetection$1.detect().deviceType.isTouch() ? alloy.tap : click;\n var longpress = constant('alloy.longpress');\n var sandboxClose = constant('alloy.sandbox.close');\n var typeaheadCancel = constant('alloy.typeahead.cancel');\n var systemInit = constant('alloy.system.init');\n var windowScroll = constant('alloy.system.scroll');\n var windowResize = constant('alloy.system.resize');\n var attachedToDom = constant('alloy.system.attached');\n var detachedFromDom = constant('alloy.system.detached');\n var dismissRequested = constant('alloy.system.dismissRequested');\n var focusShifted = constant('alloy.focusmanager.shifted');\n var slotVisibility = constant('alloy.slotcontainer.visibility');\n var changeTab = constant('alloy.change.tab');\n var dismissTab = constant('alloy.dismiss.tab');\n var highlight = constant('alloy.highlight');\n var dehighlight = constant('alloy.dehighlight');\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var sort$1 = function (arr) {\n return arr.slice(0).sort();\n };\n var reqMessage = function (required, keys) {\n throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');\n };\n var unsuppMessage = function (unsupported) {\n throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));\n };\n var validateStrArr = function (label, array) {\n if (!isArray(array))\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n each(array, function (a) {\n if (!isString(a))\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n });\n };\n var checkDupes = function (everything) {\n var sorted = sort$1(everything);\n var dupe = find(sorted, function (s, i) {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(function (d) {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n var MixedBag = function (required, optional) {\n var everything = required.concat(optional);\n if (everything.length === 0)\n throw new Error('You must specify at least one required or optional field.');\n validateStrArr('required', required);\n validateStrArr('optional', optional);\n checkDupes(everything);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd)\n reqMessage(required, keys$1);\n var unsupported = filter(keys$1, function (key) {\n return !contains(everything, key);\n });\n if (unsupported.length > 0)\n unsuppMessage(unsupported);\n var r = {};\n each(required, function (req) {\n r[req] = constant(obj[req]);\n });\n each(optional, function (opt) {\n r[opt] = constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());\n });\n return r;\n };\n };\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var path = function (parts, scope) {\n var o = scope !== undefined && scope !== null ? scope : Global;\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\n o = o[parts[i]];\n return o;\n };\n var resolve = function (p, scope) {\n var parts = p.split('.');\n return path(parts, scope);\n };\n\n var unsafe = function (name, scope) {\n return resolve(name, scope);\n };\n var getOrDie = function (name, scope) {\n var actual = unsafe(name, scope);\n if (actual === undefined || actual === null)\n throw name + ' not available on this browser';\n return actual;\n };\n var Global$1 = { getOrDie: getOrDie };\n\n var node = function () {\n var f = Global$1.getOrDie('Node');\n return f;\n };\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is = function (element, selector) {\n var elem = element.dom();\n if (elem.nodeType !== ELEMENT$1) {\n return false;\n } else if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = PlatformDetection$1.detect().browser;\n var contains$2 = browser.isIE() ? ieContains : regularContains;\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var defaultView = function (element) {\n var el = element.dom();\n var defView = el.ownerDocument.defaultView;\n return Element.fromDom(defView);\n };\n var parent = function (element) {\n var dom = element.dom();\n return Option.from(dom.parentNode).map(Element.fromDom);\n };\n var parents = function (element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n var dom = element.dom();\n var ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = Element.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n var siblings = function (element) {\n var filterSelf = function (elements) {\n return filter(elements, function (x) {\n return !eq(element, x);\n });\n };\n return parent(element).map(children).map(filterSelf).getOr([]);\n };\n var offsetParent = function (element) {\n var dom = element.dom();\n return Option.from(dom.offsetParent).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n var dom = element.dom();\n return Option.from(dom.nextSibling).map(Element.fromDom);\n };\n var children = function (element) {\n var dom = element.dom();\n return map(dom.childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var spot = Immutable('element', 'offset');\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var appendAt = function (parent, element, index) {\n child(parent, index).fold(function () {\n append(parent, element);\n }, function (v) {\n before(v, element);\n });\n };\n\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove(rogue);\n });\n };\n var remove = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var get$1 = function (element) {\n return element.dom().innerHTML;\n };\n var set = function (element, content) {\n var owner$1 = owner(element);\n var docDom = owner$1.dom();\n var fragment = Element.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append(element, fragment);\n };\n var getOuter = function (element) {\n var container = Element.fromTag('div');\n var clone = Element.fromDom(element.dom().cloneNode(true));\n append(container, clone);\n return get$1(container);\n };\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var value$1 = function (element) {\n return element.dom().nodeValue;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isComment = function (element) {\n return type(element) === COMMENT || name(element) === '#comment';\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n var isDocument = isType$1(DOCUMENT);\n\n var Node$1 = /*#__PURE__*/Object.freeze({\n name: name,\n type: type,\n value: value$1,\n isElement: isElement,\n isText: isText,\n isDocument: isDocument,\n isComment: isComment\n });\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set$1 = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$2 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove$1 = function (element, key) {\n element.dom().removeAttribute(key);\n };\n\n var clone = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow$1 = function (original) {\n return clone(original, false);\n };\n\n var getHtml = function (element) {\n var clone = shallow$1(element);\n return getOuter(clone);\n };\n\n var element = function (elem) {\n return getHtml(elem);\n };\n\n var unknown$3 = 'unknown';\n var CHROME_INSPECTOR_GLOBAL = '__CHROME_INSPECTOR_CONNECTION_TO_ALLOY__';\n var EventConfiguration;\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n }(EventConfiguration || (EventConfiguration = {})));\n var eventConfig = Cell({});\n var makeEventLogger = function (eventName, initialTarget) {\n var sequence = [];\n var startTime = new Date().getTime();\n return {\n logEventCut: function (name, target, purpose) {\n sequence.push({\n outcome: 'cut',\n target: target,\n purpose: purpose\n });\n },\n logEventStopped: function (name, target, purpose) {\n sequence.push({\n outcome: 'stopped',\n target: target,\n purpose: purpose\n });\n },\n logNoParent: function (name, target, purpose) {\n sequence.push({\n outcome: 'no-parent',\n target: target,\n purpose: purpose\n });\n },\n logEventNoHandlers: function (name, target) {\n sequence.push({\n outcome: 'no-handlers-left',\n target: target\n });\n },\n logEventResponse: function (name, target, purpose) {\n sequence.push({\n outcome: 'response',\n purpose: purpose,\n target: target\n });\n },\n write: function () {\n var finishTime = new Date().getTime();\n if (contains([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n domGlobals.console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom(),\n sequence: map(sequence, function (s) {\n if (!contains([\n 'cut',\n 'stopped',\n 'response'\n ], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n var processEvent = function (eventName, initialTarget, f) {\n var status = readOptFrom$1(eventConfig.get(), eventName).orThunk(function () {\n var patterns = keys(eventConfig.get());\n return findMap(patterns, function (p) {\n return eventName.indexOf(p) > -1 ? Option.some(eventConfig.get()[p]) : Option.none();\n });\n }).getOr(EventConfiguration.NORMAL);\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n var logger = makeEventLogger(eventName, initialTarget);\n var output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n var path$1 = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n var getTrace = function () {\n var err = new Error();\n if (err.stack !== undefined) {\n var lines = err.stack.split('\\n');\n return find(lines, function (line) {\n return line.indexOf('alloy') > 0 && !exists(path$1, function (p) {\n return line.indexOf(p) > -1;\n });\n }).getOr(unknown$3);\n } else {\n return unknown$3;\n }\n };\n var ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n var monitorEvent = function (eventName, initialTarget, f) {\n return processEvent(eventName, initialTarget, f);\n };\n var inspectorInfo = function (comp) {\n var go = function (c) {\n var cSpec = c.spec();\n return {\n '(original.spec)': cSpec,\n '(dom.ref)': c.element().dom(),\n '(element)': element(c.element()),\n '(initComponents)': map(cSpec.components !== undefined ? cSpec.components : [], go),\n '(components)': map(c.components(), go),\n '(bound.events)': mapToArray(c.events(), function (v, k) {\n return [k];\n }).join(', '),\n '(behaviours)': cSpec.behaviours !== undefined ? map$1(cSpec.behaviours, function (v, k) {\n return v === undefined ? '--revoked--' : {\n 'config': v.configAsRaw(),\n 'original-config': v.initialConfig,\n 'state': c.readState(k)\n };\n }) : 'none'\n };\n };\n return go(comp);\n };\n var getOrInitConnection = function () {\n if (domGlobals.window[CHROME_INSPECTOR_GLOBAL] !== undefined) {\n return domGlobals.window[CHROME_INSPECTOR_GLOBAL];\n } else {\n var setEventStatus_1 = function (eventName, status) {\n var evs = eventConfig.get();\n evs[eventName] = status;\n eventConfig.set(evs);\n };\n domGlobals.window[CHROME_INSPECTOR_GLOBAL] = {\n systems: {},\n lookup: function (uid) {\n var systems = domGlobals.window[CHROME_INSPECTOR_GLOBAL].systems;\n var connections = keys(systems);\n return findMap(connections, function (conn) {\n var connGui = systems[conn];\n return connGui.getByUid(uid).toOption().map(function (comp) {\n return wrap$1(element(comp.element()), inspectorInfo(comp));\n });\n }).orThunk(function () {\n return Option.some({ error: 'Systems (' + connections.join(', ') + ') did not contain uid: ' + uid });\n });\n },\n events: {\n setToNormal: function (eventName) {\n setEventStatus_1(eventName, EventConfiguration.NORMAL);\n },\n setToLogging: function (eventName) {\n setEventStatus_1(eventName, EventConfiguration.LOGGING);\n },\n setToStop: function (eventName) {\n setEventStatus_1(eventName, EventConfiguration.STOP);\n }\n }\n };\n return domGlobals.window[CHROME_INSPECTOR_GLOBAL];\n }\n };\n var registerInspector = function (name, gui) {\n var connection = getOrInitConnection();\n connection.systems[name] = gui;\n };\n var noLogger = constant(ignoreEvent);\n\n var unique = 0;\n var generate$1 = function (prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b)\n if (b.hasOwnProperty(p))\n d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)\n if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n }\n function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if (d = decorators[i])\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n }\n function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n }\n function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')\n return Reflect.metadata(metadataKey, metadataValue);\n }\n function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator['throw'](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1)\n throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, f, y, t, g;\n return g = {\n next: verb(0),\n 'throw': verb(1),\n 'return': verb(2)\n }, typeof Symbol === 'function' && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f)\n throw new TypeError('Generator is already executing.');\n while (_)\n try {\n if (f = 1, y && (t = op[0] & 2 ? y['return'] : op[0] ? y['throw'] || ((t = y['return']) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)\n return t;\n if (y = 0, t)\n op = [\n op[0] & 2,\n t.value\n ];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2])\n _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n }\n function __exportStar(m, exports) {\n for (var p in m)\n if (!exports.hasOwnProperty(p))\n exports[p] = m[p];\n }\n function __values(o) {\n var m = typeof Symbol === 'function' && o[Symbol.iterator], i = 0;\n if (m)\n return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length)\n o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n }\n function __read(o, n) {\n var m = typeof Symbol === 'function' && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i['return']))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n }\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n }\n function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError('Symbol.asyncIterator is not defined.');\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n])\n i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([\n n,\n v,\n a,\n b\n ]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume('next', value);\n }\n function reject(value) {\n resume('throw', value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length)\n resume(q[0][0], q[0][1]);\n }\n }\n function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb('next'), verb('throw', function (e) {\n throw e;\n }), verb('return'), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === 'return'\n } : f ? f(v) : v;\n } : f;\n }\n }\n function __asyncValues(o) {\n if (!Symbol.asyncIterator)\n throw new TypeError('Symbol.asyncIterator is not defined.');\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === 'function' ? __values(o) : o[Symbol.iterator](), i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n }\n function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, 'raw', { value: raw });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n }\n function __importStar(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null)\n for (var k in mod)\n if (Object.hasOwnProperty.call(mod, k))\n result[k] = mod[k];\n result.default = mod;\n return result;\n }\n function __importDefault(mod) {\n return mod && mod.__esModule ? mod : { default: mod };\n }\n\n var tslib_1 = /*#__PURE__*/Object.freeze({\n __extends: __extends,\n get __assign () { return __assign; },\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault\n });\n\n var adt = Adt.generate([\n { strict: [] },\n { defaultedThunk: ['fallbackThunk'] },\n { asOption: [] },\n { asDefaultedOptionThunk: ['fallbackThunk'] },\n { mergeWithThunk: ['baseThunk'] }\n ]);\n var defaulted = function (fallback) {\n return adt.defaultedThunk(constant(fallback));\n };\n var mergeWith = function (base) {\n return adt.mergeWithThunk(constant(base));\n };\n var strict = adt.strict;\n var asOption = adt.asOption;\n var defaultedThunk = adt.defaultedThunk;\n var mergeWithThunk = adt.mergeWithThunk;\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n var fold = function (res, onError, onValue) {\n return res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n };\n var partition$2 = function (results) {\n var values = [];\n var errors = [];\n each(results, function (obj) {\n fold(obj, function (err) {\n return errors.push(err);\n }, function (val) {\n return values.push(val);\n });\n });\n return {\n values: values,\n errors: errors\n };\n };\n var mapError = function (res, f) {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n var map$2 = function (res, f) {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n var bind$1 = function (res, f) {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n var bindError = function (res, f) {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n var svalue = function (v) {\n return {\n stype: SimpleResultType.Value,\n svalue: v\n };\n };\n var serror = function (e) {\n return {\n stype: SimpleResultType.Error,\n serror: e\n };\n };\n var toResult = function (res) {\n return fold(res, Result.error, Result.value);\n };\n var fromResult = function (res) {\n return res.fold(serror, svalue);\n };\n var SimpleResult = {\n fromResult: fromResult,\n toResult: toResult,\n svalue: svalue,\n partition: partition$2,\n serror: serror,\n bind: bind$1,\n bindError: bindError,\n map: map$2,\n mapError: mapError,\n fold: fold\n };\n\n var mergeValues$1 = function (values, base) {\n return values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n };\n var mergeErrors$1 = function (errors) {\n return compose(SimpleResult.serror, flatten)(errors);\n };\n var consolidateObj = function (objects, base) {\n var partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n var consolidateArr = function (objects) {\n var partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n var ResultCombine = {\n consolidateObj: consolidateObj,\n consolidateArr: consolidateArr\n };\n\n var typeAdt = Adt.generate([\n {\n setOf: [\n 'validator',\n 'valueType'\n ]\n },\n { arrOf: ['valueType'] },\n { objOf: ['fields'] },\n { itemOf: ['validator'] },\n {\n choiceOf: [\n 'key',\n 'branches'\n ]\n },\n { thunk: ['description'] },\n {\n func: [\n 'args',\n 'outputSchema'\n ]\n }\n ]);\n var fieldAdt = Adt.generate([\n {\n field: [\n 'name',\n 'presence',\n 'type'\n ]\n },\n { state: ['name'] }\n ]);\n\n var json = function () {\n return Global$1.getOrDie('JSON');\n };\n var parse = function (text) {\n return json().parse(text);\n };\n var stringify = function (obj, replacer, space) {\n return json().stringify(obj, replacer, space);\n };\n var Json = {\n parse: parse,\n stringify: stringify\n };\n\n var formatObj = function (input) {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : Json.stringify(input, null, 2);\n };\n var formatErrors = function (errors) {\n var es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: function () {\n return '... (only showing first ten failures)';\n }\n }]) : errors;\n return map(es, function (e) {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n var nu$3 = function (path, getErrorInfo) {\n return SimpleResult.serror([{\n path: path,\n getErrorInfo: getErrorInfo\n }]);\n };\n var missingStrict = function (path, key, obj) {\n return nu$3(path, function () {\n return 'Could not find valid *strict* value for \"' + key + '\" in ' + formatObj(obj);\n });\n };\n var missingKey = function (path, key) {\n return nu$3(path, function () {\n return 'Choice schema did not contain choice key: \"' + key + '\"';\n });\n };\n var missingBranch = function (path, branches, branch) {\n return nu$3(path, function () {\n return 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches);\n });\n };\n var unsupportedFields = function (path, unsupported) {\n return nu$3(path, function () {\n return 'There are unsupported fields: [' + unsupported.join(', ') + '] specified';\n });\n };\n var custom = function (path, err) {\n return nu$3(path, function () {\n return err;\n });\n };\n\n var adt$1 = Adt.generate([\n {\n field: [\n 'key',\n 'okey',\n 'presence',\n 'prop'\n ]\n },\n {\n state: [\n 'okey',\n 'instantiator'\n ]\n }\n ]);\n var strictAccess = function (path, obj, key) {\n return readOptFrom(obj, key).fold(function () {\n return missingStrict(path, key, obj);\n }, SimpleResult.svalue);\n };\n var fallbackAccess = function (obj, key, fallbackThunk) {\n var v = readOptFrom(obj, key).fold(function () {\n return fallbackThunk(obj);\n }, identity);\n return SimpleResult.svalue(v);\n };\n var optionAccess = function (obj, key) {\n return SimpleResult.svalue(readOptFrom(obj, key));\n };\n var optionDefaultedAccess = function (obj, key, fallback) {\n var opt = readOptFrom(obj, key).map(function (val) {\n return val === true ? fallback(obj) : val;\n });\n return SimpleResult.svalue(opt);\n };\n var cExtractOne = function (path, obj, field, strength) {\n return field.fold(function (key, okey, presence, prop) {\n var bundle = function (av) {\n var result = prop.extract(path.concat([key]), strength, av);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(res));\n });\n };\n var bundleAsOption = function (optValue) {\n return optValue.fold(function () {\n var outcome = wrap(okey, strength(Option.none()));\n return SimpleResult.svalue(outcome);\n }, function (ov) {\n var result = prop.extract(path.concat([key]), strength, ov);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(Option.some(res)));\n });\n });\n };\n return function () {\n return presence.fold(function () {\n return SimpleResult.bind(strictAccess(path, obj, key), bundle);\n }, function (fallbackThunk) {\n return SimpleResult.bind(fallbackAccess(obj, key, fallbackThunk), bundle);\n }, function () {\n return SimpleResult.bind(optionAccess(obj, key), bundleAsOption);\n }, function (fallbackThunk) {\n return SimpleResult.bind(optionDefaultedAccess(obj, key, fallbackThunk), bundleAsOption);\n }, function (baseThunk) {\n var base = baseThunk(obj);\n var result = SimpleResult.map(fallbackAccess(obj, key, constant({})), function (v) {\n return deepMerge(base, v);\n });\n return SimpleResult.bind(result, bundle);\n });\n }();\n }, function (okey, instantiator) {\n var state = instantiator(obj);\n return SimpleResult.svalue(wrap(okey, strength(state)));\n });\n };\n var cExtract = function (path, obj, fields, strength) {\n var results = map(fields, function (field) {\n return cExtractOne(path, obj, field, strength);\n });\n return ResultCombine.consolidateObj(results, {});\n };\n var value$2 = function (validator) {\n var extract = function (path, strength, val) {\n return SimpleResult.bindError(validator(val, strength), function (err) {\n return custom(path, err);\n });\n };\n var toString = function () {\n return 'val';\n };\n var toDsl = function () {\n return typeAdt.itemOf(validator);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var getSetKeys = function (obj) {\n var keys$1 = keys(obj);\n return filter(keys$1, function (k) {\n return hasKey$1(obj, k);\n });\n };\n var objOfOnly = function (fields) {\n var delegate = objOf(fields);\n var fieldNames = foldr(fields, function (acc, f) {\n return f.fold(function (key) {\n return deepMerge(acc, wrap$1(key, true));\n }, constant(acc));\n }, {});\n var extract = function (path, strength, o) {\n var keys = isBoolean(o) ? [] : getSetKeys(o);\n var extra = filter(keys, function (k) {\n return !hasKey$1(fieldNames, k);\n });\n return extra.length === 0 ? delegate.extract(path, strength, o) : unsupportedFields(path, extra);\n };\n return {\n extract: extract,\n toString: delegate.toString,\n toDsl: delegate.toDsl\n };\n };\n var objOf = function (fields) {\n var extract = function (path, strength, o) {\n return cExtract(path, o, fields, strength);\n };\n var toString = function () {\n var fieldStrings = map(fields, function (field) {\n return field.fold(function (key, okey, presence, prop) {\n return key + ' -> ' + prop.toString();\n }, function (okey, instantiator) {\n return 'state(' + okey + ')';\n });\n });\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n var toDsl = function () {\n return typeAdt.objOf(map(fields, function (f) {\n return f.fold(function (key, okey, presence, prop) {\n return fieldAdt.field(key, presence, prop);\n }, function (okey, instantiator) {\n return fieldAdt.state(okey);\n });\n }));\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var arrOf = function (prop) {\n var extract = function (path, strength, array) {\n var results = map(array, function (a, i) {\n return prop.extract(path.concat(['[' + i + ']']), strength, a);\n });\n return ResultCombine.consolidateArr(results);\n };\n var toString = function () {\n return 'array(' + prop.toString() + ')';\n };\n var toDsl = function () {\n return typeAdt.arrOf(prop);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var setOf = function (validator, prop) {\n var validateKeys = function (path, keys) {\n return arrOf(value$2(validator)).extract(path, identity, keys);\n };\n var extract = function (path, strength, o) {\n var keys$1 = keys(o);\n var validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, function (validKeys) {\n var schema = map(validKeys, function (vk) {\n return adt$1.field(vk, vk, strict(), prop);\n });\n return objOf(schema).extract(path, strength, o);\n });\n };\n var toString = function () {\n return 'setOf(' + prop.toString() + ')';\n };\n var toDsl = function () {\n return typeAdt.setOf(validator, prop);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var func = function (args, schema, retriever) {\n var delegate = value$2(function (f, strength) {\n return isFunction(f) ? SimpleResult.svalue(function () {\n var gArgs = Array.prototype.slice.call(arguments, 0);\n var allowedArgs = gArgs.slice(0, args.length);\n var o = f.apply(null, allowedArgs);\n return retriever(o, strength);\n }) : SimpleResult.serror('Not a function');\n });\n return {\n extract: delegate.extract,\n toString: function () {\n return 'function';\n },\n toDsl: function () {\n return typeAdt.func(args, schema);\n }\n };\n };\n var thunk = function (desc, processor) {\n var getP = cached(function () {\n return processor();\n });\n var extract = function (path, strength, val) {\n return getP().extract(path, strength, val);\n };\n var toString = function () {\n return getP().toString();\n };\n var toDsl = function () {\n return typeAdt.thunk(desc);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n var anyValue = constant(value$2(SimpleResult.svalue));\n var arrOfObj = compose(arrOf, objOf);\n var state = adt$1.state;\n var field = adt$1.field;\n\n var chooseFrom = function (path, strength, input, branches, ch) {\n var fields = readOptFrom$1(branches, ch);\n return fields.fold(function () {\n return missingBranch(path, branches, ch);\n }, function (fs) {\n return objOf(fs).extract(path.concat(['branch: ' + ch]), strength, input);\n });\n };\n var choose = function (key, branches) {\n var extract = function (path, strength, input) {\n var choice = readOptFrom$1(input, key);\n return choice.fold(function () {\n return missingKey(path, key);\n }, function (chosen) {\n return chooseFrom(path, strength, input, branches, chosen);\n });\n };\n var toString = function () {\n return 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n };\n var toDsl = function () {\n return typeAdt.choiceOf(key, branches);\n };\n return {\n extract: extract,\n toString: toString,\n toDsl: toDsl\n };\n };\n\n var _anyValue = value$2(SimpleResult.svalue);\n var arrOfObj$1 = function (objFields) {\n return arrOfObj(objFields);\n };\n var arrOfVal = function () {\n return arrOf(_anyValue);\n };\n var valueOf = function (validator) {\n return value$2(function (v) {\n return validator(v).fold(SimpleResult.serror, SimpleResult.svalue);\n });\n };\n var setOf$1 = function (validator, prop) {\n return setOf(function (v) {\n return SimpleResult.fromResult(validator(v));\n }, prop);\n };\n var extract = function (label, prop, strength, obj) {\n var res = prop.extract([label], strength, obj);\n return SimpleResult.mapError(res, function (errs) {\n return {\n input: obj,\n errors: errs\n };\n });\n };\n var asStruct = function (label, prop, obj) {\n return SimpleResult.toResult(extract(label, prop, constant, obj));\n };\n var asRaw = function (label, prop, obj) {\n return SimpleResult.toResult(extract(label, prop, identity, obj));\n };\n var getOrDie$1 = function (extraction) {\n return extraction.fold(function (errInfo) {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n var asRawOrDie = function (label, prop, obj) {\n return getOrDie$1(asRaw(label, prop, obj));\n };\n var asStructOrDie = function (label, prop, obj) {\n return getOrDie$1(asStruct(label, prop, obj));\n };\n var formatError = function (errInfo) {\n return 'Errors: \\n' + formatErrors(errInfo.errors) + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n var choose$1 = function (key, branches) {\n return choose(key, branches);\n };\n var thunkOf = function (desc, schema) {\n return thunk(desc, schema);\n };\n var funcOrDie = function (args, prop) {\n var retriever = function (output, strength) {\n return getOrDie$1(SimpleResult.toResult(extract('()', prop, strength, output)));\n };\n return func(args, prop, retriever);\n };\n var anyValue$1 = constant(_anyValue);\n var typedValue = function (validator, expectedType) {\n return value$2(function (a) {\n var actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected type: ' + expectedType + ' but got: ' + actualType);\n });\n };\n var number = typedValue(isNumber, 'number');\n var string = typedValue(isString, 'string');\n var boolean = typedValue(isBoolean, 'boolean');\n var functionProcessor = typedValue(isFunction, 'function');\n\n var ValueSchema = /*#__PURE__*/Object.freeze({\n anyValue: anyValue$1,\n arrOfObj: arrOfObj$1,\n arrOf: arrOf,\n arrOfVal: arrOfVal,\n valueOf: valueOf,\n setOf: setOf$1,\n objOf: objOf,\n objOfOnly: objOfOnly,\n asStruct: asStruct,\n asRaw: asRaw,\n asStructOrDie: asStructOrDie,\n asRawOrDie: asRawOrDie,\n getOrDie: getOrDie$1,\n formatError: formatError,\n choose: choose$1,\n thunkOf: thunkOf,\n funcOrDie: funcOrDie,\n number: number,\n string: string,\n boolean: boolean,\n func: functionProcessor\n });\n\n var validateEnum = function (values) {\n return valueOf(function (value) {\n return contains(values, value) ? Result.value(value) : Result.error('Unsupported value: \"' + value + '\", choose one of \"' + values.join(', ') + '\".');\n });\n };\n var strict$1 = function (key) {\n return field(key, key, strict(), anyValue());\n };\n var strictOf = function (key, schema) {\n return field(key, key, strict(), schema);\n };\n var strictNumber = function (key) {\n return strictOf(key, number);\n };\n var strictString = function (key) {\n return strictOf(key, string);\n };\n var strictStringEnum = function (key, values) {\n return field(key, key, strict(), validateEnum(values));\n };\n var strictFunction = function (key) {\n return strictOf(key, functionProcessor);\n };\n var forbid = function (key, message) {\n return field(key, key, asOption(), value$2(function (v) {\n return SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message);\n }));\n };\n var strictObjOf = function (key, objSchema) {\n return field(key, key, strict(), objOf(objSchema));\n };\n var strictArrayOfObj = function (key, objFields) {\n return field(key, key, strict(), arrOfObj(objFields));\n };\n var strictArrayOf = function (key, schema) {\n return field(key, key, strict(), arrOf(schema));\n };\n var option = function (key) {\n return field(key, key, asOption(), anyValue());\n };\n var optionOf = function (key, schema) {\n return field(key, key, asOption(), schema);\n };\n var optionNumber = function (key) {\n return optionOf(key, number);\n };\n var optionString = function (key) {\n return optionOf(key, string);\n };\n var optionFunction = function (key) {\n return optionOf(key, functionProcessor);\n };\n var optionArrayOf = function (key, schema) {\n return optionOf(key, arrOf(schema));\n };\n var optionObjOf = function (key, objSchema) {\n return optionOf(key, objOf(objSchema));\n };\n var optionObjOfOnly = function (key, objSchema) {\n return optionOf(key, objOfOnly(objSchema));\n };\n var defaulted$1 = function (key, fallback) {\n return field(key, key, defaulted(fallback), anyValue());\n };\n var defaultedOf = function (key, fallback, schema) {\n return field(key, key, defaulted(fallback), schema);\n };\n var defaultedNumber = function (key, fallback) {\n return defaultedOf(key, fallback, number);\n };\n var defaultedString = function (key, fallback) {\n return defaultedOf(key, fallback, string);\n };\n var defaultedStringEnum = function (key, fallback, values) {\n return defaultedOf(key, fallback, validateEnum(values));\n };\n var defaultedBoolean = function (key, fallback) {\n return defaultedOf(key, fallback, boolean);\n };\n var defaultedFunction = function (key, fallback) {\n return defaultedOf(key, fallback, functionProcessor);\n };\n var defaultedObjOf = function (key, fallback, objSchema) {\n return defaultedOf(key, fallback, objOf(objSchema));\n };\n var state$1 = function (okey, instantiator) {\n return state(okey, instantiator);\n };\n\n var isSource = function (component, simulatedEvent) {\n return eq(component.element(), simulatedEvent.event().target());\n };\n\n var nu$4 = function (parts) {\n if (!hasKey$1(parts, 'can') && !hasKey$1(parts, 'abort') && !hasKey$1(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + Json.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return asRawOrDie('Extracting event.handler', objOfOnly([\n defaulted$1('can', constant(true)),\n defaulted$1('abort', constant(false)),\n defaulted$1('run', noop)\n ]), parts);\n };\n var all$1 = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc && f(handler).apply(undefined, args);\n }, true);\n };\n };\n var any = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc || f(handler).apply(undefined, args);\n }, false);\n };\n };\n var read = function (handler) {\n return isFunction(handler) ? {\n can: constant(true),\n abort: constant(false),\n run: handler\n } : handler;\n };\n var fuse = function (handlers) {\n var can = all$1(handlers, function (handler) {\n return handler.can;\n });\n var abort = any(handlers, function (handler) {\n return handler.abort;\n });\n var run = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n each(handlers, function (handler) {\n handler.run.apply(undefined, args);\n });\n };\n return nu$4({\n can: can,\n abort: abort,\n run: run\n });\n };\n\n var emit = function (component, event) {\n dispatchWith(component, component.element(), event, {});\n };\n var emitWith = function (component, event, properties) {\n dispatchWith(component, component.element(), event, properties);\n };\n var emitExecute = function (component) {\n emit(component, execute());\n };\n var dispatch = function (component, target, event) {\n dispatchWith(component, target, event, {});\n };\n var dispatchWith = function (component, target, event, properties) {\n var data = __assign({ target: target }, properties);\n component.getSystem().triggerEvent(event, target, map$1(data, constant));\n };\n var dispatchEvent = function (component, target, event, simulatedEvent) {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event());\n };\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n var body = cached(function () {\n return getBody(Element.fromDom(domGlobals.document));\n });\n var getBody = function (doc) {\n var b = doc.dom().body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return Element.fromDom(b);\n };\n\n var first = function (predicate) {\n return descendant(body(), predicate);\n };\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s) {\n return predicate(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n var sibling = function (scope, predicate) {\n var element = scope.dom();\n if (!element.parentNode) {\n return Option.none();\n }\n return child$1(Element.fromDom(element.parentNode), function (x) {\n return !eq(scope, x) && predicate(x);\n });\n };\n var child$1 = function (scope, predicate) {\n var result = find(scope.dom().childNodes, compose(predicate, Element.fromDom));\n return result.map(Element.fromDom);\n };\n var descendant = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n if (predicate(Element.fromDom(node.childNodes[i]))) {\n return Option.some(Element.fromDom(node.childNodes[i]));\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope.dom());\n };\n\n var closest$1 = function (target, transform, isRoot) {\n var delegate = closest(target, function (elem) {\n return transform(elem).isSome();\n }, isRoot);\n return delegate.bind(transform);\n };\n\n var derive = function (configs) {\n return wrapAll$1(configs);\n };\n var abort = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ abort: predicate })\n };\n };\n var can = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ can: predicate })\n };\n };\n var preventDefault = function (name) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n simulatedEvent.event().prevent();\n }\n })\n };\n };\n var run = function (name, handler) {\n return {\n key: name,\n value: nu$4({ run: handler })\n };\n };\n var runActionExtra = function (name, action, extra) {\n return {\n key: name,\n value: nu$4({\n run: function (component) {\n action.apply(undefined, [component].concat(extra));\n }\n })\n };\n };\n var runOnName = function (name) {\n return function (handler) {\n return run(name, handler);\n };\n };\n var runOnSourceName = function (name) {\n return function (handler) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n };\n };\n };\n var redirectToUid = function (name, uid) {\n return run(name, function (component, simulatedEvent) {\n component.getSystem().getByUid(uid).each(function (redirectee) {\n dispatchEvent(redirectee, redirectee.element(), name, simulatedEvent);\n });\n });\n };\n var redirectToPart = function (name, detail, partName) {\n var uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n var runWithTarget = function (name, f) {\n return run(name, function (component, simulatedEvent) {\n var ev = simulatedEvent.event();\n var target = component.getSystem().getByDom(ev.target()).fold(function () {\n var closest = closest$1(ev.target(), function (el) {\n return component.getSystem().getByDom(el).toOption();\n }, constant(false));\n return closest.getOr(component);\n }, function (c) {\n return c;\n });\n f(component, target, simulatedEvent);\n });\n };\n var cutter = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.cut();\n });\n };\n var stopper = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.stop();\n });\n };\n var runOnSource = function (name, f) {\n return runOnSourceName(name)(f);\n };\n var runOnAttached = runOnSourceName(attachedToDom());\n var runOnDetached = runOnSourceName(detachedFromDom());\n var runOnInit = runOnSourceName(systemInit());\n var runOnExecute = runOnName(execute());\n\n var AlloyEvents = /*#__PURE__*/Object.freeze({\n derive: derive,\n run: run,\n preventDefault: preventDefault,\n runActionExtra: runActionExtra,\n runOnAttached: runOnAttached,\n runOnDetached: runOnDetached,\n runOnSource: runOnSource,\n runOnInit: runOnInit,\n runOnExecute: runOnExecute,\n redirectToUid: redirectToUid,\n redirectToPart: redirectToPart,\n runWithTarget: runWithTarget,\n abort: abort,\n can: can,\n cutter: cutter,\n stopper: stopper\n });\n\n var isRecursive = function (component, originator, target) {\n return eq(originator, component.element()) && !eq(originator, target);\n };\n var events = derive([can(focus(), function (component, simulatedEvent) {\n var originator = simulatedEvent.event().originator();\n var target = simulatedEvent.event().target();\n if (isRecursive(component, originator, target)) {\n domGlobals.console.warn(focus() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n events: events\n });\n\n var prefix = constant('alloy-id-');\n var idAttr = constant('data-alloy-id');\n\n var prefix$1 = prefix();\n var idAttr$1 = idAttr();\n var write = function (label, elem) {\n var id = generate$1(prefix$1 + label);\n writeOnly(elem, id);\n return id;\n };\n var writeOnly = function (elem, uid) {\n Object.defineProperty(elem.dom(), idAttr$1, {\n value: uid,\n writable: true\n });\n };\n var read$1 = function (elem) {\n var id = isElement(elem) ? elem.dom()[idAttr$1] : null;\n return Option.from(id);\n };\n var generate$2 = function (prefix) {\n return generate$1(prefix);\n };\n\n var make = identity;\n\n var NoContextApi = function (getComp) {\n var fail = function (event) {\n return function () {\n throw new Error('The component must be in a context to send: ' + event + '\\n' + element(getComp().element()) + ' is not in context.');\n };\n };\n return {\n debugInfo: constant('fake'),\n triggerEvent: fail('triggerEvent'),\n triggerFocus: fail('triggerFocus'),\n triggerEscape: fail('triggerEscape'),\n build: fail('build'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n broadcast: fail('broadcast'),\n broadcastOn: fail('broadcastOn'),\n broadcastEvent: fail('broadcastEvent'),\n isConnected: constant(false)\n };\n };\n var singleton = NoContextApi();\n\n var markAsBehaviourApi = function (f, apiName, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n };\n };\n return f;\n };\n var cleanParameters = function (parameters) {\n return map(parameters, function (p) {\n return endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p;\n });\n };\n var markAsExtraApi = function (f, extraName) {\n var delegate = f.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: extraName,\n parameters: cleanParameters(parameters)\n };\n };\n return f;\n };\n var markAsSketchApi = function (f, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = function () {\n return {\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n };\n };\n return f;\n };\n\n var premadeTag = generate$1('alloy-premade');\n var premade = function (comp) {\n return wrap$1(premadeTag, comp);\n };\n var getPremade = function (spec) {\n return readOptFrom$1(spec, premadeTag);\n };\n var makeApi = function (f) {\n return markAsSketchApi(function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n return f.apply(undefined, [component.getApis()].concat([component].concat(rest)));\n }, f);\n };\n\n var GuiTypes = /*#__PURE__*/Object.freeze({\n makeApi: makeApi,\n premade: premade,\n getPremade: getPremade\n });\n\n var NoState = {\n init: function () {\n return nu$5({\n readState: function () {\n return 'No State required';\n }\n });\n }\n };\n var nu$5 = function (spec) {\n return spec;\n };\n\n var generateFrom = function (spec, all) {\n var schema = map(all, function (a) {\n return optionObjOf(a.name(), [\n strict$1('config'),\n defaulted$1('state', NoState)\n ]);\n });\n var validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(function (errInfo) {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + Json.stringify(spec, null, 2));\n }, function (v) {\n return v;\n });\n return {\n list: all,\n data: map$1(validated, function (optBlobThunk) {\n var optBlob = optBlobThunk;\n var output = optBlob.map(function (blob) {\n return {\n config: blob.config,\n state: blob.state.init(blob.config)\n };\n });\n return function () {\n return output;\n };\n })\n };\n };\n var getBehaviours = function (bData) {\n return bData.list;\n };\n var getData = function (bData) {\n return bData.data;\n };\n\n var byInnerKey = function (data, tuple) {\n var r = {};\n each$1(data, function (detail, key) {\n each$1(detail, function (value, indexKey) {\n var chain = readOr$1(indexKey, [])(r);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n var nu$6 = function (s) {\n return {\n classes: s.classes !== undefined ? s.classes : [],\n attributes: s.attributes !== undefined ? s.attributes : {},\n styles: s.styles !== undefined ? s.styles : {}\n };\n };\n var merge$1 = function (defnA, mod) {\n return __assign({}, defnA, {\n attributes: __assign({}, defnA.attributes, mod.attributes),\n styles: __assign({}, defnA.styles, mod.styles),\n classes: defnA.classes.concat(mod.classes)\n });\n };\n\n var combine = function (info, baseMod, behaviours, base) {\n var modsByBehaviour = __assign({}, baseMod);\n each(behaviours, function (behaviour) {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n var nameAndMod = function (name, modification) {\n return {\n name: name,\n modification: modification\n };\n };\n var byAspect = byInnerKey(modsByBehaviour, nameAndMod);\n var combineObjects = function (objects) {\n return foldr(objects, function (b, a) {\n return __assign({}, a.modification, b);\n }, {});\n };\n var combinedClasses = foldr(byAspect.classes, function (b, a) {\n return a.modification.concat(b);\n }, []);\n var combinedAttributes = combineObjects(byAspect.attributes);\n var combinedStyles = combineObjects(byAspect.styles);\n return nu$6({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n var sortKeys = function (label, keyName, array, order) {\n var sliced = array.slice(0);\n try {\n var sorted = sliced.sort(function (a, b) {\n var aKey = a[keyName]();\n var bKey = b[keyName]();\n var aIndex = order.indexOf(aKey);\n var bIndex = order.indexOf(bKey);\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + Json.stringify(order, null, 2));\n }\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + Json.stringify(order, null, 2));\n }\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n var uncurried = function (handler, purpose) {\n return {\n handler: handler,\n purpose: constant(purpose)\n };\n };\n var curried = function (handler, purpose) {\n return {\n cHandler: handler,\n purpose: constant(purpose)\n };\n };\n var curryArgs = function (descHandler, extraArgs) {\n return curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose());\n };\n var getCurried = function (descHandler) {\n return descHandler.cHandler;\n };\n\n var behaviourTuple = function (name, handler) {\n return {\n name: constant(name),\n handler: constant(handler)\n };\n };\n var nameToHandlers = function (behaviours, info) {\n var r = {};\n each(behaviours, function (behaviour) {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n var groupByEvents = function (info, behaviours, base) {\n var behaviourEvents = __assign({}, base, nameToHandlers(behaviours, info));\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n var combine$1 = function (info, eventOrder, behaviours, base) {\n var byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n var assemble = function (rawHandler) {\n var handler = read(rawHandler);\n return function (component, simulatedEvent) {\n var rest = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n rest[_i - 2] = arguments[_i];\n }\n var args = [\n component,\n simulatedEvent\n ].concat(rest);\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n var missingOrderError = function (eventName, tuples) {\n return Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + Json.stringify(map(tuples, function (c) {\n return c.name();\n }), null, 2)]);\n };\n var fuse$1 = function (tuples, eventOrder, eventName) {\n var order = eventOrder[eventName];\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(function (sortedTuples) {\n var handlers = map(sortedTuples, function (tuple) {\n return tuple.handler();\n });\n return fuse(handlers);\n });\n }\n };\n var combineGroups = function (byEventName, eventOrder) {\n var r = mapToArray(byEventName, function (tuples, eventName) {\n var combined = tuples.length === 1 ? Result.value(tuples[0].handler()) : fuse$1(tuples, eventOrder, eventName);\n return combined.map(function (handler) {\n var assembled = assemble(handler);\n var purpose = tuples.length > 1 ? filter(eventOrder, function (o) {\n return contains(tuples, function (t) {\n return t.name() === o;\n });\n }).join(' > ') : tuples[0].name();\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n var toInfo = function (spec) {\n return asRaw('custom.definition', objOf([\n field('dom', 'dom', strict(), objOf([\n strict$1('tag'),\n defaulted$1('styles', {}),\n defaulted$1('classes', []),\n defaulted$1('attributes', {}),\n option('value'),\n option('innerHtml')\n ])),\n strict$1('components'),\n strict$1('uid'),\n defaulted$1('events', {}),\n defaulted$1('apis', {}),\n field('eventOrder', 'eventOrder', mergeWith({\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'typeaheadevents'\n ],\n 'alloy.focus': [\n 'alloy.base.behaviour',\n 'focusing',\n 'keying'\n ],\n 'alloy.system.init': [\n 'alloy.base.behaviour',\n 'disabling',\n 'toggling',\n 'representing'\n ],\n 'input': [\n 'alloy.base.behaviour',\n 'representing',\n 'streaming',\n 'invalidating'\n ],\n 'alloy.system.detached': [\n 'alloy.base.behaviour',\n 'representing',\n 'item-events',\n 'tooltipping'\n ],\n 'mousedown': [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events'\n ],\n 'mouseover': [\n 'item-type-events',\n 'tooltipping'\n ]\n }), anyValue$1()),\n option('domModification')\n ]), spec);\n };\n var toDefinition = function (detail) {\n return __assign({}, detail.dom, {\n uid: detail.uid,\n domChildren: map(detail.components, function (comp) {\n return comp.element();\n })\n });\n };\n var toModification = function (detail) {\n return detail.domModification.fold(function () {\n return nu$6({});\n }, nu$6);\n };\n var toEvents = function (info) {\n return info.events;\n };\n\n function Toggler (turnOff, turnOn, initial) {\n var active = initial || false;\n var on = function () {\n turnOn();\n active = true;\n };\n var off = function () {\n turnOff();\n active = false;\n };\n var toggle = function () {\n var f = active ? off : on;\n f();\n };\n var isOn = function () {\n return active;\n };\n return {\n on: on,\n off: off,\n toggle: toggle,\n isOn: isOn\n };\n }\n\n var read$2 = function (element, attr) {\n var value = get$2(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add = function (element, attr, id) {\n var old = read$2(element, attr);\n var nu = old.concat([id]);\n set$1(element, attr, nu.join(' '));\n return true;\n };\n var remove$2 = function (element, attr, id) {\n var nu = filter(read$2(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set$1(element, attr, nu.join(' '));\n } else {\n remove$1(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$3 = function (element) {\n return read$2(element, 'class');\n };\n var add$1 = function (element, clazz) {\n return add(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$2(element, 'class', clazz);\n };\n var toggle = function (element, clazz) {\n if (contains(get$3(element), clazz)) {\n return remove$3(element, clazz);\n } else {\n return add$1(element, clazz);\n }\n };\n\n var ClassList = /*#__PURE__*/Object.freeze({\n get: get$3,\n add: add$1,\n remove: remove$3,\n toggle: toggle,\n supports: supports\n });\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$3(element);\n if (classList.length === 0) {\n remove$1(element, 'class');\n }\n };\n var remove$4 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n var toggle$1 = function (element, clazz) {\n return supports(element) ? element.dom().classList.toggle(clazz) : toggle(element, clazz);\n };\n var toggler = function (element, clazz) {\n var hasClasslist = supports(element);\n var classList = element.dom().classList;\n var off = function () {\n if (hasClasslist) {\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n };\n var on = function () {\n if (hasClasslist) {\n classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n return Toggler(off, on, has$2(element, clazz));\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var Class = /*#__PURE__*/Object.freeze({\n add: add$2,\n remove: remove$4,\n toggle: toggle$1,\n toggler: toggler,\n has: has$2\n });\n\n var add$3 = function (element, classes) {\n each(classes, function (x) {\n add$2(element, x);\n });\n };\n var remove$5 = function (element, classes) {\n each(classes, function (x) {\n remove$4(element, x);\n });\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined;\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$2 = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n var setAll$1 = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n var get$4 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var getAllRaw = function (element) {\n var css = {};\n var dom = element.dom();\n if (isSupported(dom)) {\n for (var i = 0; i < dom.style.length; i++) {\n var ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n var isValidValue = function (tag, property, value) {\n var element = Element.fromTag(tag);\n set$2(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n var remove$6 = function (element, property) {\n var dom = element.dom();\n internalRemove(dom, property);\n if (has$1(element, 'style') && trim(get$2(element, 'style')) === '') {\n remove$1(element, 'style');\n }\n };\n var preserve = function (element, f) {\n var oldStyles = get$2(element, 'style');\n var result = f(element);\n var restore = oldStyles === undefined ? remove$1 : set$1;\n restore(element, 'style', oldStyles);\n return result;\n };\n var copy = function (source, target) {\n var sourceDom = source.dom();\n var targetDom = target.dom();\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n var reflow = function (e) {\n return e.dom().offsetWidth;\n };\n var transferOne = function (source, destination, style) {\n getRaw(source, style).each(function (value) {\n if (getRaw(destination, style).isNone()) {\n set$2(destination, style, value);\n }\n });\n };\n var transfer = function (source, destination, styles) {\n if (!isElement(source) || !isElement(destination)) {\n return;\n }\n each(styles, function (style) {\n transferOne(source, destination, style);\n });\n };\n\n var Css = /*#__PURE__*/Object.freeze({\n copy: copy,\n set: set$2,\n preserve: preserve,\n setAll: setAll$1,\n setOptions: setOptions,\n remove: remove$6,\n get: get$4,\n getRaw: getRaw,\n getAllRaw: getAllRaw,\n isValidValue: isValidValue,\n reflow: reflow,\n transfer: transfer\n });\n\n var get$5 = function (element) {\n return element.dom().value;\n };\n var set$3 = function (element, value) {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom().value = value;\n };\n\n var renderToDom = function (definition) {\n var subject = Element.fromTag(definition.tag);\n setAll(subject, definition.attributes);\n add$3(subject, definition.classes);\n setAll$1(subject, definition.styles);\n definition.innerHtml.each(function (html) {\n return set(subject, html);\n });\n var children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(function (value) {\n set$3(subject, value);\n });\n if (!definition.uid) {\n debugger;\n }\n writeOnly(subject, definition.uid);\n return subject;\n };\n\n var getBehaviours$1 = function (spec) {\n var behaviours = readOr$1('behaviours', {})(spec);\n var keys$1 = filter(keys(behaviours), function (k) {\n return behaviours[k] !== undefined;\n });\n return map(keys$1, function (k) {\n return behaviours[k].me;\n });\n };\n var generateFrom$1 = function (spec, all) {\n return generateFrom(spec, all);\n };\n var generate$3 = function (spec) {\n var all = getBehaviours$1(spec);\n return generateFrom$1(spec, all);\n };\n\n var getDomDefinition = function (info, bList, bData) {\n var definition = toDefinition(info);\n var infoModification = toModification(info);\n var baseModification = { 'alloy.base.modification': infoModification };\n var modification = bList.length > 0 ? combine(bData, baseModification, bList, definition) : infoModification;\n return merge$1(definition, modification);\n };\n var getEvents = function (info, bList, bData) {\n var baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n var build = function (spec) {\n var getMe = function () {\n return me;\n };\n var systemApi = Cell(singleton);\n var info = getOrDie$1(toInfo(spec));\n var bBlob = generate$3(spec);\n var bList = getBehaviours(bBlob);\n var bData = getData(bBlob);\n var modDefinition = getDomDefinition(info, bList, bData);\n var item = renderToDom(modDefinition);\n var events = getEvents(info, bList, bData);\n var subcomponents = Cell(info.components);\n var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(getMe));\n };\n var syncComponents = function () {\n var children$1 = children(item);\n var subs = bind(children$1, function (child) {\n return systemApi.get().getByDom(child).fold(function () {\n return [];\n }, function (c) {\n return [c];\n });\n });\n subcomponents.set(subs);\n };\n var config = function (behaviour) {\n var b = bData;\n var f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : function () {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + Json.stringify(spec, null, 2));\n };\n return f();\n };\n var hasConfigured = function (behaviour) {\n return isFunction(bData[behaviour.name()]);\n };\n var getApis = function () {\n return info.apis;\n };\n var readState = function (behaviourName) {\n return bData[behaviourName]().map(function (b) {\n return b.state.readState();\n }).getOr('not enabled');\n };\n var me = {\n getSystem: systemApi.get,\n config: config,\n hasConfigured: hasConfigured,\n spec: constant(spec),\n readState: readState,\n getApis: getApis,\n connect: connect,\n disconnect: disconnect,\n element: constant(item),\n syncComponents: syncComponents,\n components: subcomponents.get,\n events: constant(events)\n };\n return me;\n };\n\n var buildSubcomponents = function (spec) {\n var components = readOr$1('components', [])(spec);\n return map(components, build$1);\n };\n var buildFromSpec = function (userSpec) {\n var _a = make(userSpec), specEvents = _a.events, spec = __rest(_a, ['events']);\n var components = buildSubcomponents(spec);\n var completeSpec = __assign({}, spec, {\n events: __assign({}, DefaultEvents, specEvents),\n components: components\n });\n return Result.value(build(completeSpec));\n };\n var text = function (textContent) {\n var element = Element.fromText(textContent);\n return external({ element: element });\n };\n var external = function (spec) {\n var extSpec = asRawOrDie('external.component', objOfOnly([\n strict$1('element'),\n option('uid')\n ]), spec);\n var systemApi = Cell(NoContextApi());\n var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(function () {\n return me;\n }));\n };\n extSpec.uid.each(function (uid) {\n writeOnly(extSpec.element, uid);\n });\n var me = {\n getSystem: systemApi.get,\n config: Option.none,\n hasConfigured: constant(false),\n connect: connect,\n disconnect: disconnect,\n getApis: function () {\n return {};\n },\n element: constant(extSpec.element),\n spec: constant(spec),\n readState: constant('No state'),\n syncComponents: noop,\n components: constant([]),\n events: constant({})\n };\n return premade(me);\n };\n var uids = generate$2;\n var build$1 = function (spec) {\n return getPremade(spec).fold(function () {\n var userSpecWithUid = spec.hasOwnProperty('uid') ? spec : __assign({ uid: uids('') }, spec);\n return buildFromSpec(userSpecWithUid).getOrDie();\n }, function (prebuilt) {\n return prebuilt;\n });\n };\n var premade$1 = premade;\n\n var GuiFactory = /*#__PURE__*/Object.freeze({\n build: build$1,\n premade: premade$1,\n external: external,\n text: text\n });\n\n var any$1 = function (predicate) {\n return first(predicate).isSome();\n };\n var ancestor$1 = function (scope, predicate, isRoot) {\n return ancestor(scope, predicate, isRoot).isSome();\n };\n var closest$2 = function (scope, predicate, isRoot) {\n return closest(scope, predicate, isRoot).isSome();\n };\n var sibling$1 = function (scope, predicate) {\n return sibling(scope, predicate).isSome();\n };\n var child$2 = function (scope, predicate) {\n return child$1(scope, predicate).isSome();\n };\n var descendant$1 = function (scope, predicate) {\n return descendant(scope, predicate).isSome();\n };\n\n var PredicateExists = /*#__PURE__*/Object.freeze({\n any: any$1,\n ancestor: ancestor$1,\n closest: closest$2,\n sibling: sibling$1,\n child: child$2,\n descendant: descendant$1\n });\n\n var first$1 = function (selector) {\n return one(selector);\n };\n var ancestor$2 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var sibling$2 = function (scope, selector) {\n return sibling(scope, function (e) {\n return is(e, selector);\n });\n };\n var child$3 = function (scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendant$2 = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$3 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is, ancestor$2, scope, selector, isRoot);\n };\n\n var SelectorFind = /*#__PURE__*/Object.freeze({\n first: first$1,\n ancestor: ancestor$2,\n sibling: sibling$2,\n child: child$3,\n descendant: descendant$2,\n closest: closest$3\n });\n\n var find$3 = function (queryElem) {\n var dependent = closest(queryElem, function (elem) {\n if (!isElement(elem)) {\n return false;\n }\n var id = get$2(elem, 'id');\n return id !== undefined && id.indexOf('aria-owns') > -1;\n });\n return dependent.bind(function (dep) {\n var id = get$2(dep, 'id');\n var doc = owner(dep);\n return descendant$2(doc, '[aria-owns=\"' + id + '\"]');\n });\n };\n var manager = function () {\n var ariaId = generate$1('aria-owns');\n var link = function (elem) {\n set$1(elem, 'aria-owns', ariaId);\n };\n var unlink = function (elem) {\n remove$1(elem, 'aria-owns');\n };\n return {\n id: constant(ariaId),\n link: link,\n unlink: unlink\n };\n };\n\n var isAriaPartOf = function (component, queryElem) {\n return find$3(queryElem).exists(function (owner) {\n return isPartOf(component, owner);\n });\n };\n var isPartOf = function (component, queryElem) {\n return closest$2(queryElem, function (el) {\n return eq(el, component.element());\n }, constant(false)) || isAriaPartOf(component, queryElem);\n };\n\n var menuFields = constant([\n strict$1('menu'),\n strict$1('selectedMenu')\n ]);\n var itemFields = constant([\n strict$1('item'),\n strict$1('selectedItem')\n ]);\n var schema = constant(objOf(itemFields().concat(menuFields())));\n var itemSchema = constant(objOf(itemFields()));\n\n var _initSize = strictObjOf('initSize', [\n strict$1('numColumns'),\n strict$1('numRows')\n ]);\n var itemMarkers = function () {\n return strictOf('markers', itemSchema());\n };\n var tieredMenuMarkers = function () {\n return strictObjOf('markers', [strict$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n };\n var markers = function (required) {\n return strictObjOf('markers', map(required, strict$1));\n };\n var onPresenceHandler = function (label, fieldName, presence) {\n var trace = getTrace();\n return field(fieldName, fieldName, presence, valueOf(function (f) {\n return Result.value(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f.apply(undefined, args);\n });\n }));\n };\n var onHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, defaulted(noop));\n };\n var onKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, defaulted(Option.none));\n };\n var onStrictHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, strict());\n };\n var onStrictKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, strict());\n };\n var output = function (name, value) {\n return state$1(name, constant(value));\n };\n var snapshot = function (name) {\n return state$1(name, identity);\n };\n var initSize = constant(_initSize);\n\n var executeEvent = function (bConfig, bState, executor) {\n return runOnExecute(function (component) {\n executor(component, bConfig, bState);\n });\n };\n var loadEvent = function (bConfig, bState, f) {\n return runOnInit(function (component, simulatedEvent) {\n f(component, bConfig, bState);\n });\n };\n var create = function (schema, name, active, apis, extra, state) {\n var configSchema = objOfOnly(schema);\n var schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n var createModes = function (modes, name, active, apis, extra, state) {\n var configSchema = modes;\n var schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n var wrapApi = function (bName, apiFunction, apiName) {\n var f = function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var args = [component].concat(rest);\n return component.config({ name: constant(bName) }).fold(function () {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, function (info) {\n var rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n var revokeBehaviour = function (name) {\n return {\n key: name,\n value: undefined\n };\n };\n var doCreate = function (configSchema, schemaSchema, name, active, apis, extra, state) {\n var getConfig = function (info) {\n return hasKey$1(info, name) ? info[name]() : Option.none();\n };\n var wrappedApis = map$1(apis, function (apiF, apiName) {\n return wrapApi(name, apiF, apiName);\n });\n var wrappedExtra = map$1(extra, function (extraF, extraName) {\n return markAsExtraApi(extraF, extraName);\n });\n var me = __assign({}, wrappedExtra, wrappedApis, {\n revoke: curry(revokeBehaviour, name),\n config: function (spec) {\n var prepared = asRawOrDie(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me: me,\n configAsRaw: cached(function () {\n return asRawOrDie(name + '-config', configSchema, spec);\n }),\n initialConfig: spec,\n state: state\n }\n };\n },\n schema: function () {\n return schemaSchema;\n },\n exhibit: function (info, base) {\n return getConfig(info).bind(function (behaviourInfo) {\n return readOptFrom$1(active, 'exhibit').map(function (exhibitor) {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n });\n }).getOr(nu$6({}));\n },\n name: function () {\n return name;\n },\n handlers: function (info) {\n return getConfig(info).map(function (behaviourInfo) {\n var getEvents = readOr$1('events', function (a, b) {\n return {};\n })(active);\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n });\n return me;\n };\n\n var derive$1 = function (capabilities) {\n return wrapAll$1(capabilities);\n };\n var simpleSchema = objOfOnly([\n strict$1('fields'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var create$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, simpleSchema, data);\n return create(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n var modeSchema = objOfOnly([\n strict$1('branchKey'),\n strict$1('branches'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var createModes$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n var revoke = constant(undefined);\n\n var chooseChannels = function (channels, message) {\n return message.universal() ? channels : filter(channels, function (ch) {\n return contains(message.channels(), ch);\n });\n };\n var events$1 = function (receiveConfig) {\n return derive([run(receive(), function (component, message) {\n var channelMap = receiveConfig.channels;\n var channels = keys(channelMap);\n var targetChannels = chooseChannels(channels, message);\n each(targetChannels, function (ch) {\n var channelInfo = channelMap[ch];\n var channelSchema = channelInfo.schema;\n var data = asRawOrDie('channel[' + ch + '] data\\nReceiver: ' + element(component.element()), channelSchema, message.data());\n channelInfo.onReceive(component, data);\n });\n })]);\n };\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n events: events$1\n });\n\n var ReceivingSchema = [strictOf('channels', setOf$1(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted$1('schema', anyValue$1())\n ])))];\n\n var Receiving = create$1({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n var exhibit = function (base, posConfig) {\n return nu$6({\n classes: [],\n styles: posConfig.useFixed ? {} : { position: 'relative' }\n });\n };\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n exhibit: exhibit\n });\n\n var attached = function (element, scope) {\n var doc = scope || Element.fromDom(domGlobals.document.documentElement);\n return ancestor(element, curry(eq, doc)).isSome();\n };\n var windowOf = function (element) {\n var dom = element.dom();\n if (dom === dom.window && element instanceof domGlobals.Window) {\n return element;\n }\n return isDocument(element) ? dom.defaultView || dom.parentWindow : null;\n };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: constant(left),\n top: constant(top),\n translate: translate\n };\n };\n var Position = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return Position(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n return a !== undefined ? a : b !== undefined ? b : 0;\n };\n var absolute = function (element) {\n var doc = element.dom().ownerDocument;\n var body = doc.body;\n var win = windowOf(Element.fromDom(doc));\n var html = doc.documentElement;\n var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport = function (element) {\n var dom = element.dom();\n var doc = dom.ownerDocument;\n var body = doc.body;\n var html = Element.fromDom(doc.documentElement);\n if (body === dom) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n if (!attached(element, html)) {\n return Position(0, 0);\n }\n return boxPosition(dom);\n };\n\n var isSafari = PlatformDetection$1.detect().browser.isSafari();\n var get$6 = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return Position(x, y);\n };\n\n function Dimension (name, getOffset) {\n var set = function (element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n var dom = element.dom();\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$4(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$4(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n }\n\n var api = Dimension('width', function (element) {\n return element.dom().offsetWidth;\n });\n var set$4 = function (element, h) {\n api.set(element, h);\n };\n var get$7 = function (element) {\n return api.get(element);\n };\n var getOuter$1 = function (element) {\n return api.getOuter(element);\n };\n\n var api$1 = Dimension('height', function (element) {\n var dom = element.dom();\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$8 = function (element) {\n return api$1.get(element);\n };\n var getOuter$2 = function (element) {\n return api$1.getOuter(element);\n };\n var setMax = function (element, value) {\n var inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n var absMax = api$1.max(element, value, inclusions);\n set$2(element, 'max-height', absMax + 'px');\n };\n\n var decision = MixedBag([\n 'x',\n 'y',\n 'width',\n 'height',\n 'maxHeight',\n 'direction',\n 'classes',\n 'label',\n 'candidateYforTest'\n ], []);\n var css = Immutable('position', 'left', 'top', 'right', 'bottom');\n\n var adt$2 = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n var cata = function (subject, southeast, southwest, northeast, northwest, south, north, east, west) {\n return subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n };\n var cataVertical = function (subject, south, middle, north) {\n return subject.fold(south, south, north, north, south, north, middle, middle);\n };\n var southeast = adt$2.southeast;\n var southwest = adt$2.southwest;\n var northeast = adt$2.northeast;\n var northwest = adt$2.northwest;\n var south = adt$2.south;\n var north = adt$2.north;\n var east = adt$2.east;\n var west = adt$2.west;\n\n var pointed = Immutable('point', 'width', 'height');\n var rect = Immutable('x', 'y', 'width', 'height');\n var bounds = function (x, y, width, height) {\n return {\n x: constant(x),\n y: constant(y),\n width: constant(width),\n height: constant(height),\n right: constant(x + width),\n bottom: constant(y + height)\n };\n };\n var box = function (element) {\n var xy = absolute(element);\n var w = getOuter$1(element);\n var h = getOuter$2(element);\n return bounds(xy.left(), xy.top(), w, h);\n };\n\n var walkUp = function (navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant([]), function (f) {\n var parent = navigation.owner(f);\n var rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n var pathTo = function (element, navigation) {\n var d = navigation.owner(element);\n var paths = walkUp(navigation, d);\n return Option.some(paths);\n };\n\n var view = function (doc) {\n var element = doc.dom() === domGlobals.document ? Option.none() : Option.from(doc.dom().defaultView.frameElement);\n return element.map(Element.fromDom);\n };\n var owner$1 = function (element) {\n return owner(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n view: view,\n owner: owner$1\n });\n\n var find$4 = function (element) {\n var doc = Element.fromDom(domGlobals.document);\n var scroll = get$6(doc);\n var path = pathTo(element, Navigation);\n return path.fold(curry(absolute, element), function (frames) {\n var offset = viewport(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport(a);\n return {\n left: b.left + loc.left(),\n top: b.top + loc.top()\n };\n }, {\n left: 0,\n top: 0\n });\n return Position(r.left + offset.left() + scroll.left(), r.top + offset.top() + scroll.top());\n });\n };\n\n var win = function () {\n var width = domGlobals.window.innerWidth;\n var height = domGlobals.window.innerHeight;\n var doc = Element.fromDom(domGlobals.document);\n var scroll = get$6(doc);\n return bounds(scroll.left(), scroll.top(), width, height);\n };\n\n var adt$3 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n var positionWithDirection = function (posName, decision, x, y, width, height) {\n var decisionX = decision.x() - x;\n var decisionY = decision.y() - y;\n var decisionWidth = decision.width();\n var decisionHeight = decision.height();\n var decisionRight = width - (decisionX + decisionWidth);\n var decisionBottom = height - (decisionY + decisionHeight);\n var left = Option.some(decisionX);\n var top = Option.some(decisionY);\n var right = Option.some(decisionRight);\n var bottom = Option.some(decisionBottom);\n var none = Option.none();\n return cata(decision.direction(), function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, none, top, right, none);\n }, function () {\n return css(posName, left, none, none, bottom);\n }, function () {\n return css(posName, none, none, right, bottom);\n }, function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, left, none, none, bottom);\n }, function () {\n return css(posName, left, top, none, none);\n }, function () {\n return css(posName, none, top, right, none);\n });\n };\n var reposition = function (origin, decision) {\n return origin.fold(function () {\n return css('absolute', Option.some(decision.x()), Option.some(decision.y()), Option.none(), Option.none());\n }, function (x, y, width, height) {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, function (x, y, width, height) {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n };\n var toBox = function (origin, element) {\n var rel = curry(find$4, element);\n var position = origin.fold(rel, rel, function () {\n var scroll = get$6();\n return find$4(element).translate(-scroll.left(), -scroll.top());\n });\n var width = getOuter$1(element);\n var height = getOuter$2(element);\n return bounds(position.left(), position.top(), width, height);\n };\n var viewport$1 = function (origin, getBounds) {\n return getBounds.fold(function () {\n return origin.fold(win, win, bounds);\n }, function (b) {\n return origin.fold(b, b, bounds);\n });\n };\n var cata$1 = function (subject, onNone, onRelative, onFixed) {\n return subject.fold(onNone, onRelative, onFixed);\n };\n var relative = adt$3.relative;\n var fixed = adt$3.fixed;\n\n var anchor = Immutable('anchorBox', 'origin');\n var box$1 = function (anchorBox, origin) {\n return anchor(anchorBox, origin);\n };\n\n var adt$4 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'deltaW',\n 'deltaH'\n ]\n }\n ]);\n var attempt = function (candidate, width, height, bounds) {\n var candidateX = candidate.x();\n var candidateY = candidate.y();\n var bubbleLeft = candidate.bubble().offset().left();\n var bubbleTop = candidate.bubble().offset().top();\n var boundsX = bounds.x();\n var boundsY = bounds.y();\n var boundsWidth = bounds.width();\n var boundsHeight = bounds.height();\n var newX = candidateX + bubbleLeft;\n var newY = candidateY + bubbleTop;\n var xInBounds = newX >= boundsX;\n var yInBounds = newY >= boundsY;\n var originInBounds = xInBounds && yInBounds;\n var xFit = newX + width <= boundsX + boundsWidth;\n var yFit = newY + height <= boundsY + boundsHeight;\n var sizeInBounds = xFit && yFit;\n var deltaW = xInBounds ? Math.min(width, boundsX + boundsWidth - newX) : Math.abs(boundsX - (newX + width));\n var deltaH = yInBounds ? Math.min(height, boundsY + boundsHeight - newY) : Math.abs(boundsY - (newY + height));\n var maxX = bounds.x() + bounds.width();\n var minX = Math.max(bounds.x(), newX);\n var limitX = Math.min(minX, maxX);\n var limitY = yInBounds ? newY : newY + (height - deltaH);\n var upAvailable = constant(limitY + deltaH - boundsY);\n var downAvailable = constant(boundsY + boundsHeight - limitY);\n var maxHeight = cataVertical(candidate.direction(), downAvailable, downAvailable, upAvailable);\n var reposition = decision({\n x: limitX,\n y: limitY,\n width: deltaW,\n height: deltaH,\n maxHeight: maxHeight,\n direction: candidate.direction(),\n classes: {\n on: candidate.bubble().classesOn(),\n off: candidate.bubble().classesOff()\n },\n label: candidate.label(),\n candidateYforTest: newY\n });\n return originInBounds && sizeInBounds ? adt$4.fit(reposition) : adt$4.nofit(reposition, deltaW, deltaH);\n };\n var attempts = function (candidates, anchorBox, elementBox, bubbles, bounds) {\n var panelWidth = elementBox.width();\n var panelHeight = elementBox.height();\n var attemptBestFit = function (layout, reposition, deltaW, deltaH) {\n var next = layout(anchorBox, elementBox, bubbles);\n var attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(adt$4.fit, function (newReposition, newDeltaW, newDeltaH) {\n var improved = newDeltaH > deltaH || newDeltaW > deltaW;\n return improved ? adt$4.nofit(newReposition, newDeltaW, newDeltaH) : adt$4.nofit(reposition, deltaW, deltaH);\n });\n };\n var abc = foldl(candidates, function (b, a) {\n var bestNext = curry(attemptBestFit, a);\n return b.fold(adt$4.fit, bestNext);\n }, adt$4.nofit(decision({\n x: anchorBox.x(),\n y: anchorBox.y(),\n width: elementBox.width(),\n height: elementBox.height(),\n maxHeight: elementBox.height(),\n direction: southeast(),\n classes: [],\n label: 'none',\n candidateYforTest: anchorBox.y()\n }), -1, -1));\n return abc.fold(identity, identity);\n };\n\n var elementSize = function (p) {\n return {\n width: constant(getOuter$1(p)),\n height: constant(getOuter$2(p))\n };\n };\n var layout = function (anchorBox, element, bubbles, options) {\n remove$6(element, 'max-height');\n var elementBox = elementSize(element);\n return attempts(options.preference(), anchorBox, elementBox, bubbles, options.bounds());\n };\n var setClasses = function (element, decision) {\n var classInfo = decision.classes();\n remove$5(element, classInfo.off);\n add$3(element, classInfo.on);\n };\n var setHeight = function (element, decision, options) {\n var maxHeightFunction = options.maxHeightFunction();\n maxHeightFunction(element, decision.maxHeight());\n };\n var position = function (element, decision, options) {\n var addPx = function (num) {\n return num + 'px';\n };\n var newPosition = reposition(options.origin(), decision);\n setOptions(element, {\n position: Option.some(newPosition.position()),\n left: newPosition.left().map(addPx),\n top: newPosition.top().map(addPx),\n right: newPosition.right().map(addPx),\n bottom: newPosition.bottom().map(addPx)\n });\n };\n\n var setMaxHeight = function (element, maxHeight) {\n setMax(element, Math.floor(maxHeight));\n };\n var anchored = constant(function (element, available) {\n setMaxHeight(element, available);\n setAll$1(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n var expandable = constant(function (element, available) {\n setMaxHeight(element, available);\n });\n\n var reparteeOptions = MixedBag([\n 'bounds',\n 'origin',\n 'preference',\n 'maxHeightFunction'\n ], []);\n var defaultOr = function (options, key, dephault) {\n return options[key] === undefined ? dephault : options[key];\n };\n var simple = function (anchor, element, bubble, layouts, getBounds, overrideOptions) {\n var maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n var anchorBox = anchor.anchorBox();\n var origin = anchor.origin();\n var options = reparteeOptions({\n bounds: viewport$1(origin, getBounds),\n origin: origin,\n preference: layouts,\n maxHeightFunction: maxHeightFunction\n });\n go(anchorBox, element, bubble, options);\n };\n var go = function (anchorBox, element, bubble, options) {\n var decision = layout(anchorBox, element, bubble, options);\n position(element, decision, options);\n setClasses(element, decision);\n setHeight(element, decision, options);\n };\n\n var allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right'\n ];\n var nu$7 = function (width, yoffset, classes) {\n var getClasses = function (prop) {\n return readOptFrom$1(classes, prop).getOr([]);\n };\n var make = function (xDelta, yDelta, alignmentsOn) {\n var alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: function () {\n return Position(xDelta, yDelta);\n },\n classesOn: function () {\n return bind(alignmentsOn, getClasses);\n },\n classesOff: function () {\n return bind(alignmentsOff, getClasses);\n }\n };\n };\n return {\n southeast: function () {\n return make(-width, yoffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n southwest: function () {\n return make(width, yoffset, [\n 'top',\n 'alignRight'\n ]);\n },\n south: function () {\n return make(-width / 2, yoffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n northeast: function () {\n return make(-width, -yoffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n northwest: function () {\n return make(width, -yoffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n north: function () {\n return make(-width / 2, -yoffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n east: function () {\n return make(width, -yoffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n },\n west: function () {\n return make(-width, -yoffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n }\n };\n };\n var fallback = function () {\n return nu$7(0, 0, {});\n };\n\n var nu$8 = Immutable('x', 'y', 'bubble', 'direction', 'label');\n\n var eastX = function (anchor) {\n return anchor.x();\n };\n var middleX = function (anchor, element) {\n return anchor.x() + anchor.width() / 2 - element.width() / 2;\n };\n var westX = function (anchor, element) {\n return anchor.x() + anchor.width() - element.width();\n };\n var northY = function (anchor, element) {\n return anchor.y() - element.height();\n };\n var southY = function (anchor) {\n return anchor.y() + anchor.height();\n };\n var centreY = function (anchor, element) {\n return anchor.y() + anchor.height() / 2 - element.height() / 2;\n };\n var eastEdgeX = function (anchor) {\n return anchor.x() + anchor.width();\n };\n var westEdgeX = function (anchor, element) {\n return anchor.x() - element.width();\n };\n var southeast$1 = function (anchor, element, bubbles) {\n return nu$8(eastX(anchor), southY(anchor), bubbles.southeast(), southeast(), 'layout-se');\n };\n var southwest$1 = function (anchor, element, bubbles) {\n return nu$8(westX(anchor, element), southY(anchor), bubbles.southwest(), southwest(), 'layout-sw');\n };\n var northeast$1 = function (anchor, element, bubbles) {\n return nu$8(eastX(anchor), northY(anchor, element), bubbles.northeast(), northeast(), 'layout-ne');\n };\n var northwest$1 = function (anchor, element, bubbles) {\n return nu$8(westX(anchor, element), northY(anchor, element), bubbles.northwest(), northwest(), 'layout-nw');\n };\n var north$1 = function (anchor, element, bubbles) {\n return nu$8(middleX(anchor, element), northY(anchor, element), bubbles.north(), north(), 'layout-n');\n };\n var south$1 = function (anchor, element, bubbles) {\n return nu$8(middleX(anchor, element), southY(anchor), bubbles.south(), south(), 'layout-s');\n };\n var east$1 = function (anchor, element, bubbles) {\n return nu$8(eastEdgeX(anchor), centreY(anchor, element), bubbles.east(), east(), 'layout-e');\n };\n var west$1 = function (anchor, element, bubbles) {\n return nu$8(westEdgeX(anchor, element), centreY(anchor, element), bubbles.west(), west(), 'layout-w');\n };\n var all$2 = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n var allRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n\n var nu$9 = function (x) {\n return x;\n };\n\n var onDirection = function (isLtr, isRtl) {\n return function (element) {\n return getDirection(element) === 'rtl' ? isRtl : isLtr;\n };\n };\n var getDirection = function (element) {\n return get$4(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var schema$1 = function () {\n return optionObjOf('layouts', [\n strict$1('onLtr'),\n strict$1('onRtl')\n ]);\n };\n var get$9 = function (elem, info, defaultLtr, defaultRtl) {\n var ltr = info.layouts.map(function (ls) {\n return ls.onLtr(elem);\n }).getOr(defaultLtr);\n var rtl = info.layouts.map(function (ls) {\n return ls.onRtl(elem);\n }).getOr(defaultRtl);\n var f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n var placement = function (component, anchorInfo, origin) {\n var hotspot = anchorInfo.hotspot;\n var anchorBox = toBox(origin, hotspot.element());\n var layouts = get$9(component.element(), anchorInfo, all$2(), allRtl());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: {},\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var HotspotAnchor = [\n strict$1('hotspot'),\n option('bubble'),\n schema$1(),\n output('placement', placement)\n ];\n\n var placement$1 = function (component, anchorInfo, origin) {\n var anchorBox = bounds(anchorInfo.x, anchorInfo.y, anchorInfo.width, anchorInfo.height);\n var layouts = get$9(component.element(), anchorInfo, all$2(), allRtl());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble,\n overrides: {},\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var MakeshiftAnchor = [\n strict$1('x'),\n strict$1('y'),\n defaulted$1('height', 0),\n defaulted$1('width', 0),\n defaulted$1('bubble', fallback()),\n schema$1(),\n output('placement', placement$1)\n ];\n\n var zeroWidth = function () {\n return '\\uFEFF';\n };\n\n var adt$5 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n\n var type$1 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');\n var exactFromRange = function (simRange) {\n return type$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());\n };\n var exact = type$1.exact;\n\n var makeRange = function (start, soffset, finish, foffset) {\n var doc = owner(start);\n var rng = doc.dom().createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var after$1 = function (start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var setStart = function (rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom());\n }, function (e, o) {\n rng.setStart(e.dom(), o);\n }, function (e) {\n rng.setStartAfter(e.dom());\n });\n };\n var setFinish = function (rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom());\n }, function (e, o) {\n rng.setEnd(e.dom(), o);\n }, function (e) {\n rng.setEndAfter(e.dom());\n });\n };\n var relativeToNative = function (win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n var exactToNative = function (win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var toRect = function (rect) {\n return {\n left: constant(rect.left),\n top: constant(rect.top),\n right: constant(rect.right),\n bottom: constant(rect.bottom),\n width: constant(rect.width),\n height: constant(rect.height)\n };\n };\n var getFirstRect = function (rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();\n };\n\n var adt$6 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var fromRange = function (win, type, range) {\n return type(Element.fromDom(range.startContainer), range.startOffset, Element.fromDom(range.endContainer), range.endOffset);\n };\n var getRanges = function (win, selection) {\n return selection.match({\n domRange: function (rng) {\n return {\n ltr: constant(rng),\n rtl: Option.none\n };\n },\n relative: function (startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Option.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function (start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Option.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n var doDiagnose = function (win, ranges) {\n var rng = ranges.ltr();\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$6.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$6.ltr, rng);\n });\n } else {\n return fromRange(win, adt$6.ltr, rng);\n }\n };\n var diagnose = function (win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n var asLtrRange = function (win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n },\n rtl: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom(), foffset);\n rng.setEnd(start.dom(), soffset);\n return rng;\n }\n });\n };\n\n var searchForPoint = function (rectForOffset, x, y, maxX, length) {\n if (length === 0) {\n return 0;\n } else if (x === maxX) {\n return length - 1;\n }\n var xDelta = maxX;\n for (var i = 1; i < length; i++) {\n var rect = rectForOffset(i);\n var curDeltaX = Math.abs(x - rect.left);\n if (y <= rect.bottom) {\n if (y < rect.top || curDeltaX > xDelta) {\n return i - 1;\n } else {\n xDelta = curDeltaX;\n }\n }\n }\n return 0;\n };\n var inRect = function (rect, x, y) {\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOptionIE10 = function (element) {\n try {\n return getOptionSafe(element);\n } catch (e) {\n return Option.none();\n }\n };\n var getOptionSafe = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var browser = PlatformDetection$1.detect().browser;\n var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api$2 = NodeValue(isText, 'text');\n var get$a = function (element) {\n return api$2.get(element);\n };\n var getOption = function (element) {\n return api$2.getOption(element);\n };\n\n var locateOffset = function (doc, textnode, x, y, rect) {\n var rangeForOffset = function (o) {\n var r = doc.dom().createRange();\n r.setStart(textnode.dom(), o);\n r.collapse(true);\n return r;\n };\n var rectForOffset = function (o) {\n var r = rangeForOffset(o);\n return r.getBoundingClientRect();\n };\n var length = get$a(textnode).length;\n var offset = searchForPoint(rectForOffset, x, y, rect.right, length);\n return rangeForOffset(offset);\n };\n var locate = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rects = r.getClientRects();\n var foundRect = findMap(rects, function (rect) {\n return inRect(rect, x, y) ? Option.some(rect) : Option.none();\n });\n return foundRect.map(function (rect) {\n return locateOffset(doc, node, x, y, rect);\n });\n };\n\n var TextPoint = /*#__PURE__*/Object.freeze({\n locate: locate\n });\n\n var searchInChildren = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n var nodes = children(node);\n return findMap(nodes, function (n) {\n r.selectNode(n.dom());\n return inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();\n });\n };\n var locateNode = function (doc, node, x, y) {\n var locator = isText(node) ? locate : searchInChildren;\n return locator(doc, node, x, y);\n };\n var locate$1 = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locateNode(doc, node, boundedX, boundedY);\n };\n\n var NBSP = '\\xA0';\n var isTextNodeWithCursorPosition = function (el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(NBSP) > -1;\n }).isSome();\n };\n var elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n var isCursorPosition = function (elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains(elementsWithCursorPosition, name(elem));\n };\n\n var first$2 = function (element) {\n return descendant(element, isCursorPosition);\n };\n var last$1 = function (element) {\n return descendantRtl(element, isCursorPosition);\n };\n var descendantRtl = function (scope, predicate) {\n var descend = function (element) {\n var children$1 = children(element);\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n if (predicate(child)) {\n return Option.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope);\n };\n\n var COLLAPSE_TO_LEFT = true;\n var COLLAPSE_TO_RIGHT = false;\n var getCollapseDirection = function (rect, x) {\n return x - rect.left < rect.right - x ? COLLAPSE_TO_LEFT : COLLAPSE_TO_RIGHT;\n };\n var createCollapsedNode = function (doc, target, collapseDirection) {\n var r = doc.dom().createRange();\n r.selectNode(target.dom());\n r.collapse(collapseDirection);\n return r;\n };\n var locateInElement = function (doc, node, x) {\n var cursorRange = doc.dom().createRange();\n cursorRange.selectNode(node.dom());\n var rect = cursorRange.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n var f = collapseDirection === COLLAPSE_TO_LEFT ? first$2 : last$1;\n return f(node).map(function (target) {\n return createCollapsedNode(doc, target, collapseDirection);\n });\n };\n var locateInEmpty = function (doc, node, x) {\n var rect = node.dom().getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n return Option.some(createCollapsedNode(doc, node, collapseDirection));\n };\n var search = function (doc, node, x) {\n var f = children(node).length === 0 ? locateInEmpty : locateInElement;\n return f(doc, node, x);\n };\n\n var caretPositionFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {\n if (pos.offsetNode === null) {\n return Option.none();\n }\n var r = doc.dom().createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Option.some(r);\n });\n };\n var caretRangeFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretRangeFromPoint(x, y));\n };\n var searchTextNodes = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locate$1(doc, node, boundedX, boundedY);\n };\n var searchFromPoint = function (doc, x, y) {\n return Element.fromPoint(doc, x, y).bind(function (elem) {\n var fallback = function () {\n return search(doc, elem, x);\n };\n return children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);\n });\n };\n var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;\n\n var ancestors = function (scope, predicate, isRoot) {\n return filter(parents(scope, isRoot), predicate);\n };\n var siblings$1 = function (scope, predicate) {\n return filter(siblings(scope), predicate);\n };\n var children$1 = function (scope, predicate) {\n return filter(children(scope), predicate);\n };\n\n var all$3 = function (selector) {\n return all(selector);\n };\n var ancestors$1 = function (scope, selector, isRoot) {\n return ancestors(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var siblings$2 = function (scope, selector) {\n return siblings$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var children$2 = function (scope, selector) {\n return children$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendants = function (scope, selector) {\n return all(selector, scope);\n };\n\n var SelectorFilter = /*#__PURE__*/Object.freeze({\n all: all$3,\n ancestors: ancestors$1,\n siblings: siblings$2,\n children: children$2,\n descendants: descendants\n });\n\n var readRange = function (selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Option.some(range$1(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Option.none();\n }\n };\n var doGetExact = function (selection) {\n var anchor = Element.fromDom(selection.anchorNode);\n var focus = Element.fromDom(selection.focusNode);\n return after$1(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(range$1(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n };\n var getExact = function (win) {\n return Option.from(win.getSelection()).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var getFirstRect$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect(rng);\n };\n\n var point = Immutable('element', 'offset');\n var descendOnce = function (element, offset) {\n var children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n var last = children$1[children$1.length - 1];\n var len = isText(last) ? get$a(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n var adt$7 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n var toFixed = function (pos) {\n return pos.fold(function (point) {\n return point;\n }, function (point, scrollLeft, scrollTop) {\n return point.translate(-scrollLeft, -scrollTop);\n });\n };\n var toAbsolute = function (pos) {\n return pos.fold(function (point) {\n return point;\n }, function (point, scrollLeft, scrollTop) {\n return point;\n });\n };\n var sum = function (points) {\n return foldl(points, function (b, a) {\n return b.translate(a.left(), a.top());\n }, Position(0, 0));\n };\n var sumAsFixed = function (positions) {\n var points = map(positions, toFixed);\n return sum(points);\n };\n var sumAsAbsolute = function (positions) {\n var points = map(positions, toAbsolute);\n return sum(points);\n };\n var screen = adt$7.screen;\n var absolute$1 = adt$7.absolute;\n\n var getOffset = function (component, origin, anchorInfo) {\n var win = defaultView(anchorInfo.root).dom();\n var hasSameOwner = function (frame) {\n var frameOwner = owner(frame);\n var compOwner = owner(component.element());\n return eq(frameOwner, compOwner);\n };\n return Option.from(win.frameElement).map(Element.fromDom).filter(hasSameOwner).map(absolute);\n };\n var getRootPoint = function (component, origin, anchorInfo) {\n var doc = owner(component.element());\n var outerScroll = get$6(doc);\n var offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left(), outerScroll.top());\n };\n\n var capRect = function (left, top, width, height) {\n var newLeft = left, newTop = top, newWidth = width, newHeight = height;\n if (left < 0) {\n newLeft = 0;\n newWidth = width + left;\n }\n if (top < 0) {\n newTop = 0;\n newHeight = height + top;\n }\n var point = screen(Position(newLeft, newTop));\n return Option.some(pointed(point, newWidth, newHeight));\n };\n var calcNewAnchor = function (optBox, rootPoint, anchorInfo, origin, elem) {\n return optBox.map(function (box) {\n var points = [\n rootPoint,\n box.point()\n ];\n var topLeft = cata$1(origin, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsFixed(points);\n });\n var anchorBox = rect(topLeft.left(), topLeft.top(), box.width(), box.height());\n var layoutsLtr = function () {\n return anchorInfo.showAbove ? [\n northeast$1,\n northwest$1,\n southeast$1,\n southwest$1,\n north$1,\n south$1\n ] : [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n south$1\n ];\n };\n var layoutsRtl = function () {\n return anchorInfo.showAbove ? [\n northwest$1,\n northeast$1,\n southwest$1,\n southeast$1,\n north$1,\n south$1\n ] : [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1\n ];\n };\n var layouts = get$9(elem, anchorInfo, layoutsLtr(), layoutsRtl());\n return nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Option.none()\n });\n });\n };\n var ContentAnchorCommon = {\n capRect: capRect,\n calcNewAnchor: calcNewAnchor\n };\n\n var point$1 = Immutable('element', 'offset');\n var descendOnce$1 = function (element, offset) {\n return isText(element) ? point$1(element, offset) : descendOnce(element, offset);\n };\n var getAnchorSelection = function (win, anchorInfo) {\n var getSelection = anchorInfo.getSelection.getOrThunk(function () {\n return function () {\n return getExact(win);\n };\n });\n return getSelection().map(function (sel) {\n var modStart = descendOnce$1(sel.start(), sel.soffset());\n var modFinish = descendOnce$1(sel.finish(), sel.foffset());\n return range$1(modStart.element(), modStart.offset(), modFinish.element(), modFinish.offset());\n });\n };\n var placement$2 = function (component, anchorInfo, origin) {\n var win = defaultView(anchorInfo.root).dom();\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n var selectionBox = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n var optRect = getFirstRect$1(win, exactFromRange(sel)).orThunk(function () {\n var x = Element.fromText(zeroWidth());\n before(sel.start(), x);\n return getFirstRect$1(win, exact(x, 0, x, 1)).map(function (rect) {\n remove(x);\n return rect;\n });\n });\n return optRect.bind(function (rawRect) {\n return ContentAnchorCommon.capRect(rawRect.left(), rawRect.top(), rawRect.width(), rawRect.height());\n });\n });\n var targetElement = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n return isElement(sel.start()) ? Option.some(sel.start()) : parent(sel.start());\n });\n var elem = targetElement.getOr(component.element());\n return ContentAnchorCommon.calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option('getSelection'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$2)\n ];\n\n var placement$3 = function (component, anchorInfo, origin) {\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.bind(function (target) {\n var rect = target.dom().getBoundingClientRect();\n var nodeBox = ContentAnchorCommon.capRect(rect.left, rect.top, rect.width, rect.height);\n var elem = anchorInfo.node.getOr(component.element());\n return ContentAnchorCommon.calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n strict$1('node'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$3)\n ];\n\n var eastX$1 = function (anchor) {\n return anchor.x() + anchor.width();\n };\n var westX$1 = function (anchor, element) {\n return anchor.x() - element.width();\n };\n var northY$1 = function (anchor, element) {\n return anchor.y() - element.height() + anchor.height();\n };\n var southY$1 = function (anchor) {\n return anchor.y();\n };\n var southeast$2 = function (anchor, element, bubbles) {\n return nu$8(eastX$1(anchor), southY$1(anchor), bubbles.southeast(), southeast(), 'link-layout-se');\n };\n var southwest$2 = function (anchor, element, bubbles) {\n return nu$8(westX$1(anchor, element), southY$1(anchor), bubbles.southwest(), southwest(), 'link-layout-sw');\n };\n var northeast$2 = function (anchor, element, bubbles) {\n return nu$8(eastX$1(anchor), northY$1(anchor, element), bubbles.northeast(), northeast(), 'link-layout-ne');\n };\n var northwest$2 = function (anchor, element, bubbles) {\n return nu$8(westX$1(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest(), 'link-layout-nw');\n };\n var all$4 = function () {\n return [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2\n ];\n };\n var allRtl$1 = function () {\n return [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2\n ];\n };\n\n var placement$4 = function (component, submenuInfo, origin) {\n var anchorBox = toBox(origin, submenuInfo.item.element());\n var layouts = get$9(component.element(), submenuInfo, all$4(), allRtl$1());\n return Option.some(nu$9({\n anchorBox: anchorBox,\n bubble: fallback(),\n overrides: {},\n layouts: layouts,\n placer: Option.none()\n }));\n };\n var SubmenuAnchor = [\n strict$1('item'),\n schema$1(),\n output('placement', placement$4)\n ];\n\n var AnchorSchema = choose$1('anchor', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n var getFixedOrigin = function () {\n return fixed(0, 0, domGlobals.window.innerWidth, domGlobals.window.innerHeight);\n };\n var getRelativeOrigin = function (component) {\n var position = absolute(component.element());\n var bounds = component.element().dom().getBoundingClientRect();\n return relative(position.left(), position.top(), bounds.width, bounds.height);\n };\n var place = function (component, origin, anchoring, getBounds, placee) {\n var anchor = box$1(anchoring.anchorBox, origin);\n simple(anchor, placee.element(), anchoring.bubble, anchoring.layouts, getBounds, anchoring.overrides);\n };\n var position$1 = function (component, posConfig, posState, anchor, placee) {\n var boxElement = Option.none();\n positionWithin(component, posConfig, posState, anchor, placee, boxElement);\n };\n var positionWithin = function (component, posConfig, posState, anchor, placee, boxElement) {\n var anchorage = asRawOrDie('positioning anchor.info', AnchorSchema, anchor);\n set$2(placee.element(), 'position', 'fixed');\n var oldVisibility = getRaw(placee.element(), 'visibility');\n set$2(placee.element(), 'visibility', 'hidden');\n var origin = posConfig.useFixed ? getFixedOrigin() : getRelativeOrigin(component);\n var placer = anchorage.placement;\n var getBounds = boxElement.map(function (boxElem) {\n return function () {\n return box(boxElem);\n };\n }).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(function (anchoring) {\n var doPlace = anchoring.placer.getOr(place);\n doPlace(component, origin, anchoring, getBounds, placee);\n });\n oldVisibility.fold(function () {\n remove$6(placee.element(), 'visibility');\n }, function (vis) {\n set$2(placee.element(), 'visibility', vis);\n });\n if (getRaw(placee.element(), 'left').isNone() && getRaw(placee.element(), 'top').isNone() && getRaw(placee.element(), 'right').isNone() && getRaw(placee.element(), 'bottom').isNone() && getRaw(placee.element(), 'position').is('fixed')) {\n remove$6(placee.element(), 'position');\n }\n };\n var getMode = function (component, pConfig, pState) {\n return pConfig.useFixed ? 'fixed' : 'absolute';\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n position: position$1,\n positionWithin: positionWithin,\n getMode: getMode\n });\n\n var PositionSchema = [\n defaulted$1('useFixed', false),\n option('getBounds')\n ];\n\n var Positioning = create$1({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis\n });\n\n var fireDetaching = function (component) {\n emit(component, detachedFromDom());\n var children = component.components();\n each(children, fireDetaching);\n };\n var fireAttaching = function (component) {\n var children = component.components();\n each(children, fireAttaching);\n emit(component, attachedToDom());\n };\n var attach = function (parent, child) {\n attachWith(parent, child, append);\n };\n var attachWith = function (parent, child, insertion) {\n parent.getSystem().addToWorld(child);\n insertion(parent.element(), child.element());\n if (inBody(parent.element())) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n var doDetach = function (component) {\n fireDetaching(component);\n remove(component.element());\n component.getSystem().removeFromWorld(component);\n };\n var detach = function (component) {\n var parent$1 = parent(component.element()).bind(function (p) {\n return component.getSystem().getByDom(p).fold(Option.none, Option.some);\n });\n doDetach(component);\n parent$1.each(function (p) {\n p.syncComponents();\n });\n };\n var detachChildren = function (component) {\n var subs = component.components();\n each(subs, doDetach);\n empty(component.element());\n component.syncComponents();\n };\n var attachSystem = function (element, guiSystem) {\n attachSystemInternal(element, guiSystem, append);\n };\n var attachSystemAfter = function (element, guiSystem) {\n attachSystemInternal(element, guiSystem, after);\n };\n var attachSystemInternal = function (element, guiSystem, inserter) {\n inserter(element, guiSystem.element());\n var children$1 = children(guiSystem.element());\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n var detachSystem = function (guiSystem) {\n var children$1 = children(guiSystem.element());\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove(guiSystem.element());\n };\n\n var rebuild = function (sandbox, sConfig, sState, data) {\n sState.get().each(function (data) {\n detachChildren(sandbox);\n });\n var point = sConfig.getAttachPoint(sandbox);\n attach(point, sandbox);\n var built = sandbox.getSystem().build(data);\n attach(sandbox, built);\n sState.set(built);\n return built;\n };\n var open = function (sandbox, sConfig, sState, data) {\n var newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n var openWhileCloaked = function (sandbox, sConfig, sState, data, transaction) {\n cloak(sandbox, sConfig, sState);\n open(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig, sState);\n };\n var close = function (sandbox, sConfig, sState) {\n sState.get().each(function (data) {\n detachChildren(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n var isOpen = function (sandbox, sConfig, sState) {\n return sState.isOpen();\n };\n var isPartOf$1 = function (sandbox, sConfig, sState, queryElem) {\n return isOpen(sandbox, sConfig, sState) && sState.get().exists(function (data) {\n return sConfig.isPartOf(sandbox, data, queryElem);\n });\n };\n var getState = function (sandbox, sConfig, sState) {\n return sState.get();\n };\n var store = function (sandbox, cssKey, attr, newValue) {\n getRaw(sandbox.element(), cssKey).fold(function () {\n remove$1(sandbox.element(), attr);\n }, function (v) {\n set$1(sandbox.element(), attr, v);\n });\n set$2(sandbox.element(), cssKey, newValue);\n };\n var restore = function (sandbox, cssKey, attr) {\n if (has$1(sandbox.element(), attr)) {\n var oldValue = get$2(sandbox.element(), attr);\n set$2(sandbox.element(), cssKey, oldValue);\n } else {\n remove$6(sandbox.element(), cssKey);\n }\n };\n var cloak = function (sandbox, sConfig, sState) {\n var sink = sConfig.getAttachPoint(sandbox);\n set$2(sandbox.element(), 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n var hasPosition = function (element) {\n return exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], function (pos) {\n return getRaw(element, pos).isSome();\n });\n };\n var decloak = function (sandbox, sConfig, sState) {\n if (!hasPosition(sandbox.element())) {\n remove$6(sandbox.element(), 'position');\n }\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n cloak: cloak,\n decloak: decloak,\n open: open,\n openWhileCloaked: openWhileCloaked,\n close: close,\n isOpen: isOpen,\n isPartOf: isPartOf$1,\n getState: getState\n });\n\n var events$2 = function (sandboxConfig, sandboxState) {\n return derive([run(sandboxClose(), function (sandbox, simulatedEvent) {\n close(sandbox, sandboxConfig, sandboxState);\n })]);\n };\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n events: events$2\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n strict$1('isPartOf'),\n strict$1('getAttachPoint'),\n defaulted$1('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n var init = function () {\n var contents = Cell(Option.none());\n var readState = constant('not-implemented');\n var isOpen = function () {\n return contents.get().isSome();\n };\n var set = function (c) {\n contents.set(Option.some(c));\n };\n var get = function (c) {\n return contents.get();\n };\n var clear = function () {\n contents.set(Option.none());\n };\n return nu$5({\n readState: readState,\n isOpen: isOpen,\n clear: clear,\n set: set,\n get: get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n init: init\n });\n\n var Sandboxing = create$1({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n var dismissPopups = constant('dismiss.popups');\n var mouseReleased = constant('mouse.released');\n\n var schema$2 = objOfOnly([\n defaulted$1('isExtraPart', constant(false)),\n optionObjOf('fireEventInstead', [defaulted$1('event', dismissRequested())])\n ]);\n var receivingConfig = function (rawSpec) {\n var c = receiving(rawSpec);\n return Receiving.config(c);\n };\n var receiving = function (rawSpec) {\n var spec = asRawOrDie('Dismissal', schema$2, rawSpec);\n return {\n channels: wrap$1(dismissPopups(), {\n schema: objOfOnly([strict$1('target')]),\n onReceive: function (sandbox, data) {\n if (Sandboxing.isOpen(sandbox)) {\n var isPart = Sandboxing.isPartOf(sandbox, data.target) || spec.isExtraPart(sandbox, data.target);\n if (!isPart) {\n spec.fireEventInstead.fold(function () {\n return Sandboxing.close(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }\n })\n };\n };\n\n var field$1 = function (name, forbidden) {\n return defaultedObjOf(name, {}, map(forbidden, function (f) {\n return forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name);\n }).concat([state$1('dump', identity)]));\n };\n var get$b = function (data) {\n return data.dump;\n };\n var augment = function (data, original) {\n return __assign({}, data.dump, derive$1(original));\n };\n var SketchBehaviours = {\n field: field$1,\n augment: augment,\n get: get$b\n };\n\n var SketchBehaviours$1 = /*#__PURE__*/Object.freeze({\n SketchBehaviours: SketchBehaviours,\n field: field$1,\n get: get$b,\n augment: augment\n });\n\n var _placeholder = 'placeholder';\n var adt$8 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n var isSubstitute = function (uiType) {\n return contains([_placeholder], uiType);\n };\n var subPlaceholder = function (owner, detail, compSpec, placeholders) {\n if (owner.exists(function (o) {\n return o !== compSpec.owner;\n })) {\n return adt$8.single(true, constant(compSpec));\n }\n return readOptFrom$1(placeholders, compSpec.name).fold(function () {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + Json.stringify(compSpec, null, 2));\n }, function (newSpec) {\n return newSpec.replace();\n });\n };\n var scan = function (owner, detail, compSpec, placeholders) {\n if (compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$8.single(false, constant(compSpec));\n }\n };\n var substitute = function (owner, detail, compSpec, placeholders) {\n var base = scan(owner, detail, compSpec, placeholders);\n return base.fold(function (req, valueThunk) {\n var value = valueThunk(detail, compSpec.config, compSpec.validated);\n var childSpecs = readOptFrom$1(value, 'components').getOr([]);\n var substituted = bind(childSpecs, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n return [__assign({}, value, { components: substituted })];\n }, function (req, valuesThunk) {\n var values = valuesThunk(detail, compSpec.config, compSpec.validated);\n var preprocessor = compSpec.validated.preprocess.getOr(identity);\n return preprocessor(values);\n });\n };\n var substituteAll = function (owner, detail, components, placeholders) {\n return bind(components, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n };\n var oneReplace = function (label, replacements) {\n var called = false;\n var used = function () {\n return called;\n };\n var replace = function () {\n if (called === true) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n var required = function () {\n return replacements.fold(function (req, _) {\n return req;\n }, function (req, _) {\n return req;\n });\n };\n return {\n name: constant(label),\n required: required,\n used: used,\n replace: replace\n };\n };\n var substitutePlaces = function (owner, detail, components, placeholders) {\n var ps = map$1(placeholders, function (ph, name) {\n return oneReplace(name, ph);\n });\n var outcome = substituteAll(owner, detail, components, ps);\n each$1(ps, function (p) {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + Json.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n var singleReplace = function (detail, p) {\n var replacement = p;\n return replacement.fold(function (req, valueThunk) {\n return [valueThunk(detail)];\n }, function (req, valuesThunk) {\n return valuesThunk(detail);\n });\n };\n var single = adt$8.single;\n var multiple = adt$8.multiple;\n var placeholder = constant(_placeholder);\n\n var UiSubstitutes = /*#__PURE__*/Object.freeze({\n single: single,\n multiple: multiple,\n isSubstitute: isSubstitute,\n placeholder: placeholder,\n substituteAll: substituteAll,\n substitutePlaces: substitutePlaces,\n singleReplace: singleReplace\n });\n\n var adt$9 = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n var fFactory = defaulted$1('factory', { sketch: identity });\n var fSchema = defaulted$1('schema', []);\n var fName = strict$1('name');\n var fPname = field('pname', 'pname', defaultedThunk(function (typeSpec) {\n return '';\n }), anyValue$1());\n var fGroupSchema = state$1('schema', function () {\n return [option('preprocess')];\n });\n var fDefaults = defaulted$1('defaults', constant({}));\n var fOverrides = defaulted$1('overrides', constant({}));\n var requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n var optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n strict$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n var asNamedPart = function (part) {\n return part.fold(Option.some, Option.none, Option.some, Option.some);\n };\n var name$1 = function (part) {\n var get = function (data) {\n return data.name;\n };\n return part.fold(get, get, get, get);\n };\n var asCommon = function (part) {\n return part.fold(identity, identity, identity, identity);\n };\n var convert = function (adtConstructor, partSchema) {\n return function (spec) {\n var data = asRawOrDie('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n };\n var required = convert(adt$9.required, requiredSpec);\n var external$1 = convert(adt$9.external, externalSpec);\n var optional = convert(adt$9.optional, optionalSpec);\n var group = convert(adt$9.group, groupSpec);\n var original = constant('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n required: required,\n external: external$1,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$1,\n asCommon: asCommon,\n original: original\n });\n\n var combine$2 = function (detail, data, partSpec, partValidated) {\n return deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n };\n var subs = function (owner, detail, parts) {\n var internals = {};\n var externals = {};\n each(parts, function (part) {\n part.fold(function (data) {\n internals[data.pname] = single(true, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n var partSpec = detail.parts[data.name];\n externals[data.name] = constant(data.factory.sketch(combine$2(detail, data, partSpec[original()]), partSpec));\n }, function (data) {\n internals[data.pname] = single(false, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n internals[data.pname] = multiple(true, function (detail, _partSpec, _partValidated) {\n var units = detail[data.name];\n return map(units, function (u) {\n return data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u)));\n });\n });\n });\n });\n return {\n internals: constant(internals),\n externals: constant(externals)\n };\n };\n\n var generate$4 = function (owner, parts) {\n var r = {};\n each(parts, function (part) {\n asNamedPart(part).each(function (np) {\n var g = doGenerateOne(owner, np.pname);\n r[np.name] = function (config) {\n var validated = asRawOrDie('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return __assign({}, g, {\n config: config,\n validated: validated\n });\n };\n });\n });\n return r;\n };\n var doGenerateOne = function (owner, pname) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname\n };\n };\n var generateOne = function (owner, pname, config) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname,\n config: config,\n validated: {}\n };\n };\n var schemas = function (parts) {\n return bind(parts, function (part) {\n return part.fold(Option.none, Option.some, Option.none, Option.none).map(function (data) {\n return strictObjOf(data.name, data.schema.concat([snapshot(original())]));\n }).toArray();\n });\n };\n var names = function (parts) {\n return map(parts, name$1);\n };\n var substitutes = function (owner, detail, parts) {\n return subs(owner, detail, parts);\n };\n var components = function (owner, detail, internals) {\n return substitutePlaces(Option.some(owner), detail, detail.components, internals);\n };\n var getPart = function (component, detail, partKey) {\n var uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOption();\n };\n var getPartOrDie = function (component, detail, partKey) {\n return getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n };\n var getParts = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = system.getByUid(uids[pk]);\n });\n return map$1(r, constant);\n };\n var getAllParts = function (component, detail) {\n var system = component.getSystem();\n return map$1(detail.partUids, function (pUid, k) {\n return constant(system.getByUid(pUid));\n });\n };\n var getAllPartNames = function (detail) {\n return keys(detail.partUids);\n };\n var getPartsOrDie = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = system.getByUid(uids[pk]).getOrDie();\n });\n return map$1(r, constant);\n };\n var defaultUids = function (baseUid, partTypes) {\n var partNames = names(partTypes);\n return wrapAll$1(map(partNames, function (pn) {\n return {\n key: pn,\n value: baseUid + '-' + pn\n };\n }));\n };\n var defaultUidsSchema = function (partTypes) {\n return field('partUids', 'partUids', mergeWithThunk(function (spec) {\n return defaultUids(spec.uid, partTypes);\n }), anyValue$1());\n };\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n generate: generate$4,\n generateOne: generateOne,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n var base = function (label, partSchemas, partUidsSchemas, spec) {\n var ps = partSchemas.length > 0 ? [strictObjOf('parts', partSchemas)] : [];\n return ps.concat([\n strict$1('uid'),\n defaulted$1('dom', {}),\n defaulted$1('components', []),\n snapshot('originalSpec'),\n defaulted$1('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n var asRawOrDie$1 = function (label, schema, spec, partSchemas, partUidsSchemas) {\n var baseS = base(label, partSchemas, partUidsSchemas, spec);\n return asRawOrDie(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n var single$1 = function (owner, schema, factory, spec) {\n var specWithUid = supplyUid(spec);\n var detail = asRawOrDie$1(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n var composite = function (owner, schema, partTypes, factory, spec) {\n var specWithUid = supplyUid(spec);\n var partSchemas = schemas(partTypes);\n var partUidsSchema = defaultUidsSchema(partTypes);\n var detail = asRawOrDie$1(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n var subs = substitutes(owner, detail, partTypes);\n var components$1 = components(owner, detail, subs.internals());\n return factory(detail, components$1, specWithUid, subs.externals());\n };\n var supplyUid = function (spec) {\n return spec.hasOwnProperty('uid') ? spec : __assign({}, spec, { uid: generate$2('uid') });\n };\n\n function isSketchSpec(spec) {\n return spec.uid !== undefined;\n }\n var singleSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var compositeSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n strict$1('partFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var single$2 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n var sketch = function (spec) {\n return single$1(config.name, config.configFields, config.factory, spec);\n };\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return __assign({\n name: constant(config.name),\n partFields: constant([]),\n configFields: constant(config.configFields),\n sketch: sketch\n }, apis, extraApis);\n };\n var composite$1 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n var sketch = function (spec) {\n return composite(config.name, config.configFields, config.partFields, config.factory, spec);\n };\n var parts = generate$4(config.name, config.partFields);\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return __assign({\n name: constant(config.name),\n partFields: constant(config.partFields),\n configFields: constant(config.configFields),\n sketch: sketch,\n parts: constant(parts)\n }, apis, extraApis);\n };\n\n var Sketcher = /*#__PURE__*/Object.freeze({\n isSketchSpec: isSketchSpec,\n single: single$2,\n composite: composite$1\n });\n\n var inside = function (target) {\n return name(target) === 'input' && get$2(target, 'type') !== 'radio' || name(target) === 'textarea';\n };\n\n var getCurrent = function (component, composeConfig, composeState) {\n return composeConfig.find(component);\n };\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n getCurrent: getCurrent\n });\n\n var ComposeSchema = [strict$1('find')];\n\n var Composing = create$1({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n var cycleBy = function (value, delta, min, max) {\n var r = value + delta;\n if (r > max) {\n return min;\n } else {\n return r < min ? max : r;\n }\n };\n var cap = function (value, min, max) {\n if (value <= min) {\n return min;\n } else {\n return value >= max ? max : value;\n }\n };\n\n var dehighlightAllExcept = function (component, hConfig, hState, skip) {\n var highlighted = descendants(component.element(), '.' + hConfig.highlightClass);\n each(highlighted, function (h) {\n if (!exists(skip, function (skipComp) {\n return skipComp.element() === h;\n })) {\n remove$4(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(function (target) {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n });\n }\n });\n };\n var dehighlightAll = function (component, hConfig, hState) {\n return dehighlightAllExcept(component, hConfig, hState, []);\n };\n var dehighlight$1 = function (component, hConfig, hState, target) {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$4(target.element(), hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n }\n };\n var highlight$1 = function (component, hConfig, hState, target) {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element(), hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight());\n }\n };\n var highlightFirst = function (component, hConfig, hState) {\n getFirst(component, hConfig, hState).each(function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightLast = function (component, hConfig, hState) {\n getLast(component, hConfig, hState).each(function (lastComp) {\n highlight$1(component, hConfig, hState, lastComp);\n });\n };\n var highlightAt = function (component, hConfig, hState, index) {\n getByIndex(component, hConfig, hState, index).fold(function (err) {\n throw new Error(err);\n }, function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightBy = function (component, hConfig, hState, predicate) {\n var candidates = getCandidates(component, hConfig, hState);\n var targetComp = find(candidates, predicate);\n targetComp.each(function (c) {\n highlight$1(component, hConfig, hState, c);\n });\n };\n var isHighlighted = function (component, hConfig, hState, queryTarget) {\n return has$2(queryTarget.element(), hConfig.highlightClass);\n };\n var getHighlighted = function (component, hConfig, hState) {\n return descendant$2(component.element(), '.' + hConfig.highlightClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOption();\n });\n };\n var getByIndex = function (component, hConfig, hState, index) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n return Option.from(items[index]).fold(function () {\n return Result.error('No element found with index ' + index);\n }, component.getSystem().getByDom);\n };\n var getFirst = function (component, hConfig, hState) {\n return descendant$2(component.element(), '.' + hConfig.itemClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOption();\n });\n };\n var getLast = function (component, hConfig, hState) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n var last = items.length > 0 ? Option.some(items[items.length - 1]) : Option.none();\n return last.bind(function (c) {\n return component.getSystem().getByDom(c).toOption();\n });\n };\n var getDelta = function (component, hConfig, hState, delta) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n var current = findIndex(items, function (item) {\n return has$2(item, hConfig.highlightClass);\n });\n return current.bind(function (selected) {\n var dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOption();\n });\n };\n var getPrevious = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, -1);\n };\n var getNext = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, +1);\n };\n var getCandidates = function (component, hConfig, hState) {\n var items = descendants(component.element(), '.' + hConfig.itemClass);\n return cat(map(items, function (i) {\n return component.getSystem().getByDom(i).toOption();\n }));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight$1,\n highlight: highlight$1,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n\n var HighlightSchema = [\n strict$1('highlightClass'),\n strict$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n var Highlighting = create$1({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n var BACKSPACE = function () {\n return [8];\n };\n var TAB = function () {\n return [9];\n };\n var ENTER = function () {\n return [13];\n };\n var ESCAPE = function () {\n return [27];\n };\n var SPACE = function () {\n return [32];\n };\n var LEFT = function () {\n return [37];\n };\n var UP = function () {\n return [38];\n };\n var RIGHT = function () {\n return [39];\n };\n var DOWN = function () {\n return [40];\n };\n\n var cyclePrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n var after = reverse(values.slice(index + 1));\n return find(before.concat(after), predicate);\n };\n var tryPrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n return find(before, predicate);\n };\n var cycleNext = function (values, index, predicate) {\n var before = values.slice(0, index);\n var after = values.slice(index + 1);\n return find(after.concat(before), predicate);\n };\n var tryNext = function (values, index, predicate) {\n var after = values.slice(index + 1);\n return find(after, predicate);\n };\n\n var inSet = function (keys) {\n return function (event) {\n var raw = event.raw();\n return contains(keys, raw.which);\n };\n };\n var and = function (preds) {\n return function (event) {\n return forall(preds, function (pred) {\n return pred(event);\n });\n };\n };\n var is$1 = function (key) {\n return function (event) {\n var raw = event.raw();\n return raw.which === key;\n };\n };\n var isShift = function (event) {\n var raw = event.raw();\n return raw.shiftKey === true;\n };\n var isControl = function (event) {\n var raw = event.raw();\n return raw.ctrlKey === true;\n };\n var isNotShift = not(isShift);\n\n var basic = function (key, action) {\n return {\n matches: is$1(key),\n classification: action\n };\n };\n var rule = function (matches, action) {\n return {\n matches: matches,\n classification: action\n };\n };\n var choose$2 = function (transitions, event) {\n var transition = find(transitions, function (t) {\n return t.matches(event);\n });\n return transition.map(function (t) {\n return t.classification;\n });\n };\n\n var KeyRules = /*#__PURE__*/Object.freeze({\n basic: basic,\n rule: rule,\n choose: choose$2\n });\n\n var focus$1 = function (element) {\n element.dom().focus();\n };\n var blur = function (element) {\n element.dom().blur();\n };\n var hasFocus = function (element) {\n var doc = owner(element).dom();\n return element.dom() === doc.activeElement;\n };\n var active = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n return Option.from(doc.activeElement).map(Element.fromDom);\n };\n var search$1 = function (element) {\n return active(owner(element)).filter(function (e) {\n return element.dom().contains(e.dom());\n });\n };\n\n var reportFocusShifting = function (component, prevFocus, newFocus) {\n var noChange = prevFocus.exists(function (p) {\n return newFocus.exists(function (n) {\n return eq(n, p);\n });\n });\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus: prevFocus,\n newFocus: newFocus\n });\n }\n };\n var dom = function () {\n var get = function (component) {\n return search$1(component.element());\n };\n var set = function (component, focusee) {\n var prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element());\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get: get,\n set: set\n };\n };\n var highlights = function () {\n var get = function (component) {\n return Highlighting.getHighlighted(component).map(function (item) {\n return item.element();\n });\n };\n var set = function (component, element) {\n var prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, function (item) {\n Highlighting.highlight(component, item);\n });\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get: get,\n set: set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n var typical = function (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) {\n var schema = function () {\n return infoSchema.concat([\n defaulted$1('focusManager', dom()),\n defaultedOf('focusInside', 'onFocus', valueOf(function (val) {\n return contains([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside');\n })),\n output('handler', me),\n output('state', stateInit),\n output('sendFocusIn', optFocusIn)\n ]);\n };\n var processKey = function (component, simulatedEvent, getRules, keyingConfig, keyingState) {\n var rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose$2(rules, simulatedEvent.event()).bind(function (rule) {\n return rule(component, simulatedEvent, keyingConfig, keyingState);\n });\n };\n var toEvents = function (keyingConfig, keyingState) {\n var onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Option.none() : optFocusIn(keyingConfig).map(function (focusIn) {\n return run(focus(), function (component, simulatedEvent) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n });\n var tryGoInsideComponent = function (component, simulatedEvent) {\n var isEnterOrSpace = inSet(SPACE().concat(ENTER()))(simulatedEvent.event());\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(function (focusIn) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n return derive(onFocusHandler.toArray().concat([\n run(keydown(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(function () {\n tryGoInsideComponent(component, simulatedEvent);\n }, function (_) {\n simulatedEvent.stop();\n });\n }),\n run(keyup(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(function (_) {\n simulatedEvent.stop();\n });\n })\n ]));\n };\n var me = {\n schema: schema,\n processKey: processKey,\n toEvents: toEvents\n };\n return me;\n };\n\n var create$2 = function (cyclicField) {\n var schema = [\n option('onEscape'),\n option('onEnter'),\n defaulted$1('selector', '[data-alloy-tabstop=\"true\"]'),\n defaulted$1('firstTabstop', 0),\n defaulted$1('useTabstopAt', constant(true)),\n option('visibilitySelector')\n ].concat([cyclicField]);\n var isVisible = function (tabbingConfig, element) {\n var target = tabbingConfig.visibilitySelector.bind(function (sel) {\n return closest$3(element, sel);\n }).getOr(element);\n return get$8(target) > 0;\n };\n var findInitial = function (component, tabbingConfig) {\n var tabstops = descendants(component.element(), tabbingConfig.selector);\n var visibles = filter(tabstops, function (elem) {\n return isVisible(tabbingConfig, elem);\n });\n return Option.from(visibles[tabbingConfig.firstTabstop]);\n };\n var findCurrent = function (component, tabbingConfig) {\n return tabbingConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, tabbingConfig.selector);\n });\n };\n var isTabstop = function (tabbingConfig, element) {\n return isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n };\n var focusIn = function (component, tabbingConfig) {\n findInitial(component, tabbingConfig).each(function (target) {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n var goFromTabstop = function (component, tabstops, stopIndex, tabbingConfig, cycle) {\n return cycle(tabstops, stopIndex, function (elem) {\n return isTabstop(tabbingConfig, elem);\n }).fold(function () {\n return tabbingConfig.cyclic ? Option.some(true) : Option.none();\n }, function (target) {\n tabbingConfig.focusManager.set(component, target);\n return Option.some(true);\n });\n };\n var go = function (component, simulatedEvent, tabbingConfig, cycle) {\n var tabstops = descendants(component.element(), tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(function (tabstop) {\n var optStopIndex = findIndex(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(function (stopIndex) {\n return goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle);\n });\n });\n };\n var goBackwards = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n var navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var goForwards = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n var navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var execute = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n return tabbingConfig.onEnter.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var exit = function (component, simulatedEvent, tabbingConfig, tabbingState) {\n return tabbingConfig.onEscape.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var getKeydownRules = constant([\n rule(and([\n isShift,\n inSet(TAB())\n ]), goBackwards),\n rule(inSet(TAB()), goForwards),\n rule(inSet(ESCAPE()), exit),\n rule(and([\n isNotShift,\n inSet(ENTER())\n ]), execute)\n ]);\n var getKeyupRules = constant([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Option.some(focusIn);\n });\n };\n\n var AcyclicType = create$2(state$1('cyclic', constant(false)));\n\n var CyclicType = create$2(state$1('cyclic', constant(true)));\n\n var doDefaultExecute = function (component, simulatedEvent, focused) {\n dispatch(component, focused, execute());\n return Option.some(true);\n };\n var defaultExecute = function (component, simulatedEvent, focused) {\n return inside(focused) && inSet(SPACE())(simulatedEvent.event()) ? Option.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n var stopEventForFirefox = function (component, simulatedEvent) {\n return Option.some(true);\n };\n\n var schema$3 = [\n defaulted$1('execute', defaultExecute),\n defaulted$1('useSpace', false),\n defaulted$1('useEnter', true),\n defaulted$1('useControlEnter', false),\n defaulted$1('useDown', false)\n ];\n var execute$1 = function (component, simulatedEvent, executeConfig) {\n return executeConfig.execute(component, simulatedEvent, component.element());\n };\n var getKeydownRules = function (component, simulatedEvent, executeConfig, executeState) {\n var spaceExec = executeConfig.useSpace && !inside(component.element()) ? SPACE() : [];\n var enterExec = executeConfig.useEnter ? ENTER() : [];\n var downExec = executeConfig.useDown ? DOWN() : [];\n var execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$1)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER())\n ]), execute$1)] : []);\n };\n var getKeyupRules = function (component, simulatedEvent, executeConfig, executeState) {\n return executeConfig.useSpace && !inside(component.element()) ? [rule(inSet(SPACE()), stopEventForFirefox)] : [];\n };\n var ExecutionType = typical(schema$3, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Option.none();\n });\n\n var flatgrid = function (spec) {\n var dimensions = Cell(Option.none());\n var setGridSize = function (numRows, numColumns) {\n dimensions.set(Option.some({\n numRows: constant(numRows),\n numColumns: constant(numColumns)\n }));\n };\n var getNumRows = function () {\n return dimensions.get().map(function (d) {\n return d.numRows();\n });\n };\n var getNumColumns = function () {\n return dimensions.get().map(function (d) {\n return d.numColumns();\n });\n };\n return nu$5({\n readState: function () {\n return dimensions.get().map(function (d) {\n return {\n numRows: d.numRows(),\n numColumns: d.numColumns()\n };\n }).getOr({\n numRows: '?',\n numColumns: '?'\n });\n },\n setGridSize: setGridSize,\n getNumRows: getNumRows,\n getNumColumns: getNumColumns\n });\n };\n var init$1 = function (spec) {\n return spec.state(spec);\n };\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n flatgrid: flatgrid,\n init: init$1\n });\n\n var useH = function (movement) {\n return function (component, simulatedEvent, config, state) {\n var move = movement(component.element());\n return use(move, component, simulatedEvent, config, state);\n };\n };\n var west$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n var east$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n var useV = function (move) {\n return function (component, simulatedEvent, config, state) {\n return use(move, component, simulatedEvent, config, state);\n };\n };\n var use = function (move, component, simulatedEvent, config, state) {\n var outcome = config.focusManager.get(component).bind(function (focused) {\n return move(component.element(), focused, config, state);\n });\n return outcome.map(function (newFocus) {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n var north$2 = useV;\n var south$2 = useV;\n var move = useV;\n\n var isHidden = function (dom) {\n return dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n };\n var isVisible = function (element) {\n var dom = element.dom();\n return !isHidden(dom);\n };\n\n var indexInfo = MixedBag([\n 'index',\n 'candidates'\n ], []);\n var locate$2 = function (candidates, predicate) {\n return findIndex(candidates, predicate).map(function (index) {\n return indexInfo({\n index: index,\n candidates: candidates\n });\n });\n };\n\n var locateVisible = function (container, current, selector) {\n var filter = isVisible;\n return locateIn(container, current, selector, filter);\n };\n var locateIn = function (container, current, selector, filter$1) {\n var predicate = curry(eq, current);\n var candidates = descendants(container, selector);\n var visible = filter(candidates, isVisible);\n return locate$2(visible, predicate);\n };\n var findIndex$1 = function (elements, target) {\n return findIndex(elements, function (elem) {\n return eq(target, elem);\n });\n };\n\n var withGrid = function (values, index, numCols, f) {\n var oldRow = Math.floor(index / numCols);\n var oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(function (address) {\n var newIndex = address.row() * numCols + address.column();\n return newIndex >= 0 && newIndex < values.length ? Option.some(values[newIndex]) : Option.none();\n });\n };\n var cycleHorizontal = function (values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var onLastRow = oldRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n var newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Option.some({\n row: constant(oldRow),\n column: constant(newColumn)\n });\n });\n };\n var cycleVertical = function (values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n var onLastRow = newRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n var newCol = cap(oldColumn, 0, colsInRow - 1);\n return Option.some({\n row: constant(newRow),\n column: constant(newCol)\n });\n });\n };\n var cycleRight = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, +1);\n };\n var cycleLeft = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, -1);\n };\n var cycleUp = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, -1);\n };\n var cycleDown = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, +1);\n };\n\n var schema$4 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('captureTab', false),\n initSize()\n ];\n var focusIn = function (component, gridConfig, gridState) {\n descendant$2(component.element(), gridConfig.selector).each(function (first) {\n gridConfig.focusManager.set(component, first);\n });\n };\n var findCurrent = function (component, gridConfig) {\n return gridConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, gridConfig.selector);\n });\n };\n var execute$2 = function (component, simulatedEvent, gridConfig, gridState) {\n return findCurrent(component, gridConfig).bind(function (focused) {\n return gridConfig.execute(component, simulatedEvent, focused);\n });\n };\n var doMove = function (cycle) {\n return function (element, focused, gridConfig, gridState) {\n return locateVisible(element, focused, gridConfig.selector).bind(function (identified) {\n return cycle(identified.candidates(), identified.index(), gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns));\n });\n };\n };\n var handleTab = function (component, simulatedEvent, gridConfig, gridState) {\n return gridConfig.captureTab ? Option.some(true) : Option.none();\n };\n var doEscape = function (component, simulatedEvent, gridConfig, gridState) {\n return gridConfig.onEscape(component, simulatedEvent);\n };\n var moveLeft = doMove(cycleLeft);\n var moveRight = doMove(cycleRight);\n var moveNorth = doMove(cycleUp);\n var moveSouth = doMove(cycleDown);\n var getKeydownRules$1 = constant([\n rule(inSet(LEFT()), west$2(moveLeft, moveRight)),\n rule(inSet(RIGHT()), east$2(moveLeft, moveRight)),\n rule(inSet(UP()), north$2(moveNorth)),\n rule(inSet(DOWN()), south$2(moveSouth)),\n rule(and([\n isShift,\n inSet(TAB())\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), handleTab),\n rule(inSet(ESCAPE()), doEscape),\n rule(inSet(SPACE().concat(ENTER())), execute$2)\n ]);\n var getKeyupRules$1 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var FlatgridType = typical(schema$4, flatgrid, getKeydownRules$1, getKeyupRules$1, function () {\n return Option.some(focusIn);\n });\n\n var horizontal = function (container, selector, current, delta) {\n var isDisabledButton = function (candidate) {\n return name(candidate) === 'button' && get$2(candidate, 'disabled') === 'disabled';\n };\n var tryCycle = function (initial, index, candidates) {\n var newIndex = cycleBy(index, delta, 0, candidates.length - 1);\n if (newIndex === initial) {\n return Option.none();\n } else {\n return isDisabledButton(candidates[newIndex]) ? tryCycle(initial, newIndex, candidates) : Option.from(candidates[newIndex]);\n }\n };\n return locateVisible(container, current, selector).bind(function (identified) {\n var index = identified.index();\n var candidates = identified.candidates();\n return tryCycle(index, index, candidates);\n });\n };\n\n var schema$5 = [\n strict$1('selector'),\n defaulted$1('getInitial', Option.none),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('executeOnMove', false),\n defaulted$1('allowVertical', true)\n ];\n var findCurrent$1 = function (component, flowConfig) {\n return flowConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, flowConfig.selector);\n });\n };\n var execute$3 = function (component, simulatedEvent, flowConfig) {\n return findCurrent$1(component, flowConfig).bind(function (focused) {\n return flowConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$1 = function (component, flowConfig) {\n flowConfig.getInitial(component).orThunk(function () {\n return descendant$2(component.element(), flowConfig.selector);\n }).each(function (first) {\n flowConfig.focusManager.set(component, first);\n });\n };\n var moveLeft$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveRight$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var doMove$1 = function (movement) {\n return function (component, simulatedEvent, flowConfig) {\n return movement(component, simulatedEvent, flowConfig).bind(function () {\n return flowConfig.executeOnMove ? execute$3(component, simulatedEvent, flowConfig) : Option.some(true);\n });\n };\n };\n var doEscape$1 = function (component, simulatedEvent, flowConfig, _flowState) {\n return flowConfig.onEscape(component, simulatedEvent);\n };\n var getKeydownRules$2 = function (_component, _se, flowConfig, _flowState) {\n var westMovers = LEFT().concat(flowConfig.allowVertical ? UP() : []);\n var eastMovers = RIGHT().concat(flowConfig.allowVertical ? DOWN() : []);\n return [\n rule(inSet(westMovers), doMove$1(west$2(moveLeft$1, moveRight$1))),\n rule(inSet(eastMovers), doMove$1(east$2(moveLeft$1, moveRight$1))),\n rule(inSet(ENTER()), execute$3),\n rule(inSet(SPACE()), execute$3),\n rule(inSet(ESCAPE()), doEscape$1)\n ];\n };\n var getKeyupRules$2 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var FlowType = typical(schema$5, NoState.init, getKeydownRules$2, getKeyupRules$2, function () {\n return Option.some(focusIn$1);\n });\n\n var outcome = MixedBag([\n 'rowIndex',\n 'columnIndex',\n 'cell'\n ], []);\n var toCell = function (matrix, rowIndex, columnIndex) {\n return Option.from(matrix[rowIndex]).bind(function (row) {\n return Option.from(row[columnIndex]).map(function (cell) {\n return outcome({\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n cell: cell\n });\n });\n });\n };\n var cycleHorizontal$1 = function (matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var cycleVertical$1 = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = cap(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var moveHorizontal = function (matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = cap(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var moveVertical = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cap(startRow + deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = cap(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var cycleRight$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, +1);\n };\n var cycleLeft$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, -1);\n };\n var cycleUp$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, -1);\n };\n var cycleDown$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, +1);\n };\n var moveLeft$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, -1);\n };\n var moveRight$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, +1);\n };\n var moveUp = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, -1);\n };\n var moveDown = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, +1);\n };\n\n var schema$6 = [\n strictObjOf('selectors', [\n strict$1('row'),\n strict$1('cell')\n ]),\n defaulted$1('cycles', true),\n defaulted$1('previousSelector', Option.none),\n defaulted$1('execute', defaultExecute)\n ];\n var focusIn$2 = function (component, matrixConfig) {\n var focused = matrixConfig.previousSelector(component).orThunk(function () {\n var selectors = matrixConfig.selectors;\n return descendant$2(component.element(), selectors.cell);\n });\n focused.each(function (cell) {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n var execute$4 = function (component, simulatedEvent, matrixConfig) {\n return search$1(component.element()).bind(function (focused) {\n return matrixConfig.execute(component, simulatedEvent, focused);\n });\n };\n var toMatrix = function (rows, matrixConfig) {\n return map(rows, function (row) {\n return descendants(row, matrixConfig.selectors.cell);\n });\n };\n var doMove$2 = function (ifCycle, ifMove) {\n return function (element, focused, matrixConfig) {\n var move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$3(focused, matrixConfig.selectors.row).bind(function (inRow) {\n var cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex$1(cellsInRow, focused).bind(function (colIndex) {\n var allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex$1(allRows, inRow).bind(function (rowIndex) {\n var matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(function (next) {\n return next.cell();\n });\n });\n });\n });\n };\n };\n var moveLeft$3 = doMove$2(cycleLeft$1, moveLeft$2);\n var moveRight$3 = doMove$2(cycleRight$1, moveRight$2);\n var moveNorth$1 = doMove$2(cycleUp$1, moveUp);\n var moveSouth$1 = doMove$2(cycleDown$1, moveDown);\n var getKeydownRules$3 = constant([\n rule(inSet(LEFT()), west$2(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT()), east$2(moveLeft$3, moveRight$3)),\n rule(inSet(UP()), north$2(moveNorth$1)),\n rule(inSet(DOWN()), south$2(moveSouth$1)),\n rule(inSet(SPACE().concat(ENTER())), execute$4)\n ]);\n var getKeyupRules$3 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var MatrixType = typical(schema$6, NoState.init, getKeydownRules$3, getKeyupRules$3, function () {\n return Option.some(focusIn$2);\n });\n\n var schema$7 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n defaulted$1('moveOnTab', false)\n ];\n var execute$5 = function (component, simulatedEvent, menuConfig) {\n return menuConfig.focusManager.get(component).bind(function (focused) {\n return menuConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$3 = function (component, menuConfig) {\n descendant$2(component.element(), menuConfig.selector).each(function (first) {\n menuConfig.focusManager.set(component, first);\n });\n };\n var moveUp$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveDown$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var fireShiftTab = function (component, simulatedEvent, menuConfig) {\n return menuConfig.moveOnTab ? move(moveUp$1)(component, simulatedEvent, menuConfig) : Option.none();\n };\n var fireTab = function (component, simulatedEvent, menuConfig) {\n return menuConfig.moveOnTab ? move(moveDown$1)(component, simulatedEvent, menuConfig) : Option.none();\n };\n var getKeydownRules$4 = constant([\n rule(inSet(UP()), move(moveUp$1)),\n rule(inSet(DOWN()), move(moveDown$1)),\n rule(and([\n isShift,\n inSet(TAB())\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), fireTab),\n rule(inSet(ENTER()), execute$5),\n rule(inSet(SPACE()), execute$5)\n ]);\n var getKeyupRules$4 = constant([rule(inSet(SPACE()), stopEventForFirefox)]);\n var MenuType = typical(schema$7, NoState.init, getKeydownRules$4, getKeyupRules$4, function () {\n return Option.some(focusIn$3);\n });\n\n var schema$8 = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted$1('stopSpaceKeyup', false),\n option('focusIn')\n ];\n var getKeydownRules$5 = function (component, simulatedEvent, specialInfo) {\n return [\n rule(inSet(SPACE()), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER())\n ]), specialInfo.onEnter),\n rule(and([\n isShift,\n inSet(ENTER())\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift,\n inSet(TAB())\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB())\n ]), specialInfo.onTab),\n rule(inSet(UP()), specialInfo.onUp),\n rule(inSet(DOWN()), specialInfo.onDown),\n rule(inSet(LEFT()), specialInfo.onLeft),\n rule(inSet(RIGHT()), specialInfo.onRight),\n rule(inSet(SPACE()), specialInfo.onSpace),\n rule(inSet(ESCAPE()), specialInfo.onEscape)\n ];\n };\n var getKeyupRules$5 = function (component, simulatedEvent, specialInfo) {\n return specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE()), stopEventForFirefox)] : [];\n };\n var SpecialType = typical(schema$8, NoState.init, getKeydownRules$5, getKeyupRules$5, function (specialInfo) {\n return specialInfo.focusIn;\n });\n\n var acyclic = AcyclicType.schema();\n var cyclic = CyclicType.schema();\n var flow = FlowType.schema();\n var flatgrid$1 = FlatgridType.schema();\n var matrix = MatrixType.schema();\n var execution = ExecutionType.schema();\n var menu = MenuType.schema();\n var special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid$1,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n var Keying = createModes$1({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: function (keyingConfig, keyingState) {\n var handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: function (component, keyConfig, keyState) {\n keyConfig.sendFocusIn(keyConfig).fold(function () {\n component.getSystem().triggerFocus(component.element(), component.element());\n }, function (sendFocusIn) {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: function (component, keyConfig, keyState, numRows, numColumns) {\n if (!hasKey$1(keyState, 'setGridSize')) {\n domGlobals.console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n var preserve$1 = function (f, container) {\n var ownerDoc = owner(container);\n var refocus = active(ownerDoc).bind(function (focused) {\n var hasFocus = function (elem) {\n return eq(focused, elem);\n };\n return hasFocus(container) ? Option.some(container) : descendant(container, hasFocus);\n });\n var result = f(container);\n refocus.each(function (oldFocus) {\n active(ownerDoc).filter(function (newFocus) {\n return eq(newFocus, oldFocus);\n }).fold(function () {\n focus$1(oldFocus);\n }, noop);\n });\n return result;\n };\n\n var set$5 = function (component, replaceConfig, replaceState, data) {\n detachChildren(component);\n preserve$1(function () {\n var children = map(data, component.getSystem().build);\n each(children, function (l) {\n attach(component, l);\n });\n }, component.element());\n };\n var insert = function (component, replaceConfig, insertion, childSpec) {\n var child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n var append$2 = function (component, replaceConfig, replaceState, appendee) {\n insert(component, replaceConfig, append, appendee);\n };\n var prepend$1 = function (component, replaceConfig, replaceState, prependee) {\n insert(component, replaceConfig, prepend, prependee);\n };\n var remove$7 = function (component, replaceConfig, replaceState, removee) {\n var children = contents(component, replaceConfig);\n var foundChild = find(children, function (child) {\n return eq(removee.element(), child.element());\n });\n foundChild.each(detach);\n };\n var contents = function (component, replaceConfig) {\n return component.components();\n };\n var replaceAt = function (component, replaceConfig, replaceState, replaceeIndex, replacer) {\n var children = contents(component, replaceConfig);\n return Option.from(children[replaceeIndex]).map(function (replacee) {\n remove$7(component, replaceConfig, replaceState, replacee);\n replacer.each(function (r) {\n insert(component, replaceConfig, function (p, c) {\n appendAt(p, c, replaceeIndex);\n }, r);\n });\n return replacee;\n });\n };\n var replaceBy = function (component, replaceConfig, replaceState, replaceePred, replacer) {\n var children = contents(component, replaceConfig);\n return findIndex(children, replaceePred).bind(function (replaceeIndex) {\n return replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer);\n });\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n append: append$2,\n prepend: prepend$1,\n remove: remove$7,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$5,\n contents: contents\n });\n\n var Replacing = create$1({\n fields: [],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n var onLoad = function (component, repConfig, repState) {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n var onUnload = function (component, repConfig, repState) {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n var setValue = function (component, repConfig, repState, data) {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n var getValue = function (component, repConfig, repState) {\n return repConfig.store.manager.getValue(component, repConfig, repState);\n };\n var getState$1 = function (component, repConfig, repState) {\n return repState;\n };\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n onLoad: onLoad,\n onUnload: onUnload,\n setValue: setValue,\n getValue: getValue,\n getState: getState$1\n });\n\n var events$3 = function (repConfig, repState) {\n var es = repConfig.resetOnDom ? [\n runOnAttached(function (comp, se) {\n onLoad(comp, repConfig, repState);\n }),\n runOnDetached(function (comp, se) {\n onUnload(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad)];\n return derive(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n events: events$3\n });\n\n var memory = function () {\n var data = Cell(null);\n var readState = function () {\n return {\n mode: 'memory',\n value: data.get()\n };\n };\n var isNotSet = function () {\n return data.get() === null;\n };\n var clear = function () {\n data.set(null);\n };\n return nu$5({\n set: data.set,\n get: data.get,\n isNotSet: isNotSet,\n clear: clear,\n readState: readState\n });\n };\n var manual = function () {\n var readState = function () {\n };\n return nu$5({ readState: readState });\n };\n var dataset = function () {\n var dataByValue = Cell({});\n var dataByText = Cell({});\n var readState = function () {\n return {\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n };\n };\n var clear = function () {\n dataByValue.set({});\n dataByText.set({});\n };\n var lookup = function (itemString) {\n return readOptFrom$1(dataByValue.get(), itemString).orThunk(function () {\n return readOptFrom$1(dataByText.get(), itemString);\n });\n };\n var update = function (items) {\n var currentDataByValue = dataByValue.get();\n var currentDataByText = dataByText.get();\n var newDataByValue = {};\n var newDataByText = {};\n each(items, function (item) {\n newDataByValue[item.value] = item;\n readOptFrom$1(item, 'meta').each(function (meta) {\n readOptFrom$1(meta, 'text').each(function (text) {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set(__assign({}, currentDataByValue, newDataByValue));\n dataByText.set(__assign({}, currentDataByText, newDataByText));\n };\n return nu$5({\n readState: readState,\n lookup: lookup,\n update: update,\n clear: clear\n });\n };\n var init$2 = function (spec) {\n return spec.store.manager.state(spec);\n };\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n memory: memory,\n dataset: dataset,\n manual: manual,\n init: init$2\n });\n\n var setValue$1 = function (component, repConfig, repState, data) {\n var store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var getValue$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n var key = store.getDataKey(component);\n return repState.lookup(key).fold(function () {\n return store.getFallbackEntry(key);\n }, function (data) {\n return data;\n });\n };\n var onLoad$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n store.initialValue.each(function (data) {\n setValue$1(component, repConfig, repState, data);\n });\n };\n var onUnload$1 = function (component, repConfig, repState) {\n repState.clear();\n };\n var DatasetStore = [\n option('initialValue'),\n strict$1('getFallbackEntry'),\n strict$1('getDataKey'),\n strict$1('setValue'),\n output('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$1,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n var getValue$2 = function (component, repConfig, repState) {\n return repConfig.store.getValue(component);\n };\n var setValue$2 = function (component, repConfig, repState, data) {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var onLoad$2 = function (component, repConfig, repState) {\n repConfig.store.initialValue.each(function (data) {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n strict$1('getValue'),\n defaulted$1('setValue', noop),\n option('initialValue'),\n output('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$2,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n var setValue$3 = function (component, repConfig, repState, data) {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n var getValue$3 = function (component, repConfig, repState) {\n return repState.get();\n };\n var onLoad$3 = function (component, repConfig, repState) {\n repConfig.store.initialValue.each(function (initVal) {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n var onUnload$2 = function (component, repConfig, repState) {\n repState.clear();\n };\n var MemoryStore = [\n option('initialValue'),\n output('manager', {\n setValue: setValue$3,\n getValue: getValue$3,\n onLoad: onLoad$3,\n onUnload: onUnload$2,\n state: memory\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted$1('resetOnDom', false)\n ];\n\n var Representing = create$1({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: function (component, source) {\n var value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n var focus$2 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n focus$1(component.element());\n focusConfig.onFocus(component);\n }\n };\n var blur$1 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n blur(component.element());\n }\n };\n var isFocused = function (component) {\n return hasFocus(component.element());\n };\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n focus: focus$2,\n blur: blur$1,\n isFocused: isFocused\n });\n\n var exhibit$1 = function (base, focusConfig) {\n var mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$6(mod);\n };\n var events$4 = function (focusConfig) {\n return derive([run(focus(), function (component, simulatedEvent) {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run(mousedown(), function (_, simulatedEvent) {\n simulatedEvent.event().prevent();\n })] : []));\n };\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$1,\n events: events$4\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted$1('stopMousedown', false),\n defaulted$1('ignore', false)\n ];\n\n var Focusing = create$1({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n var updateAriaState = function (component, toggleConfig, toggleState) {\n var ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n var updateClass = function (component, toggleConfig, toggleState) {\n toggleConfig.toggleClass.each(function (toggleClass) {\n if (toggleState.get()) {\n add$2(component.element(), toggleClass);\n } else {\n remove$4(component.element(), toggleClass);\n }\n });\n };\n var toggle$2 = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, !toggleState.get());\n };\n var on = function (component, toggleConfig, toggleState) {\n toggleState.set(true);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var off = function (component, toggleConfig, toggleState) {\n toggleState.set(false);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var set$6 = function (component, toggleConfig, toggleState, state) {\n var action = state ? on : off;\n action(component, toggleConfig, toggleState);\n };\n var isOn = function (component, toggleConfig, toggleState) {\n return toggleState.get();\n };\n var onLoad$4 = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n onLoad: onLoad$4,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$6\n });\n\n var exhibit$2 = function (base, toggleConfig, toggleState) {\n return nu$6({});\n };\n var events$5 = function (toggleConfig, toggleState) {\n var execute = executeEvent(toggleConfig, toggleState, toggle$2);\n var load = loadEvent(toggleConfig, toggleState, onLoad$4);\n return derive(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$2,\n events: events$5\n });\n\n var SetupBehaviourCellState = function (initialState) {\n var init = function () {\n var cell = Cell(initialState);\n var get = function () {\n return cell.get();\n };\n var set = function (newState) {\n return cell.set(newState);\n };\n var clear = function () {\n return cell.set(initialState);\n };\n var readState = function () {\n return cell.get();\n };\n return {\n get: get,\n set: set,\n clear: clear,\n readState: readState\n };\n };\n return { init: init };\n };\n\n var updatePressed = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n var updateSelected = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-selected', status);\n };\n var updateChecked = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-checked', status);\n };\n var updateExpanded = function (component, ariaInfo, status) {\n set$1(component.element(), 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted$1('selected', false),\n option('toggleClass'),\n defaulted$1('toggleOnExecute', true),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted$1('syncWithExpanded', false),\n output('update', updatePressed)\n ],\n checked: [output('update', updateChecked)],\n expanded: [output('update', updateExpanded)],\n selected: [output('update', updateSelected)],\n none: [output('update', noop)]\n }))\n ];\n\n var Toggling = create$1({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n var hoverEvent = 'alloy.item-hover';\n var focusEvent = 'alloy.item-focus';\n var onHover = function (item) {\n if (search$1(item.element()).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item: item });\n }\n };\n var onFocus = function (item) {\n emitWith(item, focusEvent, { item: item });\n };\n var hover = constant(hoverEvent);\n var focus$3 = constant(focusEvent);\n\n var events$6 = function (name, eventHandlers) {\n var events = derive(eventHandlers);\n return create$1({\n fields: [strict$1('enabled')],\n name: name,\n active: { events: constant(events) }\n });\n };\n var config = function (name, eventHandlers) {\n var me = events$6(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me: me,\n configAsRaw: constant({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n var builder = function (detail) {\n return {\n dom: detail.dom,\n domModification: __assign({}, detail.domModification, { attributes: __assign({ 'role': detail.toggling.isSome() ? 'menuitemcheckbox' : 'menuitem' }, detail.domModification.attributes, { 'aria-haspopup': detail.hasSubmenu }, detail.hasSubmenu ? { 'aria-expanded': false } : {}) }),\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, function (tConfig) {\n return Toggling.config(__assign({ aria: { mode: 'checked' } }, tConfig));\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', [\n run(tapOrClick(), emitExecute),\n cutter(mousedown()),\n run(mouseover(), onHover),\n run(focusItem(), Focusing.focus)\n ])\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n };\n };\n var schema$9 = [\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('hasSubmenu', false),\n option('toggling'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted$1('ignoreFocus', false),\n defaulted$1('domModification', {}),\n output('builder', builder),\n defaulted$1('eventOrder', {})\n ];\n\n var builder$1 = function (detail) {\n return {\n dom: detail.dom,\n components: detail.components,\n events: derive([stopper(focusItem())])\n };\n };\n var schema$a = [\n strict$1('dom'),\n strict$1('components'),\n output('builder', builder$1)\n ];\n\n var owner$2 = function () {\n return 'item-widget';\n };\n var parts = constant([required({\n name: 'widget',\n overrides: function (detail) {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function (component) {\n return detail.data;\n },\n setValue: function () {\n }\n }\n })])\n };\n }\n })]);\n\n var builder$2 = function (detail) {\n var subs = substitutes(owner$2(), detail, parts());\n var components$1 = components(owner$2(), detail, subs.internals());\n var focusWidget = function (component) {\n return getPart(component, detail, 'widget').map(function (widget) {\n Keying.focusIn(widget);\n return widget;\n });\n };\n var onHorizontalArrow = function (component, simulatedEvent) {\n return inside(simulatedEvent.event().target()) ? Option.none() : function () {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element());\n return Option.none();\n } else {\n return Option.none();\n }\n }();\n };\n return {\n dom: detail.dom,\n components: components$1,\n domModification: detail.domModification,\n events: derive([\n runOnExecute(function (component, simulatedEvent) {\n focusWidget(component).each(function (widget) {\n simulatedEvent.stop();\n });\n }),\n run(mouseover(), onHover),\n run(focusItem(), function (component, simulatedEvent) {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\n }),\n Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? function (component) {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: function (component, simulatedEvent) {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Option.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element());\n return Option.none();\n } else {\n return Option.none();\n }\n }\n })\n ])\n };\n };\n var schema$b = [\n strict$1('uid'),\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('autofocus', false),\n defaulted$1('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted$1('domModification', {}),\n defaultUidsSchema(parts()),\n output('builder', builder$2)\n ];\n\n var itemSchema$1 = choose$1('type', {\n widget: schema$b,\n item: schema$9,\n separator: schema$a\n });\n var configureGrid = function (detail, movementInfo) {\n return {\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n };\n };\n var configureMatrix = function (detail, movementInfo) {\n return {\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n focusManager: detail.focusManager\n };\n };\n var configureMenu = function (detail, movementInfo) {\n return {\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n };\n };\n var parts$1 = constant([group({\n factory: {\n sketch: function (spec) {\n var itemInfo = asRawOrDie('menu.spec item', itemSchema$1, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: function (detail, u) {\n return u.hasOwnProperty('uid') ? u : __assign({}, u, { uid: generate$2('item') });\n },\n overrides: function (detail, u) {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n var schema$c = constant([\n strict$1('value'),\n strict$1('items'),\n strict$1('dom'),\n strict$1('components'),\n defaulted$1('eventOrder', {}),\n field$1('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output('config', configureGrid)\n ],\n matrix: [\n output('config', configureMatrix),\n strict$1('rowSelector')\n ],\n menu: [\n defaulted$1('moveOnTab', true),\n output('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted$1('fakeFocus', false),\n defaulted$1('focusManager', dom()),\n onHandler('onHighlight')\n ]);\n\n var focus$4 = constant('alloy.menu-focus');\n\n var make$1 = function (detail, components, spec, externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Option.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive([\n run(focus$3(), function (menu, simulatedEvent) {\n var event = simulatedEvent.event();\n menu.getSystem().getByDom(event.target()).each(function (item) {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus$4(), {\n menu: menu,\n item: item\n });\n });\n }),\n run(hover(), function (menu, simulatedEvent) {\n var item = simulatedEvent.event().item();\n Highlighting.highlight(menu, item);\n })\n ]),\n components: components,\n eventOrder: detail.eventOrder,\n domModification: { attributes: { role: 'menu' } }\n };\n };\n\n var Menu = composite$1({\n name: 'Menu',\n configFields: schema$c(),\n partFields: parts$1(),\n factory: make$1\n });\n\n var transpose = function (obj) {\n return tupleMap(obj, function (v, k) {\n return {\n k: v,\n v: k\n };\n });\n };\n var trace = function (items, byItem, byMenu, finish) {\n return readOptFrom$1(byMenu, finish).bind(function (triggerItem) {\n return readOptFrom$1(items, triggerItem).bind(function (triggerMenu) {\n var rest = trace(items, byItem, byMenu, triggerMenu);\n return Option.some([triggerMenu].concat(rest));\n });\n }).getOr([]);\n };\n var generate$5 = function (menus, expansions) {\n var items = {};\n each$1(menus, function (menuItems, menu) {\n each(menuItems, function (item) {\n items[item] = menu;\n });\n });\n var byItem = expansions;\n var byMenu = transpose(expansions);\n var menuPaths = map$1(byMenu, function (_triggerItem, submenu) {\n return [submenu].concat(trace(items, byItem, byMenu, submenu));\n });\n return map$1(items, function (menu) {\n return readOptFrom$1(menuPaths, menu).getOr([menu]);\n });\n };\n\n var init$3 = function () {\n var expansions = Cell({});\n var menus = Cell({});\n var paths = Cell({});\n var primary = Cell(Option.none());\n var directory = Cell({});\n var clear = function () {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.set(Option.none());\n };\n var isClear = function () {\n return primary.get().isNone();\n };\n var setMenuBuilt = function (menuName, built) {\n var _a;\n menus.set(__assign({}, menus.get(), (_a = {}, _a[menuName] = {\n type: 'prepared',\n menu: built\n }, _a)));\n };\n var setContents = function (sPrimary, sMenus, sExpansions, dir) {\n primary.set(Option.some(sPrimary));\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n var sPaths = generate$5(dir, sExpansions);\n paths.set(sPaths);\n };\n var expand = function (itemValue) {\n return readOptFrom$1(expansions.get(), itemValue).map(function (menu) {\n var current = readOptFrom$1(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n };\n var collapse = function (itemValue) {\n return readOptFrom$1(paths.get(), itemValue).bind(function (path) {\n return path.length > 1 ? Option.some(path.slice(1)) : Option.none();\n });\n };\n var refresh = function (itemValue) {\n return readOptFrom$1(paths.get(), itemValue);\n };\n var lookupMenu = function (menuValue) {\n return readOptFrom$1(menus.get(), menuValue);\n };\n var otherMenus = function (path) {\n var menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n var getPrimary = function () {\n return primary.get().bind(function (primaryName) {\n return lookupMenu(primaryName).bind(function (prep) {\n return prep.type === 'prepared' ? Option.some(prep.menu) : Option.none();\n });\n });\n };\n var getMenus = function () {\n return menus.get();\n };\n return {\n setMenuBuilt: setMenuBuilt,\n setContents: setContents,\n expand: expand,\n refresh: refresh,\n collapse: collapse,\n lookupMenu: lookupMenu,\n otherMenus: otherMenus,\n getPrimary: getPrimary,\n getMenus: getMenus,\n clear: clear,\n isClear: isClear\n };\n };\n var LayeredState = { init: init$3 };\n\n var make$2 = function (detail, rawUiSpec) {\n var submenuParentItems = Cell(Option.none());\n var buildMenus = function (container, primaryName, menus) {\n return map$1(menus, function (spec, name) {\n var makeSketch = function () {\n return Menu.sketch(__assign({ dom: spec.dom }, spec, {\n value: name,\n items: spec.items,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: detail.onHighlight,\n focusManager: detail.fakeFocus ? highlights() : dom()\n }));\n };\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n };\n var layeredState = LayeredState.init();\n var setup = function (container) {\n var componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n var directory = toDirectory(container);\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n var getItemValue = function (item) {\n return Representing.getValue(item).value;\n };\n var toDirectory = function (container) {\n return map$1(detail.data.menus, function (data, menuName) {\n return bind(data.items, function (item) {\n return item.type === 'separator' ? [] : [item.data.value];\n });\n });\n };\n var setActiveMenu = function (container, menu) {\n Highlighting.highlight(container, menu);\n Highlighting.getHighlighted(menu).orThunk(function () {\n return Highlighting.getFirst(menu);\n }).each(function (item) {\n dispatch(container, item.element(), focusItem());\n });\n };\n var getMenus = function (state, menuValues) {\n return cat(map(menuValues, function (mv) {\n return state.lookupMenu(mv).bind(function (prep) {\n return prep.type === 'prepared' ? Option.some(prep.menu) : Option.none();\n });\n }));\n };\n var closeOthers = function (container, state, path) {\n var others = getMenus(state, state.otherMenus(path));\n each(others, function (o) {\n remove$5(o.element(), [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n var getSubmenuParents = function (container) {\n return submenuParentItems.get().getOrThunk(function () {\n var r = {};\n var items = descendants(container.element(), '.' + detail.markers.item);\n var parentItems = filter(items, function (i) {\n return get$2(i, 'aria-haspopup') === 'true';\n });\n each(parentItems, function (i) {\n container.getSystem().getByDom(i).each(function (itemComp) {\n var key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(Option.some(r));\n return r;\n });\n };\n var updateAriaExpansions = function (container, path) {\n var parentItems = getSubmenuParents(container);\n each$1(parentItems, function (v, k) {\n var expanded = contains(path, k);\n set$1(v.element(), 'aria-expanded', expanded);\n });\n };\n var updateMenuPath = function (container, state, path) {\n return Option.from(path[0]).bind(function (latestMenuName) {\n return state.lookupMenu(latestMenuName).bind(function (menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n return Option.none();\n } else {\n var activeMenu = menuPrep.menu;\n var rest = getMenus(state, path.slice(1));\n each(rest, function (r) {\n add$2(r.element(), detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element())) {\n Replacing.append(container, premade$1(activeMenu));\n }\n remove$5(activeMenu.element(), [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Option.some(activeMenu);\n }\n });\n });\n };\n var ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n var buildIfRequired = function (container, menuName, menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n var menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n var expandRight = function (container, item, decision) {\n if (decision === void 0) {\n decision = ExpandHighlightDecision.HighlightSubmenu;\n }\n var value = getItemValue(item);\n return layeredState.expand(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return Option.from(path[0]).bind(function (menuName) {\n return layeredState.lookupMenu(menuName).bind(function (activeMenuPrep) {\n var activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n if (!inBody(activeMenu.element())) {\n Replacing.append(container, premade$1(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu);\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Option.some(item);\n }\n });\n });\n });\n };\n var collapseLeft = function (container, item) {\n var value = getItemValue(item);\n return layeredState.collapse(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(function (activeMenu) {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n var updateView = function (container, item) {\n var value = getItemValue(item);\n return layeredState.refresh(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n var onRight = function (container, item) {\n return inside(item.element()) ? Option.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n };\n var onLeft = function (container, item) {\n return inside(item.element()) ? Option.none() : collapseLeft(container, item);\n };\n var onEscape = function (container, item) {\n return collapseLeft(container, item).orThunk(function () {\n return detail.onEscape(container, item).map(function () {\n return container;\n });\n });\n };\n var keyOnItem = function (f) {\n return function (container, simulatedEvent) {\n return closest$3(simulatedEvent.getSource(), '.' + detail.markers.item).bind(function (target) {\n return container.getSystem().getByDom(target).toOption().bind(function (item) {\n return f(container, item).map(function () {\n return true;\n });\n });\n });\n };\n };\n var events = derive([\n run(focus$4(), function (sandbox, simulatedEvent) {\n var menu = simulatedEvent.event().menu();\n Highlighting.highlight(sandbox, menu);\n var value = getItemValue(simulatedEvent.event().item());\n layeredState.refresh(value).each(function (path) {\n return closeOthers(sandbox, layeredState, path);\n });\n }),\n runOnExecute(function (component, simulatedEvent) {\n var target = simulatedEvent.event().target();\n component.getSystem().getByDom(target).each(function (item) {\n var itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(function () {\n detail.onExecute(component, item);\n }, function () {\n });\n });\n }),\n runOnAttached(function (container, simulatedEvent) {\n setup(container).each(function (primary) {\n Replacing.append(container, premade$1(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })\n ].concat(detail.navigateOnHover ? [run(hover(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event().item();\n updateView(sandbox, item);\n expandRight(sandbox, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(sandbox, item);\n })] : []));\n var collapseMenuApi = function (container) {\n Highlighting.getHighlighted(container).each(function (currentMenu) {\n Highlighting.getHighlighted(currentMenu).each(function (currentItem) {\n collapseLeft(container, currentItem);\n });\n });\n };\n var highlightPrimary = function (container) {\n layeredState.getPrimary().each(function (primary) {\n setActiveMenu(container, primary);\n });\n };\n var apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary: highlightPrimary\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: function (container, keyInfo) {\n layeredState.getPrimary().each(function (primary) {\n dispatch(container, primary.element(), focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: function (container) {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis: apis,\n events: events\n };\n };\n var collapseItem = constant('collapse-item');\n\n var tieredData = function (primary, menus, expansions) {\n return {\n primary: primary,\n menus: menus,\n expansions: expansions\n };\n };\n var singleData = function (name, menu) {\n return {\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n };\n };\n var collapseItem$1 = function (text) {\n return {\n value: generate$1(collapseItem()),\n meta: { text: text }\n };\n };\n var tieredMenu = single$2({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onCollapseMenu'),\n defaulted$1('highlightImmediately', true),\n strictObjOf('data', [\n strict$1('primary'),\n strict$1('menus'),\n strict$1('expansions')\n ]),\n defaulted$1('fakeFocus', false),\n onHandler('onHighlight'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n strict$1('dom'),\n defaulted$1('navigateOnHover', true),\n defaulted$1('stayInDom', false),\n field$1('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted$1('eventOrder', {})\n ],\n apis: {\n collapseMenu: function (apis, tmenu) {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: function (apis, tmenu) {\n apis.highlightPrimary(tmenu);\n }\n },\n factory: make$2,\n extraApis: {\n tieredData: tieredData,\n singleData: singleData,\n collapseItem: collapseItem$1\n }\n });\n\n var makeMenu = function (detail, menuSandbox, anchor, menuSpec) {\n var lazySink = function () {\n return detail.lazySink(menuSandbox);\n };\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n onEscape: function () {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(function (handler) {\n return handler(menuSandbox);\n });\n return Option.some(true);\n },\n onExecute: function () {\n return Option.some(true);\n },\n onOpenMenu: function (tmenu, menu) {\n Positioning.position(lazySink().getOrDie(), anchor, menu);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = lazySink().getOrDie();\n Positioning.position(sink, {\n anchor: 'submenu',\n item: item\n }, submenu);\n }\n });\n };\n var factory = function (detail, spec) {\n var isPartOfRelated = function (sandbox, queryElem) {\n var related = detail.getRelated(sandbox);\n return related.exists(function (rel) {\n return isPartOf(rel, queryElem);\n });\n };\n var setContent = function (sandbox, thing) {\n Sandboxing.open(sandbox, thing);\n };\n var showAt = function (sandbox, anchor, thing) {\n var getBounds = Option.none();\n showWithin(sandbox, anchor, thing, getBounds);\n };\n var showWithin = function (sandbox, anchor, thing, boxElement) {\n var sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, function () {\n return Positioning.positionWithin(sink, anchor, sandbox, boxElement);\n });\n detail.onShow(sandbox);\n };\n var showMenuAt = function (sandbox, anchor, menuSpec) {\n var menu = makeMenu(detail, sandbox, anchor, menuSpec);\n Sandboxing.open(sandbox, menu);\n detail.onShow(sandbox);\n };\n var hide = function (sandbox) {\n Sandboxing.close(sandbox);\n detail.onHide(sandbox);\n };\n var getContent = function (sandbox) {\n return Sandboxing.getState(sandbox);\n };\n var apis = {\n setContent: setContent,\n showAt: showAt,\n showWithin: showWithin,\n showMenuAt: showMenuAt,\n hide: hide,\n getContent: getContent,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [\n Sandboxing.config({\n isPartOf: function (sandbox, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: function (sandbox) {\n return detail.lazySink(sandbox).getOrDie();\n }\n }),\n receivingConfig(__assign({ isExtraPart: constant(false) }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))\n ]),\n eventOrder: detail.eventOrder,\n apis: apis\n };\n };\n var InlineView = single$2({\n name: 'InlineView',\n configFields: [\n strict$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field$1('inlineBehaviours', [\n Sandboxing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted$1('event', dismissRequested())]),\n defaulted$1('getRelated', Option.none),\n defaulted$1('eventOrder', Option.none)\n ],\n factory: factory,\n apis: {\n showAt: function (apis, component, anchor, thing) {\n apis.showAt(component, anchor, thing);\n },\n showWithin: function (apis, component, anchor, thing, boxElement) {\n apis.showWithin(component, anchor, thing, boxElement);\n },\n showMenuAt: function (apis, component, anchor, menuSpec) {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n hide: function (apis, component) {\n apis.hide(component);\n },\n isOpen: function (apis, component) {\n return apis.isOpen(component);\n },\n getContent: function (apis, component) {\n return apis.getContent(component);\n },\n setContent: function (apis, component, thing) {\n apis.setContent(component, thing);\n }\n }\n });\n\n var events$7 = function (optAction) {\n var executeHandler = function (action) {\n return run(execute(), function (component, simulatedEvent) {\n action(component);\n simulatedEvent.stop();\n });\n };\n var onClick = function (component, simulatedEvent) {\n simulatedEvent.stop();\n emitExecute(component);\n };\n var onMousedown = function (component, simulatedEvent) {\n simulatedEvent.cut();\n };\n var pointerEvents = PlatformDetection$1.detect().deviceType.isTouch() ? [run(tap(), onClick)] : [\n run(click(), onClick),\n run(mousedown(), onMousedown)\n ];\n return derive(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents\n ]));\n };\n\n var factory$1 = function (detail) {\n var events = events$7(detail.action);\n var tag = detail.dom.tag;\n var lookupAttr = function (attr) {\n return readOptFrom$1(detail.dom, 'attributes').bind(function (attrs) {\n return readOptFrom$1(attrs, attr);\n });\n };\n var getModAttributes = function () {\n if (tag === 'button') {\n var type = lookupAttr('type').getOr('button');\n var roleAttrs = lookupAttr('role').map(function (role) {\n return { role: role };\n }).getOr({});\n return __assign({ type: type }, roleAttrs);\n } else {\n var role = lookupAttr('role').getOr('button');\n return { role: role };\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n var Button = single$2({\n name: 'Button',\n factory: factory$1,\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('dom'),\n defaulted$1('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option('action'),\n option('role'),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var record = function (spec) {\n var uid = isSketchSpec(spec) && hasKey$1(spec, 'uid') ? spec.uid : generate$2('memento');\n var get = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).getOrDie();\n };\n var getOpt = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).fold(Option.none, Option.some);\n };\n var asSpec = function () {\n return __assign({}, spec, { uid: uid });\n };\n return {\n get: get,\n getOpt: getOpt,\n asSpec: asSpec\n };\n };\n\n var Memento = /*#__PURE__*/Object.freeze({\n record: record\n });\n\n var defaultIcon = function (icons) {\n return Option.from(icons()['temporary-placeholder']).getOr('!not found!');\n };\n var get$c = function (name, icons) {\n return Option.from(icons()[name]).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getOr = function (name, icons, fallback) {\n return Option.from(icons()[name]).or(fallback).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getFirst$1 = function (names, icons) {\n return findMap(names, function (name) {\n return Option.from(icons()[name]);\n }).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n\n var notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n var factory$2 = function (detail) {\n var memBannerText = record({\n dom: {\n tag: 'p',\n innerHtml: detail.translationProvider(detail.text)\n },\n behaviours: derive$1([Replacing.config({})])\n });\n var renderPercentBar = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n attributes: { style: 'width: ' + percent + '%' }\n }\n };\n };\n var renderPercentText = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: percent + '%'\n }\n };\n };\n var memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n var updateProgress = function (comp, percent) {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(function (progress) {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n var updateText = function (comp, text$1) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text(text$1)]);\n }\n };\n var apis = {\n updateProgress: updateProgress,\n updateText: updateText\n };\n var iconChoices = flatten([\n detail.icon.toArray(),\n detail.level.toArray(),\n detail.level.bind(function (level) {\n return Option.from(notificationIconMap[level]);\n }).toArray()\n ]);\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: detail.level.map(function (level) {\n return [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + level\n ];\n }).getOr([\n 'tox-notification',\n 'tox-notification--in'\n ])\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon'],\n innerHtml: getFirst$1(iconChoices, detail.iconProvider)\n }\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n }\n ].concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: get$c('close', detail.iconProvider),\n attributes: { 'aria-label': detail.translationProvider('Close') }\n }\n }],\n action: function (comp) {\n detail.onAction(comp);\n }\n })),\n apis: apis\n };\n };\n var Notification = single$2({\n name: 'Notification',\n factory: factory$2,\n configFields: [\n option('level'),\n strict$1('progress'),\n strict$1('icon'),\n strict$1('onAction'),\n strict$1('text'),\n strict$1('iconProvider'),\n strict$1('translationProvider')\n ],\n apis: {\n updateProgress: function (apis, comp, percent) {\n apis.updateProgress(comp, percent);\n },\n updateText: function (apis, comp, text) {\n apis.updateText(comp, text);\n }\n }\n });\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n function NotificationManagerImpl (editor, extras, uiMothership) {\n var backstage = extras.backstage;\n var getEditorContainer = function (editor) {\n return editor.inline ? editor.getElement() : editor.getContentAreaContainer();\n };\n var prePositionNotifications = function (notifications) {\n each(notifications, function (notification) {\n notification.moveTo(0, 0);\n });\n };\n var positionNotifications = function (notifications) {\n if (notifications.length > 0) {\n var firstItem = notifications.slice(0, 1)[0];\n var container = getEditorContainer(editor);\n firstItem.moveRel(container, 'tc-tc');\n each(notifications, function (notification, index) {\n if (index > 0) {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n var reposition = function (notifications) {\n prePositionNotifications(notifications);\n positionNotifications(notifications);\n };\n var open = function (settings, closeCallback) {\n var close = function () {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n var notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains([\n 'success',\n 'error',\n 'warning',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Option.from(settings.icon),\n onAction: close,\n iconProvider: backstage.shared.providers.icons,\n translationProvider: backstage.shared.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: extras.backstage.shared.getSink,\n fireDismissalEventInstead: {}\n }));\n uiMothership.add(notificationWrapper);\n if (settings.timeout) {\n global$1.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n return {\n close: close,\n moveTo: function (x, y) {\n InlineView.showAt(notificationWrapper, {\n anchor: 'makeshift',\n x: x,\n y: y\n }, premade$1(notification));\n },\n moveRel: function (element, rel) {\n InlineView.showAt(notificationWrapper, extras.backstage.shared.anchors.banner(), premade$1(notification));\n },\n text: function (nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function () {\n },\n progressBar: {\n value: function (percent) {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n };\n var close = function (notification) {\n notification.close();\n };\n var getArgs = function (notification) {\n return notification.settings;\n };\n return {\n open: open,\n close: close,\n reposition: reposition,\n getArgs: getArgs\n };\n }\n\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null)\n domGlobals.clearTimeout(timer);\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var isValidTextRange = function (rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n var whiteSpace = /[\\u00a0 \\t\\r\\n]/;\n var parse$1 = function (text, index, ch, minChars) {\n var i;\n for (i = index - 1; i >= 0; i--) {\n if (whiteSpace.test(text.charAt(i))) {\n return Option.none();\n }\n if (text.charAt(i) === ch) {\n break;\n }\n }\n if (i === -1 || index - i < minChars) {\n return Option.none();\n }\n return Option.some(text.substring(i + 1, index));\n };\n var getContext = function (initRange, ch, text, index, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n if (!isValidTextRange(initRange)) {\n return Option.none();\n }\n return parse$1(text, index, ch, minChars).map(function (newText) {\n var rng = initRange.cloneRange();\n rng.setStart(initRange.startContainer, initRange.startOffset - newText.length - 1);\n rng.setEnd(initRange.startContainer, initRange.startOffset);\n return {\n text: newText,\n rng: rng\n };\n });\n };\n\n var setup = function (api, editor) {\n editor.on('keypress', api.onKeypress.throttle);\n editor.on('remove', api.onKeypress.cancel);\n var redirectKeyToItem = function (item, e) {\n emitWith(item, keydown(), { raw: e });\n };\n editor.on('keydown', function (e) {\n var getItem = function () {\n return api.getView().bind(Highlighting.getHighlighted);\n };\n if (e.which === 8) {\n api.onKeypress.throttle(e);\n }\n if (api.isActive()) {\n if (e.which === 27) {\n api.closeIfNecessary();\n } else if (e.which === 32) {\n api.closeIfNecessary();\n } else if (e.which === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (e.which === 40) {\n getItem().fold(function () {\n api.getView().each(Highlighting.highlightFirst);\n }, function (item) {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n } else if (e.which === 37 || e.which === 38 || e.which === 39) {\n getItem().each(function (item) {\n redirectKeyToItem(item, e);\n e.preventDefault();\n });\n }\n }\n });\n };\n var AutocompleterEditorEvents = { setup: setup };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var isStartOfWord = function (rng, text) {\n return rng.startOffset === 0 || /\\s/.test(text.charAt(rng.startOffset - 1));\n };\n var getTriggerContext = function (initRange, initText, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(initRange, ch, initText, initRange.startOffset).map(function (_a) {\n var rng = _a.rng, text = _a.text;\n return {\n range: rng,\n text: text,\n triggerChar: ch\n };\n });\n });\n };\n var lookup = function (editor, getDatabase) {\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n return getTriggerContext(rng, startText, database).map(function (context) {\n var autocompleters = filter(database.lookupByChar(context.triggerChar), function (autocompleter) {\n return context.text.length >= autocompleter.minChars && autocompleter.matches.getOr(isStartOfWord)(context.range, startText, context.text);\n });\n var lookupData = global$2.all(map(autocompleters, function (ac) {\n var fetchResult = ac.fetch(context.text, ac.maxResults);\n return fetchResult.then(function (results) {\n return {\n items: results,\n columns: ac.columns,\n onAction: ac.onAction\n };\n });\n }));\n return {\n lookupData: lookupData,\n triggerChar: context.triggerChar,\n range: context.range\n };\n });\n };\n\n var autocompleterItemSchema = objOf([\n state$1('type', function () {\n return 'autocompleteitem';\n }),\n state$1('active', function () {\n return false;\n }),\n state$1('disabled', function () {\n return false;\n }),\n defaulted$1('meta', {}),\n strictString('value'),\n optionString('text'),\n optionString('icon')\n ]);\n var autocompleterSchema = objOf([\n strictString('type'),\n strictString('ch'),\n defaultedNumber('minChars', 1),\n defaulted$1('columns', 1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n strictFunction('fetch'),\n strictFunction('onAction')\n ]);\n var createAutocompleterItem = function (spec) {\n return asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n };\n var createAutocompleter = function (spec) {\n return asRaw('Autocompleter', autocompleterSchema, spec);\n };\n\n var stringArray = function (a) {\n var all = {};\n each(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n\n var register = function (editor) {\n var popups = editor.ui.registry.getAll().popups;\n var dataset = map$1(popups, function (popup) {\n return createAutocompleter(popup).fold(function (err) {\n throw new Error(formatError(err));\n }, function (x) {\n return x;\n });\n });\n var triggerChars = stringArray(mapToArray(dataset, function (v) {\n return v.ch;\n }));\n var datasetValues = values(dataset);\n var lookupByChar = function (ch) {\n return filter(datasetValues, function (dv) {\n return dv.ch === ch;\n });\n };\n return {\n dataset: dataset,\n triggerChars: triggerChars,\n lookupByChar: lookupByChar\n };\n };\n\n var commonMenuItemFields = [\n defaultedBoolean('disabled', false),\n optionString('text'),\n optionString('shortcut'),\n field('value', 'value', defaultedThunk(function () {\n return generate$1('menuitem-value');\n }), anyValue$1()),\n defaulted$1('meta', {})\n ];\n\n var menuItemSchema = objOf([\n strictString('type'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedFunction('onAction', noop),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createMenuItem = function (spec) {\n return asRaw('menuitem', menuItemSchema, spec);\n };\n\n var nestedMenuItemSchema = objOf([\n strictString('type'),\n strictFunction('getSubmenuItems'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createNestedMenuItem = function (spec) {\n return asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n };\n\n var toggleMenuItemSchema = objOf([\n strictString('type'),\n defaultedBoolean('active', false),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n strictFunction('onAction')\n ].concat(commonMenuItemFields));\n var createToggleMenuItem = function (spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n };\n\n var choiceMenuItemSchema = objOf([\n strictString('type'),\n defaultedBoolean('active', false),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createChoiceMenuItem = function (spec) {\n return asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n };\n\n var separatorMenuItemSchema = objOf([\n strictString('type'),\n optionString('text')\n ]);\n var createSeparatorMenuItem = function (spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n\n var fancyMenuItemSchema = objOf([\n strictString('type'),\n strictStringEnum('fancytype', ['inserttable']),\n defaultedFunction('onAction', noop)\n ]);\n var createFancyMenuItem = function (spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n\n var detectSize = function (comp, margin, selectorClass) {\n var descendants$1 = descendants(comp.element(), '.' + selectorClass);\n if (descendants$1.length > 0) {\n var columnLength = findIndex(descendants$1, function (c) {\n var thisTop = c.dom().getBoundingClientRect().top;\n var cTop = descendants$1[0].dom().getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Option.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Option.none();\n }\n };\n\n var namedEvents = function (name, handlers) {\n return derive$1([config(name, handlers)]);\n };\n var unnamedEvents = function (handlers) {\n return namedEvents(generate$1('unnamed-events'), handlers);\n };\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n\n var TooltippingSchema = [\n strict$1('lazySink'),\n strict$1('tooltipDom'),\n defaulted$1('exclusive', true),\n defaulted$1('tooltipComponents', []),\n defaulted$1('delay', 300),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight'\n ]),\n defaulted$1('anchor', function (comp) {\n return {\n anchor: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ]),\n onRtl: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ])\n }\n };\n }),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n var init$4 = function () {\n var timer = Cell(Option.none());\n var popup = Cell(Option.none());\n var getTooltip = function () {\n return popup.get();\n };\n var setTooltip = function (s) {\n popup.set(Option.some(s));\n };\n var clearTooltip = function () {\n popup.set(Option.none());\n };\n var clearTimer = function () {\n timer.get().each(function (t) {\n domGlobals.clearTimeout(t);\n });\n };\n var resetTimer = function (f, delay) {\n clearTimer();\n timer.set(Option.some(domGlobals.setTimeout(function () {\n f();\n }, delay)));\n };\n var isShowing = function () {\n return popup.get().isSome();\n };\n var readState = constant('not-implemented');\n return nu$5({\n getTooltip: getTooltip,\n isShowing: isShowing,\n setTooltip: setTooltip,\n clearTooltip: clearTooltip,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n init: init$4\n });\n\n var ExclusivityChannel = generate$1('tooltip.exclusive');\n var ShowTooltipEvent = generate$1('tooltip.show');\n var HideTooltipEvent = generate$1('tooltip.hide');\n\n var hideAllExclusive = function (component, tConfig, tState) {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n var setComponents = function (component, tConfig, tState, specs) {\n tState.getTooltip().each(function (tooltip) {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n\n var events$8 = function (tooltipConfig, state) {\n var hide = function (comp) {\n state.getTooltip().each(function (p) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n var show = function (comp) {\n if (!state.isShowing()) {\n hideAllExclusive(comp, tooltipConfig, state);\n var sink = tooltipConfig.lazySink(comp).getOrDie();\n var popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive(tooltipConfig.mode === 'normal' ? [\n run(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (_) {\n emit(comp, HideTooltipEvent);\n })\n ] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, tooltipConfig.anchor(comp), popup);\n }\n };\n return derive(flatten([\n [\n run(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }),\n run(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }),\n run(receive(), function (comp, message) {\n var receivingData = message;\n if (contains(receivingData.channels(), ExclusivityChannel)) {\n hide(comp);\n }\n }),\n runOnDetached(function (comp) {\n hide(comp);\n })\n ],\n tooltipConfig.mode === 'normal' ? [\n run(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }),\n run(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ] : [\n run(highlight(), function (comp, se) {\n emit(comp, ShowTooltipEvent);\n }),\n run(dehighlight(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ]\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n events: events$8\n });\n\n var Tooltipping = create$1({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n var getAttrs = function (elem) {\n var attributes = elem.dom().attributes !== undefined ? elem.dom().attributes : [];\n return foldl(attributes, function (b, attr) {\n var _a;\n if (attr.name === 'class') {\n return b;\n } else {\n return __assign({}, b, (_a = {}, _a[attr.name] = attr.value, _a));\n }\n }, {});\n };\n var getClasses = function (elem) {\n return Array.prototype.slice.call(elem.dom().classList, 0);\n };\n var fromHtml$2 = function (html) {\n var elem = Element.fromHtml(html);\n var children$1 = children(elem);\n var attrs = getAttrs(elem);\n var classes = getClasses(elem);\n var contents = children$1.length === 0 ? {} : { innerHtml: get$1(elem) };\n return __assign({\n tag: name(elem),\n classes: classes,\n attributes: attrs\n }, contents);\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n var navClass = 'tox-menu-nav__js';\n var selectableClass = 'tox-collection__item';\n var colorClass = 'tox-swatch';\n var presetClasses = {\n normal: navClass,\n color: colorClass\n };\n var tickedClass = 'tox-collection__item--enabled';\n var groupHeadingClass = 'tox-collection__group-heading';\n var iconClass = 'tox-collection__item-icon';\n var textClass = 'tox-collection__item-label';\n var accessoryClass = 'tox-collection__item-accessory';\n var caretClass = 'tox-collection__item-caret';\n var checkmarkClass = 'tox-collection__item-checkmark';\n var activeClass = 'tox-collection__item--active';\n var classForPreset = function (presets) {\n return readOptFrom$1(presetClasses, presets).getOr(navClass);\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var convertText = function (source) {\n var mac = {\n alt: '⌥',\n ctrl: '⌃',\n shift: '⇧',\n meta: '⌘',\n access: '⌃⌥'\n };\n var other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n var replace = global$4.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has(replace, search) ? replace[search] : segment;\n });\n return global$4.mac ? updated.join('') : updated.join('+');\n };\n var ConvertShortcut = { convertText: convertText };\n\n var renderIcon = function (iconHtml) {\n return {\n dom: {\n tag: 'div',\n classes: [iconClass],\n innerHtml: iconHtml\n }\n };\n };\n var renderText = function (text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text(global$3.translate(text$1))]\n };\n };\n var renderStyledText = function (style, text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n attributes: { style: style.styleAttr }\n },\n components: [text(global$3.translate(text$1))]\n }]\n };\n };\n var renderShortcut = function (shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: ConvertShortcut.convertText(shortcut)\n }\n };\n };\n var renderCheckmark = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n iconClass,\n checkmarkClass\n ],\n innerHtml: get$c('checkmark', icons)\n }\n };\n };\n var renderSubmenuCaret = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [caretClass],\n innerHtml: get$c('chevron-right', icons)\n }\n };\n };\n\n var renderColorStructure = function (itemText, itemValue, iconSvg, providerBackstage) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var getDom = function () {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var title = itemText.map(function (text) {\n return ' title=\"' + providerBackstage.translate(text) + '\"';\n }).getOr('');\n if (itemValue === colorPickerCommand) {\n return fromHtml$2('');\n } else if (itemValue === removeColorCommand) {\n return fromHtml$2('
' + icon + '
');\n } else {\n return fromHtml$2('
');\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n var renderNormalItemStructure = function (info, icon, renderIcons, textRender) {\n var leftIcon = renderIcons ? info.checkMark.orThunk(function () {\n return icon.or(Option.some('')).map(renderIcon);\n }) : Option.none();\n var domTitle = info.ariaLabel.map(function (label) {\n return { attributes: { title: global$3.translate(label) } };\n }).getOr({});\n var dom = merge({\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ]\n }, domTitle);\n var menuItem = {\n dom: dom,\n optComponents: [\n leftIcon,\n info.textContent.map(textRender),\n info.shortcutContent.map(renderShortcut),\n info.caret\n ]\n };\n return menuItem;\n };\n var renderItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Option.none();\n }\n var icon = info.iconContent.map(function (iconName) {\n return getOr(iconName, providersBackstage.icons, fallbackIcon);\n });\n var textRender = Option.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n if (info.presets === 'color') {\n return renderColorStructure(info.ariaLabel, info.value, icon, providersBackstage);\n } else {\n return renderNormalItemStructure(info, icon, renderIcons, textRender);\n }\n };\n\n var nativeDisabled = [\n 'input',\n 'button',\n 'textarea'\n ];\n var onLoad$5 = function (component, disableConfig, disableState) {\n if (disableConfig.disabled) {\n disable(component, disableConfig, disableState);\n }\n };\n var hasNative = function (component) {\n return contains(nativeDisabled, name(component.element()));\n };\n var nativeIsDisabled = function (component) {\n return has$1(component.element(), 'disabled');\n };\n var nativeDisable = function (component) {\n set$1(component.element(), 'disabled', 'disabled');\n };\n var nativeEnable = function (component) {\n remove$1(component.element(), 'disabled');\n };\n var ariaIsDisabled = function (component) {\n return get$2(component.element(), 'aria-disabled') === 'true';\n };\n var ariaDisable = function (component) {\n set$1(component.element(), 'aria-disabled', 'true');\n };\n var ariaEnable = function (component) {\n set$1(component.element(), 'aria-disabled', 'false');\n };\n var disable = function (component, disableConfig, disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n add$2(component.element(), disableClass);\n });\n var f = hasNative(component) ? nativeDisable : ariaDisable;\n f(component);\n };\n var enable = function (component, disableConfig, disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n remove$4(component.element(), disableClass);\n });\n var f = hasNative(component) ? nativeEnable : ariaEnable;\n f(component);\n };\n var isDisabled = function (component) {\n return hasNative(component) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n };\n var set$7 = function (component, disableConfig, disableState, disabled) {\n var f = disabled ? disable : enable;\n f(component, disableConfig, disableState);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n enable: enable,\n disable: disable,\n isDisabled: isDisabled,\n onLoad: onLoad$5,\n set: set$7\n });\n\n var exhibit$3 = function (base, disableConfig, disableState) {\n return nu$6({ classes: disableConfig.disabled ? disableConfig.disableClass.map(pure).getOr([]) : [] });\n };\n var events$9 = function (disableConfig, disableState) {\n return derive([\n abort(execute(), function (component, simulatedEvent) {\n return isDisabled(component);\n }),\n loadEvent(disableConfig, disableState, onLoad$5)\n ]);\n };\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$3,\n events: events$9\n });\n\n var DisableSchema = [\n defaulted$1('disabled', false),\n option('disableClass')\n ];\n\n var Disabling = create$1({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n var item = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n };\n var button = function (disabled) {\n return Disabling.config({ disabled: disabled });\n };\n var splitButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n };\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton\n };\n\n var runWithApi = function (info, comp) {\n var api = info.getApi(comp);\n return function (f) {\n f(api);\n };\n };\n var onControlAttached = function (info, editorOffCell) {\n return runOnAttached(function (comp) {\n var run = runWithApi(info, comp);\n run(function (api) {\n var onDestroy = info.onSetup(api);\n if (onDestroy !== null && onDestroy !== undefined) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n };\n var onControlDetached = function (getApi, editorOffCell) {\n return runOnDetached(function (comp) {\n return runWithApi(getApi, comp)(editorOffCell.get());\n });\n };\n\n var ItemResponse;\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n }(ItemResponse || (ItemResponse = {})));\n var ItemResponse$1 = ItemResponse;\n\n var onMenuItemExecute = function (info, itemResponse) {\n return runOnExecute(function (comp, simulatedEvent) {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n emit(comp, sandboxClose());\n simulatedEvent.stop();\n }\n });\n };\n var menuItemEventOrder = {\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ]\n };\n\n var componentRenderPipeline = function (xs) {\n return bind(xs, function (o) {\n return o.toArray();\n });\n };\n var renderCommonItem = function (spec, structure, itemResponse) {\n var editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(spec.disabled),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n var buildData = function (source) {\n return {\n value: source.value,\n meta: merge({ text: source.text.getOr('') }, source.meta)\n };\n };\n\n var tooltipBehaviour = function (meta, sharedBackstage) {\n return get(meta, 'tooltipWorker').map(function (tooltipWorker) {\n return [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: { tag: 'div' },\n tooltipComponents: [],\n anchor: function (comp) {\n return {\n anchor: 'submenu',\n item: comp\n };\n },\n mode: 'follow-highlight',\n onShow: function (component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external({ element: Element.fromDom(elm) })]);\n });\n }\n })];\n }).getOr([]);\n };\n var renderAutocompleteItem = function (spec, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var structure = renderItemStructure({\n presets: presets,\n textContent: useText ? spec.text : Option.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Option.none(),\n checkMark: Option.none(),\n caret: Option.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n return renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: function () {\n return {};\n },\n onAction: function (_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: function () {\n return function () {\n };\n },\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse);\n };\n\n var renderChoiceItem = function (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage) {\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: presets,\n textContent: useText ? spec.text : Option.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Option.none(),\n checkMark: useText ? Option.some(renderCheckmark(providersBackstage.icons)) : Option.none(),\n caret: Option.none(),\n value: spec.value\n }, providersBackstage, true);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: function (_api) {\n return onItemValueHandler(spec.value);\n },\n onSetup: function (api) {\n api.setActive(isSelected);\n return function () {\n };\n },\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var parts$2 = constant(generate$4(owner$2(), parts()));\n\n var cellOverEvent = generate$1('cell-over');\n var cellExecuteEvent = generate$1('cell-execute');\n var makeCell = function (row, col, labelId) {\n var _a;\n var emitCellOver = function (c) {\n return emitWith(c, cellOverEvent, {\n row: row,\n col: col\n });\n };\n var emitExecute = function (c) {\n return emitWith(c, cellExecuteEvent, {\n row: row,\n col: col\n });\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: (_a = { role: 'button' }, _a['aria-labelledby'] = labelId, _a)\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run(mouseover(), Focusing.focus),\n run(execute(), emitExecute),\n run(tapOrClick(), emitExecute)\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n var makeCells = function (labelId, numRows, numCols) {\n var cells = [];\n for (var i = 0; i < numRows; i++) {\n var row = [];\n for (var j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n cells.push(row);\n }\n return cells;\n };\n var selectCells = function (cells, selectedRow, selectedColumn, numRows, numColumns) {\n for (var i = 0; i < numRows; i++) {\n for (var j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n var makeComponents = function (cells) {\n return bind(cells, function (cellRow) {\n return map(cellRow, premade$1);\n });\n };\n var makeLabelText = function (row, col) {\n return text(col + 1 + 'x' + (row + 1));\n };\n function renderInsertTableMenuItem(spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$1('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: { id: sizeLabelId }\n },\n components: [text('0x0')],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$1('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$2().widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([\n config('insert-table-picker', [\n runWithTarget(cellOverEvent, function (c, t, e) {\n var row = e.event().row();\n var col = e.event().col();\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row, col)]);\n }),\n runWithTarget(cellExecuteEvent, function (c, _, e) {\n spec.onAction({\n numRows: e.event().row() + 1,\n numColumns: e.event().col() + 1\n });\n emit(c, sandboxClose());\n })\n ]),\n Keying.config({\n initSize: {\n numRows: numRows,\n numColumns: numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })\n ])\n })]\n };\n }\n\n var fancyMenuItems = { inserttable: renderInsertTableMenuItem };\n var valueOpt = function (obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) ? Option.some(obj[key]) : Option.none();\n };\n var renderFancyMenuItem = function (spec) {\n return valueOpt(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec);\n });\n };\n\n var renderNormalItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n ariaLabel: spec.text,\n caret: Option.none(),\n checkMark: Option.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse);\n };\n\n var renderNestedItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var caret = renderSubmenuCaret(providersBackstage.icons);\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n ariaLabel: spec.text,\n caret: Option.some(caret),\n checkMark: Option.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse);\n };\n\n var renderSeparatorItem = function (spec) {\n var innerHtml = spec.text.fold(function () {\n return {};\n }, function (text) {\n return { innerHtml: text };\n });\n return {\n type: 'separator',\n dom: __assign({\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n }, innerHtml),\n components: []\n };\n };\n\n var renderToggleMenuItem = function (spec, itemResponse, providersBackstage) {\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var structure = renderItemStructure({\n iconContent: Option.none(),\n textContent: spec.text,\n ariaLabel: spec.text,\n checkMark: Option.some(renderCheckmark(providersBackstage.icons)),\n caret: Option.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, true);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var choice = renderChoiceItem;\n var autocomplete = renderAutocompleteItem;\n var separator = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$3 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n\n var forMenu = function (presets) {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n var classes = function (presets) {\n return {\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n };\n };\n\n var markers$1 = function (presets) {\n var menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n var dom$1 = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n 'tox-menu-' + columns + '-column'\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n var components$1 = [Menu.parts().items({})];\n var part = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n var d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers$1(presets)\n };\n };\n\n var deriveMenuMovement = function (columns, presets) {\n var menuMarkers = markers$1(presets);\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n var rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass\n };\n }\n };\n var deriveCollectionMovement = function (columns, presets) {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? '.' + colorClass : '.' + selectableClass\n }\n };\n }\n };\n\n var chunk$1 = function (rowDom, numColumns) {\n return function (items) {\n var chunks = chunk(items, numColumns);\n return map(chunks, function (c) {\n return {\n dom: rowDom,\n components: c\n };\n });\n };\n };\n var forSwatch = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts().items({\n preprocess: columns !== 'auto' ? chunk$1({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity\n })]\n }]\n };\n };\n var forToolbar = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts().items({\n preprocess: chunk$1({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n };\n };\n var preprocessCollection = function (items, isSeparator) {\n var allSplits = [];\n var currentSplit = [];\n each(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has(item.dom, 'innerHtml')) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map(allSplits, function (s) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n };\n });\n };\n var forCollection = function (columns, initItems, hasIcons) {\n if (hasIcons === void 0) {\n hasIcons = true;\n }\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts().items({\n preprocess: function (items) {\n if (columns !== 'auto' && columns > 1) {\n return chunk$1({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(items);\n } else {\n return preprocessCollection(items, function (item, i) {\n return initItems[i].type === 'separator';\n });\n }\n }\n })]\n };\n };\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n var handleError = function (error) {\n domGlobals.console.error(formatError(error));\n domGlobals.console.log(error);\n return Option.none();\n };\n var hasIcon = function (item) {\n return item.icon !== undefined || item.type === 'togglemenuitem' || item.type === 'choicemenuitem';\n };\n var menuHasIcons = function (xs) {\n return exists(xs, hasIcon);\n };\n var createMenuItemFromBridge = function (item, itemResponse, providersBackstage, menuHasIcons) {\n if (menuHasIcons === void 0) {\n menuHasIcons = true;\n }\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, function (d) {\n return Option.some(normal(d, itemResponse, providersBackstage, menuHasIcons));\n });\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Option.some(nested(d, itemResponse, providersBackstage, menuHasIcons));\n });\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, function (d) {\n return Option.some(toggle$3(d, itemResponse, providersBackstage));\n });\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Option.some(separator(d));\n });\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(d);\n });\n default: {\n domGlobals.console.error('Unknown item in general menu', item);\n return Option.none();\n }\n }\n };\n var createPartialMenuWithAlloyItems = function (value, hasIcons, items, columns, presets) {\n if (presets === 'color') {\n var structure = forSwatch(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 'auto') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal' && columns === 1) {\n var structure = forCollection(1, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'normal') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n if (presets === 'listpreview' && columns !== 'auto') {\n var structure = forToolbar(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n return {\n value: value,\n dom: dom$1(hasIcons, columns, presets),\n components: components$1,\n items: items\n };\n };\n var createChoiceItems = function (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map(items, function (item) {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, function (d) {\n return Option.some(choice(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage));\n });\n } else {\n return Option.none();\n }\n }));\n };\n var createAutocompleteItems = function (items, onItemValueHandler, columns, itemResponse, sharedBackstage) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons(items);\n return cat(map(items, function (item) {\n return createAutocompleterItem(item).fold(handleError, function (d) {\n return Option.some(autocomplete(d, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons));\n });\n }));\n };\n var createPartialChoiceMenu = function (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) {\n var hasIcons = menuHasIcons(items);\n var presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n var alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, presets);\n };\n var createPartialMenu = function (value, items, itemResponse, providersBackstage) {\n var hasIcons = menuHasIcons(items);\n var alloyItems = cat(map(items, function (item) {\n var createItem = function (i) {\n return createMenuItemFromBridge(i, itemResponse, providersBackstage, hasIcons);\n };\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(merge(item, { disabled: true }));\n } else {\n return createItem(item);\n }\n }));\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, 1, 'normal');\n };\n var createTieredDataFrom = function (partialMenu) {\n return tieredMenu.singleData(partialMenu.value, partialMenu);\n };\n var createMenuFrom = function (partialMenu, columns, focusMode, presets) {\n var focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers$1(presets);\n return {\n dom: partialMenu.dom,\n components: partialMenu.components,\n items: partialMenu.items,\n value: partialMenu.value,\n markers: {\n selectedItem: menuMarkers.selectedItem,\n item: menuMarkers.item\n },\n movement: movement,\n fakeFocus: focusMode === FocusMode.ContentFocus,\n focusManager: focusManager,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached(function (comp, se) {\n detectSize(comp, 4, menuMarkers.item).each(function (_a) {\n var numColumns = _a.numColumns, numRows = _a.numRows;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n\n var register$1 = function (editor, sharedBackstage) {\n var autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter']\n },\n components: [],\n lazySink: sharedBackstage.getSink\n }));\n var isActive = function () {\n return InlineView.isOpen(autocompleter);\n };\n var closeIfNecessary = function () {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n var getAutocompleters = cached(function () {\n return register(editor);\n });\n var getCombinedItems = function (triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Option.from(m.columns);\n }).getOr(1);\n return bind(matches, function (match) {\n var choices = match.items;\n return createAutocompleteItems(choices, function (itemValue, itemMeta) {\n var nr = editor.selection.getRng();\n var textNode = nr.startContainer;\n getContext(nr, triggerChar, textNode.data, nr.startOffset).fold(function () {\n return domGlobals.console.error('Lost context. Cursor probably moved');\n }, function (_a) {\n var rng = _a.rng;\n var autocompleterApi = { hide: closeIfNecessary };\n match.onAction(autocompleterApi, rng, itemValue, itemMeta);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage);\n });\n };\n var onKeypress = last$2(function (e) {\n var optMatches = e.key === ' ' ? Option.none() : lookup(editor, getAutocompleters);\n optMatches.fold(closeIfNecessary, function (lookupInfo) {\n lookupInfo.lookupData.then(function (lookupData) {\n var combinedItems = getCombinedItems(lookupInfo.triggerChar, lookupData);\n if (combinedItems.length > 0) {\n var columns = findMap(lookupData, function (ld) {\n return Option.from(ld.columns);\n }).getOr(1);\n InlineView.showAt(autocompleter, {\n anchor: 'selection',\n root: Element.fromDom(editor.getBody()),\n getSelection: function () {\n return Option.some({\n start: function () {\n return Element.fromDom(lookupInfo.range.startContainer);\n },\n soffset: function () {\n return lookupInfo.range.startOffset;\n },\n finish: function () {\n return Element.fromDom(lookupInfo.range.endContainer);\n },\n foffset: function () {\n return lookupInfo.range.endOffset;\n }\n });\n }\n }, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, combinedItems, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')));\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n } else {\n closeIfNecessary();\n }\n });\n });\n }, 50);\n var autocompleterUiApi = {\n onKeypress: onKeypress,\n closeIfNecessary: closeIfNecessary,\n isActive: isActive,\n getView: function () {\n return InlineView.getContent(autocompleter);\n }\n };\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n };\n var Autocompleter = { register: register$1 };\n\n var mkEvent = function (target, x, y, stop, prevent, kill, raw) {\n return {\n target: constant(target),\n x: constant(x),\n y: constant(y),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(raw)\n };\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (!filter(rawEvent)) {\n return;\n }\n var target = Element.fromDom(rawEvent.target);\n var stop = function () {\n rawEvent.stopPropagation();\n };\n var prevent = function () {\n rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n var evt = mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n handler(evt);\n };\n };\n var binder = function (element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom().addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n var bind$2 = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n var capture = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, true);\n };\n var unbind = function (element, event, handler, useCapture) {\n element.dom().removeEventListener(event, handler, useCapture);\n };\n\n var filter$1 = constant(true);\n var bind$3 = function (element, event, handler) {\n return bind$2(element, event, filter$1, handler);\n };\n var capture$1 = function (element, event, handler) {\n return capture(element, event, filter$1, handler);\n };\n\n var closest$4 = function (scope, selector, isRoot) {\n return closest$3(scope, selector, isRoot).isSome();\n };\n\n function DelayedFunction (fun, delay) {\n var ref = null;\n var schedule = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n ref = domGlobals.setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n var cancel = function () {\n if (ref !== null) {\n domGlobals.clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n }\n\n var SIGNIFICANT_MOVE = 5;\n var LONGPRESS_DELAY = 400;\n var getTouch = function (event) {\n var raw = event.raw();\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Option.none();\n }\n return Option.some(raw.touches[0]);\n };\n var isFarEnough = function (touch, data) {\n var distX = Math.abs(touch.clientX - data.x());\n var distY = Math.abs(touch.clientY - data.y());\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n var monitor = function (settings) {\n var startData = Cell(Option.none());\n var longpress$1 = DelayedFunction(function (event) {\n startData.set(Option.none());\n settings.triggerEvent(longpress(), event);\n }, LONGPRESS_DELAY);\n var handleTouchstart = function (event) {\n getTouch(event).each(function (touch) {\n longpress$1.cancel();\n var data = {\n x: constant(touch.clientX),\n y: constant(touch.clientY),\n target: event.target\n };\n longpress$1.schedule(event);\n startData.set(Option.some(data));\n });\n return Option.none();\n };\n var handleTouchmove = function (event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.get().each(function (data) {\n if (isFarEnough(touch, data)) {\n startData.set(Option.none());\n }\n });\n });\n return Option.none();\n };\n var handleTouchend = function (event) {\n longpress$1.cancel();\n var isSame = function (data) {\n return eq(data.target(), event.target());\n };\n return startData.get().filter(isSame).map(function (data) {\n return settings.triggerEvent(tap(), event);\n });\n };\n var handlers = wrapAll$1([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n var fireIfReady = function (event, type) {\n return readOptFrom$1(handlers, type).bind(function (handler) {\n return handler(event);\n });\n };\n return { fireIfReady: fireIfReady };\n };\n\n var isDangerous = function (event) {\n var keyEv = event.raw();\n return keyEv.which === BACKSPACE()[0] && !contains([\n 'input',\n 'textarea'\n ], name(event.target())) && !closest$4(event.target(), '[contenteditable=\"true\"]');\n };\n var isFirefox = PlatformDetection$1.detect().browser.isFirefox();\n var settingsSchema = objOfOnly([\n strictFunction('triggerEvent'),\n defaulted$1('stopBackspace', true)\n ]);\n var bindFocus = function (container, handler) {\n if (isFirefox) {\n return capture$1(container, 'focus', handler);\n } else {\n return bind$3(container, 'focusin', handler);\n }\n };\n var bindBlur = function (container, handler) {\n if (isFirefox) {\n return capture$1(container, 'blur', handler);\n } else {\n return bind$3(container, 'focusout', handler);\n }\n };\n var setup$1 = function (container, rawSettings) {\n var settings = asRawOrDie('Getting GUI events settings', settingsSchema, rawSettings);\n var pointerEvents = PlatformDetection$1.detect().deviceType.isTouch() ? [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'gesturestart'\n ] : [\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n var tapEvent = monitor(settings);\n var simpleEvents = map(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), function (type) {\n return bind$3(container, type, function (event) {\n tapEvent.fireIfReady(event, type).each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n });\n });\n var pasteTimeout = Cell(Option.none());\n var onPaste = bind$3(container, 'paste', function (event) {\n tapEvent.fireIfReady(event, 'paste').each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(Option.some(domGlobals.setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0)));\n });\n var onKeydown = bind$3(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace === true && isDangerous(event)) {\n event.prevent();\n }\n });\n var onFocusIn = bindFocus(container, function (event) {\n var stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n var focusoutTimeout = Cell(Option.none());\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(Option.some(domGlobals.setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0)));\n });\n var unbind = function () {\n each(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.get().each(domGlobals.clearTimeout);\n focusoutTimeout.get().each(domGlobals.clearTimeout);\n };\n return { unbind: unbind };\n };\n\n var derive$2 = function (rawEvent, rawTarget) {\n var source = readOptFrom$1(rawEvent, 'target').map(function (getTarget) {\n return getTarget();\n }).getOr(rawTarget);\n return Cell(source);\n };\n\n var fromSource = function (event, source) {\n var stopper = Cell(false);\n var cutter = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n var cut = function () {\n cutter.set(true);\n };\n return {\n stop: stop,\n cut: cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event: constant(event),\n setSource: source.set,\n getSource: source.get\n };\n };\n var fromExternal = function (event) {\n var stopper = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n return {\n stop: stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: constant(false),\n event: constant(event),\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n var adt$a = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n var doTriggerHandler = function (lookup, eventType, rawEvent, target, source, logger) {\n var handler = lookup(eventType, target);\n var simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(function () {\n logger.logEventNoHandlers(eventType, target);\n return adt$a.complete();\n }, function (handlerInfo) {\n var descHandler = handlerInfo.descHandler();\n var eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$a.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$a.complete();\n } else {\n return parent(handlerInfo.element()).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$a.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element(), descHandler.purpose());\n return adt$a.resume(parent);\n });\n }\n });\n };\n var doTriggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, source, logger) {\n return doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(function () {\n return true;\n }, function (parent) {\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger);\n }, function () {\n return false;\n });\n };\n var triggerHandler = function (lookup, eventType, rawEvent, target, logger) {\n var source = derive$2(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n var broadcast = function (listeners, rawEvent, logger) {\n var simulatedEvent = fromExternal(rawEvent);\n each(listeners, function (listener) {\n var descHandler = listener.descHandler();\n var handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n var triggerUntilStopped = function (lookup, eventType, rawEvent, logger) {\n var rawTarget = rawEvent.target();\n return triggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, logger);\n };\n var triggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive$2(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n var eventHandler = Immutable('element', 'descHandler');\n var broadcastHandler = function (id, handler) {\n return {\n id: constant(id),\n descHandler: constant(handler)\n };\n };\n function EventRegistry () {\n var registry = {};\n var registerId = function (extraArgs, id, events) {\n each$1(events, function (v, k) {\n var handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n var findHandler = function (handlers, elem) {\n return read$1(elem).fold(function () {\n return Option.none();\n }, function (id) {\n var reader = readOpt$1(id);\n return handlers.bind(reader).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n });\n };\n var filterByType = function (type) {\n return readOptFrom$1(registry, type).map(function (handlers) {\n return mapToArray(handlers, function (f, id) {\n return broadcastHandler(id, f);\n });\n }).getOr([]);\n };\n var find = function (isAboveRoot, type, target) {\n var readType = readOpt$1(type);\n var handlers = readType(registry);\n return closest$1(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n };\n var unregisterId = function (id) {\n each$1(registry, function (handlersById, eventName) {\n if (handlersById.hasOwnProperty(id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId: registerId,\n unregisterId: unregisterId,\n filterByType: filterByType,\n find: find\n };\n }\n\n function Registry () {\n var events = EventRegistry();\n var components = {};\n var readOrTag = function (component) {\n var elem = component.element();\n return read$1(elem).fold(function () {\n return write('uid-', component.element());\n }, function (uid) {\n return uid;\n });\n };\n var failOnDuplicate = function (component, tagId) {\n var conflict = components[tagId];\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element()) + '\\nCannot use it for: ' + element(component.element()) + '\\n' + 'The conflicting element is' + (inBody(conflict.element()) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n var register = function (component) {\n var tagId = readOrTag(component);\n if (hasKey$1(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n var extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events());\n components[tagId] = component;\n };\n var unregister = function (component) {\n read$1(component.element()).each(function (tagId) {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n var filter = function (type) {\n return events.filterByType(type);\n };\n var find = function (isAboveRoot, type, target) {\n return events.find(isAboveRoot, type, target);\n };\n var getById = function (id) {\n return readOpt$1(id)(components);\n };\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n }\n\n var factory$3 = function (detail) {\n var _a = detail.dom, attributes = _a.attributes, domWithoutAttributes = __rest(_a, ['attributes']);\n return {\n uid: detail.uid,\n dom: __assign({\n tag: 'div',\n attributes: __assign({ role: 'presentation' }, attributes)\n }, domWithoutAttributes),\n components: detail.components,\n behaviours: get$b(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n var Container = single$2({\n name: 'Container',\n factory: factory$3,\n configFields: [\n defaulted$1('components', []),\n field$1('containerBehaviours', []),\n defaulted$1('events', {}),\n defaulted$1('domModification', {}),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var takeover = function (root) {\n var isAboveRoot = function (el) {\n return parent(root.element()).fold(function () {\n return true;\n }, function (parent) {\n return eq(el, parent);\n });\n };\n var registry = Registry();\n var lookup = function (eventName, target) {\n return registry.find(isAboveRoot, eventName, target);\n };\n var domEvents = setup$1(root.element(), {\n triggerEvent: function (eventName, event) {\n return monitorEvent(eventName, event.target(), function (logger) {\n return triggerUntilStopped(lookup, eventName, event, logger);\n });\n }\n });\n var systemApi = {\n debugInfo: constant('real'),\n triggerEvent: function (eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function (target, originator) {\n read$1(target).fold(function () {\n focus$1(target);\n }, function (_alloyId) {\n monitorEvent(focus(), target, function (logger) {\n triggerHandler(lookup, focus(), {\n originator: constant(originator),\n kill: noop,\n prevent: noop,\n target: constant(target)\n }, target, logger);\n });\n });\n },\n triggerEscape: function (comp, simulatedEvent) {\n systemApi.triggerEvent('keydown', comp.element(), simulatedEvent.event());\n },\n getByUid: function (uid) {\n return getByUid(uid);\n },\n getByDom: function (elem) {\n return getByDom(elem);\n },\n build: build$1,\n addToGui: function (c) {\n add(c);\n },\n removeFromGui: function (c) {\n remove$1(c);\n },\n addToWorld: function (c) {\n addToWorld(c);\n },\n removeFromWorld: function (c) {\n removeFromWorld(c);\n },\n broadcast: function (message) {\n broadcast$1(message);\n },\n broadcastOn: function (channels, message) {\n broadcastOn(channels, message);\n },\n broadcastEvent: function (eventName, event) {\n broadcastEvent(eventName, event);\n },\n isConnected: constant(true)\n };\n var addToWorld = function (component) {\n component.connect(systemApi);\n if (!isText(component.element())) {\n registry.register(component);\n each(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element(), { target: constant(component.element()) });\n }\n };\n var removeFromWorld = function (component) {\n if (!isText(component.element())) {\n each(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n var add = function (component) {\n attach(root, component);\n };\n var remove$1 = function (component) {\n detach(component);\n };\n var destroy = function () {\n domEvents.unbind();\n remove(root.element());\n };\n var broadcastData = function (data) {\n var receivers = registry.filter(receive());\n each(receivers, function (receiver) {\n var descHandler = receiver.descHandler();\n var handler = getCurried(descHandler);\n handler(data);\n });\n };\n var broadcast$1 = function (message) {\n broadcastData({\n universal: constant(true),\n data: constant(message)\n });\n };\n var broadcastOn = function (channels, message) {\n broadcastData({\n universal: constant(false),\n channels: constant(channels),\n data: constant(message)\n });\n };\n var broadcastEvent = function (eventName, event) {\n var listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n var getByUid = function (uid) {\n return registry.getById(uid).fold(function () {\n return Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.'));\n }, Result.value);\n };\n var getByDom = function (elem) {\n var uid = read$1(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root: constant(root),\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove$1,\n getByUid: getByUid,\n getByDom: getByDom,\n addToWorld: addToWorld,\n removeFromWorld: removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn: broadcastOn,\n broadcastEvent: broadcastEvent\n };\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var getSkinUrl = function (editor) {\n var settings = editor.settings;\n var skin = settings.skin;\n var skinUrl = settings.skin_url;\n if (skin !== false) {\n var skinName = skin ? skin : 'oxide';\n if (skinUrl) {\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n skinUrl = global$6.baseURL + '/skins/ui/' + skinName;\n }\n }\n return skinUrl;\n };\n var isReadOnly = function (editor) {\n return editor.getParam('readonly', false, 'boolean');\n };\n var isSkinDisabled = function (editor) {\n return editor.getParam('skin') === false;\n };\n var getHeightSetting = function (editor) {\n return editor.getParam('height', Math.max(editor.getElement().offsetHeight, 200));\n };\n var getMinWidthSetting = function (editor) {\n return Option.from(editor.settings.min_width).filter(isNumber);\n };\n var getMinHeightSetting = function (editor) {\n return Option.from(editor.settings.min_height).filter(isNumber);\n };\n var getMaxWidthSetting = function (editor) {\n return Option.from(editor.getParam('max_width')).filter(isNumber);\n };\n var getMaxHeightSetting = function (editor) {\n return Option.from(editor.getParam('max_height')).filter(isNumber);\n };\n var getUserStyleFormats = function (editor) {\n return Option.from(editor.getParam('style_formats')).filter(isArray);\n };\n var isMergeStyleFormats = function (editor) {\n return editor.getParam('style_formats_merge', false, 'boolean');\n };\n var getRemovedMenuItems = function (editor) {\n return editor.getParam('removed_menuitems', '');\n };\n var isMenubarEnabled = function (editor) {\n return editor.getParam('menubar', true, 'boolean') !== false;\n };\n var isToolbarEnabled = function (editor) {\n var toolbarConfig = editor.getParam('toolbar');\n if (isArray(toolbarConfig)) {\n return toolbarConfig.length > 0;\n } else {\n return editor.getParam('toolbar', true, 'boolean') !== false;\n }\n };\n var getMultipleToolbarsSetting = function (editor) {\n var keys$1 = keys(editor.settings);\n var toolbarKeys = filter(keys$1, function (key) {\n return /^toolbar([1-9])$/.test(key);\n });\n var toolbars = map(toolbarKeys, function (key) {\n return editor.getParam(key, false, 'string');\n });\n var toolbarArray = filter(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Option.some(toolbarArray) : Option.none();\n };\n var ToolbarDrawer;\n (function (ToolbarDrawer) {\n ToolbarDrawer['default'] = '';\n ToolbarDrawer['floating'] = 'floating';\n ToolbarDrawer['sliding'] = 'sliding';\n }(ToolbarDrawer || (ToolbarDrawer = {})));\n var getToolbarDrawer = function (editor) {\n return editor.getParam('toolbar_drawer', '', 'string');\n };\n var fixedContainerSelector = function (editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n var fixedContainerElement = function (editor) {\n var selector = fixedContainerSelector(editor);\n var isInline = editor.getParam('inline', false, 'boolean');\n return selector.length > 0 && isInline ? descendant$2(body(), selector) : Option.none();\n };\n var useFixedContainer = function (editor) {\n return editor.getParam('inline', false, 'boolean') && fixedContainerElement(editor).isSome();\n };\n var getUiContainer = function (editor) {\n var fixedContainer = fixedContainerElement(editor);\n return fixedContainer.getOr(body());\n };\n\n var formChangeEvent = generate$1('form-component-change');\n var formCloseEvent = generate$1('form-close');\n var formCancelEvent = generate$1('form-cancel');\n var formActionEvent = generate$1('form-action');\n var formSubmitEvent = generate$1('form-submit');\n var formBlockEvent = generate$1('form-block');\n var formUnblockEvent = generate$1('form-unblock');\n var formTabChangeEvent = generate$1('form-tabchange');\n var formResizeEvent = generate$1('form-resize');\n\n var renderAlertBanner = function (spec, providersBackstage) {\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + spec.level\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: get$c(spec.icon, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(spec.actionLabel) }\n },\n action: function (comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n }\n })]\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n };\n\n var schema$d = constant([\n defaulted$1('prefix', 'form-field'),\n field$1('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var parts$3 = constant([\n optional({\n schema: [strict$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: function (spec) {\n var excludeFactory = exclude$1(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [strict$1('factory')],\n name: 'field'\n })\n ]);\n\n var factory$4 = function (detail, components, spec, externals) {\n var behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: function (container) {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (field) {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: function (field, value) {\n Composing.getCurrent(field).each(function (current) {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n var events = derive([runOnAttached(function (component, simulatedEvent) {\n var ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(function (field) {\n var id = generate$1(detail.prefix);\n ps.label().each(function (label) {\n set$1(label.element(), 'for', id);\n set$1(field.element(), 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$1(detail.prefix);\n set$1(descriptor.element(), 'id', descriptorId);\n set$1(field.element(), 'aria-describedby', descriptorId);\n });\n });\n })]);\n var apis = {\n getField: function (container) {\n return getPart(container, detail, 'field');\n },\n getLabel: function (container) {\n return getPart(container, detail, 'label');\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: behaviours,\n events: events,\n apis: apis\n };\n };\n var FormField = composite$1({\n name: 'FormField',\n configFields: schema$d(),\n partFields: parts$3(),\n factory: factory$4,\n apis: {\n getField: function (apis, comp) {\n return apis.getField(comp);\n },\n getLabel: function (apis, comp) {\n return apis.getLabel(comp);\n }\n }\n });\n\n var getCoupled = function (component, coupleConfig, coupleState, name) {\n return coupleState.getOrCreate(component, coupleConfig, name);\n };\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n getCoupled: getCoupled\n });\n\n var CouplingSchema = [strictOf('others', setOf$1(Result.value, anyValue$1()))];\n\n var init$5 = function (spec) {\n var coupled = {};\n var getOrCreate = function (component, coupleConfig, name) {\n var available = keys(coupleConfig.others);\n if (!available) {\n throw new Error('Cannot find coupled component: ' + name + '. Known coupled components: ' + Json.stringify(available, null, 2));\n } else {\n return readOptFrom$1(coupled, name).getOrThunk(function () {\n var builder = readOptFrom$1(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n var spec = builder(component);\n var built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n }\n };\n var readState = constant({});\n return nu$5({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n init: init$5\n });\n\n var Coupling = create$1({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n var events$a = function (streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive([\n run(streamConfig.event, processor),\n runOnDetached(function () {\n return streamState.cancel();\n })\n ].concat(streamConfig.cancelEvent.map(function (e) {\n return [run(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n events: events$a\n });\n\n var throttle = function (_config) {\n var state = Cell(null);\n var readState = function () {\n return { timer: state.get() !== null ? 'set' : 'unset' };\n };\n var setTimer = function (t) {\n state.set(t);\n };\n var cancel = function () {\n var t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$5({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n var init$6 = function (spec) {\n return spec.stream.streams.state(spec);\n };\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n throttle: throttle,\n init: init$6\n });\n\n var setup$2 = function (streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last$2(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return function (component, simulatedEvent) {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n strictOf('stream', choose$1('mode', {\n throttle: [\n strict$1('delay'),\n defaulted$1('stopEvent', true),\n output('streams', {\n setup: setup$2,\n state: throttle\n })\n ]\n })),\n defaulted$1('event', 'input'),\n option('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n var Streaming = create$1({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n var nu$a = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu$a(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady())\n call(nCallback);\n else\n callbacks.push(nCallback);\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure$1 = function (a) {\n return nu$a(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$a,\n pure: pure$1\n };\n\n var bounce = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var me = this;\n domGlobals.setTimeout(function () {\n f.apply(me, args);\n }, 0);\n };\n };\n\n var nu$b = function (baseFn) {\n var get = function (callback) {\n baseFn(bounce(callback));\n };\n var map = function (fab) {\n return nu$b(function (callback) {\n get(function (a) {\n var value = fab(a);\n callback(value);\n });\n });\n };\n var bind = function (aFutureB) {\n return nu$b(function (callback) {\n get(function (a) {\n aFutureB(a).get(callback);\n });\n });\n };\n var anonBind = function (futureB) {\n return nu$b(function (callback) {\n get(function (a) {\n futureB.get(callback);\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return nu$b(function (callback) {\n if (cache === null) {\n cache = toLazy();\n }\n cache.get(callback);\n });\n };\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n get: get\n };\n };\n var pure$2 = function (a) {\n return nu$b(function (callback) {\n callback(a);\n });\n };\n var Future = {\n nu: nu$b,\n pure: pure$2\n };\n\n var suffix = constant('sink');\n var partType = constant(optional({\n name: suffix(),\n overrides: constant({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: true })]),\n events: derive([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n var getAnchor = function (detail, component) {\n var ourHotspot = detail.getHotspot(component).getOr(component);\n var anchor = 'hotspot';\n return detail.layouts.fold(function () {\n return {\n anchor: anchor,\n hotspot: ourHotspot\n };\n }, function (layouts) {\n return {\n anchor: anchor,\n hotspot: ourHotspot,\n layouts: layouts\n };\n });\n };\n var fetch = function (detail, mapFetch, component) {\n var fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n var openF = function (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) {\n var futureData = fetch(detail, mapFetch, component);\n var getLazySink = getSink(component, detail);\n return futureData.map(function (tdata) {\n return tdata.bind(function (data) {\n return Option.from(tieredMenu.sketch(__assign({}, externals.menu(), {\n uid: generate$2(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function (tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, anchor, menu);\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, {\n anchor: 'submenu',\n item: item\n }, submenu);\n Sandboxing.decloak(sandbox);\n },\n onEscape: function () {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Option.some(true);\n }\n })));\n });\n });\n };\n var open$1 = function (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) {\n var anchor = getAnchor(detail, hotspot);\n var processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(function (tdata) {\n tdata.fold(function () {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, function (data) {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n var close$1 = function (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n var togglePopup = function (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) {\n var sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n var showing = Sandboxing.isOpen(sandbox);\n var action = showing ? close$1 : open$1;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n var matchWidth = function (hotspot, container, useMinWidth) {\n var menu = Composing.getCurrent(container).getOr(container);\n var buttonWidth = get$7(hotspot.element());\n if (useMinWidth) {\n set$2(menu.element(), 'min-width', buttonWidth + 'px');\n } else {\n set$4(menu.element(), buttonWidth);\n }\n };\n var getSink = function (anyInSystem, sinkDetail) {\n return anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(function (internalSink) {\n return function () {\n return Result.value(internalSink);\n };\n }).getOrThunk(function () {\n return sinkDetail.lazySink.fold(function () {\n return function () {\n return Result.error(new Error('No internal sink is specified, nor could an external sink be found'));\n };\n }, function (lazySinkFn) {\n return function () {\n return lazySinkFn(anyInSystem);\n };\n });\n });\n };\n var makeSandbox = function (detail, hotspot, extras) {\n var ariaOwner = manager();\n var onOpen = function (component, menu) {\n var anchor = getAnchor(detail, hotspot);\n ariaOwner.link(hotspot.element());\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n var onClose = function (component, menu) {\n ariaOwner.unlink(hotspot.element());\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n var lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: { id: ariaOwner.id() }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOf(hotspot, queryElem);\n },\n getAttachPoint: function () {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: function (sandbox) {\n return Sandboxing.getState(sandbox).bind(function (menu) {\n return Composing.getCurrent(menu);\n });\n }\n }),\n receivingConfig({ isExtraPart: constant(false) })\n ])\n };\n };\n\n var setValueFromItem = function (model, input, item) {\n var itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n var setSelectionOn = function (input, f) {\n var el = input.element();\n var value = get$5(el);\n var node = el.dom();\n if (get$2(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n var setCursorAtEnd = function (input) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(value.length, value.length);\n });\n };\n var setSelectionToEnd = function (input, startOffset) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(startOffset, value.length);\n });\n };\n var attemptSelectOver = function (model, input, item) {\n if (!model.selectsOver) {\n return Option.none();\n } else {\n var currentValue = Representing.getValue(input);\n var inputDisplay_1 = model.getDisplayText(currentValue);\n var itemValue = Representing.getValue(item);\n var itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay_1) === 0 ? Option.some(function () {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay_1.length);\n }) : Option.none();\n }\n };\n\n var schema$e = constant([\n option('data'),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('tag', 'input'),\n defaulted$1('inputClasses', []),\n onHandler('onSetValue'),\n defaulted$1('styles', {}),\n defaulted$1('eventOrder', {}),\n field$1('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted$1('selectOnFocus', true)\n ]);\n var focusBehaviours = function (detail) {\n return derive$1([Focusing.config({\n onFocus: detail.selectOnFocus === false ? noop : function (component) {\n var input = component.element();\n var value = get$5(input);\n input.dom().setSelectionRange(0, value.length);\n }\n })]);\n };\n var behaviours = function (detail) {\n return __assign({}, focusBehaviours(detail), augment(detail.inputBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n initialValue: detail.data.getOr(undefined),\n getValue: function (input) {\n return get$5(input.element());\n },\n setValue: function (input, data) {\n var current = get$5(input.element());\n if (current !== data) {\n set$3(input.element(), data);\n }\n }\n },\n onSetValue: detail.onSetValue\n })]));\n };\n var dom$2 = function (detail) {\n return {\n tag: detail.tag,\n attributes: __assign({ type: 'text' }, detail.inputAttributes),\n styles: detail.inputStyles,\n classes: detail.inputClasses\n };\n };\n\n var itemExecute = constant('alloy.typeahead.itemexecute');\n\n var make$3 = function (detail, components, spec, externals) {\n var navigateList = function (comp, simulatedEvent, highlighter) {\n detail.previewing.set(false);\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(function (menu) {\n Highlighting.getHighlighted(menu).fold(function () {\n highlighter(menu);\n }, function () {\n dispatchEvent(sandbox, menu.element(), 'keydown', simulatedEvent);\n });\n });\n } else {\n var onOpenSync = function (sandbox) {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open$1(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n var focusBehaviours$1 = focusBehaviours(detail);\n var mapFetch = function (comp) {\n return function (tdata) {\n return tdata.map(function (data) {\n var menus = values(data.menus);\n var items = bind(menus, function (menu) {\n return filter(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map(items, function (item) {\n return item.data;\n }));\n return data;\n });\n };\n };\n var behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: __assign({\n mode: 'dataset',\n getDataKey: function (comp) {\n return get$5(comp.element());\n },\n getFallbackEntry: function (itemString) {\n return {\n value: itemString,\n meta: {}\n };\n },\n setValue: function (comp, data) {\n set$3(comp.element(), detail.model.getDisplayText(data));\n }\n }, detail.initialData.map(function (d) {\n return wrap$1('initialValue', d);\n }).getOr({}))\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: function (component, simulatedEvent) {\n var sandbox = Coupling.getCoupled(component, 'sandbox');\n var focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$5(component.element()).length >= detail.minChars) {\n var previousValue_1 = Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu).map(Representing.getValue);\n });\n detail.previewing.set(true);\n var onOpenSync = function (_sandbox) {\n Composing.getCurrent(sandbox).each(function (menu) {\n previousValue_1.fold(function () {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(menu);\n }\n }, function (pv) {\n Highlighting.highlightBy(menu, function (item) {\n var itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(menu).orThunk(function () {\n Highlighting.highlightFirst(menu);\n return Option.none();\n });\n });\n });\n };\n open$1(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }),\n Keying.config({\n mode: 'special',\n onDown: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Option.some(true);\n },\n onEscape: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Option.some(true);\n }\n return Option.none();\n },\n onUp: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Option.some(true);\n },\n onEnter: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n var sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu);\n }).map(function (item) {\n emitWith(comp, itemExecute(), { item: item });\n return true;\n });\n } else {\n var currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Option.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: {\n mode: 'pressed',\n syncWithExpanded: true\n }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: identity,\n onClose: identity\n });\n }\n }\n }),\n config('typeaheadevents', [\n runOnExecute(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }),\n run(itemExecute(), function (comp, se) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event().item());\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event().item(), Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })\n ].concat(detail.dismissOnBlur ? [run(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search$1(sandbox.element()).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n return {\n uid: detail.uid,\n dom: dom$2(detail),\n behaviours: __assign({}, focusBehaviours$1, augment(detail.typeaheadBehaviours, behaviours)),\n eventOrder: detail.eventOrder\n };\n };\n\n var sandboxFields = function () {\n return [\n defaulted$1('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n };\n\n var schema$f = constant([\n option('lazySink'),\n strict$1('fetch'),\n defaulted$1('minChars', 5),\n defaulted$1('responseTime', 1000),\n onHandler('onOpen'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('layouts', Option.none()),\n defaulted$1('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted$1('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }),\n defaulted$1('selectsOver', true),\n defaulted$1('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted$1('inputClasses', []),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('matchWidth', true),\n defaulted$1('useMinWidth', false),\n defaulted$1('dismissOnBlur', true),\n markers(['openClass']),\n option('initialData'),\n field$1('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n state$1('previewing', function () {\n return Cell(true);\n })\n ].concat(schema$e()).concat(sandboxFields()));\n var parts$4 = constant([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: function (detail) {\n return {\n fakeFocus: true,\n onHighlight: function (menu, item) {\n if (!detail.previewing.get()) {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n } else {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n attemptSelectOver(detail.model, input, item).fold(function () {\n return Highlighting.dehighlight(menu, item);\n }, function (fn) {\n return fn();\n });\n });\n }\n detail.previewing.set(false);\n },\n onExecute: function (menu, item) {\n return menu.getSystem().getByUid(detail.uid).toOption().map(function (typeahead) {\n emitWith(typeahead, itemExecute(), { item: item });\n return true;\n });\n },\n onHover: function (menu, item) {\n detail.previewing.set(false);\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n\n var Typeahead = composite$1({\n name: 'Typeahead',\n configFields: schema$f(),\n partFields: parts$4(),\n factory: make$3\n });\n\n var renderFormFieldWith = function (pLabel, pField, extraClasses) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses);\n return FormField.sketch(spec);\n };\n var renderFormField = function (pLabel, pField) {\n return renderFormFieldWith(pLabel, pField, []);\n };\n var renderFormFieldSpecWith = function (pLabel, pField, extraClasses) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField])\n };\n };\n var renderFormFieldDom = function () {\n return renderFormFieldDomWith([]);\n };\n var renderFormFieldDomWith = function (extraClasses) {\n return {\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n };\n };\n var renderLabel = function (label, providersBackstage) {\n return FormField.parts().label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n };\n\n var isMenuItemReference = function (item) {\n return isString(item);\n };\n var isSeparator = function (item) {\n return item.type === 'separator';\n };\n var isExpandingMenuItem = function (item) {\n return has(item, 'getSubmenuItems');\n };\n var separator$1 = { type: 'separator' };\n var unwrapReferences = function (items, menuItems) {\n var realItems = foldl(items, function (acc, item) {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator(acc[acc.length - 1]) ? acc.concat([separator$1]) : acc;\n } else if (has(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n if (realItems.length > 0 && isSeparator(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n var getFromExpandingItem = function (item, menuItems) {\n var submenuItems = item.getSubmenuItems();\n var rest = expand(submenuItems, menuItems);\n var newMenus = deepMerge(rest.menus, wrap$1(item.value, rest.items));\n var newExpansions = deepMerge(rest.expansions, wrap$1(item.value, item.value));\n return {\n item: item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n var getFromItem = function (item, menuItems) {\n return isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item: item,\n menus: {},\n expansions: {}\n };\n };\n var generateValueIfRequired = function (item) {\n if (isSeparator(item)) {\n return item;\n } else {\n var itemValue = readOptFrom$1(item, 'value').getOrThunk(function () {\n return generate$1('generated-menu-item');\n });\n return deepMerge({ value: itemValue }, item);\n }\n };\n var expand = function (items, menuItems) {\n var realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, function (acc, item) {\n var itemWithValue = generateValueIfRequired(item);\n var newData = getFromItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [newData.item].concat(acc.items),\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n\n var build$2 = function (items, itemResponse, providersBackstage) {\n var primary = generate$1('primary-menu');\n var data = expand(items, providersBackstage.menuItems());\n if (data.items.length === 0) {\n return Option.none();\n }\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, providersBackstage);\n var submenus = map$1(data.menus, function (menuItems, menuName) {\n return createPartialMenu(menuName, menuItems, itemResponse, providersBackstage);\n });\n var menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Option.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n var renderAutocomplete = function (spec, sharedBackstage) {\n var pLabel = renderLabel(spec.label.getOr('?'), sharedBackstage.providers);\n var pField = FormField.parts().field({\n factory: Typeahead,\n dismissOnBlur: false,\n inputClasses: ['tox-textfield'],\n minChars: 1,\n fetch: function (input) {\n var value = Representing.getValue(input);\n var items = spec.getItems(value);\n var tdata = build$2(items, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage.providers);\n return Future.pure(tdata);\n },\n markers: { openClass: 'dog' },\n lazySink: sharedBackstage.getSink,\n parts: { menu: part(false, 1, 'normal') }\n });\n return renderFormField(Option.some(pLabel), pField);\n };\n\n var renderBar = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar']\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var factory$5 = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: dom$2(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n var Input = single$2({\n name: 'Input',\n configFields: schema$e(),\n factory: factory$5\n });\n\n var isFirefox$1 = PlatformDetection$1.detect().browser.isFirefox();\n var offscreen = {\n position: 'absolute',\n left: '-9999px'\n };\n var create$3 = function (doc, text) {\n var span = Element.fromTag('span', doc.dom());\n set$1(span, 'role', 'presentation');\n var contents = Element.fromText(text, doc.dom());\n append(span, contents);\n return span;\n };\n var linkToDescription = function (item, token) {\n var id = generate$1('ephox-alloy-aria-voice');\n set$1(token, 'id', id);\n set$1(item, 'aria-describedby', id);\n };\n var base$1 = function (getAttrs, parent, text) {\n var doc = owner(parent);\n var token = create$3(doc, text);\n if (isFirefox$1) {\n linkToDescription(parent, token);\n }\n setAll(token, getAttrs(text));\n setAll$1(token, offscreen);\n append(parent, token);\n domGlobals.setTimeout(function () {\n remove$1(token, 'aria-live');\n remove(token);\n }, 1000);\n };\n var getShoutAttrs = function (_text) {\n return {\n 'aria-live': 'assertive',\n 'aria-atomic': 'true',\n 'role': 'alert'\n };\n };\n var shout = function (parent, text) {\n return base$1(getShoutAttrs, parent, text);\n };\n\n var ariaElements = [\n 'input',\n 'textarea'\n ];\n var isAriaElement = function (elem) {\n var name$1 = name(elem);\n return contains(ariaElements, name$1);\n };\n var markValid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n remove$4(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element())) {\n remove$1(elem, 'title');\n }\n notifyInfo.getContainer(component).each(function (container) {\n set(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n var markInvalid = function (component, invalidConfig, invalidState, text) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element())) {\n set$1(component.element(), 'title', text);\n }\n shout(body(), text);\n notifyInfo.getContainer(component).each(function (container) {\n set(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n var query = function (component, invalidConfig, invalidState) {\n return invalidConfig.validator.fold(function () {\n return Future.pure(Result.value(true));\n }, function (validatorInfo) {\n return validatorInfo.validate(component);\n });\n };\n var run$1 = function (component, invalidConfig, invalidState) {\n invalidConfig.notify.each(function (notifyInfo) {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig, invalidState).map(function (valid) {\n if (component.getSystem().isConnected()) {\n return valid.fold(function (err) {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, function (v) {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n var isInvalid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element());\n return has$2(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run$1,\n isInvalid: isInvalid\n });\n\n var events$b = function (invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive([run(validatorInfo.onEvent, function (component) {\n run$1(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run$1(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n events: events$b\n });\n\n var InvalidateSchema = [\n strict$1('invalidClass'),\n defaulted$1('getRoot', Option.none),\n optionObjOf('notify', [\n defaulted$1('aria', 'alert'),\n defaulted$1('getContainer', Option.none),\n defaulted$1('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n strict$1('validate'),\n defaulted$1('onEvent', 'input'),\n defaulted$1('validateOnLoad', true)\n ])\n ];\n\n var Invalidating = create$1({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: function (validator) {\n return function (component) {\n var v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n var exhibit$4 = function (base, tabConfig) {\n return nu$6({\n attributes: wrapAll$1([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$4\n });\n\n var TabstopSchema = [defaulted$1('tabAttr', 'data-alloy-tabstop')];\n\n var Tabstopping = create$1({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n var hexColour = function (hexString) {\n return { value: constant(hexString) };\n };\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n var isHexString = function (hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n var getLongForm = function (hex) {\n var hexString = hex.value().replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n return { value: constant(hexString) };\n };\n var extractValues = function (hex) {\n var longForm = getLongForm(hex);\n var splitForm = longformRegex.exec(longForm.value());\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n var toHex = function (component) {\n var hex = component.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n var fromRgba = function (rgbaColour) {\n var value = toHex(rgbaColour.red()) + toHex(rgbaColour.green()) + toHex(rgbaColour.blue());\n return hexColour(value);\n };\n\n var min = Math.min;\n var max = Math.max;\n var round = Math.round;\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n var rgbaColour = function (red, green, blue, alpha) {\n return {\n red: constant(red),\n green: constant(green),\n blue: constant(blue),\n alpha: constant(alpha)\n };\n };\n var isRgbaComponent = function (value) {\n var num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n var fromHsv = function (hsv) {\n var r;\n var g;\n var b;\n var hue = (hsv.hue() || 0) % 360;\n var saturation = hsv.saturation() / 100;\n var brightness = hsv.value() / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n if (saturation === 0) {\n r = g = b = round(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n var side = hue / 60;\n var chroma = brightness * saturation;\n var x = chroma * (1 - Math.abs(side % 2 - 1));\n var match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round(255 * (r + match));\n g = round(255 * (g + match));\n b = round(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n var fromHex = function (hexColour) {\n var result = extractValues(hexColour);\n var red = parseInt(result[1], 16);\n var green = parseInt(result[2], 16);\n var blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n var fromStringValues = function (red, green, blue, alpha) {\n var r = parseInt(red, 10);\n var g = parseInt(green, 10);\n var b = parseInt(blue, 10);\n var a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n var fromString = function (rgbaString) {\n if (rgbaString === 'transparent') {\n return Option.some(rgbaColour(0, 0, 0, 0));\n }\n var rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Option.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Option.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Option.none();\n };\n var toString = function (rgba) {\n return 'rgba(' + rgba.red() + ',' + rgba.green() + ',' + rgba.blue() + ',' + rgba.alpha() + ')';\n };\n var redColour = constant(rgbaColour(255, 0, 0, 1));\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n var storageName = 'tinymce-custom-colors';\n function ColorCache (max) {\n if (max === void 0) {\n max = 10;\n }\n var storageString = global$7.getItem(storageName);\n var localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n var prune = function (list) {\n var diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n var cache = prune(localstorage);\n var add = function (key) {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$7.setItem(storageName, JSON.stringify(cache));\n };\n var remove = function (idx) {\n cache.splice(idx, 1);\n };\n var state = function () {\n return cache.slice(0);\n };\n return {\n add: add,\n state: state\n };\n }\n\n var choiceItem = 'choiceitem';\n var defaultColors = [\n {\n type: choiceItem,\n text: 'Turquoise',\n value: '#18BC9B'\n },\n {\n type: choiceItem,\n text: 'Green',\n value: '#2FCC71'\n },\n {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n },\n {\n type: choiceItem,\n text: 'Purple',\n value: '#9B59B6'\n },\n {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\n },\n {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#18A085'\n },\n {\n type: choiceItem,\n text: 'Dark Green',\n value: '#27AE60'\n },\n {\n type: choiceItem,\n text: 'Medium Blue',\n value: '#2880B9'\n },\n {\n type: choiceItem,\n text: 'Medium Purple',\n value: '#8E44AD'\n },\n {\n type: choiceItem,\n text: 'Midnight Blue',\n value: '#2B3E50'\n },\n {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n },\n {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n },\n {\n type: choiceItem,\n text: 'Red',\n value: '#E74C3C'\n },\n {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n },\n {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n },\n {\n type: choiceItem,\n text: 'Dark Yellow',\n value: '#F29D12'\n },\n {\n type: choiceItem,\n text: 'Dark Orange',\n value: '#D35400'\n },\n {\n type: choiceItem,\n text: 'Dark Red',\n value: '#E74C3C'\n },\n {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#BDC3C7'\n },\n {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n },\n {\n type: choiceItem,\n text: 'Black',\n value: '#000000'\n },\n {\n type: choiceItem,\n text: 'White',\n value: '#ffffff'\n }\n ];\n var colorCache = ColorCache(10);\n var mapColors = function (colorMap) {\n var i;\n var colors = [];\n for (i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: '#' + colorMap[i],\n type: 'choiceitem'\n });\n }\n return colors;\n };\n var getColorCols = function (editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n var hasCustomColors = function (editor) {\n return editor.getParam('custom_colors') !== false;\n };\n var getColorMap = function (editor) {\n return editor.getParam('color_map');\n };\n var getColors = function (editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n var getCurrentColors = function () {\n return map(colorCache.state(), function (color) {\n return {\n type: choiceItem,\n text: color,\n value: color\n };\n });\n };\n var addColor = function (color) {\n colorCache.add(color);\n };\n var Settings = {\n mapColors: mapColors,\n getColorCols: getColorCols,\n hasCustomColors: hasCustomColors,\n getColorMap: getColorMap,\n getColors: getColors,\n getCurrentColors: getCurrentColors,\n addColor: addColor\n };\n\n var getCurrentColor = function (editor, format) {\n var color;\n editor.dom.getParents(editor.selection.getStart(), function (elm) {\n var value;\n if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {\n color = color ? color : value;\n }\n });\n return color;\n };\n var applyFormat = function (editor, format, value) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.apply(format, { value: value });\n editor.nodeChanged();\n });\n };\n var removeFormat = function (editor, format) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.remove(format, { value: null }, null, true);\n editor.nodeChanged();\n });\n };\n var registerCommands = function (editor) {\n editor.addCommand('mceApplyTextcolor', function (format, value) {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', function (format) {\n removeFormat(editor, format);\n });\n };\n var calcCols = function (colors) {\n return Math.max(5, Math.ceil(Math.sqrt(colors)));\n };\n var getColorCols$1 = function (editor) {\n var colors = Settings.getColors(editor);\n var defaultCols = calcCols(colors.length);\n return Settings.getColorCols(editor, defaultCols);\n };\n var getAdditionalColors = function (hasCustom) {\n var type = 'choiceitem';\n var remove = {\n type: type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n var custom = {\n type: type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [\n remove,\n custom\n ] : [remove];\n };\n var applyColour = function (editor, format, value, onChoice) {\n if (value === 'custom') {\n var dialog = colorPickerDialog(editor);\n dialog(function (colorOpt) {\n colorOpt.each(function (color) {\n Settings.addColor(color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, '#000000');\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n var getFetch = function (colors, hasCustom) {\n return function (callback) {\n callback(colors.concat(Settings.getCurrentColors().concat(getAdditionalColors(hasCustom))));\n };\n };\n var setIconColor = function (splitButtonApi, name, newColor) {\n var setIconFillAndStroke = function (pathId, color) {\n splitButtonApi.setIconFill(pathId, color);\n splitButtonApi.setIconStroke(pathId, color);\n };\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n setIconFillAndStroke(id, newColor);\n };\n var registerTextColorButton = function (editor, name, format, tooltip, lastColor) {\n editor.ui.registry.addSplitButton(name, {\n tooltip: tooltip,\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: function (value) {\n var optCurrentRgb = Option.from(getCurrentColor(editor, format));\n return optCurrentRgb.bind(function (currentRgb) {\n return fromString(currentRgb).map(function (rgba) {\n var currentHex = fromRgba(rgba).value();\n return contains$1(value.toLowerCase(), currentHex);\n });\n }).getOr(false);\n },\n columns: getColorCols$1(editor),\n fetch: getFetch(Settings.getColors(editor), Settings.hasCustomColors(editor)),\n onAction: function (splitButtonApi) {\n if (lastColor.get() !== null) {\n applyColour(editor, format, lastColor.get(), function () {\n });\n }\n },\n onItemAction: function (splitButtonApi, value) {\n applyColour(editor, format, value, function (newColour) {\n lastColor.set(newColour);\n setIconColor(splitButtonApi, name, newColour);\n });\n },\n onSetup: function (splitButtonApi) {\n if (lastColor.get() !== null) {\n setIconColor(splitButtonApi, name, lastColor.get());\n }\n return function () {\n };\n }\n });\n };\n var colorPickerDialog = function (editor) {\n return function (callback, value) {\n var getOnSubmit = function (callback) {\n return function (api) {\n var data = api.getData();\n callback(Option.from(data.colorpicker));\n api.close();\n };\n };\n var onAction = function (api, details) {\n if (details.name === 'hex-valid') {\n if (details.value) {\n api.enable('ok');\n } else {\n api.disable('ok');\n }\n }\n };\n var initialData = { colorpicker: value };\n var submit = getOnSubmit(callback);\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: initialData,\n onAction: onAction,\n onSubmit: submit,\n onClose: function () {\n },\n onCancel: function () {\n callback(Option.none());\n }\n });\n };\n };\n var register$2 = function (editor) {\n registerCommands(editor);\n var lastForeColor = Cell(null);\n var lastBackColor = Cell(null);\n registerTextColorButton(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n };\n var ColorSwatch = {\n register: register$2,\n getFetch: getFetch,\n colorPickerDialog: colorPickerDialog,\n getCurrentColor: getCurrentColor,\n getColorCols: getColorCols$1,\n calcCols: calcCols\n };\n\n var schema$g = constant([\n strict$1('dom'),\n strict$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('layouts', Option.none()),\n field$1('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n strict$1('toggleClass'),\n defaulted$1('eventOrder', {}),\n option('lazySink'),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n option('role')\n ].concat(sandboxFields()));\n var parts$5 = constant([\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return { onExecute: detail.onExecute };\n }\n }),\n partType()\n ]);\n\n var factory$6 = function (detail, components, _spec, externals) {\n var _a;\n var lookupAttr = function (attr) {\n return readOptFrom$1(detail.dom, 'attributes').bind(function (attrs) {\n return readOptFrom$1(attrs, attr);\n });\n };\n var switchToMenu = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var apis = {\n expand: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: function (comp) {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n };\n var triggerExecute = function (comp, se) {\n emitExecute(comp);\n return Option.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: function () {\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: function (comp, se) {\n if (Dropdown.isOpen(comp)) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Option.some(true);\n },\n onEscape: function (comp, se) {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Option.some(true);\n } else {\n return Option.none();\n }\n }\n }),\n Focusing.config({})\n ]),\n events: events$7(Option.some(action)),\n eventOrder: __assign({}, detail.eventOrder, (_a = {}, _a[execute()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\n apis: apis,\n domModification: {\n attributes: __assign({ 'aria-haspopup': 'true' }, detail.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\n }), detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {})\n }\n };\n };\n var Dropdown = composite$1({\n name: 'Dropdown',\n configFields: schema$g(),\n partFields: parts$5(),\n factory: factory$6,\n apis: {\n open: function (apis, comp) {\n return apis.open(comp);\n },\n expand: function (apis, comp) {\n return apis.expand(comp);\n },\n close: function (apis, comp) {\n return apis.close(comp);\n },\n isOpen: function (apis, comp) {\n return apis.isOpen(comp);\n }\n }\n });\n\n var exhibit$5 = function (base, unselectConfig) {\n return nu$6({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: { unselectable: 'on' }\n });\n };\n var events$c = function (unselectConfig) {\n return derive([abort(selectstart(), constant(true))]);\n };\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n events: events$c,\n exhibit: exhibit$5\n });\n\n var Unselecting = create$1({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n var renderPanelButton = function (spec, sharedBackstage) {\n return Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: function () {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Option.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onItemAction(value);\n }, 5, 'color', ItemResponse$1.CLOSE_ON_EXECUTE, function () {\n return false;\n }, sharedBackstage.providers), { movement: deriveMenuMovement(5, 'color') })));\n });\n },\n parts: { menu: part(false, 1, 'color') }\n });\n };\n\n var colorInputChangeEvent = generate$1('color-input-change');\n var colorSwatchChangeEvent = generate$1('color-swatch-change');\n var colorPickerCancelEvent = generate$1('color-picker-cancel');\n var renderColorInput = function (spec, sharedBackstage, colorInputBackstage) {\n var pField = FormField.parts().field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n onSetValue: function (c) {\n return Invalidating.run(c).get(function () {\n });\n },\n inputBehaviours: derive$1([\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: function (comp) {\n return parent(comp.element());\n },\n notify: {\n onValid: function (comp) {\n var val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: function (input) {\n var inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n var span = Element.fromTag('span');\n set$2(span, 'background-color', inputValue);\n var res = getRaw(span, 'background-color').fold(function () {\n return Result.error('blah');\n }, function (_) {\n return Result.value(inputValue);\n });\n return Future.pure(res);\n }\n }\n }\n })\n ]),\n selectOnFocus: false\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, sharedBackstage.providers);\n });\n var emitSwatchChange = function (colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, { value: value });\n };\n var onItemAction = function (value) {\n sharedBackstage.getSink().each(function (sink) {\n memColorButton.getOpt(sink).each(function (colorBit) {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(function (valueOpt) {\n valueOpt.fold(function () {\n return emit(colorBit, colorPickerCancelEvent);\n }, function (value) {\n emitSwatchChange(colorBit, value);\n Settings.addColor(value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n });\n };\n var memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: Option.some({\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n }),\n components: [],\n fetch: ColorSwatch.getFetch(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n onItemAction: onItemAction\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$2(colorButton.element(), 'background-color', se.event().color());\n });\n }),\n run(colorSwatchChangeEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Representing.setValue(field, se.event().value());\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }),\n run(colorPickerCancelEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n var hsvColour = function (hue, saturation, value) {\n return {\n hue: constant(hue),\n saturation: constant(saturation),\n value: constant(value)\n };\n };\n var fromRgb = function (rgbaColour) {\n var h = 0;\n var s = 0;\n var v = 0;\n var r = rgbaColour.red() / 255;\n var g = rgbaColour.green() / 255;\n var b = rgbaColour.blue() / 255;\n var minRGB = Math.min(r, Math.min(g, b));\n var maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n var d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n\n var calcHex = function (value) {\n var hue = (100 - value) / 100 * 360;\n var hsv = hsvColour(hue, 100, 100);\n var rgb = fromHsv(hsv);\n return fromRgba(rgb);\n };\n\n var fieldsUpdate = constant(generate$1('rgb-hex-update'));\n var sliderUpdate = constant(generate$1('slider-update'));\n var paletteUpdate = constant(generate$1('palette-update'));\n\n var platform = PlatformDetection$1.detect();\n var isTouch = platform.deviceType.isTouch();\n var labelPart = optional({\n schema: [strict$1('dom')],\n name: 'label'\n });\n var edgePart = function (name) {\n return optional({\n name: '' + name + '-edge',\n overrides: function (detail) {\n var action = detail.model.manager.edgeActions[name];\n return action.fold(function () {\n return {};\n }, function (a) {\n var touchEvents = derive([runActionExtra(touchstart(), a, [detail])]);\n var mouseEvents = derive([\n runActionExtra(mousedown(), a, [detail]),\n runActionExtra(mousemove(), function (l, det) {\n if (det.mouseIsDown.get()) {\n a(l, det);\n }\n }, [detail])\n ]);\n return { events: isTouch ? touchEvents : mouseEvents };\n });\n }\n });\n };\n var tlEdgePart = edgePart('top-left');\n var tedgePart = edgePart('top');\n var trEdgePart = edgePart('top-right');\n var redgePart = edgePart('right');\n var brEdgePart = edgePart('bottom-right');\n var bedgePart = edgePart('bottom');\n var blEdgePart = edgePart('bottom-left');\n var ledgePart = edgePart('left');\n var thumbPart = required({\n name: 'thumb',\n defaults: constant({ dom: { styles: { position: 'absolute' } } }),\n overrides: function (detail) {\n return {\n events: derive([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n var spectrumPart = required({\n schema: [state$1('mouseIsDown', function () {\n return Cell(false);\n })],\n name: 'spectrum',\n overrides: function (detail) {\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var setValueFrom = function (component, simulatedEvent) {\n return model.getValueFromEvent(simulatedEvent).map(function (value) {\n return model.setValueFrom(component, detail, value);\n });\n };\n var touchEvents = derive([\n run(touchstart(), setValueFrom),\n run(touchmove(), setValueFrom)\n ]);\n var mouseEvents = derive([\n run(mousedown(), setValueFrom),\n run(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ]);\n return {\n behaviours: derive$1(isTouch ? [] : [\n Keying.config({\n mode: 'special',\n onLeft: function (spectrum) {\n return model.onLeft(spectrum, detail);\n },\n onRight: function (spectrum) {\n return model.onRight(spectrum, detail);\n },\n onUp: function (spectrum) {\n return model.onUp(spectrum, detail);\n },\n onDown: function (spectrum) {\n return model.onDown(spectrum, detail);\n }\n }),\n Focusing.config({})\n ]),\n events: isTouch ? touchEvents : mouseEvents\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n var isTouch$1 = PlatformDetection$1.detect().deviceType.isTouch();\n var _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant(_sliderChangeEvent);\n var getEventSource = function (simulatedEvent) {\n var evt = simulatedEvent.event().raw();\n if (isTouch$1) {\n var touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Option.some(touchEvent.touches[0]).map(function (t) {\n return Position(t.clientX, t.clientY);\n }) : Option.none();\n } else {\n var mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Option.some(mouseEvent).map(function (me) {\n return Position(me.clientX, me.clientY);\n }) : Option.none();\n }\n };\n\n var reduceBy = function (value, min, max, step) {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n var increaseBy = function (value, min, max, step) {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n var capValue = function (value, min, max) {\n return Math.max(min, Math.min(max, value));\n };\n var snapValueOf = function (value, min, max, step, snapStart) {\n return snapStart.fold(function () {\n var initValue = value - min;\n var extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, function (start) {\n var remainder = (value - start) % step;\n var adjustment = Math.round(remainder / step);\n var rawSteps = Math.floor((value - start) / step);\n var maxSteps = Math.floor((max - start) / step);\n var numSteps = Math.min(maxSteps, rawSteps + adjustment);\n var r = start + numSteps * step;\n return Math.max(start, r);\n });\n };\n var findOffsetOf = function (value, min, max) {\n return Math.min(max, Math.max(value, min)) - min;\n };\n var findValueOf = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, step = args.step, snap = args.snap, snapStart = args.snapStart, rounded = args.rounded, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, minBound = args.minBound, maxBound = args.maxBound, screenRange = args.screenRange;\n var capMin = hasMinEdge ? min - 1 : min;\n var capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n var offset = findOffsetOf(value, minBound, maxBound);\n var newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n var findOffsetOfValue = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, maxBound = args.maxBound, maxOffset = args.maxOffset, centerMinEdge = args.centerMinEdge, centerMaxEdge = args.centerMaxEdge;\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n\n var t = 'top', r$1 = 'right', b = 'bottom', l = 'left';\n var minX = function (detail) {\n return detail.model.minX;\n };\n var minY = function (detail) {\n return detail.model.minY;\n };\n var min1X = function (detail) {\n return detail.model.minX - 1;\n };\n var min1Y = function (detail) {\n return detail.model.minY - 1;\n };\n var maxX = function (detail) {\n return detail.model.maxX;\n };\n var maxY = function (detail) {\n return detail.model.maxY;\n };\n var max1X = function (detail) {\n return detail.model.maxX + 1;\n };\n var max1Y = function (detail) {\n return detail.model.maxY + 1;\n };\n var range$2 = function (detail, max, min) {\n return max(detail) - min(detail);\n };\n var xRange = function (detail) {\n return range$2(detail, maxX, minX);\n };\n var yRange = function (detail) {\n return range$2(detail, maxY, minY);\n };\n var halfX = function (detail) {\n return xRange(detail) / 2;\n };\n var halfY = function (detail) {\n return yRange(detail) / 2;\n };\n var step = function (detail) {\n return detail.stepSize;\n };\n var snap = function (detail) {\n return detail.snapToGrid;\n };\n var snapStart = function (detail) {\n return detail.snapStart;\n };\n var rounded = function (detail) {\n return detail.rounded;\n };\n var hasEdge = function (detail, edgeName) {\n return detail[edgeName + '-edge'] !== undefined;\n };\n var hasLEdge = function (detail) {\n return hasEdge(detail, l);\n };\n var hasREdge = function (detail) {\n return hasEdge(detail, r$1);\n };\n var hasTEdge = function (detail) {\n return hasEdge(detail, t);\n };\n var hasBEdge = function (detail) {\n return hasEdge(detail, b);\n };\n var currentValue = function (detail) {\n return detail.model.value.get();\n };\n\n var xValue = function (x) {\n return { x: constant(x) };\n };\n var yValue = function (y) {\n return { y: constant(y) };\n };\n var xyValue = function (x, y) {\n return {\n x: constant(x),\n y: constant(y)\n };\n };\n var fireSliderChange = function (component, value) {\n emitWith(component, sliderChangeEvent(), { value: value });\n };\n var setToTLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n var setToTEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(min1Y(detail)));\n };\n var setToTEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n var setToTREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n var setToREdge = function (edge, detail) {\n fireSliderChange(edge, xValue(max1X(detail)));\n };\n var setToREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), halfY(detail)));\n };\n var setToBREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n var setToBEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(max1Y(detail)));\n };\n var setToBEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n var setToBLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n var setToLEdge = function (edge, detail) {\n fireSliderChange(edge, xValue(min1X(detail)));\n };\n var setToLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n var top = 'top', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n var getBounds = function (component) {\n return component.element().dom().getBoundingClientRect();\n };\n var getBoundsProperty = function (bounds, property) {\n return bounds[property];\n };\n var getMinXBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n var getMaxXBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n var getMinYBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n var getMaxYBounds = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n var getXScreenRange = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n var getYScreenRange = function (component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n var getCenterOffsetOf = function (componentMinEdge, componentMaxEdge, spectrumMinEdge) {\n return (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n };\n var getXCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, left);\n var componentMaxEdge = getBoundsProperty(componentBounds, right);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n var getYCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, top);\n var componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n var fireSliderChange$1 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue = function (x) {\n return { x: constant(x) };\n };\n var findValueOfOffset = function (spectrum, detail, left) {\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value);\n var sliderVal = sliderValue(xValue);\n fireSliderChange$1(spectrum, sliderVal);\n return xValue;\n };\n var setToMin = function (spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$1(spectrum, sliderValue(min));\n };\n var setToMax = function (spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$1(spectrum, sliderValue(max));\n };\n var moveBy = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = f(currentValue(detail).x(), minX(detail), maxX(detail), step(detail));\n fireSliderChange$1(spectrum, sliderValue(xValue));\n return Option.some(xValue);\n };\n var handleMovement = function (direction) {\n return function (spectrum, detail) {\n return moveBy(direction, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var getValueFromEvent = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.left();\n });\n };\n var findOffsetOfValue$1 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getXScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Option.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Option.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue(args);\n };\n var findPositionOfValue = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n var setPositionFromValue = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x(), edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$7(thumb.element()) / 2;\n set$2(thumb.element(), 'left', pos - thumbRadius + 'px');\n };\n var onLeft = handleMovement(-1);\n var onRight = handleMovement(1);\n var onUp = Option.none;\n var onDown = Option.none;\n var edgeActions = {\n 'top-left': Option.none(),\n 'top': Option.none(),\n 'top-right': Option.none(),\n 'right': Option.some(setToREdge),\n 'bottom-right': Option.none(),\n 'bottom': Option.none(),\n 'bottom-left': Option.none(),\n 'left': Option.some(setToLEdge)\n };\n\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n var fireSliderChange$2 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$1 = function (y) {\n return { y: constant(y) };\n };\n var findValueOfOffset$1 = function (spectrum, detail, top) {\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n var setValueFrom$1 = function (spectrum, detail, value) {\n var yValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$2(spectrum, sliderVal);\n return yValue;\n };\n var setToMin$1 = function (spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(min));\n };\n var setToMax$1 = function (spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(max));\n };\n var moveBy$1 = function (direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var yValue = f(currentValue(detail).y(), minY(detail), maxY(detail), step(detail));\n fireSliderChange$2(spectrum, sliderValue$1(yValue));\n return Option.some(yValue);\n };\n var handleMovement$1 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var getValueFromEvent$1 = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.top();\n });\n };\n var findOffsetOfValue$2 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getYScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Option.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Option.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue(args);\n };\n var findPositionOfValue$1 = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$2(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n var setPositionFromValue$1 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y(), edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$8(thumb.element()) / 2;\n set$2(thumb.element(), 'top', pos - thumbRadius + 'px');\n };\n var onLeft$1 = Option.none;\n var onRight$1 = Option.none;\n var onUp$1 = handleMovement$1(-1);\n var onDown$1 = handleMovement$1(1);\n var edgeActions$1 = {\n 'top-left': Option.none(),\n 'top': Option.some(setToTEdge),\n 'top-right': Option.none(),\n 'right': Option.none(),\n 'bottom-right': Option.none(),\n 'bottom': Option.some(setToBEdge),\n 'bottom-left': Option.none(),\n 'left': Option.none()\n };\n\n var VerticalModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n\n var fireSliderChange$3 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$2 = function (x, y) {\n return {\n x: constant(x),\n y: constant(y)\n };\n };\n var setValueFrom$2 = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value.left());\n var yValue = findValueOfOffset$1(spectrum, detail, value.top());\n var val = sliderValue$2(xValue, yValue);\n fireSliderChange$3(spectrum, val);\n return val;\n };\n var moveBy$2 = function (direction, isVerticalMovement, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = isVerticalMovement ? currentValue(detail).x() : f(currentValue(detail).x(), minX(detail), maxX(detail), step(detail));\n var yValue = !isVerticalMovement ? currentValue(detail).y() : f(currentValue(detail).y(), minY(detail), maxY(detail), step(detail));\n fireSliderChange$3(spectrum, sliderValue$2(xValue, yValue));\n return Option.some(xValue);\n };\n var handleMovement$2 = function (direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy$2(direction, isVerticalMovement, spectrum, detail).map(function () {\n return true;\n });\n };\n };\n var setToMin$2 = function (spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var setToMax$2 = function (spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var getValueFromEvent$2 = function (simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n var setPositionFromValue$2 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x(), edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y(), edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$7(thumb.element()) / 2;\n var thumbYRadius = get$8(thumb.element()) / 2;\n set$2(thumb.element(), 'left', xPos - thumbXRadius + 'px');\n set$2(thumb.element(), 'top', yPos - thumbYRadius + 'px');\n };\n var onLeft$2 = handleMovement$2(-1, false);\n var onRight$2 = handleMovement$2(1, false);\n var onUp$2 = handleMovement$2(-1, true);\n var onDown$2 = handleMovement$2(1, true);\n var edgeActions$2 = {\n 'top-left': Option.some(setToTLEdgeXY),\n 'top': Option.some(setToTEdgeXY),\n 'top-right': Option.some(setToTREdgeXY),\n 'right': Option.some(setToREdgeXY),\n 'bottom-right': Option.some(setToBREdgeXY),\n 'bottom': Option.some(setToBEdgeXY),\n 'bottom-left': Option.some(setToBLEdgeXY),\n 'left': Option.some(setToLEdgeXY)\n };\n\n var TwoDModel = /*#__PURE__*/Object.freeze({\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n getValueFromEvent: getValueFromEvent$2,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n\n var isTouch$2 = PlatformDetection$1.detect().deviceType.isTouch();\n var SliderSchema = [\n defaulted$1('stepSize', 1),\n defaulted$1('onChange', noop),\n defaulted$1('onChoose', noop),\n defaulted$1('onInit', noop),\n defaulted$1('onDragStart', noop),\n defaulted$1('onDragEnd', noop),\n defaulted$1('snapToGrid', false),\n defaulted$1('rounded', true),\n option('snapStart'),\n strictOf('model', choose$1('mode', {\n x: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minX);\n }),\n strict$1('getInitialValue'),\n output('manager', HorizontalModel)\n ],\n y: [\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minY);\n }),\n strict$1('getInitialValue'),\n output('manager', VerticalModel)\n ],\n xy: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell({\n x: constant(spec.mode.minX),\n y: constant(spec.mode.minY)\n });\n }),\n strict$1('getInitialValue'),\n output('manager', TwoDModel)\n ]\n })),\n field$1('sliderBehaviours', [\n Keying,\n Representing\n ])\n ].concat(!isTouch$2 ? [state$1('mouseIsDown', function () {\n return Cell(false);\n })] : []);\n\n var isTouch$3 = PlatformDetection$1.detect().deviceType.isTouch();\n var sketch = function (detail, components, _spec, _externals) {\n var getThumb = function (component) {\n return getPartOrDie(component, detail, 'thumb');\n };\n var getSpectrum = function (component) {\n return getPartOrDie(component, detail, 'spectrum');\n };\n var getLeftEdge = function (component) {\n return getPart(component, detail, 'left-edge');\n };\n var getRightEdge = function (component) {\n return getPart(component, detail, 'right-edge');\n };\n var getTopEdge = function (component) {\n return getPart(component, detail, 'top-edge');\n };\n var getBottomEdge = function (component) {\n return getPart(component, detail, 'bottom-edge');\n };\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var refresh = function (slider, thumb) {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge: getLeftEdge,\n getRightEdge: getRightEdge,\n getTopEdge: getTopEdge,\n getBottomEdge: getBottomEdge,\n getSpectrum: getSpectrum\n });\n };\n var changeValue = function (slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n detail.onChange(slider, thumb, newValue);\n return Option.some(true);\n };\n var resetToMin = function (slider) {\n model.setToMin(slider, detail);\n };\n var resetToMax = function (slider) {\n model.setToMax(slider, detail);\n };\n var touchEvents = [\n run(touchstart(), function (slider, _simulatedEvent) {\n detail.onDragStart(slider, getThumb(slider));\n }),\n run(touchend(), function (slider, _simulatedEvent) {\n detail.onDragEnd(slider, getThumb(slider));\n })\n ];\n var mouseEvents = [\n run(mousedown(), function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragStart(slider, getThumb(slider));\n detail.mouseIsDown.set(true);\n }),\n run(mouseup(), function (slider, _simulatedEvent) {\n detail.onDragEnd(slider, getThumb(slider));\n })\n ];\n var uiEventsArr = isTouch$3 ? touchEvents : mouseEvents;\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, flatten([\n !isTouch$3 ? [Keying.config({\n mode: 'special',\n focusIn: function (slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(constant(true));\n }\n })] : [],\n [\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_) {\n return modelDetail.value.get();\n }\n }\n }),\n Receiving.config({\n channels: {\n 'mouse.released': {\n onReceive: function (slider, se) {\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n }\n }\n }\n }\n })\n ]\n ])),\n events: derive([\n run(sliderChangeEvent(), function (slider, simulatedEvent) {\n changeValue(slider, simulatedEvent.event().value());\n }),\n runOnAttached(function (slider, simulatedEvent) {\n var getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n var spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n })\n ].concat(uiEventsArr)),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n changeValue: changeValue,\n refresh: refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n var Slider = composite$1({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch,\n apis: {\n resetToMin: function (apis, slider) {\n apis.resetToMin(slider);\n },\n resetToMax: function (apis, slider) {\n apis.resetToMax(slider);\n },\n refresh: function (apis, slider) {\n apis.refresh(slider);\n }\n }\n });\n\n var sliderFactory = function (translate, getClass) {\n var spectrum = Slider.parts().spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts().thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: { role: 'presentation' }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant({ y: constant(0) })\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: function (slider, _thumb, value) {\n emitWith(slider, sliderUpdate(), { value: value });\n }\n });\n };\n var HueSlider = { sliderFactory: sliderFactory };\n\n var owner$3 = 'form';\n var schema$h = [field$1('formBehaviours', [Representing])];\n var getPartName = function (name) {\n return '';\n };\n var sketch$1 = function (fSpec) {\n var parts = function () {\n var record = [];\n var field = function (name, config) {\n record.push(name);\n return generateOne(owner$3, getPartName(name), config);\n };\n return {\n field: field,\n record: function () {\n return record;\n }\n };\n }();\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite(owner$3, schema$h, fieldParts, make$4, spec);\n };\n var toResult$1 = function (o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n var make$4 = function (detail, components, spec) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n 'components': components,\n 'behaviours': augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: function (form) {\n var resPs = getAllParts(form, detail);\n return map$1(resPs, function (resPThunk, pName) {\n return resPThunk().bind(function (v) {\n var opt = Composing.getCurrent(v);\n return toResult$1(opt, 'missing current');\n }).map(Representing.getValue);\n });\n },\n setValue: function (form, values) {\n each$1(values, function (newValue, key) {\n getPart(form, detail, key).each(function (wrapper) {\n Composing.getCurrent(wrapper).each(function (field) {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n 'apis': {\n getField: function (form, key) {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n };\n };\n var Form = {\n getField: makeApi(function (apis, component, key) {\n return apis.getField(component, key);\n }),\n sketch: sketch$1\n };\n\n var validInput = generate$1('valid-input');\n var invalidInput = generate$1('invalid-input');\n var validatingInput = generate$1('validating-input');\n var translatePrefix = 'colorcustom.rgb.';\n var rgbFormFactory = function (translate, getClass, onValidHexx, onInvalidHexx) {\n var invalidation = function (label, isValid) {\n return Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: function (comp) {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: function (comp) {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: function (comp) {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: function (comp) {\n var value = Representing.getValue(comp);\n var res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n };\n var renderTextField = function (isValid, name, label, description, data) {\n var helptext = translate(translatePrefix + 'range');\n var pLabel = FormField.parts().label({\n dom: {\n tag: 'label',\n innerHtml: label,\n attributes: { 'aria-label': description }\n }\n });\n var pField = FormField.parts().field({\n data: data,\n factory: Input,\n inputAttributes: __assign({ type: 'text' }, name === 'hex' ? { 'aria-live': 'polite' } : {}),\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid),\n Tabstopping.config({})\n ]),\n onSetValue: function (input) {\n if (Invalidating.isInvalid(input)) {\n var run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n var comps = [\n pLabel,\n pField\n ];\n var concats = name !== 'hex' ? [FormField.parts()['aria-descriptor']({ text: helptext })] : [];\n var components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: components\n };\n };\n var copyRgbToHex = function (form, rgba) {\n var hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(function (hexField) {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value() });\n }\n });\n return hex;\n };\n var copyRgbToForm = function (form, rgb) {\n var red = rgb.red();\n var green = rgb.green();\n var blue = rgb.blue();\n Representing.setValue(form, {\n red: red,\n green: green,\n blue: blue\n });\n };\n var memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n var updatePreview = function (anyInSystem, hex) {\n memPreview.getOpt(anyInSystem).each(function (preview) {\n set$2(preview.element(), 'background-color', '#' + hex.value());\n });\n };\n var factory = function () {\n var state = {\n red: constant(Cell(Option.some(255))),\n green: constant(Cell(Option.some(255))),\n blue: constant(Cell(Option.some(255))),\n hex: constant(Cell(Option.some('ffffff')))\n };\n var copyHexToRgb = function (form, hex) {\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n var get = function (prop) {\n return state[prop]().get();\n };\n var set = function (prop, value) {\n state[prop]().set(value);\n };\n var getValueRgb = function () {\n return get('red').bind(function (red) {\n return get('green').bind(function (green) {\n return get('blue').map(function (blue) {\n return rgbaColour(red, green, blue, 1);\n });\n });\n });\n };\n var setValueRgb = function (rgb) {\n var red = rgb.red();\n var green = rgb.green();\n var blue = rgb.blue();\n set('red', Option.some(red));\n set('green', Option.some(green));\n set('blue', Option.some(blue));\n };\n var onInvalidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event();\n if (data.type() !== 'hex') {\n set(data.type(), Option.none());\n } else {\n onInvalidHexx(form);\n }\n };\n var onValidHex = function (form, value) {\n onValidHexx(form);\n var hex = hexColour(value);\n set('hex', Option.some(value));\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate(), { hex: hex });\n updatePreview(form, hex);\n };\n var onValidRgb = function (form, prop, value) {\n var val = parseInt(value, 10);\n set(prop, Option.some(val));\n getValueRgb().each(function (rgb) {\n var hex = copyRgbToHex(form, rgb);\n updatePreview(form, hex);\n });\n };\n var isHexInputEvent = function (data) {\n return data.type() === 'hex';\n };\n var onValidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event();\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value());\n } else {\n onValidRgb(form, data.type(), data.value());\n }\n };\n var formPartStrings = function (key) {\n return {\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n };\n };\n var redStrings = formPartStrings('red');\n var greenStrings = formPartStrings('green');\n var blueStrings = formPartStrings('blue');\n var hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run(validInput, onValidInput),\n run(invalidInput, onInvalidInput),\n run(validatingInput, onInvalidInput)\n ])\n ])\n };\n }), {\n apis: {\n updateHex: function (form, hex) {\n Representing.setValue(form, { hex: hex.value() });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n var rgbFormSketcher = single$2({\n factory: factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: function (apis, form, hex) {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n var RgbForm = { rgbFormFactory: rgbFormFactory };\n\n var paletteFactory = function (_translate, getClass) {\n var spectrumPart = Slider.parts().spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n var thumbPart = Slider.parts().thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: '
'\n }\n });\n var setColour = function (canvas, rgba) {\n var width = canvas.width, height = canvas.height;\n var ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n var grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n var grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n var setSliderColour = function (slider, rgba) {\n var canvas = slider.components()[0].element().dom();\n setColour(canvas, toString(rgba));\n };\n var factory = function (_detail) {\n var getInitialValue = constant({\n x: constant(0),\n y: constant(0)\n });\n var onChange = function (slider, _thumb, value) {\n emitWith(slider, paletteUpdate(), { value: value });\n };\n var onInit = function (_slider, _thumb, spectrum, _value) {\n setColour(spectrum.element().dom(), toString(redColour()));\n };\n var sliderBehaviours = derive$1([\n Composing.config({ find: Option.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue: getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange: onChange,\n onInit: onInit,\n sliderBehaviours: sliderBehaviours\n });\n };\n var saturationBrightnessPaletteSketcher = single$2({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setRgba: function (_apis, slider, rgba) {\n setSliderColour(slider, rgba);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n var SaturationBrightnessPalette = { paletteFactory: paletteFactory };\n\n var makeFactory = function (translate, getClass) {\n var factory = function (detail) {\n var rgbForm = RgbForm.rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = SaturationBrightnessPalette.paletteFactory(translate, getClass);\n var state = { paletteRgba: constant(Cell(redColour())) };\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n var updatePalette = function (anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n var rgba = fromHex(hex);\n state.paletteRgba().set(rgba);\n sbPalette.setRgba(palette, rgba);\n });\n };\n var updateFields = function (anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n var runUpdates = function (anyInSystem, hex, updates) {\n each(updates, function (update) {\n update(anyInSystem, hex);\n });\n };\n var paletteUpdates = function () {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event().value();\n var oldRgb = state.paletteRgba().get();\n var hsvColour$1 = fromRgb(oldRgb);\n var newHsvColour = hsvColour(hsvColour$1.hue(), value.x(), 100 - value.y());\n var rgb = fromHsv(newHsvColour);\n var nuHex = fromRgba(rgb);\n runUpdates(form, nuHex, updates);\n };\n };\n var sliderUpdates = function () {\n var updates = [\n updatePalette,\n updateFields\n ];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event().value();\n var hex = calcHex(value.y());\n runUpdates(form, hex, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n HueSlider.sliderFactory(translate, getClass),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run(paletteUpdate(), paletteUpdates()),\n run(sliderUpdate(), sliderUpdates())\n ]),\n Composing.config({\n find: function (comp) {\n return memRgb.getOpt(comp);\n }\n }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n var colourPickerSketcher = single$2({\n name: 'ColourPicker',\n configFields: [\n strict$1('dom'),\n defaulted$1('onValidHex', noop),\n defaulted$1('onInvalidHex', noop)\n ],\n factory: factory\n });\n return colourPickerSketcher;\n };\n var ColourPicker = { makeFactory: makeFactory };\n\n var self = function () {\n return Composing.config({ find: Option.some });\n };\n var memento = function (mem) {\n return Composing.config({ find: mem.getOpt });\n };\n var childAt = function (index) {\n return Composing.config({\n find: function (comp) {\n return child(comp.element(), index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOption();\n });\n }\n });\n };\n var ComposingConfigs = {\n self: self,\n memento: memento,\n childAt: childAt\n };\n\n var english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red component',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green component',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue component',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.sb.saturation': 'Saturation',\n 'colorcustom.sb.brightness': 'Brightness',\n 'colorcustom.sb.picker': 'Saturation and Brightness Picker',\n 'colorcustom.sb.palette': 'Saturation and Brightness Palette',\n 'colorcustom.sb.instructions': 'Use arrow keys to select saturation and brightness, on x and y axes',\n 'colorcustom.hue.hue': 'Hue',\n 'colorcustom.hue.slider': 'Hue Slider',\n 'colorcustom.hue.palette': 'Hue Palette',\n 'colorcustom.hue.instructions': 'Use arrow keys to select a hue',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n var getEnglishText = function (key) {\n return english[key];\n };\n var translate = function (key) {\n return getEnglishText(key);\n };\n var renderColorPicker = function (spec) {\n var getClass = function (key) {\n return 'tox-' + key;\n };\n var colourPickerFactory = ColourPicker.makeFactory(translate, getClass);\n var onValidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n var onInvalidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n var memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex: onValidHex,\n onInvalidHex: onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n var optHex = optRgbForm.bind(function (rgbForm) {\n var formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(function (hex) {\n return '#' + hex;\n }).getOr('');\n },\n setValue: function (comp, newValue) {\n var pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n var m = pattern.exec(newValue);\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(function () {\n domGlobals.console.log('Can not find form');\n }, function (rgbForm) {\n Representing.setValue(rgbForm, { hex: Option.from(m[1]).getOr('') });\n Form.getField(rgbForm, 'hex').each(function (hexField) {\n emit(hexField, input());\n });\n });\n }\n }\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var renderCustomEditor = function (spec) {\n var editorApi = Cell(Option.none());\n var memReplaced = record({ dom: { tag: spec.tag } });\n var initialValue = Cell(Option.none());\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('editor-foo-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n spec.init(ta.element().dom()).then(function (ea) {\n initialValue.get().each(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.set(Option.none());\n editorApi.set(Option.some(ea));\n });\n });\n })]),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return editorApi.get().fold(function () {\n return initialValue.get().getOr('');\n }, function (ed) {\n return ed.getValue();\n });\n },\n setValue: function (component, value) {\n editorApi.get().fold(function () {\n initialValue.set(Option.some(value));\n }, function (ed) {\n return ed.setValue(value);\n });\n }\n }\n }),\n ComposingConfigs.self()\n ]),\n components: [memReplaced.asSpec()]\n };\n };\n\n var processors = objOf([\n defaulted$1('preprocess', identity),\n defaulted$1('postprocess', identity)\n ]);\n var memento$1 = function (mem, rawProcessors) {\n var ps = asRawOrDie('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var other = mem.get(comp);\n var rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: function (comp, rawValue) {\n var newValue = ps.preprocess(rawValue);\n var other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n var withComp = function (optInitialValue, getter, setter) {\n return Representing.config(deepMerge({\n store: {\n mode: 'manual',\n getValue: getter,\n setValue: setter\n }\n }, optInitialValue.map(function (initialValue) {\n return { store: { initialValue: initialValue } };\n }).getOr({})));\n };\n var withElement = function (initialValue, getter, setter) {\n return withComp(initialValue, function (c) {\n return getter(c.element());\n }, function (c, v) {\n return setter(c.element(), v);\n });\n };\n var domValue = function (optInitialValue) {\n return withElement(optInitialValue, get$5, set$3);\n };\n var domHtml = function (optInitialValue) {\n return withElement(optInitialValue, get$1, set);\n };\n var memory$1 = function (initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n var RepresentingConfigs = {\n memento: memento$1,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory$1\n };\n\n var extensionsAccepted = '.jpg,.jpeg,.png,.gif';\n var filterByExtension = function (files) {\n var re = new RegExp('(' + extensionsAccepted.split(/\\s*,\\s*/).join('|') + ')$', 'i');\n return filter(from$1(files), function (file) {\n return re.test(file.name);\n });\n };\n var renderDropZone = function (spec, providersBackstage) {\n var stopper = function (_, se) {\n se.stop();\n };\n var sequence = function (actions) {\n return function (comp, se) {\n each(actions, function (a) {\n a(comp, se);\n });\n };\n };\n var onDrop = function (comp, se) {\n if (!Disabling.isDisabled(comp)) {\n var transferEvent = se.event().raw();\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n var onSelect = function (component, simulatedEvent) {\n var files = simulatedEvent.event().raw().target.files;\n handleFiles(component, files);\n };\n var handleFiles = function (component, files) {\n Representing.setValue(component, filterByExtension(files));\n emitWith(component, formChangeEvent, { name: spec.name });\n };\n var memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [cutter(tapOrClick())])])\n });\n var renderField = function (s) {\n return {\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n RepresentingConfigs.memory([]),\n ComposingConfigs.self(),\n Disabling.config({}),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragover', stopper),\n run('drop', sequence([\n stopper,\n onDrop\n ])),\n run(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: {\n tag: 'p',\n innerHtml: providersBackstage.translate('Drop an image here')\n }\n },\n Button.sketch({\n dom: {\n tag: 'button',\n innerHtml: providersBackstage.translate('Browse for an image'),\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [memInput.asSpec()],\n action: function (comp) {\n var inputComp = memInput.get(comp);\n inputComp.element().dom().click();\n },\n buttonBehaviours: derive$1([Tabstopping.config({})])\n })\n ]\n }]\n };\n };\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var pField = FormField.parts().field({ factory: { sketch: renderField } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched']);\n };\n\n var renderGrid = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n 'tox-form__grid--' + spec.columns + 'col'\n ]\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var beforeObject = generate$1('alloy-fake-before-tabstop');\n var afterObject = generate$1('alloy-fake-after-tabstop');\n var craftWithClasses = function (classes) {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes: classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n var craft = function (spec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n var triggerTab = function (placeholder, shiftKey) {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey: shiftKey\n }\n });\n };\n var onFocus$1 = function (container, targetComp) {\n var target = targetComp.element();\n if (has$2(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has$2(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n var isPseudoStop = function (element) {\n return closest$4(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), constant(false));\n };\n var NavigableObject = {\n isPseudoStop: isPseudoStop,\n onFocus: onFocus$1,\n craft: craft\n };\n\n var platformNeedsSandboxing = !(PlatformDetection$1.detect().browser.isIE() || PlatformDetection$1.detect().browser.isEdge());\n var getDynamicSource = function (isSandbox) {\n var cachedValue = Cell('');\n return {\n getValue: function (frameComponent) {\n return cachedValue.get();\n },\n setValue: function (frameComponent, html) {\n if (!isSandbox) {\n set$1(frameComponent.element(), 'src', 'javascript:\\'\\'');\n var doc = frameComponent.element().dom().contentWindow.document;\n doc.open();\n doc.write(html);\n doc.close();\n } else {\n set$1(frameComponent.element(), 'src', 'data:text/html;charset=utf-8,' + encodeURIComponent(html));\n }\n cachedValue.set(html);\n }\n };\n };\n var renderIFrame = function (spec, providersBackstage) {\n var isSandbox = platformNeedsSandboxing && spec.sandboxed;\n var attributes = __assign({}, spec.label.map(function (title) {\n return { title: title };\n }).getOr({}), isSandbox ? { sandbox: 'allow-scripts allow-same-origin' } : {});\n var sourcing = getDynamicSource(isSandbox);\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var factory = function (newSpec) {\n return NavigableObject.craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes: attributes\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n RepresentingConfigs.withComp(Option.none(), sourcing.getValue, sourcing.setValue)\n ])\n });\n };\n var pField = FormField.parts().field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched']);\n };\n\n function create$4(width, height) {\n return resize(domGlobals.document.createElement('canvas'), width, height);\n }\n function clone$1(canvas) {\n var tCanvas, ctx;\n tCanvas = create$4(canvas.width, canvas.height);\n ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n }\n function get2dContext(canvas) {\n return canvas.getContext('2d');\n }\n function get3dContext(canvas) {\n var gl = null;\n try {\n gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n } catch (e) {\n }\n if (!gl) {\n gl = null;\n }\n return gl;\n }\n function resize(canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n var Canvas = {\n create: create$4,\n clone: clone$1,\n resize: resize,\n get2dContext: get2dContext,\n get3dContext: get3dContext\n };\n\n function getWidth(image) {\n return image.naturalWidth || image.width;\n }\n function getHeight(image) {\n return image.naturalHeight || image.height;\n }\n var ImageSize = {\n getWidth: getWidth,\n getHeight: getHeight\n };\n\n var promise = function () {\n var Promise = function (fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = null;\n this._value = null;\n this._deferreds = [];\n doResolve(fn, bind(resolve, this), bind(reject, this));\n };\n var asap = Promise.immediateFn || typeof window.setImmediate === 'function' && window.setImmediate || function (fn) {\n domGlobals.setTimeout(fn, 1);\n };\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n var isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n };\n function handle(deferred) {\n var me = this;\n if (this._state === null) {\n this._deferreds.push(deferred);\n return;\n }\n asap(function () {\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (me._state ? deferred.resolve : deferred.reject)(me._value);\n return;\n }\n var ret;\n try {\n ret = cb(me._value);\n } catch (e) {\n deferred.reject(e);\n return;\n }\n deferred.resolve(ret);\n });\n }\n function resolve(newValue) {\n try {\n if (newValue === this)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (typeof then === 'function') {\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n return;\n }\n }\n this._state = true;\n this._value = newValue;\n finale.call(this);\n } catch (e) {\n reject.call(this, e);\n }\n }\n function reject(newValue) {\n this._state = false;\n this._value = newValue;\n finale.call(this);\n }\n function finale() {\n for (var i = 0, len = this._deferreds.length; i < len; i++) {\n handle.call(this, this._deferreds[i]);\n }\n this._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, resolve, reject) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n }\n function doResolve(fn, onFulfilled, onRejected) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n onFulfilled(value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n onRejected(reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n onRejected(ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var me = this;\n return new Promise(function (resolve, reject) {\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n });\n };\n Promise.all = function () {\n var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n return new Promise(function (resolve, reject) {\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n return Promise;\n };\n var Promise$1 = window.Promise ? window.Promise : promise();\n\n function Blob (parts, properties) {\n var f = Global$1.getOrDie('Blob');\n return new f(parts, properties);\n }\n\n function FileReader () {\n var f = Global$1.getOrDie('FileReader');\n return new f();\n }\n\n function Uint8Array (arr) {\n var f = Global$1.getOrDie('Uint8Array');\n return new f(arr);\n }\n\n var requestAnimationFrame = function (callback) {\n var f = Global$1.getOrDie('requestAnimationFrame');\n f(callback);\n };\n var atob = function (base64) {\n var f = Global$1.getOrDie('atob');\n return f(base64);\n };\n var Window = {\n atob: atob,\n requestAnimationFrame: requestAnimationFrame\n };\n\n function imageToBlob(image) {\n var src = image.src;\n if (src.indexOf('data:') === 0) {\n return dataUriToBlob(src);\n }\n return anyUriToBlob(src);\n }\n function blobToImage(blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = domGlobals.URL.createObjectURL(blob);\n var image = new domGlobals.Image();\n var removeListeners = function () {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n function loaded() {\n removeListeners();\n resolve(image);\n }\n function error() {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n }\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n if (image.complete) {\n loaded();\n }\n });\n }\n function anyUriToBlob(url) {\n return new Promise$1(function (resolve, reject) {\n var xhr = new domGlobals.XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status == 200) {\n resolve(this.response);\n }\n };\n xhr.onerror = function () {\n var _this = this;\n var corsError = function () {\n var obj = new Error('No access to download image');\n obj.code = 18;\n obj.name = 'SecurityError';\n return obj;\n };\n var genericError = function () {\n return new Error('Error ' + _this.status + ' downloading image');\n };\n reject(this.status === 0 ? corsError() : genericError());\n };\n xhr.send();\n });\n }\n function dataUriToBlobSync(uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n if (!matches)\n return Option.none();\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = Window.atob(base64);\n var bytesLength = byteCharacters.length;\n var slicesCount = Math.ceil(bytesLength / sliceSize);\n var byteArrays = new Array(slicesCount);\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n var begin = sliceIndex * sliceSize;\n var end = Math.min(begin + sliceSize, bytesLength);\n var bytes = new Array(end - begin);\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n byteArrays[sliceIndex] = Uint8Array(bytes);\n }\n return Option.some(Blob(byteArrays, { type: mimetype }));\n }\n function dataUriToBlob(uri) {\n return new Promise$1(function (resolve, reject) {\n dataUriToBlobSync(uri).fold(function () {\n reject('uri is not base64: ' + uri);\n }, resolve);\n });\n }\n function uriToBlob(url) {\n if (url.indexOf('blob:') === 0) {\n return anyUriToBlob(url);\n }\n if (url.indexOf('data:') === 0) {\n return dataUriToBlob(url);\n }\n return null;\n }\n function canvasToBlob(canvas, type, quality) {\n type = type || 'image/png';\n if (domGlobals.HTMLCanvasElement.prototype.toBlob) {\n return new Promise$1(function (resolve) {\n canvas.toBlob(function (blob) {\n resolve(blob);\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n }\n function canvasToDataURL(getCanvas, type, quality) {\n type = type || 'image/png';\n return getCanvas.then(function (canvas) {\n return canvas.toDataURL(type, quality);\n });\n }\n function blobToCanvas(blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var context, canvas;\n canvas = Canvas.create(ImageSize.getWidth(image), ImageSize.getHeight(image));\n context = Canvas.get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n }\n function blobToDataUri(blob) {\n return new Promise$1(function (resolve) {\n var reader = FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n }\n function blobToArrayBuffer(blob) {\n return new Promise$1(function (resolve) {\n var reader = FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsArrayBuffer(blob);\n });\n }\n function blobToBase64(blob) {\n return blobToDataUri(blob).then(function (dataUri) {\n return dataUri.split(',')[1];\n });\n }\n function revokeImageUrl(image) {\n domGlobals.URL.revokeObjectURL(image.src);\n }\n var Conversions = {\n blobToImage: blobToImage,\n imageToBlob: imageToBlob,\n blobToArrayBuffer: blobToArrayBuffer,\n blobToDataUri: blobToDataUri,\n blobToBase64: blobToBase64,\n dataUriToBlobSync: dataUriToBlobSync,\n canvasToBlob: canvasToBlob,\n canvasToDataURL: canvasToDataURL,\n blobToCanvas: blobToCanvas,\n uriToBlob: uriToBlob\n };\n\n function create$5(getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant(initialType);\n function toBlob() {\n return Promise$1.resolve(blob);\n }\n function toDataURL() {\n return uri;\n }\n function toBase64() {\n return uri.split(',')[1];\n }\n function toAdjustedBlob(type, quality) {\n return getCanvas.then(function (canvas) {\n return Conversions.canvasToBlob(canvas, type, quality);\n });\n }\n function toAdjustedDataURL(type, quality) {\n return getCanvas.then(function (canvas) {\n return Conversions.canvasToDataURL(canvas, type, quality);\n });\n }\n function toAdjustedBase64(type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n }\n function toCanvas() {\n return getCanvas.then(Canvas.clone);\n }\n return {\n getType: getType,\n toBlob: toBlob,\n toDataURL: toDataURL,\n toBase64: toBase64,\n toAdjustedBlob: toAdjustedBlob,\n toAdjustedDataURL: toAdjustedDataURL,\n toAdjustedBase64: toAdjustedBase64,\n toCanvas: toCanvas\n };\n }\n function fromBlob(blob) {\n return Conversions.blobToDataUri(blob).then(function (uri) {\n return create$5(Conversions.blobToCanvas(blob), blob, uri);\n });\n }\n function fromCanvas(canvas, type) {\n return Conversions.canvasToBlob(canvas, type).then(function (blob) {\n return create$5(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n }\n function fromImage(image) {\n return Conversions.imageToBlob(image).then(function (blob) {\n return fromBlob(blob);\n });\n }\n var fromBlobAndUrlSync = function (blob, url) {\n return create$5(Conversions.blobToCanvas(blob), blob, url);\n };\n var ImageResult = {\n fromBlob: fromBlob,\n fromCanvas: fromCanvas,\n fromImage: fromImage,\n fromBlobAndUrlSync: fromBlobAndUrlSync\n };\n\n var blobToImageResult = function (blob) {\n return ImageResult.fromBlob(blob);\n };\n var fromBlobAndUrlSync$1 = function (blob, uri) {\n return ImageResult.fromBlobAndUrlSync(blob, uri);\n };\n var imageToImageResult = function (image) {\n return ImageResult.fromImage(image);\n };\n var imageResultToBlob = function (ir, type, quality) {\n if (type === undefined && quality === undefined) {\n return imageResultToOriginalBlob(ir);\n } else {\n return ir.toAdjustedBlob(type, quality);\n }\n };\n var imageResultToOriginalBlob = function (ir) {\n return ir.toBlob();\n };\n var imageResultToDataURL = function (ir) {\n return ir.toDataURL();\n };\n var ResultConversions = {\n blobToImageResult: blobToImageResult,\n fromBlobAndUrlSync: fromBlobAndUrlSync$1,\n imageToImageResult: imageToImageResult,\n imageResultToBlob: imageResultToBlob,\n imageResultToOriginalBlob: imageResultToOriginalBlob,\n imageResultToDataURL: imageResultToDataURL\n };\n\n function clamp(value, min, max) {\n value = parseFloat(value);\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\n }\n function identity$1() {\n return [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n }\n var DELTA_INDEX = [\n 0,\n 0.01,\n 0.02,\n 0.04,\n 0.05,\n 0.06,\n 0.07,\n 0.08,\n 0.1,\n 0.11,\n 0.12,\n 0.14,\n 0.15,\n 0.16,\n 0.17,\n 0.18,\n 0.2,\n 0.21,\n 0.22,\n 0.24,\n 0.25,\n 0.27,\n 0.28,\n 0.3,\n 0.32,\n 0.34,\n 0.36,\n 0.38,\n 0.4,\n 0.42,\n 0.44,\n 0.46,\n 0.48,\n 0.5,\n 0.53,\n 0.56,\n 0.59,\n 0.62,\n 0.65,\n 0.68,\n 0.71,\n 0.74,\n 0.77,\n 0.8,\n 0.83,\n 0.86,\n 0.89,\n 0.92,\n 0.95,\n 0.98,\n 1,\n 1.06,\n 1.12,\n 1.18,\n 1.24,\n 1.3,\n 1.36,\n 1.42,\n 1.48,\n 1.54,\n 1.6,\n 1.66,\n 1.72,\n 1.78,\n 1.84,\n 1.9,\n 1.96,\n 2,\n 2.12,\n 2.25,\n 2.37,\n 2.5,\n 2.62,\n 2.75,\n 2.87,\n 3,\n 3.2,\n 3.4,\n 3.6,\n 3.8,\n 4,\n 4.3,\n 4.7,\n 4.9,\n 5,\n 5.5,\n 6,\n 6.5,\n 6.8,\n 7,\n 7.3,\n 7.5,\n 7.8,\n 8,\n 8.4,\n 8.7,\n 9,\n 9.4,\n 9.6,\n 9.8,\n 10\n ];\n function multiply(matrix1, matrix2) {\n var i, j, k, val, col = [], out = new Array(10);\n for (i = 0; i < 5; i++) {\n for (j = 0; j < 5; j++) {\n col[j] = matrix2[j + i * 5];\n }\n for (j = 0; j < 5; j++) {\n val = 0;\n for (k = 0; k < 5; k++) {\n val += matrix1[j + k * 5] * col[k];\n }\n out[j + i * 5] = val;\n }\n }\n return out;\n }\n function adjust(matrix, adjustValue) {\n adjustValue = clamp(adjustValue, 0, 1);\n return matrix.map(function (value, index) {\n if (index % 6 === 0) {\n value = 1 - (1 - value) * adjustValue;\n } else {\n value *= adjustValue;\n }\n return clamp(value, 0, 1);\n });\n }\n function adjustContrast(matrix, value) {\n var x;\n value = clamp(value, -1, 1);\n value *= 100;\n if (value < 0) {\n x = 127 + value / 100 * 127;\n } else {\n x = value % 1;\n if (x === 0) {\n x = DELTA_INDEX[value];\n } else {\n x = DELTA_INDEX[Math.floor(value)] * (1 - x) + DELTA_INDEX[Math.floor(value) + 1] * x;\n }\n x = x * 127 + 127;\n }\n return multiply(matrix, [\n x / 127,\n 0,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n x / 127,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n x / 127,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustSaturation(matrix, value) {\n var x, lumR, lumG, lumB;\n value = clamp(value, -1, 1);\n x = 1 + (value > 0 ? 3 * value : value);\n lumR = 0.3086;\n lumG = 0.6094;\n lumB = 0.082;\n return multiply(matrix, [\n lumR * (1 - x) + x,\n lumG * (1 - x),\n lumB * (1 - x),\n 0,\n 0,\n lumR * (1 - x),\n lumG * (1 - x) + x,\n lumB * (1 - x),\n 0,\n 0,\n lumR * (1 - x),\n lumG * (1 - x),\n lumB * (1 - x) + x,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustHue(matrix, angle) {\n var cosVal, sinVal, lumR, lumG, lumB;\n angle = clamp(angle, -180, 180) / 180 * Math.PI;\n cosVal = Math.cos(angle);\n sinVal = Math.sin(angle);\n lumR = 0.213;\n lumG = 0.715;\n lumB = 0.072;\n return multiply(matrix, [\n lumR + cosVal * (1 - lumR) + sinVal * -lumR,\n lumG + cosVal * -lumG + sinVal * -lumG,\n lumB + cosVal * -lumB + sinVal * (1 - lumB),\n 0,\n 0,\n lumR + cosVal * -lumR + sinVal * 0.143,\n lumG + cosVal * (1 - lumG) + sinVal * 0.14,\n lumB + cosVal * -lumB + sinVal * -0.283,\n 0,\n 0,\n lumR + cosVal * -lumR + sinVal * -(1 - lumR),\n lumG + cosVal * -lumG + sinVal * lumG,\n lumB + cosVal * (1 - lumB) + sinVal * lumB,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustBrightness(matrix, value) {\n value = clamp(255 * value, -255, 255);\n return multiply(matrix, [\n 1,\n 0,\n 0,\n 0,\n value,\n 0,\n 1,\n 0,\n 0,\n value,\n 0,\n 0,\n 1,\n 0,\n value,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustColors(matrix, adjustR, adjustG, adjustB) {\n adjustR = clamp(adjustR, 0, 2);\n adjustG = clamp(adjustG, 0, 2);\n adjustB = clamp(adjustB, 0, 2);\n return multiply(matrix, [\n adjustR,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustG,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustB,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n function adjustSepia(matrix, value) {\n value = clamp(value, 0, 1);\n return multiply(matrix, adjust([\n 0.393,\n 0.769,\n 0.189,\n 0,\n 0,\n 0.349,\n 0.686,\n 0.168,\n 0,\n 0,\n 0.272,\n 0.534,\n 0.131,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ], value));\n }\n function adjustGrayscale(matrix, value) {\n value = clamp(value, 0, 1);\n return multiply(matrix, adjust([\n 0.33,\n 0.34,\n 0.33,\n 0,\n 0,\n 0.33,\n 0.34,\n 0.33,\n 0,\n 0,\n 0.33,\n 0.34,\n 0.33,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ], value));\n }\n var ColorMatrix = {\n identity: identity$1,\n adjust: adjust,\n multiply: multiply,\n adjustContrast: adjustContrast,\n adjustBrightness: adjustBrightness,\n adjustSaturation: adjustSaturation,\n adjustHue: adjustHue,\n adjustColors: adjustColors,\n adjustSepia: adjustSepia,\n adjustGrayscale: adjustGrayscale\n };\n\n function colorFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n }\n function applyColorFilter(canvas, type, matrix) {\n var context = Canvas.get2dContext(canvas);\n var pixels;\n function applyMatrix(pixels, m) {\n var d = pixels.data, r, g, b, a, i, m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], m4 = m[4], m5 = m[5], m6 = m[6], m7 = m[7], m8 = m[8], m9 = m[9], m10 = m[10], m11 = m[11], m12 = m[12], m13 = m[13], m14 = m[14], m15 = m[15], m16 = m[16], m17 = m[17], m18 = m[18], m19 = m[19];\n for (i = 0; i < d.length; i += 4) {\n r = d[i];\n g = d[i + 1];\n b = d[i + 2];\n a = d[i + 3];\n d[i] = r * m0 + g * m1 + b * m2 + a * m3 + m4;\n d[i + 1] = r * m5 + g * m6 + b * m7 + a * m8 + m9;\n d[i + 2] = r * m10 + g * m11 + b * m12 + a * m13 + m14;\n d[i + 3] = r * m15 + g * m16 + b * m17 + a * m18 + m19;\n }\n return pixels;\n }\n pixels = applyMatrix(context.getImageData(0, 0, canvas.width, canvas.height), matrix);\n context.putImageData(pixels, 0, 0);\n return ImageResult.fromCanvas(canvas, type);\n }\n function convoluteFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n }\n function applyConvoluteFilter(canvas, type, matrix) {\n var context = Canvas.get2dContext(canvas);\n var pixelsIn, pixelsOut;\n function applyMatrix(pixelsIn, pixelsOut, matrix) {\n var rgba, drgba, side, halfSide, x, y, r, g, b, cx, cy, scx, scy, offset, wt, w, h;\n function clamp(value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\n }\n side = Math.round(Math.sqrt(matrix.length));\n halfSide = Math.floor(side / 2);\n rgba = pixelsIn.data;\n drgba = pixelsOut.data;\n w = pixelsIn.width;\n h = pixelsIn.height;\n for (y = 0; y < h; y++) {\n for (x = 0; x < w; x++) {\n r = g = b = 0;\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scx = clamp(x + cx - halfSide, 0, w - 1);\n scy = clamp(y + cy - halfSide, 0, h - 1);\n offset = (scy * w + scx) * 4;\n wt = matrix[cy * side + cx];\n r += rgba[offset] * wt;\n g += rgba[offset + 1] * wt;\n b += rgba[offset + 2] * wt;\n }\n }\n offset = (y * w + x) * 4;\n drgba[offset] = clamp(r, 0, 255);\n drgba[offset + 1] = clamp(g, 0, 255);\n drgba[offset + 2] = clamp(b, 0, 255);\n }\n }\n return pixelsOut;\n }\n pixelsIn = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = applyMatrix(pixelsIn, pixelsOut, matrix);\n context.putImageData(pixelsOut, 0, 0);\n return ImageResult.fromCanvas(canvas, type);\n }\n function functionColorFilter(colorFn) {\n var filterImpl = function (canvas, type, value) {\n var context = Canvas.get2dContext(canvas);\n var pixels, i, lookup = new Array(256);\n function applyLookup(pixels, lookup) {\n var d = pixels.data, i;\n for (i = 0; i < d.length; i += 4) {\n d[i] = lookup[d[i]];\n d[i + 1] = lookup[d[i + 1]];\n d[i + 2] = lookup[d[i + 2]];\n }\n return pixels;\n }\n for (i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\n }\n pixels = applyLookup(context.getImageData(0, 0, canvas.width, canvas.height), lookup);\n context.putImageData(pixels, 0, 0);\n return ImageResult.fromCanvas(canvas, type);\n };\n return function (ir, value) {\n return ir.toCanvas().then(function (canvas) {\n return filterImpl(canvas, ir.getType(), value);\n });\n };\n }\n function complexAdjustableColorFilter(matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(ColorMatrix.identity(), adjust));\n };\n }\n function basicColorFilter(matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n }\n function basicConvolutionFilter(kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n }\n var Filters = {\n invert: basicColorFilter([\n -1,\n 0,\n 0,\n 0,\n 255,\n 0,\n -1,\n 0,\n 0,\n 255,\n 0,\n 0,\n -1,\n 0,\n 255,\n 0,\n 0,\n 0,\n 1,\n 0\n ]),\n brightness: complexAdjustableColorFilter(ColorMatrix.adjustBrightness),\n hue: complexAdjustableColorFilter(ColorMatrix.adjustHue),\n saturate: complexAdjustableColorFilter(ColorMatrix.adjustSaturation),\n contrast: complexAdjustableColorFilter(ColorMatrix.adjustContrast),\n grayscale: complexAdjustableColorFilter(ColorMatrix.adjustGrayscale),\n sepia: complexAdjustableColorFilter(ColorMatrix.adjustSepia),\n colorize: function (ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, ColorMatrix.adjustColors(ColorMatrix.identity(), adjustR, adjustG, adjustB));\n },\n sharpen: basicConvolutionFilter([\n 0,\n -1,\n 0,\n -1,\n 5,\n -1,\n 0,\n -1,\n 0\n ]),\n emboss: basicConvolutionFilter([\n -2,\n -1,\n 0,\n -1,\n 1,\n 1,\n 0,\n 1,\n 2\n ]),\n gamma: functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n }),\n exposure: functionColorFilter(function (color, value) {\n return 255 * (1 - Math.exp(-(color / 255) * value));\n }),\n colorFilter: colorFilter,\n convoluteFilter: convoluteFilter\n };\n\n function scale(image, dW, dH) {\n var sW = ImageSize.getWidth(image);\n var sH = ImageSize.getHeight(image);\n var wRatio = dW / sW;\n var hRatio = dH / sH;\n var scaleCapped = false;\n if (wRatio < 0.5 || wRatio > 2) {\n wRatio = wRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n if (hRatio < 0.5 || hRatio > 2) {\n hRatio = hRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n var scaled = _scale(image, wRatio, hRatio);\n return !scaleCapped ? scaled : scaled.then(function (tCanvas) {\n return scale(tCanvas, dW, dH);\n });\n }\n function _scale(image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = ImageSize.getWidth(image);\n var sH = ImageSize.getHeight(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = Canvas.create(dW, dH);\n var context = Canvas.get2dContext(canvas);\n context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);\n resolve(canvas);\n });\n }\n var ImageResizerCanvas = { scale: scale };\n\n function rotate(ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n }\n function applyRotate(image, type, angle) {\n var canvas = Canvas.create(image.width, image.height);\n var context = Canvas.get2dContext(canvas);\n var translateX = 0, translateY = 0;\n angle = angle < 0 ? 360 + angle : angle;\n if (angle == 90 || angle == 270) {\n Canvas.resize(canvas, canvas.height, canvas.width);\n }\n if (angle == 90 || angle == 180) {\n translateX = canvas.width;\n }\n if (angle == 270 || angle == 180) {\n translateY = canvas.height;\n }\n context.translate(translateX, translateY);\n context.rotate(angle * Math.PI / 180);\n context.drawImage(image, 0, 0);\n return ImageResult.fromCanvas(canvas, type);\n }\n function flip(ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n }\n function applyFlip(image, type, axis) {\n var canvas = Canvas.create(image.width, image.height);\n var context = Canvas.get2dContext(canvas);\n if (axis == 'v') {\n context.scale(1, -1);\n context.drawImage(image, 0, -canvas.height);\n } else {\n context.scale(-1, 1);\n context.drawImage(image, -canvas.width, 0);\n }\n return ImageResult.fromCanvas(canvas, type);\n }\n function crop(ir, x, y, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return applyCrop(canvas, ir.getType(), x, y, w, h);\n });\n }\n function applyCrop(image, type, x, y, w, h) {\n var canvas = Canvas.create(w, h);\n var context = Canvas.get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return ImageResult.fromCanvas(canvas, type);\n }\n function resize$1(ir, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return ImageResizerCanvas.scale(canvas, w, h).then(function (newCanvas) {\n return ImageResult.fromCanvas(newCanvas, ir.getType());\n });\n });\n }\n var ImageTools = {\n rotate: rotate,\n flip: flip,\n crop: crop,\n resize: resize$1\n };\n\n var BinaryReader = function () {\n function BinaryReader(ar) {\n this.littleEndian = false;\n this._dv = new DataView(ar);\n }\n BinaryReader.prototype.readByteAt = function (idx) {\n return this._dv.getUint8(idx);\n };\n BinaryReader.prototype.read = function (idx, size) {\n if (idx + size > this.length()) {\n return null;\n }\n var mv = this.littleEndian ? 0 : -8 * (size - 1);\n for (var i = 0, sum = 0; i < size; i++) {\n sum |= this.readByteAt(idx + i) << Math.abs(mv + i * 8);\n }\n return sum;\n };\n BinaryReader.prototype.BYTE = function (idx) {\n return this.read(idx, 1);\n };\n BinaryReader.prototype.SHORT = function (idx) {\n return this.read(idx, 2);\n };\n BinaryReader.prototype.LONG = function (idx) {\n return this.read(idx, 4);\n };\n BinaryReader.prototype.SLONG = function (idx) {\n var num = this.read(idx, 4);\n return num > 2147483647 ? num - 4294967296 : num;\n };\n BinaryReader.prototype.CHAR = function (idx) {\n return String.fromCharCode(this.read(idx, 1));\n };\n BinaryReader.prototype.STRING = function (idx, count) {\n return this.asArray('CHAR', idx, count).join('');\n };\n BinaryReader.prototype.SEGMENT = function (idx, size) {\n var ar = this._dv.buffer;\n switch (arguments.length) {\n case 2:\n return ar.slice(idx, idx + size);\n case 1:\n return ar.slice(idx);\n default:\n return ar;\n }\n };\n BinaryReader.prototype.asArray = function (type, idx, count) {\n var values = [];\n for (var i = 0; i < count; i++) {\n values[i] = this[type](idx + i);\n }\n return values;\n };\n BinaryReader.prototype.length = function () {\n return this._dv ? this._dv.byteLength : 0;\n };\n return BinaryReader;\n }();\n\n var tags = {\n tiff: {\n 274: 'Orientation',\n 270: 'ImageDescription',\n 271: 'Make',\n 272: 'Model',\n 305: 'Software',\n 34665: 'ExifIFDPointer',\n 34853: 'GPSInfoIFDPointer'\n },\n exif: {\n 36864: 'ExifVersion',\n 40961: 'ColorSpace',\n 40962: 'PixelXDimension',\n 40963: 'PixelYDimension',\n 36867: 'DateTimeOriginal',\n 33434: 'ExposureTime',\n 33437: 'FNumber',\n 34855: 'ISOSpeedRatings',\n 37377: 'ShutterSpeedValue',\n 37378: 'ApertureValue',\n 37383: 'MeteringMode',\n 37384: 'LightSource',\n 37385: 'Flash',\n 37386: 'FocalLength',\n 41986: 'ExposureMode',\n 41987: 'WhiteBalance',\n 41990: 'SceneCaptureType',\n 41988: 'DigitalZoomRatio',\n 41992: 'Contrast',\n 41993: 'Saturation',\n 41994: 'Sharpness'\n },\n gps: {\n 0: 'GPSVersionID',\n 1: 'GPSLatitudeRef',\n 2: 'GPSLatitude',\n 3: 'GPSLongitudeRef',\n 4: 'GPSLongitude'\n },\n thumb: {\n 513: 'JPEGInterchangeFormat',\n 514: 'JPEGInterchangeFormatLength'\n }\n };\n var tagDescs = {\n 'ColorSpace': {\n 1: 'sRGB',\n 0: 'Uncalibrated'\n },\n 'MeteringMode': {\n 0: 'Unknown',\n 1: 'Average',\n 2: 'CenterWeightedAverage',\n 3: 'Spot',\n 4: 'MultiSpot',\n 5: 'Pattern',\n 6: 'Partial',\n 255: 'Other'\n },\n 'LightSource': {\n 1: 'Daylight',\n 2: 'Fliorescent',\n 3: 'Tungsten',\n 4: 'Flash',\n 9: 'Fine weather',\n 10: 'Cloudy weather',\n 11: 'Shade',\n 12: 'Daylight fluorescent (D 5700 - 7100K)',\n 13: 'Day white fluorescent (N 4600 -5400K)',\n 14: 'Cool white fluorescent (W 3900 - 4500K)',\n 15: 'White fluorescent (WW 3200 - 3700K)',\n 17: 'Standard light A',\n 18: 'Standard light B',\n 19: 'Standard light C',\n 20: 'D55',\n 21: 'D65',\n 22: 'D75',\n 23: 'D50',\n 24: 'ISO studio tungsten',\n 255: 'Other'\n },\n 'Flash': {\n 0: 'Flash did not fire',\n 1: 'Flash fired',\n 5: 'Strobe return light not detected',\n 7: 'Strobe return light detected',\n 9: 'Flash fired, compulsory flash mode',\n 13: 'Flash fired, compulsory flash mode, return light not detected',\n 15: 'Flash fired, compulsory flash mode, return light detected',\n 16: 'Flash did not fire, compulsory flash mode',\n 24: 'Flash did not fire, auto mode',\n 25: 'Flash fired, auto mode',\n 29: 'Flash fired, auto mode, return light not detected',\n 31: 'Flash fired, auto mode, return light detected',\n 32: 'No flash function',\n 65: 'Flash fired, red-eye reduction mode',\n 69: 'Flash fired, red-eye reduction mode, return light not detected',\n 71: 'Flash fired, red-eye reduction mode, return light detected',\n 73: 'Flash fired, compulsory flash mode, red-eye reduction mode',\n 77: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',\n 79: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',\n 89: 'Flash fired, auto mode, red-eye reduction mode',\n 93: 'Flash fired, auto mode, return light not detected, red-eye reduction mode',\n 95: 'Flash fired, auto mode, return light detected, red-eye reduction mode'\n },\n 'ExposureMode': {\n 0: 'Auto exposure',\n 1: 'Manual exposure',\n 2: 'Auto bracket'\n },\n 'WhiteBalance': {\n 0: 'Auto white balance',\n 1: 'Manual white balance'\n },\n 'SceneCaptureType': {\n 0: 'Standard',\n 1: 'Landscape',\n 2: 'Portrait',\n 3: 'Night scene'\n },\n 'Contrast': {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n 'Saturation': {\n 0: 'Normal',\n 1: 'Low saturation',\n 2: 'High saturation'\n },\n 'Sharpness': {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n 'GPSLatitudeRef': {\n N: 'North latitude',\n S: 'South latitude'\n },\n 'GPSLongitudeRef': {\n E: 'East longitude',\n W: 'West longitude'\n }\n };\n var ExifReader = function () {\n function ExifReader(ar) {\n this._offsets = {\n tiffHeader: 10,\n IFD0: null,\n IFD1: null,\n exifIFD: null,\n gpsIFD: null\n };\n this._tiffTags = {};\n var self = this;\n self._reader = new BinaryReader(ar);\n self._idx = self._offsets.tiffHeader;\n if (self.SHORT(0) !== 65505 || self.STRING(4, 5).toUpperCase() !== 'EXIF\\0') {\n throw new Error('Exif data cannot be read or not available.');\n }\n self._reader.littleEndian = self.SHORT(self._idx) == 18761;\n if (self.SHORT(self._idx += 2) !== 42) {\n throw new Error('Invalid Exif data.');\n }\n self._offsets.IFD0 = self._offsets.tiffHeader + self.LONG(self._idx += 2);\n self._tiffTags = self.extractTags(self._offsets.IFD0, tags.tiff);\n if ('ExifIFDPointer' in self._tiffTags) {\n self._offsets.exifIFD = self._offsets.tiffHeader + self._tiffTags.ExifIFDPointer;\n delete self._tiffTags.ExifIFDPointer;\n }\n if ('GPSInfoIFDPointer' in self._tiffTags) {\n self._offsets.gpsIFD = self._offsets.tiffHeader + self._tiffTags.GPSInfoIFDPointer;\n delete self._tiffTags.GPSInfoIFDPointer;\n }\n var IFD1Offset = self.LONG(self._offsets.IFD0 + self.SHORT(self._offsets.IFD0) * 12 + 2);\n if (IFD1Offset) {\n self._offsets.IFD1 = self._offsets.tiffHeader + IFD1Offset;\n }\n }\n ExifReader.prototype.BYTE = function (idx) {\n return this._reader.BYTE(idx);\n };\n ExifReader.prototype.SHORT = function (idx) {\n return this._reader.SHORT(idx);\n };\n ExifReader.prototype.LONG = function (idx) {\n return this._reader.LONG(idx);\n };\n ExifReader.prototype.SLONG = function (idx) {\n return this._reader.SLONG(idx);\n };\n ExifReader.prototype.CHAR = function (idx) {\n return this._reader.CHAR(idx);\n };\n ExifReader.prototype.STRING = function (idx, count) {\n return this._reader.STRING(idx, count);\n };\n ExifReader.prototype.SEGMENT = function (idx, size) {\n return this._reader.SEGMENT(idx, size);\n };\n ExifReader.prototype.asArray = function (type, idx, count) {\n var values = [];\n for (var i = 0; i < count; i++) {\n values[i] = this[type](idx + i);\n }\n return values;\n };\n ExifReader.prototype.length = function () {\n return this._reader.length();\n };\n ExifReader.prototype.UNDEFINED = function () {\n return this.BYTE.apply(this, arguments);\n };\n ExifReader.prototype.RATIONAL = function (idx) {\n return this.LONG(idx) / this.LONG(idx + 4);\n };\n ExifReader.prototype.SRATIONAL = function (idx) {\n return this.SLONG(idx) / this.SLONG(idx + 4);\n };\n ExifReader.prototype.ASCII = function (idx) {\n return this.CHAR(idx);\n };\n ExifReader.prototype.TIFF = function () {\n return this._tiffTags;\n };\n ExifReader.prototype.EXIF = function () {\n var self = this;\n var Exif = null;\n if (self._offsets.exifIFD) {\n try {\n Exif = self.extractTags(self._offsets.exifIFD, tags.exif);\n } catch (ex) {\n return null;\n }\n if (Exif.ExifVersion && Array.isArray(Exif.ExifVersion)) {\n for (var i = 0, exifVersion = ''; i < Exif.ExifVersion.length; i++) {\n exifVersion += String.fromCharCode(Exif.ExifVersion[i]);\n }\n Exif.ExifVersion = exifVersion;\n }\n }\n return Exif;\n };\n ExifReader.prototype.GPS = function () {\n var self = this;\n var GPS = null;\n if (self._offsets.gpsIFD) {\n try {\n GPS = self.extractTags(self._offsets.gpsIFD, tags.gps);\n } catch (ex) {\n return null;\n }\n if (GPS.GPSVersionID && Array.isArray(GPS.GPSVersionID)) {\n GPS.GPSVersionID = GPS.GPSVersionID.join('.');\n }\n }\n return GPS;\n };\n ExifReader.prototype.thumb = function () {\n var self = this;\n if (self._offsets.IFD1) {\n try {\n var IFD1Tags = self.extractTags(self._offsets.IFD1, tags.thumb);\n if ('JPEGInterchangeFormat' in IFD1Tags) {\n return self.SEGMENT(self._offsets.tiffHeader + IFD1Tags.JPEGInterchangeFormat, IFD1Tags.JPEGInterchangeFormatLength);\n }\n } catch (ex) {\n }\n }\n return null;\n };\n ExifReader.prototype.extractTags = function (IFD_offset, tags2extract) {\n var self = this;\n var length, i, tag, type, count, size, offset, value, values = [], hash = {};\n var types = {\n 1: 'BYTE',\n 7: 'UNDEFINED',\n 2: 'ASCII',\n 3: 'SHORT',\n 4: 'LONG',\n 5: 'RATIONAL',\n 9: 'SLONG',\n 10: 'SRATIONAL'\n };\n var sizes = {\n 'BYTE': 1,\n 'UNDEFINED': 1,\n 'ASCII': 1,\n 'SHORT': 2,\n 'LONG': 4,\n 'RATIONAL': 8,\n 'SLONG': 4,\n 'SRATIONAL': 8\n };\n length = self.SHORT(IFD_offset);\n for (i = 0; i < length; i++) {\n values = [];\n offset = IFD_offset + 2 + i * 12;\n tag = tags2extract[self.SHORT(offset)];\n if (tag === undefined) {\n continue;\n }\n type = types[self.SHORT(offset += 2)];\n count = self.LONG(offset += 2);\n size = sizes[type];\n if (!size) {\n throw new Error('Invalid Exif data.');\n }\n offset += 4;\n if (size * count > 4) {\n offset = self.LONG(offset) + self._offsets.tiffHeader;\n }\n if (offset + size * count >= self.length()) {\n throw new Error('Invalid Exif data.');\n }\n if (type === 'ASCII') {\n hash[tag] = self.STRING(offset, count).replace(/\\0$/, '').trim();\n continue;\n } else {\n values = self.asArray(type, offset, count);\n value = count == 1 ? values[0] : values;\n if (tagDescs.hasOwnProperty(tag) && typeof value != 'object') {\n hash[tag] = tagDescs[tag][value];\n } else {\n hash[tag] = value;\n }\n }\n }\n return hash;\n };\n return ExifReader;\n }();\n\n var extractFrom = function (blob) {\n return Conversions.blobToArrayBuffer(blob).then(function (ar) {\n try {\n var br = new BinaryReader(ar);\n if (br.SHORT(0) === 65496) {\n var headers = extractHeaders(br);\n var app1 = headers.filter(function (header) {\n return header.name === 'APP1';\n });\n var meta = {};\n if (app1.length) {\n var exifReader = new ExifReader(app1[0].segment);\n meta = {\n tiff: exifReader.TIFF(),\n exif: exifReader.EXIF(),\n gps: exifReader.GPS(),\n thumb: exifReader.thumb()\n };\n } else {\n return Promise$1.reject('Headers did not include required information');\n }\n meta.rawHeaders = headers;\n return meta;\n }\n return Promise$1.reject('Image was not a jpeg');\n } catch (ex) {\n return Promise$1.reject('Unsupported format or not an image: ' + blob.type + ' (Exception: ' + ex.message + ')');\n }\n });\n };\n var extractHeaders = function (br) {\n var headers = [], idx, marker, length = 0;\n idx = 2;\n while (idx <= br.length()) {\n marker = br.SHORT(idx);\n if (marker >= 65488 && marker <= 65495) {\n idx += 2;\n continue;\n }\n if (marker === 65498 || marker === 65497) {\n break;\n }\n length = br.SHORT(idx + 2) + 2;\n if (marker >= 65505 && marker <= 65519) {\n headers.push({\n hex: marker,\n name: 'APP' + (marker & 15),\n start: idx,\n length: length,\n segment: br.SEGMENT(idx, length)\n });\n }\n idx += length;\n }\n return headers;\n };\n var JPEGMeta = { extractFrom: extractFrom };\n\n var invert = function (ir) {\n return Filters.invert(ir);\n };\n var sharpen = function (ir) {\n return Filters.sharpen(ir);\n };\n var emboss = function (ir) {\n return Filters.emboss(ir);\n };\n var gamma = function (ir, value) {\n return Filters.gamma(ir, value);\n };\n var exposure = function (ir, value) {\n return Filters.exposure(ir, value);\n };\n var colorize = function (ir, adjustR, adjustG, adjustB) {\n return Filters.colorize(ir, adjustR, adjustG, adjustB);\n };\n var brightness = function (ir, adjust) {\n return Filters.brightness(ir, adjust);\n };\n var hue = function (ir, adjust) {\n return Filters.hue(ir, adjust);\n };\n var saturate = function (ir, adjust) {\n return Filters.saturate(ir, adjust);\n };\n var contrast = function (ir, adjust) {\n return Filters.contrast(ir, adjust);\n };\n var grayscale = function (ir, adjust) {\n return Filters.grayscale(ir, adjust);\n };\n var sepia = function (ir, adjust) {\n return Filters.sepia(ir, adjust);\n };\n var flip$1 = function (ir, axis) {\n return ImageTools.flip(ir, axis);\n };\n var crop$1 = function (ir, x, y, w, h) {\n return ImageTools.crop(ir, x, y, w, h);\n };\n var resize$2 = function (ir, w, h) {\n return ImageTools.resize(ir, w, h);\n };\n var rotate$1 = function (ir, angle) {\n return ImageTools.rotate(ir, angle);\n };\n var exifRotate = function (ir) {\n var ROTATE_90 = 6;\n var ROTATE_180 = 3;\n var ROTATE_270 = 8;\n var checkRotation = function (data) {\n var orientation = data.tiff.Orientation;\n switch (orientation) {\n case ROTATE_90:\n return rotate$1(ir, 90);\n case ROTATE_180:\n return rotate$1(ir, 180);\n case ROTATE_270:\n return rotate$1(ir, 270);\n default:\n return ir;\n }\n };\n var notJpeg = function () {\n return ir;\n };\n return ir.toBlob().then(JPEGMeta.extractFrom).then(checkRotation, notJpeg);\n };\n var ImageTransformations = {\n invert: invert,\n sharpen: sharpen,\n emboss: emboss,\n brightness: brightness,\n hue: hue,\n saturate: saturate,\n contrast: contrast,\n grayscale: grayscale,\n sepia: sepia,\n colorize: colorize,\n gamma: gamma,\n exposure: exposure,\n flip: flip$1,\n crop: crop$1,\n resize: resize$2,\n rotate: rotate$1,\n exifRotate: exifRotate\n };\n\n var renderIcon$1 = function (iconHtml, behaviours) {\n return __assign({\n dom: {\n tag: 'span',\n innerHtml: iconHtml,\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ]\n }\n }, behaviours);\n };\n var renderIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$c(iconName, iconsProvider), {});\n };\n var renderReplacableIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$c(iconName, iconsProvider), { behaviours: derive$1([Replacing.config({})]) });\n };\n var renderLabel$1 = function (text, prefix, providersBackstage) {\n return {\n dom: {\n tag: 'span',\n innerHtml: providersBackstage.translate(text),\n classes: [prefix + '__select-label']\n },\n behaviours: derive$1([Replacing.config({})])\n };\n };\n\n var renderCommonSpec = function (spec, actionOpt, extraBehaviours, dom, components) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var action = actionOpt.fold(function () {\n return {};\n }, function (action) {\n return { action: action };\n });\n var common = __assign({\n buttonBehaviours: derive$1([\n DisablingConfigs.button(spec.disabled),\n Tabstopping.config({}),\n config('button press', [\n preventDefault('click'),\n preventDefault('mousedown')\n ])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n }\n }, action);\n var domFinal = deepMerge(common, { dom: dom });\n return deepMerge(domFinal, { components: components });\n };\n var renderCommon = function (spec, action, extraBehaviours, dom, components) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var specFinal = renderCommonSpec(spec, Option.some(action), extraBehaviours, dom, components);\n return Button.sketch(specFinal);\n };\n var renderIconButtonSpec = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var tooltipAttributes = spec.tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n var dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: tooltipAttributes\n };\n var icon = spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n });\n var components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components);\n };\n var renderIconButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var iconButtonSpec = renderIconButtonSpec(spec, Option.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n var renderButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var translatedText = providersBackstage.translate(spec.text);\n var icon = spec.icon ? spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }) : Option.none();\n var components = icon.isSome() ? componentRenderPipeline([icon]) : [];\n var innerHtml = icon.isSome() ? {} : { innerHtml: translatedText };\n var classes = (spec.primary ? ['tox-button'] : [\n 'tox-button',\n 'tox-button--secondary'\n ]).concat(icon.isSome() ? ['tox-button--icon'] : []);\n var dom = __assign({\n tag: 'button',\n classes: classes\n }, innerHtml, { attributes: { title: translatedText } });\n return renderCommon(spec, action, extraBehaviours, dom, components);\n };\n var getAction = function (name, buttonType) {\n return function (comp) {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name: name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n domGlobals.console.error('Unknown button type: ', buttonType);\n }\n };\n };\n var renderFooterButton = function (spec, buttonType, providersBackstage) {\n var action = getAction(spec.name, buttonType);\n return renderButton(spec, action, providersBackstage, []);\n };\n var renderDialogButton = function (spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderButton(spec, action, providersBackstage, [\n RepresentingConfigs.memory(''),\n ComposingConfigs.self()\n ]);\n };\n\n var schema$i = constant([\n defaulted$1('field1Name', 'field1'),\n defaulted$1('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers(['lockClass']),\n defaulted$1('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var getField = function (comp, detail, partName) {\n return getPart(comp, detail, partName).bind(Composing.getCurrent);\n };\n var coupledPart = function (selfName, otherName) {\n return required({\n factory: FormField,\n name: selfName,\n overrides: function (detail) {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run(input(), function (me) {\n getField(me, detail, otherName).each(function (other) {\n getPart(me, detail, 'lock').each(function (lock) {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n };\n var parts$6 = constant([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'lock',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n var factory$7 = function (detail, components, spec, externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Option.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var _a;\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return _a = {}, _a[detail.field1Name] = Representing.getValue(parts.field1()), _a[detail.field2Name] = Representing.getValue(parts.field2()), _a;\n },\n setValue: function (comp, value) {\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n if (hasKey$1(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasKey$1(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })\n ]),\n apis: {\n getField1: function (component) {\n return getPart(component, detail, 'field1');\n },\n getField2: function (component) {\n return getPart(component, detail, 'field2');\n },\n getLock: function (component) {\n return getPart(component, detail, 'lock');\n }\n }\n };\n };\n var FormCoupledInputs = composite$1({\n name: 'FormCoupledInputs',\n configFields: schema$i(),\n partFields: parts$6(),\n factory: factory$7,\n apis: {\n getField1: function (apis, component) {\n return apis.getField1(component);\n },\n getField2: function (apis, component) {\n return apis.getField2(component);\n },\n getLock: function (apis, component) {\n return apis.getLock(component);\n }\n }\n });\n\n var formatSize = function (size) {\n var unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n var maxDecimal = function (unit) {\n return unit in unitDec ? unitDec[unit] : 1;\n };\n var numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n var parseSize = function (sizeText) {\n var numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n var match = numPattern.exec(sizeText);\n if (match !== null) {\n var value = parseFloat(match[1]);\n var unit = match[2];\n return Result.value({\n value: value,\n unit: unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n var convertUnit = function (size, unit) {\n var inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n var supported = function (u) {\n return Object.prototype.hasOwnProperty.call(inInch, u);\n };\n if (size.unit === unit) {\n return Option.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Option.some(size.value);\n } else {\n return Option.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Option.none();\n }\n };\n var noSizeConversion = function (input) {\n return Option.none();\n };\n var ratioSizeConversion = function (scale, unit) {\n return function (size) {\n return convertUnit(size, unit).map(function (value) {\n return {\n value: value * scale,\n unit: unit\n };\n });\n };\n };\n var makeRatioConverter = function (currentFieldText, otherFieldText) {\n var cValue = parseSize(currentFieldText).toOption();\n var oValue = parseSize(otherFieldText).toOption();\n return liftN([\n cValue,\n oValue\n ], function (cSize, oSize) {\n return convertUnit(cSize, oSize.unit).map(function (val) {\n return oSize.value / val;\n }).map(function (r) {\n return ratioSizeConversion(r, oSize.unit);\n }).getOr(noSizeConversion);\n }).getOr(noSizeConversion);\n };\n\n var renderSizeInput = function (spec, providersBackstage) {\n var converter = noSizeConversion;\n var ratioEvent = generate$1('ratio-event');\n var pLock = FormCoupledInputs.parts().lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { title: providersBackstage.translate(spec.label.getOr('Constrain proportions')) }\n },\n components: [\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__lock'\n ],\n innerHtml: get$c('lock', providersBackstage.icons)\n }\n },\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__unlock'\n ],\n innerHtml: get$c('unlock', providersBackstage.icons)\n }\n }\n ],\n buttonBehaviours: derive$1([Tabstopping.config({})])\n });\n var formGroup = function (components) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: components\n };\n };\n var getFieldPart = function (isField1) {\n return FormField.parts().field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Tabstopping.config({}),\n config('size-input-events', [\n run(focusin(), function (component, simulatedEvent) {\n emitWith(component, ratioEvent, { isField1: isField1 });\n }),\n run(change(), function (component, simulatedEvent) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n };\n var getLabel = function (label) {\n return {\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n };\n };\n var widthField = FormCoupledInputs.parts().field1(formGroup([\n FormField.parts().label(getLabel('Width')),\n getFieldPart(true)\n ]));\n var heightField = FormCoupledInputs.parts().field2(formGroup([\n FormField.parts().label(getLabel('Height')),\n getFieldPart(false)\n ]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [\n widthField,\n heightField,\n formGroup([\n getLabel(' '),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: function (current, other, lock) {\n parseSize(Representing.getValue(current)).each(function (size) {\n converter(size).each(function (newSize) {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([\n Disabling.config({}),\n config('size-input-events2', [run(ratioEvent, function (component, simulatedEvent) {\n var isField1 = simulatedEvent.event().isField1();\n var optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n var optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n var value1 = optCurrent.map(Representing.getValue).getOr('');\n var value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])\n ])\n });\n };\n\n var undo = constant(generate$1('undo'));\n var redo = constant(generate$1('redo'));\n var zoom = constant(generate$1('zoom'));\n var back = constant(generate$1('back'));\n var apply$1 = constant(generate$1('apply'));\n var swap = constant(generate$1('swap'));\n var transform = constant(generate$1('transform'));\n var tempTransform = constant(generate$1('temp-transform'));\n var transformApply = constant(generate$1('transform-apply'));\n var internal = {\n undo: undo,\n redo: redo,\n zoom: zoom,\n back: back,\n apply: apply$1,\n swap: swap,\n transform: transform,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant('save-state');\n var disable$1 = constant('disable');\n var enable$1 = constant('enable');\n var external$2 = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable$1,\n enable: enable$1\n };\n\n var renderEditPanel = function (imagePanel, providersBackstage) {\n var createButton = function (text, action, disabled, primary) {\n return record(renderButton({\n name: text,\n text: text,\n disabled: disabled,\n primary: primary\n }, action, providersBackstage));\n };\n var createIconButton = function (icon, tooltip, action, disabled) {\n return record(renderIconButton({\n name: icon,\n icon: Option.some(icon),\n tooltip: Option.some(tooltip),\n disabled: disabled\n }, action, providersBackstage));\n };\n var disableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.disable(component);\n }\n });\n };\n var enableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.enable(component);\n }\n });\n };\n var panelDom = {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools-edit-panel'\n ]\n };\n var none = Option.none();\n var noop$1 = noop;\n var emit$1 = function (comp, event, data) {\n emitWith(comp, event, data);\n };\n var emitDisable = function (component) {\n return emit(component, external$2.disable());\n };\n var emitEnable = function (component) {\n return emit(component, external$2.enable());\n };\n var emitTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transform(), { transform: transform });\n emitEnable(comp);\n };\n var emitTempTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.tempTransform(), { transform: transform });\n emitEnable(comp);\n };\n var getBackSwap = function (anyInSystem) {\n return function () {\n memContainer.getOpt(anyInSystem).each(function (container) {\n Replacing.set(container, [ButtonPanel]);\n });\n };\n };\n var emitTransformApply = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transformApply(), {\n transform: transform,\n swap: getBackSwap(comp)\n });\n emitEnable(comp);\n };\n var createBackButton = function () {\n return createButton('Back', function (button) {\n return emit$1(button, internal.back(), { swap: getBackSwap(button) });\n }, false, false);\n };\n var createSpacer = function () {\n return record({\n dom: {\n tag: 'div',\n classes: ['tox-spacer']\n },\n behaviours: derive$1([Disabling.config({})])\n });\n };\n var createApplyButton = function () {\n return createButton('Apply', function (button) {\n return emit$1(button, internal.apply(), { swap: getBackSwap(button) });\n }, true, true);\n };\n var makeCropTransform = function () {\n return function (ir) {\n var rect = imagePanel.getRect();\n return ImageTransformations.crop(ir, rect.x, rect.y, rect.w, rect.h);\n };\n };\n var cropPanelComponents = [\n createBackButton(),\n createSpacer(),\n createButton('Apply', function (button) {\n var transform = makeCropTransform();\n emitTransformApply(button, transform);\n imagePanel.hideCrop();\n }, false, true)\n ];\n var CropPanel = Container.sketch({\n dom: panelDom,\n components: cropPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-crop-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(cropPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(cropPanelComponents, comp);\n })\n ])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: none,\n type: 'sizeinput',\n constrain: true\n }, providersBackstage));\n var makeResizeTransform = function (width, height) {\n return function (ir) {\n return ImageTransformations.resize(ir, width, height);\n };\n };\n var resizePanelComponents = [\n createBackButton(),\n createSpacer(),\n memSize,\n createSpacer(),\n createButton('Apply', function (button) {\n memSize.getOpt(button).each(function (sizeInput) {\n var value = Representing.getValue(sizeInput);\n var width = parseInt(value.width, 10);\n var height = parseInt(value.height, 10);\n var transform = makeResizeTransform(width, height);\n emitTransformApply(button, transform);\n });\n }, false, true)\n ];\n var ResizePanel = Container.sketch({\n dom: panelDom,\n components: resizePanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-resize-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(resizePanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(resizePanelComponents, comp);\n })\n ])])\n });\n var makeValueTransform = function (transform, value) {\n return function (ir) {\n return transform(ir, value);\n };\n };\n var horizontalFlip = makeValueTransform(ImageTransformations.flip, 'h');\n var verticalFlip = makeValueTransform(ImageTransformations.flip, 'v');\n var counterclockwiseRotate = makeValueTransform(ImageTransformations.rotate, -90);\n var clockwiseRotate = makeValueTransform(ImageTransformations.rotate, 90);\n var flipRotateOnAction = function (comp, operation) {\n emitTempTransform(comp, operation);\n };\n var flipRotateComponents = [\n createBackButton(),\n createSpacer(),\n createIconButton('flip-horizontally', 'Flip horizontally', function (button) {\n flipRotateOnAction(button, horizontalFlip);\n }, false),\n createIconButton('flip-vertically', 'Flip vertically', function (button) {\n flipRotateOnAction(button, verticalFlip);\n }, false),\n createIconButton('rotate-left', 'Rotate counterclockwise', function (button) {\n flipRotateOnAction(button, counterclockwiseRotate);\n }, false),\n createIconButton('rotate-right', 'Rotate clockwise', function (button) {\n flipRotateOnAction(button, clockwiseRotate);\n }, false),\n createSpacer(),\n createApplyButton()\n ];\n var FlipRotatePanel = Container.sketch({\n dom: panelDom,\n components: flipRotateComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-fliprotate-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(flipRotateComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(flipRotateComponents, comp);\n })\n ])])\n });\n var makeSlider = function (label, onChoose, min, value, max) {\n var labelPart = Slider.parts().label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n var spectrum = Slider.parts().spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts().thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return record(Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: min,\n maxX: max,\n getInitialValue: constant({ x: constant(value) })\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChoose: onChoose\n }));\n };\n var makeVariableSlider = function (label, transform, min, value, max) {\n var onChoose = function (slider, thumb, value) {\n var valTransform = makeValueTransform(transform, value.x() / 100);\n emitTransform(slider, valTransform);\n };\n return makeSlider(label, onChoose, min, value, max);\n };\n var variableFilterPanelComponents = function (label, transform, min, value, max) {\n return [\n createBackButton(),\n makeVariableSlider(label, transform, min, value, max),\n createApplyButton()\n ];\n };\n var createVariableFilterPanel = function (label, transform, min, value, max) {\n var filterPanelComponents = variableFilterPanelComponents(label, transform, min, value, max);\n return Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-filter-panel-buttons-events', [\n run(external$2.disable(), function (comp, se) {\n disableAllComponents(filterPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, se) {\n enableAllComponents(filterPanelComponents, comp);\n })\n ])])\n });\n };\n var filterPanelComponents = [\n createBackButton(),\n createSpacer(),\n createApplyButton()\n ];\n var FilterPanel = Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var BrightnessPanel = createVariableFilterPanel('Brightness', ImageTransformations.brightness, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', ImageTransformations.contrast, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', ImageTransformations.gamma, -100, 0, 100);\n var makeColorTransform = function (red, green, blue) {\n return function (ir) {\n return ImageTransformations.colorize(ir, red, green, blue);\n };\n };\n var makeColorSlider = function (label) {\n var onChoose = function (slider, thumb, value) {\n var redOpt = memRed.getOpt(slider);\n var blueOpt = memBlue.getOpt(slider);\n var greenOpt = memGreen.getOpt(slider);\n redOpt.each(function (red) {\n blueOpt.each(function (blue) {\n greenOpt.each(function (green) {\n var r = Representing.getValue(red).x() / 100;\n var g = Representing.getValue(green).x() / 100;\n var b = Representing.getValue(blue).x() / 100;\n var transform = makeColorTransform(r, g, b);\n emitTransform(slider, transform);\n });\n });\n });\n };\n return makeSlider(label, onChoose, 0, 100, 200);\n };\n var memRed = makeColorSlider('R');\n var memGreen = makeColorSlider('G');\n var memBlue = makeColorSlider('B');\n var colorizePanelComponents = [\n createBackButton(),\n memRed,\n memGreen,\n memBlue,\n createApplyButton()\n ];\n var ColorizePanel = Container.sketch({\n dom: panelDom,\n components: colorizePanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var getTransformPanelEvent = function (panel, transform, update) {\n return function (button) {\n var swap = function () {\n memContainer.getOpt(button).each(function (container) {\n Replacing.set(container, [panel]);\n update(container);\n });\n };\n emit$1(button, internal.swap(), {\n transform: transform,\n swap: swap\n });\n };\n };\n var cropPanelUpdate = function (_anyInSystem) {\n imagePanel.showCrop();\n };\n var resizePanelUpdate = function (anyInSystem) {\n memSize.getOpt(anyInSystem).each(function (sizeInput) {\n var measurements = imagePanel.getMeasurements();\n var width = measurements.width;\n var height = measurements.height;\n Representing.setValue(sizeInput, {\n width: width,\n height: height\n });\n });\n };\n var sharpenTransform = Option.some(ImageTransformations.sharpen);\n var invertTransform = Option.some(ImageTransformations.invert);\n var buttonPanelComponents = [\n createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, none, cropPanelUpdate), false),\n createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, none, resizePanelUpdate), false),\n createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, none, noop$1), false),\n createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, none, noop$1), false),\n createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false),\n createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, none, noop$1), false),\n createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, none, noop$1), false),\n createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, none, noop$1), false),\n createIconButton('invert', 'Invert', getTransformPanelEvent(FilterPanel, invertTransform, noop$1), false)\n ];\n var ButtonPanel = Container.sketch({\n dom: panelDom,\n components: buttonPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var container = Container.sketch({\n dom: { tag: 'div' },\n components: [ButtonPanel],\n containerBehaviours: derive$1([Replacing.config({})])\n });\n var memContainer = record(container);\n var getApplyButton = function (anyInSystem) {\n return memContainer.getOpt(anyInSystem).map(function (container) {\n var panel = container.components()[0];\n return panel.components()[panel.components().length - 1];\n });\n };\n return {\n memContainer: memContainer,\n getApplyButton: getApplyButton\n };\n };\n\n var EditPanel = /*#__PURE__*/Object.freeze({\n renderEditPanel: renderEditPanel\n });\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n\n var global$a = tinymce.util.Tools.resolve('tinymce.util.Observable');\n\n var global$b = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$c = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n function getDocumentSize(doc) {\n var documentElement, body, scrollWidth, clientWidth;\n var offsetWidth, scrollHeight, clientHeight, offsetHeight;\n var max = Math.max;\n documentElement = doc.documentElement;\n body = doc.body;\n scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n clientWidth = max(documentElement.clientWidth, body.clientWidth);\n offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n clientHeight = max(documentElement.clientHeight, body.clientHeight);\n offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n return {\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n };\n }\n function updateWithTouchData(e) {\n var keys, i;\n if (e.changedTouches) {\n keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n for (i = 0; i < keys.length; i++) {\n e[keys[i]] = e.changedTouches[0][keys[i]];\n }\n }\n }\n function DragHelper (id, settings) {\n var $eventOverlay;\n var doc = settings.document || domGlobals.document;\n var downButton;\n var start, stop, drag, startX, startY;\n settings = settings || {};\n var handleElement = doc.getElementById(settings.handle || id);\n start = function (e) {\n var docSize = getDocumentSize(doc);\n var handleElm, cursor;\n updateWithTouchData(e);\n e.preventDefault();\n downButton = e.button;\n handleElm = handleElement;\n startX = e.screenX;\n startY = e.screenY;\n if (domGlobals.window.getComputedStyle) {\n cursor = domGlobals.window.getComputedStyle(handleElm, null).getPropertyValue('cursor');\n } else {\n cursor = handleElm.runtimeStyle.cursor;\n }\n $eventOverlay = global$8('
').css({\n position: 'absolute',\n top: 0,\n left: 0,\n width: docSize.width,\n height: docSize.height,\n zIndex: 2147483647,\n opacity: 0.0001,\n cursor: cursor\n }).appendTo(doc.body);\n global$8(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);\n settings.start(e);\n };\n drag = function (e) {\n updateWithTouchData(e);\n if (e.button !== downButton) {\n return stop(e);\n }\n e.deltaX = e.screenX - startX;\n e.deltaY = e.screenY - startY;\n e.preventDefault();\n settings.drag(e);\n };\n stop = function (e) {\n updateWithTouchData(e);\n global$8(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);\n $eventOverlay.remove();\n if (settings.stop) {\n settings.stop(e);\n }\n };\n this.destroy = function () {\n global$8(handleElement).off();\n };\n global$8(handleElement).on('mousedown touchstart', start);\n }\n\n var count = 0;\n function CropRect (currentRect, viewPortRect, clampRect, containerElm, action) {\n var instance;\n var handles;\n var dragHelpers;\n var blockers;\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n handles = [\n {\n name: 'move',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: 0,\n deltaH: 0,\n label: 'Crop Mask'\n },\n {\n name: 'nw',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: -1,\n deltaH: -1,\n label: 'Top Left Crop Handle'\n },\n {\n name: 'ne',\n xMul: 1,\n yMul: 0,\n deltaX: 0,\n deltaY: 1,\n deltaW: 1,\n deltaH: -1,\n label: 'Top Right Crop Handle'\n },\n {\n name: 'sw',\n xMul: 0,\n yMul: 1,\n deltaX: 1,\n deltaY: 0,\n deltaW: -1,\n deltaH: 1,\n label: 'Bottom Left Crop Handle'\n },\n {\n name: 'se',\n xMul: 1,\n yMul: 1,\n deltaX: 0,\n deltaY: 0,\n deltaW: 1,\n deltaH: 1,\n label: 'Bottom Right Crop Handle'\n }\n ];\n blockers = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ];\n function getAbsoluteRect(outerRect, relativeRect) {\n return {\n x: relativeRect.x + outerRect.x,\n y: relativeRect.y + outerRect.y,\n w: relativeRect.w,\n h: relativeRect.h\n };\n }\n function getRelativeRect(outerRect, innerRect) {\n return {\n x: innerRect.x - outerRect.x,\n y: innerRect.y - outerRect.y,\n w: innerRect.w,\n h: innerRect.h\n };\n }\n function getInnerRect() {\n return getRelativeRect(clampRect, currentRect);\n }\n function moveRect(handle, startRect, deltaX, deltaY) {\n var x, y, w, h, rect;\n x = startRect.x;\n y = startRect.y;\n w = startRect.w;\n h = startRect.h;\n x += deltaX * handle.deltaX;\n y += deltaY * handle.deltaY;\n w += deltaX * handle.deltaW;\n h += deltaY * handle.deltaH;\n if (w < 20) {\n w = 20;\n }\n if (h < 20) {\n h = 20;\n }\n rect = currentRect = global$9.clamp({\n x: x,\n y: y,\n w: w,\n h: h\n }, clampRect, handle.name === 'move');\n rect = getRelativeRect(clampRect, rect);\n instance.fire('updateRect', { rect: rect });\n setInnerRect(rect);\n }\n function render() {\n function createDragHelper(handle) {\n var startRect;\n return new DragHelper(id, {\n document: containerElm.ownerDocument,\n handle: id + '-' + handle.name,\n start: function () {\n startRect = currentRect;\n },\n drag: function (e) {\n moveRect(handle, startRect, e.deltaX, e.deltaY);\n }\n });\n }\n global$8('
').appendTo(containerElm);\n global$b.each(blockers, function (blocker) {\n global$8('#' + id, containerElm).append('
');\n });\n global$b.each(handles, function (handle) {\n global$8('#' + id, containerElm).append('
');\n });\n dragHelpers = global$b.map(handles, createDragHelper);\n repaint(currentRect);\n global$8(containerElm).on('focusin focusout', function (e) {\n global$8(e.target).attr('aria-grabbed', e.type === 'focus' ? 'true' : 'false');\n });\n global$8(containerElm).on('keydown', function (e) {\n var activeHandle;\n global$b.each(handles, function (handle) {\n if (e.target.id === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n function moveAndBlock(evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n }\n switch (e.keyCode) {\n case global$c.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n case global$c.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n case global$c.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n case global$c.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n case global$c.ENTER:\n case global$c.SPACEBAR:\n e.preventDefault();\n action();\n break;\n }\n });\n }\n function toggleVisibility(state) {\n var selectors;\n selectors = global$b.map(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }).concat(global$b.map(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n })).join(',');\n if (state) {\n global$8(selectors, containerElm).show();\n } else {\n global$8(selectors, containerElm).hide();\n }\n }\n function repaint(rect) {\n function updateElementRect(name, rect) {\n if (rect.h < 0) {\n rect.h = 0;\n }\n if (rect.w < 0) {\n rect.w = 0;\n }\n global$8('#' + id + '-' + name, containerElm).css({\n left: rect.x,\n top: rect.y,\n width: rect.w,\n height: rect.h\n });\n }\n global$b.each(handles, function (handle) {\n global$8('#' + id + '-' + handle.name, containerElm).css({\n left: rect.w * handle.xMul + rect.x,\n top: rect.h * handle.yMul + rect.y\n });\n });\n updateElementRect('top', {\n x: viewPortRect.x,\n y: viewPortRect.y,\n w: viewPortRect.w,\n h: rect.y - viewPortRect.y\n });\n updateElementRect('right', {\n x: rect.x + rect.w,\n y: rect.y,\n w: viewPortRect.w - rect.x - rect.w + viewPortRect.x,\n h: rect.h\n });\n updateElementRect('bottom', {\n x: viewPortRect.x,\n y: rect.y + rect.h,\n w: viewPortRect.w,\n h: viewPortRect.h - rect.y - rect.h + viewPortRect.y\n });\n updateElementRect('left', {\n x: viewPortRect.x,\n y: rect.y,\n w: rect.x - viewPortRect.x,\n h: rect.h\n });\n updateElementRect('move', rect);\n }\n function setRect(rect) {\n currentRect = rect;\n repaint(currentRect);\n }\n function setViewPortRect(rect) {\n viewPortRect = rect;\n repaint(currentRect);\n }\n function setInnerRect(rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n }\n function setClampRect(rect) {\n clampRect = rect;\n repaint(currentRect);\n }\n function destroy() {\n global$b.each(dragHelpers, function (helper) {\n helper.destroy();\n });\n dragHelpers = [];\n }\n render();\n instance = global$b.extend({\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n }, global$a);\n return instance;\n }\n\n var loadImage = function (image) {\n return new global$2(function (resolve) {\n var loaded = function () {\n image.removeEventListener('load', loaded);\n resolve(image);\n };\n if (image.complete) {\n resolve(image);\n } else {\n image.addEventListener('load', loaded);\n }\n });\n };\n var renderImagePanel = function (initialUrl) {\n var memBg = record({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image-bg'],\n attributes: { role: 'presentation' }\n }\n });\n var zoomState = Cell(1);\n var cropRect = Cell(Option.none());\n var rectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var viewRectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var repaintImg = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var zoom = zoomState.get();\n var panelW = get$7(panel.element());\n var panelH = get$8(panel.element());\n var width = img.dom().naturalWidth * zoom;\n var height = img.dom().naturalHeight * zoom;\n var left = Math.max(0, panelW / 2 - width / 2);\n var top = Math.max(0, panelH / 2 - height / 2);\n var css = {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px',\n position: 'absolute'\n };\n setAll$1(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll$1(bg.element(), css);\n });\n cropRect.get().each(function (cRect) {\n var rect = rectState.get();\n cRect.setRect({\n x: rect.x * zoom + left,\n y: rect.y * zoom + top,\n w: rect.w * zoom,\n h: rect.h * zoom\n });\n cRect.setClampRect({\n x: left,\n y: top,\n w: width,\n h: height\n });\n cRect.setViewPortRect({\n x: 0,\n y: 0,\n w: panelW,\n h: panelH\n });\n });\n });\n };\n var zoomFit = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var panelW = get$7(panel.element());\n var panelH = get$8(panel.element());\n var width = img.dom().naturalWidth;\n var height = img.dom().naturalHeight;\n var zoom = Math.min(panelW / width, panelH / height);\n if (zoom >= 1) {\n zoomState.set(1);\n } else {\n zoomState.set(zoom);\n }\n });\n };\n var updateSrc = function (anyInSystem, url) {\n var img = Element.fromTag('img');\n set$1(img, 'src', url);\n return loadImage(img.dom()).then(function () {\n return memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external({ element: img });\n Replacing.replaceAt(panel, 1, Option.some(aImg));\n var lastViewRect = viewRectState.get();\n var viewRect = {\n x: 0,\n y: 0,\n w: img.dom().naturalWidth,\n h: img.dom().naturalHeight\n };\n viewRectState.set(viewRect);\n var rect = global$9.inflate(viewRect, -20, -20);\n rectState.set(rect);\n if (lastViewRect.w !== viewRect.w || lastViewRect.h !== viewRect.h) {\n zoomFit(panel, img);\n }\n repaintImg(panel, img);\n return img;\n });\n });\n };\n var zoom = function (anyInSystem, direction) {\n var currentZoom = zoomState.get();\n var newZoom = direction > 0 ? Math.min(2, currentZoom + 0.1) : Math.max(0.1, currentZoom - 0.1);\n zoomState.set(newZoom);\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var img = panel.components()[1].element();\n repaintImg(panel, img);\n });\n };\n var showCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n var hideCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(false);\n });\n };\n var getRect = function () {\n return rectState.get();\n };\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image']\n },\n components: [\n memBg.asSpec(),\n {\n dom: {\n tag: 'img',\n attributes: { src: initialUrl }\n }\n },\n {\n dom: { tag: 'div' },\n behaviours: derive$1([config('image-panel-crop-events', [runOnAttached(function (comp) {\n memContainer.getOpt(comp).each(function (container) {\n var el = container.element().dom();\n var cRect = CropRect({\n x: 10,\n y: 10,\n w: 100,\n h: 100\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, el, function () {\n });\n cRect.toggleVisibility(false);\n cRect.on('updateRect', function (e) {\n var rect = e.rect;\n var zoom = zoomState.get();\n var newRect = {\n x: Math.round(rect.x / zoom),\n y: Math.round(rect.y / zoom),\n w: Math.round(rect.w / zoom),\n h: Math.round(rect.h / zoom)\n };\n rectState.set(newRect);\n });\n cropRect.set(Option.some(cRect));\n });\n })])])\n }\n ],\n containerBehaviours: derive$1([\n Replacing.config({}),\n config('image-panel-events', [runOnAttached(function (comp) {\n updateSrc(comp, initialUrl);\n })])\n ])\n });\n var memContainer = record(container);\n var getMeasurements = function () {\n var viewRect = viewRectState.get();\n return {\n width: viewRect.w,\n height: viewRect.h\n };\n };\n return {\n memContainer: memContainer,\n updateSrc: updateSrc,\n zoom: zoom,\n showCrop: showCrop,\n hideCrop: hideCrop,\n getRect: getRect,\n getMeasurements: getMeasurements\n };\n };\n\n var ImagePanel = /*#__PURE__*/Object.freeze({\n renderImagePanel: renderImagePanel\n });\n\n var createButton = function (innerHtml, icon, disabled, action, providersBackstage) {\n return renderIconButton({\n name: innerHtml,\n icon: Option.some(icon),\n disabled: disabled,\n tooltip: Option.some(innerHtml)\n }, action, providersBackstage);\n };\n var setButtonEnabled = function (button, enabled) {\n if (enabled) {\n Disabling.enable(button);\n } else {\n Disabling.disable(button);\n }\n };\n var renderSideBar = function (providersBackstage) {\n var updateButtonUndoStates = function (anyInSystem, undoEnabled, redoEnabled) {\n memUndo.getOpt(anyInSystem).each(function (undo) {\n setButtonEnabled(undo, undoEnabled);\n });\n memRedo.getOpt(anyInSystem).each(function (redo) {\n setButtonEnabled(redo, redoEnabled);\n });\n };\n var memUndo = record(createButton('Undo', 'undo', true, function (button) {\n emitWith(button, internal.undo(), { direction: 1 });\n }, providersBackstage));\n var memRedo = record(createButton('Redo', 'redo', true, function (button) {\n emitWith(button, internal.redo(), { direction: 1 });\n }, providersBackstage));\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools__sidebar'\n ]\n },\n components: [\n memUndo.asSpec(),\n memRedo.asSpec(),\n createButton('Zoom in', 'zoom-in', false, function (button) {\n emitWith(button, internal.zoom(), { direction: 1 });\n }, providersBackstage),\n createButton('Zoom out', 'zoom-out', false, function (button) {\n emitWith(button, internal.zoom(), { direction: -1 });\n }, providersBackstage)\n ]\n });\n return {\n container: container,\n updateButtonUndoStates: updateButtonUndoStates\n };\n };\n\n var SideBar = /*#__PURE__*/Object.freeze({\n renderSideBar: renderSideBar\n });\n\n var url = function () {\n return Global$1.getOrDie('URL');\n };\n var createObjectURL = function (blob) {\n return url().createObjectURL(blob);\n };\n var revokeObjectURL = function (u) {\n url().revokeObjectURL(u);\n };\n var URL = {\n createObjectURL: createObjectURL,\n revokeObjectURL: revokeObjectURL\n };\n\n function UndoStack () {\n var data = [];\n var index = -1;\n function add(state) {\n var removed;\n removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n }\n function undo() {\n if (canUndo()) {\n return data[--index];\n }\n }\n function redo() {\n if (canRedo()) {\n return data[++index];\n }\n }\n function canUndo() {\n return index > 0;\n }\n function canRedo() {\n return index !== -1 && index < data.length - 1;\n }\n return {\n data: data,\n add: add,\n undo: undo,\n redo: redo,\n canUndo: canUndo,\n canRedo: canRedo\n };\n }\n\n var makeState = function (initialState) {\n var blobState = Cell(initialState);\n var tempState = Cell(Option.none());\n var undoStack = UndoStack();\n undoStack.add(initialState);\n var getBlobState = function () {\n return blobState.get();\n };\n var setBlobState = function (state) {\n blobState.set(state);\n };\n var getTempState = function () {\n return tempState.get().fold(function () {\n return blobState.get();\n }, function (temp) {\n return temp;\n });\n };\n var updateTempState = function (blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(Option.some(newTempState));\n return newTempState.url;\n };\n var createState = function (blob) {\n return {\n blob: blob,\n url: URL.createObjectURL(blob)\n };\n };\n var destroyState = function (state) {\n URL.revokeObjectURL(state.url);\n };\n var destroyStates = function (states) {\n global$b.each(states, destroyState);\n };\n var destroyTempState = function () {\n tempState.get().each(destroyState);\n tempState.set(Option.none());\n };\n var addBlobState = function (blob) {\n var newState = createState(blob);\n setBlobState(newState);\n var removed = undoStack.add(newState).removed;\n destroyStates(removed);\n return newState.url;\n };\n var addTempState = function (blob) {\n var newState = createState(blob);\n tempState.set(Option.some(newState));\n return newState.url;\n };\n var applyTempState = function (postApply) {\n return tempState.get().fold(function () {\n }, function (temp) {\n addBlobState(temp.blob);\n postApply();\n });\n };\n var undo = function () {\n var currentState = undoStack.undo();\n setBlobState(currentState);\n return currentState.url;\n };\n var redo = function () {\n var currentState = undoStack.redo();\n setBlobState(currentState);\n return currentState.url;\n };\n var getHistoryStates = function () {\n var undoEnabled = undoStack.canUndo();\n var redoEnabled = undoStack.canRedo();\n return {\n undoEnabled: undoEnabled,\n redoEnabled: redoEnabled\n };\n };\n return {\n getBlobState: getBlobState,\n setBlobState: setBlobState,\n addBlobState: addBlobState,\n getTempState: getTempState,\n updateTempState: updateTempState,\n addTempState: addTempState,\n applyTempState: applyTempState,\n destroyTempState: destroyTempState,\n undo: undo,\n redo: redo,\n getHistoryStates: getHistoryStates\n };\n };\n\n var renderImageTools = function (detail, providersBackstage) {\n var state = makeState(detail.currentState);\n var zoom = function (anyInSystem, simulatedEvent) {\n var direction = simulatedEvent.event().direction();\n imagePanel.zoom(anyInSystem, direction);\n };\n var updateButtonUndoStates = function (anyInSystem) {\n var historyStates = state.getHistoryStates();\n sideBar.updateButtonUndoStates(anyInSystem, historyStates.undoEnabled, historyStates.redoEnabled);\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.saveState(),\n value: historyStates.undoEnabled\n });\n };\n var disableUndoRedo = function (anyInSystem) {\n sideBar.updateButtonUndoStates(anyInSystem, false, false);\n };\n var undo = function (anyInSystem, _simulatedEvent) {\n var url = state.undo();\n updateSrc(anyInSystem, url).then(function (oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var redo = function (anyInSystem, _simulatedEvent) {\n var url = state.redo();\n updateSrc(anyInSystem, url).then(function (oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var imageResultToBlob = function (ir) {\n return ir.toBlob();\n };\n var block = function (anyInSystem) {\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.disable(),\n value: {}\n });\n };\n var unblock = function (anyInSystem) {\n editPanel.getApplyButton(anyInSystem).each(function (applyButton) {\n Disabling.enable(applyButton);\n });\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.enable(),\n value: {}\n });\n };\n var updateSrc = function (anyInSystem, src) {\n block(anyInSystem);\n return imagePanel.updateSrc(anyInSystem, src);\n };\n var blobManipulate = function (anyInSystem, blob, filter, action, swap) {\n block(anyInSystem);\n return ResultConversions.blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url).then(function (oImg) {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n return oImg;\n });\n }).catch(function (err) {\n domGlobals.console.log(err);\n unblock(anyInSystem);\n });\n };\n var manipulate = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n return state.updateTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var tempManipulate = function (anyInSystem, filter) {\n var blob = state.getTempState().blob;\n var action = function (blob) {\n return state.addTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, noop);\n };\n var manipulateApply = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n var url = state.addBlobState(blob);\n destroyTempState(anyInSystem);\n return url;\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var apply = function (anyInSystem, simulatedEvent) {\n var postApply = function () {\n destroyTempState(anyInSystem);\n var swap = simulatedEvent.event().swap();\n swap();\n };\n state.applyTempState(postApply);\n };\n var destroyTempState = function (anyInSystem) {\n var currentUrl = state.getBlobState().url;\n state.destroyTempState();\n updateButtonUndoStates(anyInSystem);\n return currentUrl;\n };\n var cancel = function (anyInSystem) {\n var currentUrl = destroyTempState(anyInSystem);\n updateSrc(anyInSystem, currentUrl).then(function (oImg) {\n unblock(anyInSystem);\n });\n };\n var back = function (anyInSystem, simulatedEvent) {\n cancel(anyInSystem);\n var swap = simulatedEvent.event().swap();\n swap();\n imagePanel.hideCrop();\n };\n var transform = function (anyInSystem, simulatedEvent) {\n return manipulate(anyInSystem, simulatedEvent.event().transform(), noop);\n };\n var tempTransform = function (anyInSystem, simulatedEvent) {\n return tempManipulate(anyInSystem, simulatedEvent.event().transform());\n };\n var transformApply = function (anyInSystem, simulatedEvent) {\n return manipulateApply(anyInSystem, simulatedEvent.event().transform(), simulatedEvent.event().swap());\n };\n var imagePanel = renderImagePanel(detail.currentState.url);\n var sideBar = renderSideBar(providersBackstage);\n var editPanel = renderEditPanel(imagePanel, providersBackstage);\n var swap = function (anyInSystem, simulatedEvent) {\n disableUndoRedo(anyInSystem);\n var transform = simulatedEvent.event().transform();\n var swap = simulatedEvent.event().swap();\n transform.fold(function () {\n swap();\n }, function (transform) {\n manipulate(anyInSystem, transform, swap);\n });\n };\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: [\n editPanel.memContainer.asSpec(),\n imagePanel.memContainer.asSpec(),\n sideBar.container\n ],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return state.getBlobState();\n }\n }\n }),\n config('image-tools-events', [\n run(internal.undo(), undo),\n run(internal.redo(), redo),\n run(internal.zoom(), zoom),\n run(internal.back(), back),\n run(internal.apply(), apply),\n run(internal.transform(), transform),\n run(internal.tempTransform(), tempTransform),\n run(internal.transformApply(), transformApply),\n run(internal.swap(), swap)\n ]),\n ComposingConfigs.self()\n ])\n };\n };\n\n var factory$8 = function (detail, spec) {\n var options = map(detail.options, function (option) {\n return {\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n };\n });\n var initialValues = detail.data.map(function (v) {\n return wrap$1('initialValue', v);\n }).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [\n Focusing.config({}),\n Representing.config({\n store: __assign({\n mode: 'manual',\n getValue: function (select) {\n return get$5(select.element());\n },\n setValue: function (select, newValue) {\n var found = find(detail.options, function (opt) {\n return opt.value === newValue;\n });\n if (found.isSome()) {\n set$3(select.element(), newValue);\n }\n }\n }, initialValues)\n })\n ])\n };\n };\n var HtmlSelect = single$2({\n name: 'HtmlSelect',\n configFields: [\n strict$1('options'),\n field$1('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted$1('selectClasses', []),\n defaulted$1('selectAttributes', {}),\n option('data')\n ],\n factory: factory$8\n });\n\n var renderSelectBox = function (spec, providersBackstage) {\n var translatedOptions = map(spec.items, function (item) {\n return {\n text: providersBackstage.translate(item.text),\n value: item.value\n };\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var pField = FormField.parts().field({\n dom: {},\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Tabstopping.config({}),\n config('selectbox-change', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var chevron = spec.size > 1 ? Option.none() : Option.some({\n dom: {\n tag: 'div',\n classes: ['tox-selectfield__icon-js'],\n innerHtml: get$c('chevron-down', providersBackstage.icons)\n }\n });\n var selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ])\n });\n };\n\n var renderTextField = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var baseInputBehaviours = [\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: function (comp) {\n emit(comp, formSubmitEvent);\n return Option.some(true);\n }\n }),\n config('textfield-change', [\n run(input(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run(postPaste(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n var validatingBehaviours = spec.validation.map(function (vl) {\n return Invalidating.config({\n getRoot: function (input) {\n return parent(input.element());\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: function (input) {\n var v = Representing.getValue(input);\n var result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n });\n }).toArray();\n var pField = FormField.parts().field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n inputAttributes: spec.placeholder.fold(function () {\n }, function (placeholder) {\n return { placeholder: providersBackstage.translate(placeholder) };\n }),\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([\n baseInputBehaviours,\n validatingBehaviours\n ])),\n selectOnFocus: false,\n factory: Input\n });\n var extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n return renderFormFieldWith(pLabel, pField, extraClasses);\n };\n var renderInput = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n placeholder: spec.placeholder,\n flex: false,\n classname: 'tox-textfield',\n validation: Option.none()\n }, providersBackstage);\n };\n var renderTextarea = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n placeholder: spec.placeholder,\n flex: true,\n classname: 'tox-textarea',\n validation: Option.none()\n }, providersBackstage);\n };\n\n var wrap$2 = function (delegate) {\n var toCached = function () {\n return wrap$2(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap$2(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n var bindResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap$2(Future.nu(function (callback) {\n var timedOut = false;\n var timer = domGlobals.setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n domGlobals.clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign({}, delegate, {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n var nu$c = function (worker) {\n return wrap$2(Future.nu(worker));\n };\n var value$3 = function (value) {\n return wrap$2(Future.pure(Result.value(value)));\n };\n var error$1 = function (error) {\n return wrap$2(Future.pure(Result.error(error)));\n };\n var fromResult$1 = function (result) {\n return wrap$2(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap$2(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$c(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$c,\n wrap: wrap$2,\n pure: value$3,\n value: value$3,\n error: error$1,\n fromResult: fromResult$1,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var separator$2 = { type: 'separator' };\n var toMenuItem = function (target) {\n return {\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: function () {\n }\n };\n };\n var staticMenuItem = function (title, url) {\n return {\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: function () {\n }\n };\n };\n var toMenuItems = function (targets) {\n return map(targets, toMenuItem);\n };\n var filterLinkTargets = function (type, targets) {\n return filter(targets, function (target) {\n return target.type === type;\n });\n };\n var filteredTargets = function (type, targets) {\n return toMenuItems(filterLinkTargets(type, targets));\n };\n var headerTargets = function (linkInfo) {\n return filteredTargets('header', linkInfo.targets);\n };\n var anchorTargets = function (linkInfo) {\n return filteredTargets('anchor', linkInfo.targets);\n };\n var anchorTargetTop = function (linkInfo) {\n return Option.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var anchorTargetBottom = function (linkInfo) {\n return Option.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var historyTargets = function (history) {\n return map(history, function (url) {\n return staticMenuItem(url, url);\n });\n };\n var joinMenuLists = function (items) {\n return foldl(items, function (a, b) {\n var bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$2, b);\n }, []);\n };\n var filterByQuery = function (term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter(menuItems, function (item) {\n var text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(item.value.toLowerCase(), lowerCaseTerm);\n });\n };\n\n var getItems = function (fileType, input, urlBackstage) {\n var urlInputValue = Representing.getValue(input);\n var term = urlInputValue.meta.text !== undefined ? urlInputValue.meta.text : urlInputValue.value;\n var info = urlBackstage.getLinkInformation();\n return info.fold(function () {\n return [];\n }, function (linkInfo) {\n var history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n var renderInputButton = function (label, eventName, className, iconName, providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n className\n ],\n innerHtml: get$c(iconName, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(label.getOr('')) }\n },\n buttonBehaviours: derive$1([Tabstopping.config({})]),\n action: function (component) {\n emit(component, eventName);\n }\n });\n };\n var renderUrlInput = function (spec, sharedBackstage, urlBackstage) {\n var _a;\n var updateHistory = function (component) {\n var urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n var pField = FormField.parts().field({\n factory: Typeahead,\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n minChars: 0,\n responseTime: 0,\n fetch: function (input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build$2(items, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage.providers);\n return Future.pure(tdata);\n },\n getHotspot: function (comp) {\n return memUrlBox.getOpt(comp);\n },\n onSetValue: function (comp, newValue) {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([\n urlBackstage.getValidationHandler().map(function (handler) {\n return Invalidating.config({\n getRoot: function (comp) {\n return parent(comp.element());\n },\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {},\n validator: {\n validate: function (input) {\n var urlEntry = Representing.getValue(input);\n return FutureResult.nu(function (completer) {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, function (validation) {\n memUrlBox.getOpt(input).each(function (urlBox) {\n var toggle = function (component, clazz, b) {\n (b ? add$2 : remove$4)(component.element(), clazz);\n };\n toggle(urlBox, 'tox-control-wrap--status-valid', validation.status === 'valid');\n toggle(urlBox, 'tox-control-wrap--status-unknown', validation.status === 'unknown');\n });\n completer((validation.status === 'invalid' ? Result.error : Result.value)(validation.message));\n });\n });\n },\n validateOnLoad: false\n }\n });\n }).toArray(),\n [\n Tabstopping.config({}),\n config('urlinput-events', flatten([\n spec.filetype === 'file' ? [run(input(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n })] : [],\n [\n run(change(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run(postPaste(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ]\n ]))\n ]\n ])),\n eventOrder: (_a = {}, _a[input()] = [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ], _a),\n model: {\n getDisplayText: function (itemData) {\n return itemData.value;\n },\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'dog' },\n lazySink: sharedBackstage.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: function (_menu, component, _entry) {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: function (typeahead, _sandbox, _item, _value) {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, sharedBackstage.providers);\n });\n var makeIcon = function (name, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n if (label === void 0) {\n label = name;\n }\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n innerHtml: get$c(icon, sharedBackstage.providers.icons),\n attributes: { title: sharedBackstage.providers.translate(label) }\n }\n };\n };\n var memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [\n makeIcon('valid', 'checkmark', 'valid'),\n makeIcon('unknown', 'warning'),\n makeIcon('invalid', 'warning')\n ]\n });\n var optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n var browseUrlEvent = generate$1('browser.url.event');\n var memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ]\n });\n var controlHWrapper = function () {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(function () {\n return renderInputButton(spec.label, browseUrlEvent, 'tox-browse-url', 'browse', sharedBackstage.providers);\n }).toArray()\n ])\n };\n };\n var openUrlPicker = function (comp) {\n Composing.getCurrent(comp).each(function (field) {\n var urlData = Representing.getValue(field);\n optUrlPicker.each(function (picker) {\n picker(urlData).get(function (chosenData) {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([config('url-input-events', [run(browseUrlEvent, openUrlPicker)])])\n });\n };\n\n var renderCheckbox = function (spec, providerBackstage) {\n var repBehaviour = Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var el = comp.element().dom();\n return el.checked;\n },\n setValue: function (comp, value) {\n var el = comp.element().dom();\n el.checked = value;\n }\n }\n });\n var toggleCheckboxHandler = function (comp) {\n comp.element().dom().click();\n return Option.some(true);\n };\n var pField = FormField.parts().field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Tabstopping.config({}),\n Focusing.config({}),\n repBehaviour,\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var pLabel = FormField.parts().label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label'],\n innerHtml: providerBackstage.translate(spec.label)\n },\n behaviours: derive$1([Unselecting.config({})])\n });\n var makeIcon = function (className) {\n var iconName = className === 'checked' ? 'selected' : 'unselected';\n return {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ],\n innerHtml: get$c(iconName, providerBackstage.icons)\n }\n };\n };\n var memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ]\n });\n };\n\n var renderHtmlPanel = function (spec) {\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html\n }\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html,\n attributes: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n });\n }\n };\n\n var renderListbox = function (spec, providersBackstage) {\n var pLabel = renderLabel(spec.label, providersBackstage);\n var pField = FormField.parts().field({\n factory: HtmlSelect,\n dom: { classes: ['mce-select-field'] },\n selectBehaviours: derive$1([Tabstopping.config({})]),\n options: spec.values,\n data: spec.initialValue.getOr(undefined)\n });\n return renderFormField(Option.some(pLabel), pField);\n };\n\n var renderLabel$2 = function (spec, backstageShared) {\n var label = {\n dom: {\n tag: 'label',\n innerHtml: backstageShared.providers.translate(spec.label),\n classes: ['tox-label']\n }\n };\n var comps = map(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [label].concat(comps),\n behaviours: derive$1([\n ComposingConfigs.self(),\n Replacing.config({}),\n RepresentingConfigs.domHtml(Option.none()),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n\n var renderCollection = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var runOnItem = function (f) {\n return function (comp, se) {\n closest$3(se.event().target(), '[data-collection-item-value]').each(function (target) {\n f(comp, target, get$2(target, 'data-collection-item-value'));\n });\n };\n };\n var escapeAttribute = function (ch) {\n if (ch === '\"') {\n return '"';\n }\n return ch;\n };\n var setContents = function (comp, items) {\n var htmlLines = map(items, function (item) {\n var textContent = spec.columns === 1 ? '
' + item.text + '
' : '';\n var iconContent = '
' + item.icon + '
';\n var mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n var ariaLabel = item.text.replace(/\\_| \\- |\\-/g, function (match) {\n return mapItemName[match];\n });\n return '
' + iconContent + textContent + '
';\n });\n var chunks = spec.columns > 1 && spec.columns !== 'auto' ? chunk(htmlLines, spec.columns) : [htmlLines];\n var html = map(chunks, function (ch) {\n return '
' + ch.join('') + '
';\n });\n set(comp.element(), html.join(''));\n };\n var collectionEvents = [\n run(mouseover(), runOnItem(function (comp, tgt) {\n focus$1(tgt);\n })),\n run(tapOrClick(), runOnItem(function (comp, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n })),\n run(focusin(), runOnItem(function (comp, tgt, itemValue) {\n descendant$2(comp.element(), '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run(focusout(), runOnItem(function (comp, tgt, itemValue) {\n descendant$2(comp.element(), '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n })),\n runOnExecute(runOnItem(function (comp, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n var pField = FormField.parts().field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: { sketch: identity },\n behaviours: derive$1([\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: []\n },\n onSetValue: function (comp, items) {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ])\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses);\n };\n\n var renderTable = function (spec, providersBackstage) {\n var renderTh = function (text) {\n return {\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderHeader = function (header) {\n return {\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map(header, renderTh)\n }]\n };\n };\n var renderTd = function (text) {\n return {\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderTr = function (row) {\n return {\n dom: { tag: 'tr' },\n components: map(row, renderTd)\n };\n };\n var renderRows = function (rows) {\n return {\n dom: { tag: 'tbody' },\n components: map(rows, renderTr)\n };\n };\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n var make$5 = function (render) {\n return function (parts, spec, backstage) {\n return readOptFrom$1(spec, 'name').fold(function () {\n return render(spec, backstage);\n }, function (fieldName) {\n return parts.field(fieldName, render(spec, backstage));\n });\n };\n };\n var makeIframe = function (render) {\n return function (parts, spec, backstage) {\n var iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$5(render)(parts, iframeSpec, backstage);\n };\n };\n var factories = {\n bar: make$5(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$5(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alloy: make$5(identity),\n alertbanner: make$5(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$5(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$5(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n listbox: make$5(function (spec, backstage) {\n return renderListbox(spec, backstage.shared.providers);\n }),\n label: make$5(function (spec, backstage) {\n return renderLabel$2(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n autocomplete: make$5(function (spec, backstage) {\n return renderAutocomplete(spec, backstage.shared);\n }),\n button: make$5(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$5(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$5(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$5(renderColorPicker),\n dropzone: make$5(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$5(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n selectbox: make$5(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$5(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$5(function (spec, backstage) {\n return renderUrlInput(spec, backstage.shared, backstage.urlinput);\n }),\n customeditor: make$5(renderCustomEditor),\n htmlpanel: make$5(renderHtmlPanel),\n imagetools: make$5(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$5(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n })\n };\n var noFormParts = {\n field: function (_name, spec) {\n return spec;\n }\n };\n var interpretInForm = function (parts, spec, oldBackstage) {\n var newBackstage = deepMerge(oldBackstage, {\n shared: {\n interpreter: function (childSpec) {\n return interpretParts(parts, childSpec, newBackstage);\n }\n }\n });\n return interpretParts(parts, spec, newBackstage);\n };\n var interpretParts = function (parts, spec, backstage) {\n return readOptFrom$1(factories, spec.type).fold(function () {\n domGlobals.console.error('Unknown factory type \"' + spec.type + '\", defaulting to container: ', spec);\n return spec;\n }, function (factory) {\n return factory(parts, spec, backstage);\n });\n };\n var interpretWithoutForm = function (spec, backstage) {\n var parts = noFormParts;\n return interpretParts(parts, spec, backstage);\n };\n\n var westEdgeX$1 = function (anchor) {\n return anchor.x();\n };\n var middleX$1 = function (anchor, element) {\n return anchor.x() + anchor.width() / 2 - element.width() / 2;\n };\n var eastEdgeX$1 = function (anchor, element) {\n return anchor.x() + anchor.width() - element.width();\n };\n var northY$2 = function (anchor) {\n return anchor.y();\n };\n var northeast$3 = function (anchor, element, bubbles) {\n return nu$8(westEdgeX$1(anchor), northY$2(anchor), bubbles.northeast(), northeast(), 'layout-ne');\n };\n var northwest$3 = function (anchor, element, bubbles) {\n return nu$8(eastEdgeX$1(anchor, element), northY$2(anchor), bubbles.northwest(), northwest(), 'layout-nw');\n };\n var north$3 = function (anchor, element, bubbles) {\n return nu$8(middleX$1(anchor, element), northY$2(anchor), bubbles.north(), north(), 'layout-n');\n };\n\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n var getToolbarAnchor = function (bodyElement, lazyAnchorbar, useFixedToolbarContainer) {\n var fixedToolbarAnchor = function () {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: Option.from(bodyElement()),\n bubble: nu$7(-12, -12, bubbleAlignments),\n layouts: {\n onRtl: function () {\n return [northeast$3];\n },\n onLtr: function () {\n return [northwest$3];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$7(-12, 12, bubbleAlignments),\n layouts: {\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n }\n };\n };\n return useFixedToolbarContainer ? fixedToolbarAnchor : standardAnchor;\n };\n var getBannerAnchor = function (bodyElement, lazyAnchorbar, useFixedToolbarContainer) {\n var fixedToolbarAnchor = function () {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: Option.from(bodyElement()),\n layouts: {\n onRtl: function () {\n return [north$3];\n },\n onLtr: function () {\n return [north$3];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function () {\n return [south$1];\n },\n onLtr: function () {\n return [south$1];\n }\n }\n };\n };\n return useFixedToolbarContainer ? fixedToolbarAnchor : standardAnchor;\n };\n var getToolbarOverflowAnchor = function (lazyMoreButton) {\n return function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyMoreButton(),\n layouts: {\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n }\n };\n };\n };\n var getCursorAnchor = function (editor, bodyElement) {\n return function () {\n return {\n anchor: 'selection',\n root: bodyElement(),\n getSelection: function () {\n var rng = editor.selection.getRng();\n return Option.some(range$1(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset));\n }\n };\n };\n };\n var getNodeAnchor = function (bodyElement) {\n return function (element) {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n var getAnchors = function (editor, lazyAnchorbar, lazyMoreButton) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n var bodyElement = function () {\n return Element.fromDom(editor.getBody());\n };\n return {\n toolbar: getToolbarAnchor(bodyElement, lazyAnchorbar, useFixedToolbarContainer),\n toolbarOverflow: getToolbarOverflowAnchor(lazyMoreButton),\n banner: getBannerAnchor(bodyElement, lazyAnchorbar, lazyMoreButton),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor(bodyElement)\n };\n };\n var Anchors = { getAnchors: getAnchors };\n\n var colorPicker = function (editor) {\n return function (callback, value) {\n var dialog = ColorSwatch.colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n var hasCustomColors$1 = function (editor) {\n return function () {\n return Settings.hasCustomColors(editor);\n };\n };\n var getColors$1 = function (editor) {\n return function () {\n return Settings.getColors(editor);\n };\n };\n var ColorInputBackstage = function (editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors$1(editor),\n getColors: getColors$1(editor)\n };\n };\n\n var defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n icon: 'bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n icon: 'italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n icon: 'underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n icon: 'strike-through',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n icon: 'superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n icon: 'subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n icon: 'code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n var isNestedFormat = function (format) {\n return has(format, 'items');\n };\n var isBlockFormat = function (format) {\n return has(format, 'block');\n };\n var isInlineFormat = function (format) {\n return has(format, 'inline');\n };\n var isSelectorFormat = function (format) {\n return has(format, 'selector');\n };\n var mapFormats = function (userFormats) {\n return foldl(userFormats, function (acc, fmt) {\n if (isNestedFormat(fmt)) {\n var result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n var formatName = 'custom-' + fmt.title.toLowerCase();\n return {\n customFormats: acc.customFormats.concat([{\n name: formatName,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatName,\n icon: fmt.icon\n }])\n };\n } else {\n return __assign({}, acc, { formats: acc.formats.concat(fmt) });\n }\n }, {\n customFormats: [],\n formats: []\n });\n };\n var registerCustomFormats = function (editor, userFormats) {\n var result = mapFormats(userFormats);\n var registerFormats = function (customFormats) {\n each(customFormats, function (fmt) {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', function () {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n var getStyleFormats = function (editor) {\n return getUserStyleFormats(editor).map(function (userFormats) {\n var registeredUserFormats = registerCustomFormats(editor, userFormats);\n return isMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n };\n\n var processBasic = function (item, isSelectedFor, getPreviewFor) {\n var formatterSpec = {\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n };\n return deepMerge(item, formatterSpec);\n };\n var register$3 = function (editor, formats, isSelectedFor, getPreviewFor) {\n var enrichSupported = function (item) {\n return processBasic(item, isSelectedFor, getPreviewFor);\n };\n var enrichMenu = function (item) {\n var submenuSpec = {\n type: 'submenu',\n isSelected: constant(false),\n getStylePreview: function () {\n return Option.none();\n }\n };\n return deepMerge(item, submenuSpec);\n };\n var enrichCustom = function (item) {\n var formatName = generate$1(item.title);\n var customSpec = {\n type: 'formatter',\n format: formatName,\n isSelected: isSelectedFor(formatName),\n getStylePreview: getPreviewFor(formatName)\n };\n var newItem = deepMerge(item, customSpec);\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n var doEnrich = function (items) {\n return map(items, function (item) {\n var keys$1 = keys(item);\n if (hasKey$1(item, 'items')) {\n var newItems_1 = doEnrich(item.items);\n return deepMerge(enrichMenu(item), {\n getStyleItems: function () {\n return newItems_1;\n }\n });\n } else if (hasKey$1(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains(keys$1, 'title')) {\n return deepMerge(item, { type: 'separator' });\n } else {\n return enrichCustom(item);\n }\n });\n };\n return doEnrich(formats);\n };\n\n var init$7 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n }) : Option.none();\n };\n };\n var flatten = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, flatten) : [fmt.format];\n };\n var settingsFormats = Cell([]);\n var settingsFlattenedFormats = Cell([]);\n var eventsFormats = Cell([]);\n var eventsFlattenedFormats = Cell([]);\n var replaceSettings = Cell(false);\n editor.on('init', function () {\n var formats = getStyleFormats(editor);\n var enriched = register$3(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$3(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind(modifications, flatten));\n });\n var getData = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n var fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n var getFlattenedKeys = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n var fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return {\n getData: getData,\n getFlattenedKeys: getFlattenedKeys\n };\n };\n\n var trim$1 = global$b.trim;\n var hasContentEditableState = function (value) {\n return function (node) {\n if (node && node.nodeType === 1) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var create$6 = function (type, title, url, level, attach) {\n return {\n type: type,\n title: title,\n url: url,\n level: level,\n attach: attach\n };\n };\n var isChildOfContentEditableTrue = function (node) {\n while (node = node.parentNode) {\n var value = node.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n return false;\n };\n var select = function (selector, root) {\n return map(descendants(Element.fromDom(root), selector), function (element) {\n return element.dom();\n });\n };\n var getElementText = function (elm) {\n return elm.innerText || elm.textContent;\n };\n var getOrGenerateId = function (elm) {\n return elm.id ? elm.id : generate$1('h');\n };\n var isAnchor = function (elm) {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n var isValidAnchor = function (elm) {\n return isAnchor(elm) && isEditable(elm);\n };\n var isHeader = function (elm) {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n var isEditable = function (elm) {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n var isValidHeader = function (elm) {\n return isHeader(elm) && isEditable(elm);\n };\n var getLevel = function (elm) {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n var headerTarget = function (elm) {\n var headerId = getOrGenerateId(elm);\n var attach = function () {\n elm.id = headerId;\n };\n return create$6('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n var anchorTarget = function (elm) {\n var anchorId = elm.id || elm.name;\n var anchorText = getElementText(elm);\n return create$6('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n var getHeaderTargets = function (elms) {\n return map(filter(elms, isValidHeader), headerTarget);\n };\n var getAnchorTargets = function (elms) {\n return map(filter(elms, isValidAnchor), anchorTarget);\n };\n var getTargetElements = function (elm) {\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n var hasTitle = function (target) {\n return trim$1(target.title).length > 0;\n };\n var find$5 = function (elm) {\n var elms = getTargetElements(elm);\n return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n var LinkTargets = { find: find$5 };\n\n var STORAGE_KEY = 'tinymce-url-history';\n var HISTORY_LENGTH = 5;\n var isHttpUrl = function (url) {\n return isString(url) && /^https?/.test(url);\n };\n var isArrayOfUrl = function (a) {\n return isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n };\n var isRecordOfUrlArray = function (r) {\n return isObject(r) && find$1(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n var getAllHistory = function () {\n var unparsedHistory = domGlobals.localStorage.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n var history;\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n domGlobals.console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n domGlobals.console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n var setAllHistory = function (history) {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n domGlobals.localStorage.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n var getHistory = function (fileType) {\n var history = getAllHistory();\n return Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n };\n var addToHistory = function (url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n var history = getAllHistory();\n var items = Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n var itemsWithoutUrl = filter(items, function (item) {\n return item !== url;\n });\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n var hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n var isTruthy = function (value) {\n return !!value;\n };\n var makeMap = function (value) {\n return map$1(global$b.makeMap(value, /[, ]/), isTruthy);\n };\n var getOpt = function (obj, key) {\n return hasOwnProperty$2.call(obj, key) ? Option.some(obj[key]) : Option.none();\n };\n var getTextSetting = function (settings, name, defaultValue) {\n var value = getOpt(settings, name).getOr(defaultValue);\n return isString(value) ? Option.some(value) : Option.none();\n };\n var getPicker = function (settings) {\n return Option.some(settings.file_picker_callback).filter(isFunction);\n };\n var getPickerTypes = function (settings) {\n var optFileTypes = Option.some(settings.file_picker_types).filter(isTruthy);\n var optLegacyTypes = Option.some(settings.file_browser_callback_types).filter(isTruthy);\n var optTypes = optFileTypes.or(optLegacyTypes).map(makeMap);\n return getPicker(settings).fold(function () {\n return false;\n }, function (_picker) {\n return optTypes.fold(function () {\n return true;\n }, function (types) {\n return keys(types).length > 0 ? types : false;\n });\n });\n };\n var getPickerSetting = function (settings, filetype) {\n var pickerTypes = getPickerTypes(settings);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(settings) : Option.none();\n } else {\n return pickerTypes[filetype] ? getPicker(settings) : Option.none();\n }\n };\n var getUrlPicker = function (editor, filetype) {\n return getPickerSetting(editor.settings, filetype).map(function (picker) {\n return function (entry) {\n return Future.nu(function (completer) {\n var handler = function (value, meta) {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n var r = {\n value: value,\n meta: meta\n };\n completer(r);\n };\n var meta = global$b.extend({ filetype: filetype }, Option.from(entry.meta).getOr({}));\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n var getLinkInformation = function (editor) {\n if (editor.settings.typeahead_urls === false) {\n return Option.none();\n }\n return Option.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(editor.settings, 'anchor_top', '#top').getOrUndefined(),\n anchorBottom: getTextSetting(editor.settings, 'anchor_bottom', '#bottom').getOrUndefined()\n });\n };\n var getValidationHandler = function (editor) {\n var validatorHandler = editor.settings.filepicker_validator_handler;\n return isFunction(validatorHandler) ? Option.some(validatorHandler) : Option.none();\n };\n var UrlInputBackstage = function (editor) {\n return {\n getHistory: getHistory,\n addToHistory: addToHistory,\n getLinkInformation: function () {\n return getLinkInformation(editor);\n },\n getValidationHandler: function () {\n return getValidationHandler(editor);\n },\n getUrlPicker: function (filetype) {\n return getUrlPicker(editor, filetype);\n }\n };\n };\n\n var init$8 = function (sink, editor, lazyAnchorbar, lazyMoreButton) {\n var backstage = {\n shared: {\n providers: {\n icons: function () {\n return editor.ui.registry.getAll().icons;\n },\n menuItems: function () {\n return editor.ui.registry.getAll().menuItems;\n },\n translate: global$3.translate\n },\n interpreter: function (s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: Anchors.getAnchors(editor, lazyAnchorbar, lazyMoreButton),\n getSink: function () {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$7(editor),\n colorinput: ColorInputBackstage(editor)\n };\n return backstage;\n };\n\n var showContextToolbarEvent = 'contexttoolbar-show';\n\n var generate$6 = function (xs, f) {\n var init = {\n len: 0,\n list: []\n };\n var r = foldl(xs, function (b, a) {\n var value = f(a, b.len);\n return value.fold(constant(b), function (v) {\n return {\n len: v.finish(),\n list: b.list.concat([v])\n };\n });\n }, init);\n return r.list;\n };\n\n var output$1 = Immutable('within', 'extra', 'withinWidth');\n var apportion = function (units, total, len) {\n var parray = generate$6(units, function (unit, current) {\n var width = len(unit);\n return Option.some({\n element: constant(unit),\n start: constant(current),\n finish: constant(current + width),\n width: constant(width)\n });\n });\n var within = filter(parray, function (unit) {\n return unit.finish() <= total;\n });\n var withinWidth = foldr(within, function (acc, el) {\n return acc + el.width();\n }, 0);\n var extra = parray.slice(within.length);\n return {\n within: constant(within),\n extra: constant(extra),\n withinWidth: constant(withinWidth)\n };\n };\n var toUnit = function (parray) {\n return map(parray, function (unit) {\n return unit.element();\n });\n };\n var fitLast = function (within, extra, withinWidth) {\n var fits = toUnit(within.concat(extra));\n return output$1(fits, [], withinWidth);\n };\n var overflow = function (within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output$1(fits, toUnit(extra), withinWidth);\n };\n var fitAll = function (within, extra, withinWidth) {\n return output$1(toUnit(within), [], withinWidth);\n };\n var tryFit = function (total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra().length === 0 ? Option.some(divide) : Option.none();\n };\n var partition$3 = function (total, units, len, overflower) {\n var divide = tryFit(total, units, len).getOrThunk(function () {\n return apportion(units, total - len(overflower), len);\n });\n var within = divide.within();\n var extra = divide.extra();\n var withinWidth = divide.withinWidth();\n if (extra.length === 1 && extra[0].width() <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n\n var getAnimationRoot = function (component, slideConfig) {\n return slideConfig.getAnimationRoot.fold(function () {\n return component.element();\n }, function (get) {\n return get(component);\n });\n };\n\n var getDimensionProperty = function (slideConfig) {\n return slideConfig.dimension.property;\n };\n var getDimension = function (slideConfig, elem) {\n return slideConfig.dimension.getDimension(elem);\n };\n var disableTransitions = function (component, slideConfig) {\n var root = getAnimationRoot(component, slideConfig);\n remove$5(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n var setShrunk = function (component, slideConfig) {\n remove$4(component.element(), slideConfig.openClass);\n add$2(component.element(), slideConfig.closedClass);\n set$2(component.element(), getDimensionProperty(slideConfig), '0px');\n reflow(component.element());\n };\n var setGrown = function (component, slideConfig) {\n remove$4(component.element(), slideConfig.closedClass);\n add$2(component.element(), slideConfig.openClass);\n remove$6(component.element(), getDimensionProperty(slideConfig));\n };\n var doImmediateShrink = function (component, slideConfig, slideState, _calculatedSize) {\n slideState.setCollapsed();\n set$2(component.element(), getDimensionProperty(slideConfig), getDimension(slideConfig, component.element()));\n reflow(component.element());\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n var doStartShrink = function (component, slideConfig, slideState, calculatedSize) {\n var size = calculatedSize.getOrThunk(function () {\n return getDimension(slideConfig, component.element());\n });\n slideState.setCollapsed();\n set$2(component.element(), getDimensionProperty(slideConfig), size);\n reflow(component.element());\n var root = getAnimationRoot(component, slideConfig);\n remove$4(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n var doStartSmartShrink = function (component, slideConfig, slideState) {\n var size = getDimension(slideConfig, component.element());\n var shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Option.some(size));\n };\n var doStartGrow = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has$2(root, slideConfig.shrinkingClass);\n var beforeSize = getDimension(slideConfig, component.element());\n setGrown(component, slideConfig);\n var fullSize = getDimension(slideConfig, component.element());\n var startPartialGrow = function () {\n set$2(component.element(), getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element());\n };\n var startCompleteGrow = function () {\n setShrunk(component, slideConfig);\n };\n var setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$4(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$2(component.element(), getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n var refresh = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element(), getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element());\n set$2(component.element(), getDimensionProperty(slideConfig), fullSize);\n }\n };\n var grow = function (component, slideConfig, slideState) {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n var shrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n var immediateShrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState, Option.none());\n }\n };\n var hasGrown = function (component, slideConfig, slideState) {\n return slideState.isExpanded();\n };\n var hasShrunk = function (component, slideConfig, slideState) {\n return slideState.isCollapsed();\n };\n var isGrowing = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.growingClass) === true;\n };\n var isShrinking = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.shrinkingClass) === true;\n };\n var isTransitioning = function (component, slideConfig, slideState) {\n return isGrowing(component, slideConfig, slideState) === true || isShrinking(component, slideConfig, slideState) === true;\n };\n var toggleGrow = function (component, slideConfig, slideState) {\n var f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n\n var SlidingApis = /*#__PURE__*/Object.freeze({\n refresh: refresh,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions\n });\n\n var exhibit$6 = function (base, slideConfig) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$6({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$6({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n var events$d = function (slideConfig, slideState) {\n return derive([runOnSource(transitionend(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event().raw();\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$6(component.element(), slideConfig.dimension.property);\n }\n var notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n };\n\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n exhibit: exhibit$6,\n events: events$d\n });\n\n var SlidingSchema = [\n strict$1('closedClass'),\n strict$1('openClass'),\n strict$1('shrinkingClass'),\n strict$1('growingClass'),\n option('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted$1('expanded', false),\n strictOf('dimension', choose$1('property', {\n width: [\n output('property', 'width'),\n output('getDimension', function (elem) {\n return get$7(elem) + 'px';\n })\n ],\n height: [\n output('property', 'height'),\n output('getDimension', function (elem) {\n return get$8(elem) + 'px';\n })\n ]\n }))\n ];\n\n var init$9 = function (spec) {\n var state = Cell(spec.expanded);\n var readState = function () {\n return 'expanded: ' + state.get();\n };\n return nu$5({\n isExpanded: function () {\n return state.get() === true;\n },\n isCollapsed: function () {\n return state.get() === false;\n },\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState: readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n init: init$9\n });\n\n var Sliding = create$1({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n var schema$j = constant([\n defaulted$1('shell', true),\n field$1('toolbarBehaviours', [Replacing])\n ]);\n var enhanceGroups = function (detail) {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var parts$7 = constant([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n var factory$9 = function (detail, components, spec, _externals) {\n var setGroups = function (toolbar, groups) {\n getGroupContainer(toolbar).fold(function () {\n domGlobals.console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, function (container) {\n Replacing.set(container, groups);\n });\n };\n var getGroupContainer = function (component) {\n return detail.shell ? Option.some(component) : getPart(component, detail, 'groups');\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: { setGroups: setGroups },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var Toolbar = composite$1({\n name: 'Toolbar',\n configFields: schema$j(),\n partFields: parts$7(),\n factory: factory$9,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n var schema$k = constant([\n markers([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n field$1('splitToolbarBehaviours', []),\n state$1('builtGroups', function () {\n return Cell([]);\n }),\n defaulted$1('overflow', function (toolbar) {\n return Option.none();\n }),\n defaultedBoolean('floating', false)\n ]);\n var toolbarSchema = [\n strict$1('dom'),\n defaulted$1('overflow', function (toolbar) {\n return Option.none();\n }),\n defaultedBoolean('floating', false)\n ];\n var parts$8 = constant([\n required({\n factory: Toolbar,\n schema: toolbarSchema,\n name: 'primary'\n }),\n optional({\n factory: Toolbar,\n schema: toolbarSchema,\n name: 'overflow',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Keying.focusIn);\n return Option.some(true);\n }\n })\n ])\n };\n }\n }),\n external$1({\n name: 'overflow-button',\n overrides: function (toolbarDetail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: toolbarDetail.markers.overflowToggledClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var schema$l = constant([\n strict$1('items'),\n markers(['itemSelector']),\n field$1('tgroupBehaviours', [Keying])\n ]);\n var parts$9 = constant([group({\n name: 'items',\n unit: 'item'\n })]);\n\n var factory$a = function (detail, components, spec, _externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n 'components': components,\n 'behaviours': augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: { attributes: { role: 'toolbar' } }\n };\n };\n var ToolbarGroup = composite$1({\n name: 'ToolbarGroup',\n configFields: schema$l(),\n partFields: parts$9(),\n factory: factory$a\n });\n\n var setStoredGroups = function (bar, storedGroups) {\n var bGroups = map(storedGroups, function (g) {\n return premade$1(g);\n });\n Toolbar.setGroups(bar, bGroups);\n };\n var refresh$1 = function (toolbar, detail, externals, toolbarToggleEvent) {\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflow = getPart(toolbar, detail, 'overflow').orThunk(function () {\n return detail.overflow(toolbar);\n });\n set$2(primary.element(), 'visibility', 'hidden');\n overflow.each(function (overf) {\n Toolbar.setGroups(overf, []);\n });\n var groups = detail.builtGroups.get();\n var overflowGroupSpec = ToolbarGroup.sketch(__assign({}, externals['overflow-group'](), {\n items: [Button.sketch(__assign({}, externals['overflow-button'](), {\n action: function (_button) {\n if (detail.floating === true) {\n emit(toolbar, toolbarToggleEvent);\n } else {\n overflow.each(function (overf) {\n Sliding.toggleGrow(overf);\n });\n }\n }\n }))]\n }));\n var overflowGroup = toolbar.getSystem().build(overflowGroupSpec);\n setStoredGroups(primary, groups.concat([overflowGroup]));\n var total = get$7(primary.element());\n var overflows = partition$3(total, groups, function (comp) {\n return get$7(comp.element());\n }, overflowGroup);\n if (overflows.extra().length === 0) {\n Replacing.remove(primary, overflowGroup);\n overflow.each(function (overf) {\n Toolbar.setGroups(overf, []);\n });\n } else {\n setStoredGroups(primary, overflows.within());\n overflow.each(function (overf) {\n setStoredGroups(overf, overflows.extra());\n });\n }\n remove$6(primary.element(), 'visibility');\n reflow(primary.element());\n overflow.each(function (overf) {\n if (!detail.floating) {\n Sliding.refresh(overf);\n }\n getPart(toolbar, detail, 'overflow-button').each(function (moreButton) {\n if (detail.floating) {\n Toggling.set(moreButton, overf.getSystem().isConnected());\n } else {\n Toggling.set(moreButton, Sliding.hasGrown(overf));\n Keying.focusIn(overf);\n }\n });\n });\n };\n var factory$b = function (detail, components, spec, externals) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n var doSetGroups = function (toolbar, groups) {\n var built = map(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n var setGroups = function (toolbar, groups) {\n doSetGroups(toolbar, groups);\n refresh$1(toolbar, detail, externals, toolbarToggleEvent);\n };\n var getMoreButton = function (toolbar) {\n return getPart(toolbar, detail, 'overflow-button');\n };\n var getOverflow = function (toolbar) {\n return getPart(toolbar, detail, 'overflow').orThunk(function () {\n return detail.overflow(toolbar);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, []),\n apis: {\n setGroups: setGroups,\n refresh: function (toolbar) {\n refresh$1(toolbar, detail, externals, toolbarToggleEvent);\n },\n getMoreButton: function (toolbar) {\n return getMoreButton(toolbar);\n },\n getOverflow: function (toolbar) {\n return getOverflow(toolbar);\n }\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var SplitToolbar = composite$1({\n name: 'SplitToolbar',\n configFields: schema$k(),\n partFields: parts$8(),\n factory: factory$b,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n getMoreButton: function (apis, toolbar) {\n return apis.getMoreButton(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n }\n }\n });\n\n var renderToolbarGroupCommon = function (toolbarGroup) {\n var attributes = toolbarGroup.title.fold(function () {\n return {};\n }, function (title) {\n return { attributes: { title: title } };\n });\n return {\n dom: __assign({\n tag: 'div',\n classes: ['tox-toolbar__group']\n }, attributes),\n components: [ToolbarGroup.parts().items({})],\n items: toolbarGroup.items,\n markers: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), .tox-split-button:not([disabled]), .tox-toolbar-nav-js:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n var renderToolbarGroup = function (toolbarGroup) {\n return ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n };\n var getToolbarbehaviours = function (toolbarSpec, modeName, overflowOpt) {\n var onAttached = runOnAttached(function (component) {\n var groups = map(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n var eventBehaviours = overflowOpt.fold(function () {\n return [onAttached];\n }, function (memOverflow) {\n return [\n onAttached,\n run('alloy.toolbar.toggle', function (toolbar, se) {\n toolbarSpec.getSink().toOption().each(function (sink) {\n memOverflow.getOpt(sink).fold(function () {\n var builtoverFlow = build$1(memOverflow.asSpec());\n attach(sink, builtoverFlow);\n Positioning.position(sink, toolbarSpec.backstage.shared.anchors.toolbarOverflow(), builtoverFlow);\n SplitToolbar.refresh(toolbar);\n SplitToolbar.getMoreButton(toolbar).each(Focusing.focus);\n Keying.focusIn(builtoverFlow);\n }, function (builtOverflow) {\n detach(builtOverflow);\n });\n });\n })\n ];\n });\n return derive$1([\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', eventBehaviours)\n ]);\n };\n var renderMoreToolbar = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n var memOverflow = record(Toolbar.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n },\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function () {\n emit(toolbarSpec.moreDrawerData.lazyToolbar(), 'alloy.toolbar.toggle');\n Keying.focusIn(toolbarSpec.moreDrawerData.lazyMoreButton());\n return Option.some(true);\n }\n })])\n }));\n var getOverflow = function (toolbar) {\n return toolbarSpec.getSink().toOption().bind(function (sink) {\n return memOverflow.getOpt(sink).bind(function (overflow) {\n return SplitToolbar.getMoreButton(toolbar).bind(function (_moreButton) {\n if (overflow.getSystem().isConnected()) {\n Positioning.position(sink, toolbarSpec.backstage.shared.anchors.toolbarOverflow(), overflow);\n return Option.some(overflow);\n } else {\n return Option.none();\n }\n });\n });\n });\n };\n var primary = SplitToolbar.parts().primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n var splitToolbarComponents = toolbarSpec.moreDrawerData.floating ? [primary] : [\n primary,\n SplitToolbar.parts().overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n })\n ];\n return SplitToolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n floating: toolbarSpec.moreDrawerData.floating,\n overflow: getOverflow,\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Option.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n name: 'more',\n icon: Option.some('more-drawer'),\n disabled: false,\n tooltip: Option.some('More...')\n }, Option.none(), toolbarSpec.backstage.shared.providers)\n },\n components: splitToolbarComponents,\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName, Option.some(memOverflow))\n });\n };\n var renderToolbar = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n components: [Toolbar.parts().groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName, Option.none())\n });\n };\n\n var baseToolbarButtonFields = [\n defaultedBoolean('disabled', false),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n var toolbarButtonSchema = objOf([\n strictString('type'),\n strictFunction('onAction')\n ].concat(baseToolbarButtonFields));\n var createToolbarButton = function (spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n\n var MenuButtonSchema = objOf([\n strictString('type'),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ]);\n var createMenuButton = function (spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n\n var splitButtonSchema = objOf([\n strictString('type'),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n optionFunction('select'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaulted$1('columns', 1),\n strictFunction('onAction'),\n strictFunction('onItemAction')\n ]);\n var createSplitButton = function (spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n strictString('type'),\n strictFunction('onAction')\n ]));\n var createToggleButton = function (spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n\n var contextBarFields = [\n defaultedFunction('predicate', function () {\n return false;\n }),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n var contextButtonFields = baseToolbarButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted$1('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted$1('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([\n defaulted$1('type', 'contextform'),\n defaultedFunction('initValue', function () {\n return '';\n }),\n optionString('label'),\n strictArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n var contextToolbarSchema = objOf([\n defaulted$1('type', 'contexttoolbar'),\n strictString('items')\n ].concat(contextBarFields));\n var createContextToolbar = function (spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n var createContextForm = function (spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n\n var internalToolbarButtonExecute = generate$1('toolbar.button.execute');\n var onToolbarButtonExecute = function (info) {\n return runOnExecute(function (comp, simulatedEvent) {\n runWithApi(info, comp)(function (itemApi) {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n };\n var toolbarButtonEventOrder = {\n 'alloy.execute': [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events'\n ]\n };\n\n var getState$2 = function (component, replaceConfig, reflectState) {\n return reflectState;\n };\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n getState: getState$2\n });\n\n var events$e = function (reflectingConfig, reflectingState) {\n var update = function (component, data) {\n reflectingConfig.updateState.each(function (updateState) {\n var newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(function (renderComponents) {\n var newComponents = renderComponents(data, reflectingState.get());\n detachChildren(component);\n each(newComponents, function (c) {\n attach(component, component.getSystem().build(c));\n });\n });\n };\n return derive([\n run(receive(), function (component, message) {\n var channel = reflectingConfig.channel;\n if (contains(message.channels(), channel)) {\n update(component, message.data());\n }\n }),\n runOnAttached(function (comp, se) {\n reflectingConfig.initialData.each(function (rawData) {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n events: events$e\n });\n\n var init$a = function (spec) {\n var cell = Cell(Option.none());\n var set = function (optS) {\n return cell.set(optS);\n };\n var clear = function () {\n return cell.set(Option.none());\n };\n var get = function () {\n return cell.get();\n };\n var readState = function () {\n return cell.get().getOr('none');\n };\n return {\n readState: readState,\n get: get,\n set: set,\n clear: clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n init: init$a\n });\n\n var ReflectingSchema = [\n strict$1('channel'),\n option('renderComponents'),\n option('updateState'),\n option('initialData')\n ];\n\n var Reflecting = create$1({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n var schema$m = constant([\n strict$1('toggleClass'),\n strict$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted$1('getHotspot', Option.some),\n defaulted$1('layouts', Option.none()),\n onStrictHandler('onItemExecute'),\n option('lazySink'),\n strict$1('dom'),\n onHandler('onOpen'),\n field$1('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n defaulted$1('eventOrder', {}),\n option('role')\n ].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'arrow',\n defaults: function (detail) {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (arrow) {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n var buttonPart = required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'button',\n defaults: function (detail) {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (btn) {\n btn.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n var parts$a = constant([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return {\n onExecute: function (tmenu, item) {\n tmenu.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType()\n ]);\n\n var factory$c = function (detail, components, spec, externals) {\n var switchToMenu = function (sandbox) {\n Composing.getCurrent(sandbox).each(function (current) {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var openMenu = function (comp) {\n action(comp);\n return Option.some(true);\n };\n var executeOnButton = function (comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Option.some(true);\n };\n var buttonEvents = merge(derive([runOnAttached(function (component, simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$1('aria');\n set$1(descriptor.element(), 'id', descriptorId);\n set$1(component.element(), 'aria-describedby', descriptorId);\n });\n })]), events$7(Option.some(action)));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n eventOrder: __assign({}, detail.eventOrder, {\n 'alloy.execute': [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n }),\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n var arrow = getPartOrDie(hotspot, detail, 'arrow');\n var extras = {\n onOpen: function () {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n var SplitDropdown = composite$1({\n name: 'SplitDropdown',\n configFields: schema$m(),\n partFields: parts$a(),\n factory: factory$c\n });\n\n var updateMenuText = generate$1('update-menu-text');\n var updateMenuIcon = generate$1('update-menu-icon');\n var renderCommonDropdown = function (spec, prefix, sharedBackstage) {\n var editorOffCell = Cell(noop);\n var optMemDisplayText = spec.text.map(function (text) {\n return record(renderLabel$1(text, prefix, sharedBackstage.providers));\n });\n var optMemDisplayIcon = spec.icon.map(function (iconName) {\n return record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons));\n });\n var onLeftOrRightInMenu = function (comp, se) {\n var dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event().raw() });\n Dropdown.close(dropdown);\n return Option.some(true);\n };\n var role = spec.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\n });\n var tooltipAttributes = spec.tooltip.fold(function () {\n return {};\n }, function (tooltip) {\n var translatedTooltip = sharedBackstage.providers.translate(tooltip);\n return {\n 'title': translatedTooltip,\n 'aria-label': translatedTooltip\n };\n });\n var memDropdown = record(Dropdown.sketch(__assign({}, role, {\n dom: {\n tag: 'button',\n classes: [\n prefix,\n prefix + '--select'\n ].concat(map(spec.classes, function (c) {\n return prefix + '--' + c;\n })),\n attributes: __assign({}, tooltipAttributes)\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(function (mem) {\n return mem.asSpec();\n }),\n optMemDisplayText.map(function (mem) {\n return mem.asSpec();\n }),\n Option.some({\n dom: {\n tag: 'div',\n classes: [prefix + '__select-chevron'],\n innerHtml: get$c('chevron-down', sharedBackstage.providers.icons)\n }\n })\n ]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(spec.dropdownBehaviours.concat([\n DisablingConfigs.button(spec.disabled),\n Unselecting.config({}),\n Replacing.config({}),\n config('dropdown-events', [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config('menubutton-update-display-text', [\n run(updateMenuText, function (comp, se) {\n optMemDisplayText.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayText) {\n Replacing.set(displayText, [text(sharedBackstage.providers.translate(se.event().text()))]);\n });\n }),\n run(updateMenuIcon, function (comp, se) {\n optMemDisplayIcon.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayIcon) {\n Replacing.set(displayIcon, [renderReplacableIconFromPack(se.event().icon(), sharedBackstage.providers.icons)]);\n });\n })\n ])\n ])),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ]\n }),\n sandboxBehaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n })]),\n lazySink: sharedBackstage.getSink,\n toggleClass: prefix + '--active',\n parts: { menu: part(false, spec.columns, spec.presets) },\n fetch: function () {\n return Future.nu(spec.fetch);\n }\n })));\n return memDropdown.asSpec();\n };\n\n var getButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getToggleApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getMenuButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n },\n setActive: function (state) {\n var elm = component.element();\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$1(elm, 'aria-pressed', true);\n } else {\n remove$4(elm, 'tox-tbtn--enabled');\n remove$1(elm, 'aria-pressed');\n }\n },\n isActive: function () {\n return has$2(component.element(), 'tox-tbtn--enabled');\n }\n };\n };\n var getTooltipAttributes = function (tooltip, providersBackstage) {\n return tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n };\n var focusButtonEvent = generate$1('focus-button');\n var renderCommonStructure = function (icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _a;\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(text.isSome() ? ['tox-tbtn--select'] : []),\n attributes: getTooltipAttributes(tooltip, providersBackstage)\n },\n components: componentRenderPipeline([\n icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }),\n text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]),\n eventOrder: (_a = {}, _a[mousedown()] = [\n 'focusing',\n 'alloy.base.behaviour',\n 'common-button-display-events'\n ], _a),\n buttonBehaviours: derive$1([config('common-button-display-events', [run(mousedown(), function (button, se) {\n se.event().prevent();\n emit(button, focusButtonEvent);\n })])].concat(receiver.map(function (r) {\n return Reflecting.config({\n channel: r,\n initialData: {\n icon: icon,\n text: text\n },\n renderComponents: function (data, _state) {\n return componentRenderPipeline([\n data.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }),\n data.text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]);\n }\n });\n }).toArray()).concat(behaviours.getOr([])))\n };\n };\n var renderCommonToolbarButton = function (spec, specialisation, providersBackstage) {\n var editorOffCell = Cell(noop);\n var structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Option.none(), Option.none(), providersBackstage);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: derive$1([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.button(spec.disabled)\n ].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n var renderToolbarButton = function (spec, providersBackstage) {\n return renderToolbarButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarButtonWith = function (spec, providersBackstage, bonusEvents) {\n return renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [].concat(bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : []),\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage);\n };\n var renderToolbarToggleButton = function (spec, providersBackstage) {\n return renderToolbarToggleButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarToggleButtonWith = function (spec, providersBackstage, bonusEvents) {\n return deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n };\n var fetchChoices = function (getApi, spec, providersBackstage) {\n return function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Option.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(function () {\n return false;\n }), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached(function (comp, se) {\n detectSize(comp, 4, classForPreset(spec.presets)).each(function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n var renderSplitButton = function (spec, sharedBackstage) {\n var _a;\n var displayChannel = generate$1('channel-update-split-dropdown-display');\n var getApi = function (comp) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(comp);\n },\n setDisabled: function (state) {\n return Disabling.set(comp, state);\n },\n setIconFill: function (id, value) {\n descendant$2(comp.element(), 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function (id, value) {\n descendant$2(comp.element(), 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'stroke', value);\n });\n },\n setActive: function (state) {\n set$1(comp.element(), 'aria-pressed', state);\n descendant$2(comp.element(), 'span').each(function (button) {\n comp.getSystem().getByDom(button).each(function (buttonComp) {\n return Toggling.set(buttonComp, state);\n });\n });\n },\n isActive: function () {\n return descendant$2(comp.element(), 'span').exists(function (button) {\n return comp.getSystem().getByDom(button).exists(Toggling.isOn);\n });\n }\n };\n };\n var editorOffCell = Cell(noop);\n var specialisation = {\n getApi: getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: merge({ 'aria-pressed': false }, getTooltipAttributes(spec.tooltip, sharedBackstage.providers))\n },\n onExecute: function (button) {\n spec.onAction(getApi(button));\n },\n onItemExecute: function (a, b, c) {\n },\n splitDropdownBehaviours: derive$1([\n DisablingConfigs.splitButton(false),\n config('split-dropdown-events', [\n run(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ])\n ]),\n eventOrder: (_a = {}, _a[attachedToDom()] = [\n 'alloy.base.behaviour',\n 'split-dropdown-events'\n ], _a),\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n SplitDropdown.parts().button(renderCommonStructure(spec.icon, spec.text, Option.none(), Option.some(displayChannel), Option.some([Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n })]), sharedBackstage.providers)),\n SplitDropdown.parts().arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$c('chevron-down', sharedBackstage.providers.icons)\n }\n }),\n SplitDropdown.parts()['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n var renderMenuButton = function (spec, prefix, sharedBackstage, role) {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role: role,\n fetch: function (callback) {\n spec.fetch(function (items) {\n callback(build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, sharedBackstage.providers));\n });\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: []\n }, prefix, sharedBackstage);\n };\n\n var getFormApi = function (input) {\n return {\n hide: function () {\n return emit(input, sandboxClose());\n },\n getValue: function () {\n return Representing.getValue(input);\n }\n };\n };\n var runOnExecute$1 = function (memInput, original) {\n return run(internalToolbarButtonExecute, function (comp, se) {\n var input = memInput.get(comp);\n var formApi = getFormApi(input);\n original.onAction(formApi, se.event().buttonApi());\n });\n };\n var renderContextButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie$1(createToolbarButton(__assign({}, rest, {\n type: 'button',\n onAction: function () {\n }\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var renderContextToggleButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie$1(createToggleButton(__assign({}, rest, {\n type: 'togglebutton',\n onAction: function () {\n }\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var generateOne$1 = function (memInput, button, providersBackstage) {\n var extras = { backstage: { shared: { providers: providersBackstage } } };\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n var generate$7 = function (memInput, buttons, providersBackstage) {\n var mementos = map(buttons, function (button) {\n return record(generateOne$1(memInput, button, providersBackstage));\n });\n var asSpecs = function () {\n return map(mementos, function (mem) {\n return mem.asSpec();\n });\n };\n var findPrimary = function (compInSystem) {\n return findMap(buttons, function (button, i) {\n if (button.primary) {\n return Option.from(mementos[i]).bind(function (mem) {\n return mem.getOpt(compInSystem);\n }).filter(not(Disabling.isDisabled));\n } else {\n return Option.none();\n }\n });\n };\n return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n\n var renderContextForm = function (ctx, backstage) {\n var inputAttributes = ctx.label.fold(function () {\n return {};\n }, function (label) {\n return { 'aria-label': label };\n });\n var memInput = record(Input.sketch({\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-js'\n ],\n data: ctx.initValue(),\n inputAttributes: inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: function (input) {\n return commands.findPrimary(input).map(function (primary) {\n emitExecute(primary);\n return true;\n });\n },\n onLeft: function (comp, se) {\n se.cut();\n return Option.none();\n },\n onRight: function (comp, se) {\n se.cut();\n return Option.none();\n }\n })])\n }));\n var commands = generate$7(memInput, ctx.commands, backstage.shared.providers);\n return renderToolbar({\n uid: generate$1('context-toolbar'),\n initGroups: [\n {\n title: Option.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Option.none(),\n items: commands.asSpecs()\n }\n ],\n onEscape: Option.none,\n cyclicKeying: true,\n backstage: backstage,\n getSink: function () {\n return Result.error('');\n }\n });\n };\n var ContextForm = { renderContextForm: renderContextForm };\n\n var forwardSlideEvent = generate$1('forward-slide');\n var backSlideEvent = generate$1('backward-slide');\n var changeSlideEvent = generate$1('change-slide-event');\n var resizingClass = 'tox-pop--resizing';\n var renderContextToolbar = function (spec) {\n var stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: function (comp) {\n stack.set([]);\n InlineView.getContent(comp).each(function (c) {\n remove$6(c.element(), 'visibility');\n });\n remove$4(comp.element(), resizingClass);\n remove$6(comp.element(), 'width');\n },\n inlineBehaviours: derive$1([\n config('context-toolbar-events', [\n runOnSource(transitionend(), function (comp, se) {\n InlineView.getContent(comp).each(function (c) {\n });\n remove$4(comp.element(), resizingClass);\n remove$6(comp.element(), 'width');\n }),\n run(changeSlideEvent, function (comp, se) {\n remove$6(comp.element(), 'width');\n var currentWidth = get$7(comp.element());\n InlineView.setContent(comp, se.event().contents());\n add$2(comp.element(), resizingClass);\n var newWidth = get$7(comp.element());\n set$2(comp.element(), 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event().focus().bind(function (f) {\n focus$1(f);\n return search$1(comp.element());\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active();\n });\n });\n global$1.setTimeout(function () {\n set$2(comp.element(), 'width', newWidth + 'px');\n }, 0);\n }),\n run(forwardSlideEvent, function (comp, se) {\n InlineView.getContent(comp).each(function (oldContents) {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active()\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event().forwardContents(),\n focus: Option.none()\n });\n }),\n run(backSlideEvent, function (comp, se) {\n last(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade$1(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n return last(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Option.some(true);\n });\n }\n })\n ]),\n lazySink: function () {\n return Result.value(spec.sink);\n }\n });\n };\n\n var ancestor$3 = function (scope, transform, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n var transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n\n var matchTargetWith = function (elem, toolbars) {\n return findMap(toolbars, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom()) ? Option.some({\n toolbarApi: toolbarApi,\n elem: elem\n }) : Option.none();\n });\n };\n var lookup$1 = function (scopes, editor) {\n var isRoot = function (elem) {\n return elem.dom() === editor.getBody();\n };\n var startNode = Element.fromDom(editor.selection.getNode());\n return matchTargetWith(startNode, scopes.inNodeScope).orThunk(function () {\n return matchTargetWith(startNode, scopes.inEditorScope).orThunk(function () {\n return ancestor$3(startNode, function (elem) {\n return matchTargetWith(elem, scopes.inNodeScope);\n }, isRoot);\n });\n });\n };\n var ToolbarLookup = { lookup: lookup$1 };\n\n var categorise = function (contextToolbars, navigate) {\n var forms = {};\n var inNodeScope = [];\n var inEditorScope = [];\n var formNavigators = {};\n var lookupTable = {};\n var registerForm = function (key, toolbarApi) {\n var contextForm = getOrDie$1(createContextForm(toolbarApi));\n forms[key] = contextForm;\n contextForm.launch.map(function (launch) {\n formNavigators['form:' + key + ''] = __assign({}, toolbarApi.launch, {\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: function () {\n navigate(contextForm);\n }\n });\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n var registerToolbar = function (key, toolbarApi) {\n createContextToolbar(toolbarApi).each(function (contextToolbar) {\n if (toolbarApi.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n var keys$1 = keys(contextToolbars);\n each(keys$1, function (key) {\n var toolbarApi = contextToolbars[key];\n if (toolbarApi.type === 'contextform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms: forms,\n inNodeScope: inNodeScope,\n inEditorScope: inEditorScope,\n lookupTable: lookupTable,\n formNavigators: formNavigators\n };\n };\n var ToolbarScopes = { categorise: categorise };\n\n var onSetupFormatToggle = function (editor, name) {\n return function (api) {\n var unbindCell = Cell(Option.none());\n var init = function () {\n api.setActive(editor.formatter.match(name));\n var unbind = editor.formatter.formatChanged(name, api.setActive).unbind;\n unbindCell.set(Option.some(unbind));\n };\n editor.initialized ? init() : editor.on('init', init);\n return function () {\n return unbindCell.get().each(function (unbind) {\n return unbind();\n });\n };\n };\n };\n var onActionToggleFormat = function (editor) {\n return function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n };\n };\n\n var generateSelectItems = function (editor, backstage, spec) {\n var generateItem = function (rawItem, response, disabled) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Option.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n var items = bind(rawItem.getStyleItems(), function (si) {\n return validate(si, response);\n });\n if (response === 0 && items.length <= 0) {\n return Option.none();\n } else {\n return Option.some({\n type: 'nestedmenuitem',\n text: translatedText,\n disabled: items.length <= 0,\n getSubmenuItems: function () {\n return bind(rawItem.getStyleItems(), function (si) {\n return validate(si, response);\n });\n }\n });\n }\n } else {\n return Option.some(__assign({\n type: 'togglemenuitem',\n text: translatedText,\n active: rawItem.isSelected(),\n disabled: disabled,\n onAction: spec.onAction(rawItem)\n }, rawItem.getStylePreview().fold(function () {\n return {};\n }, function (preview) {\n return { meta: { style: preview } };\n })));\n }\n };\n var validate = function (item, response) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false).toArray();\n } else {\n return generateItem(item, response, invalid).toArray();\n }\n };\n var validateItems = function (preItems) {\n var response = spec.shouldHide ? 0 : 1;\n return bind(preItems, function (item) {\n return validate(item, response);\n });\n };\n var getFetch = function (backstage, getStyleItems) {\n return function (callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage.shared.providers);\n callback(menu);\n };\n };\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n var createMenuItems = function (editor, backstage, dataset, spec) {\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map(dataset.data, function (d) {\n return processBasic(d, spec.isSelectedFor, spec.getPreviewFor);\n });\n } : dataset.getData;\n return {\n items: generateSelectItems(editor, backstage, spec),\n getStyleItems: getStyleItems\n };\n };\n var createSelectButton = function (editor, backstage, dataset, spec) {\n var _a = createMenuItems(editor, backstage, dataset, spec), items = _a.items, getStyleItems = _a.getStyleItems;\n var getApi = function (comp) {\n return {\n getComponent: function () {\n return comp;\n }\n };\n };\n var onSetup = function (api) {\n return spec.nodeChangeHandler.map(function (f) {\n var handler = f(api.getComponent());\n editor.on('NodeChange', handler);\n return function () {\n editor.off('NodeChange', handler);\n };\n }).getOr(noop);\n };\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Option.none() : Option.some(''),\n icon: spec.icon,\n tooltip: Option.from(spec.tooltip),\n role: Option.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup: onSetup,\n getApi: getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: []\n }, 'tox-tbtn', backstage.shared);\n };\n\n var process = function (rawFormats) {\n return map(rawFormats, function (item) {\n var title = item, format = item;\n var values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title: title,\n format: format\n };\n });\n };\n var buildBasicStaticDataset = function (data) {\n return {\n type: 'basic',\n data: data\n };\n };\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n var split = function (rawFormats, delimiter) {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n var buildBasicSettingsDataset = function (editor, settingName, defaults, delimiter) {\n var rawFormats = readOptFrom$1(editor.settings, settingName).getOr(defaults);\n var data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data: data\n };\n };\n\n var alignMenuItems = [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify'\n }\n ];\n var getSpec = function (editor) {\n var getMatchingValue = function () {\n return find(alignMenuItems, function (item) {\n return editor.formatter.match(item.format);\n });\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n return Option.none();\n };\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n var match = getMatchingValue();\n var alignment = match.fold(function () {\n return 'left';\n }, function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, { icon: 'align-' + alignment });\n };\n });\n var dataset = buildBasicStaticDataset(alignMenuItems);\n return {\n tooltip: 'Align',\n icon: Option.some('align-left'),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createAlignSelect = function (editor, backstage) {\n var spec = getSpec(editor);\n return createSelectButton(editor, backstage, spec.dataset, spec);\n };\n var alignSelectMenu = function (editor, backstage) {\n var spec = getSpec(editor);\n var menuItems = createMenuItems(editor, backstage, spec.dataset, spec);\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats';\n var systemStackFonts = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n var isSystemFontStack = function (fontFamily) {\n var matchesSystemStack = function () {\n var fonts = fontFamily.toLowerCase().split(/['\"]?\\s*,\\s*['\"]?/);\n return forall(systemStackFonts, function (font) {\n return fonts.indexOf(font.toLowerCase()) > -1;\n });\n };\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n var getSpec$1 = function (editor) {\n var getMatchingValue = function () {\n var getFirstFont = function (fontFamily) {\n return fontFamily ? fontFamily.split(',')[0] : '';\n };\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n return find(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n if (isSystemFontStack(font)) {\n return Option.from({\n title: 'System Font',\n format: font\n });\n } else {\n return Option.none();\n }\n });\n };\n var isSelectedFor = function (item) {\n return function () {\n return getMatchingValue().exists(function (match) {\n return match.format === item;\n });\n };\n };\n var getPreviewFor = function (item) {\n return function () {\n return Option.some({\n tag: 'div',\n styleAttr: item.indexOf('dings') === -1 ? 'font-family:' + item : ''\n });\n };\n };\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n var fontFamily = editor.queryCommandValue('FontName');\n var match = getMatchingValue();\n var text = match.fold(function () {\n return fontFamily;\n }, function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n });\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function () {\n return false;\n }\n };\n };\n var createFontSelect = function (editor, backstage) {\n var spec = getSpec$1(editor);\n return createSelectButton(editor, backstage, spec.dataset, spec);\n };\n var fontSelectMenu = function (editor, backstage) {\n var spec = getSpec$1(editor);\n var menuItems = createMenuItems(editor, backstage, spec.dataset, spec);\n editor.ui.registry.addNestedMenuItem('fontformats', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\n var round$1 = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n }\n return fontSize;\n };\n var getSpec$2 = function (editor) {\n var getMatchingValue = function () {\n var matchOpt = Option.none();\n var items = dataset.data;\n var px = editor.queryCommandValue('FontSize');\n if (px) {\n var _loop_1 = function (precision) {\n var pt = toPt(px, precision);\n matchOpt = find(items, function (item) {\n return item.format === px || item.format === pt;\n });\n };\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n return {\n matchOpt: matchOpt,\n px: px\n };\n };\n var isSelectedFor = function (item) {\n return function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt.exists(function (match) {\n return match.format === item;\n });\n };\n };\n var getPreviewFor = function () {\n return function () {\n return Option.none();\n };\n };\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function () {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, px = _a.px;\n var text = matchOpt.fold(function () {\n return px;\n }, function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n });\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function () {\n return false;\n }\n };\n };\n var createFontsizeSelect = function (editor, backstage) {\n var spec = getSpec$2(editor);\n return createSelectButton(editor, backstage, spec.dataset, spec);\n };\n var fontsizeSelectMenu = function (editor, backstage) {\n var spec = getSpec$2(editor);\n var menuItems = createMenuItems(editor, backstage, spec.dataset, spec);\n editor.ui.registry.addNestedMenuItem('fontsizes', {\n text: 'Font sizes',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var findNearest = function (editor, getStyles, nodeChangeEvent) {\n var parents = nodeChangeEvent.parents;\n var styles = getStyles();\n return findMap(parents, function (parent) {\n return find(styles, function (fmt) {\n return editor.formatter.matchNode(parent, fmt.format);\n });\n }).orThunk(function () {\n if (editor.formatter.match('p')) {\n return Option.some({\n title: 'Paragraph',\n format: 'p'\n });\n }\n return Option.none();\n });\n };\n\n var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';\n var getSpec$3 = function (editor) {\n var getMatchingValue = function (nodeChangeEvent) {\n return findNearest(editor, function () {\n return dataset.data;\n }, nodeChangeEvent);\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n });\n };\n };\n var nodeChangeHandler = Option.some(function (comp) {\n return function (e) {\n var detectedFormat = getMatchingValue(e);\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n });\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createFormatSelect = function (editor, backstage) {\n var spec = getSpec$3(editor);\n return createSelectButton(editor, backstage, spec.dataset, spec);\n };\n var formatSelectMenu = function (editor, backstage) {\n var spec = getSpec$3(editor);\n var menuItems = createMenuItems(editor, backstage, spec.dataset, spec);\n editor.ui.registry.addNestedMenuItem('blockformats', {\n text: 'Blocks',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var getSpec$4 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Option.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styleAttr: editor.formatter.getCssText(format)\n }) : Option.none();\n };\n };\n var nodeChangeHandler = Option.some(function (comp) {\n var getFormatItems = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n var flattenedItems = bind(getStyleFormats(editor), getFormatItems);\n return function (e) {\n var detectedFormat = findNearest(editor, function () {\n return flattenedItems;\n }, e);\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n });\n return {\n tooltip: 'Formats',\n icon: Option.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n nodeChangeHandler: nodeChangeHandler,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createStyleSelect = function (editor, backstage) {\n var data = backstage.styleselect;\n return createSelectButton(editor, backstage, data, getSpec$4(editor));\n };\n var styleSelectMenu = function (editor, backstage) {\n var data = backstage.styleselect;\n var menuItems = createMenuItems(editor, backstage, data, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('formats', {\n text: 'Formats',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'styles',\n items: ['styleselect']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n var renderFromBridge = function (bridgeBuilder, render) {\n return function (spec, extras) {\n var internal = bridgeBuilder(spec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return render(internal, extras);\n };\n };\n var types = {\n button: renderFromBridge(createToolbarButton, function (s, extras) {\n return renderToolbarButton(s, extras.backstage.shared.providers);\n }),\n togglebutton: renderFromBridge(createToggleButton, function (s, extras) {\n return renderToolbarToggleButton(s, extras.backstage.shared.providers);\n }),\n menubutton: renderFromBridge(createMenuButton, function (s, extras) {\n return renderMenuButton(s, 'tox-tbtn', extras.backstage.shared, Option.none());\n }),\n splitbutton: renderFromBridge(createSplitButton, function (s, extras) {\n return renderSplitButton(s, extras.backstage.shared);\n }),\n styleSelectButton: function (editor, extras) {\n return createStyleSelect(editor, extras.backstage);\n },\n fontsizeSelectButton: function (editor, extras) {\n return createFontsizeSelect(editor, extras.backstage);\n },\n fontSelectButton: function (editor, extras) {\n return createFontSelect(editor, extras.backstage);\n },\n formatButton: function (editor, extras) {\n return createFormatSelect(editor, extras.backstage);\n },\n alignMenuButton: function (editor, extras) {\n return createAlignSelect(editor, extras.backstage);\n }\n };\n var extractFrom$1 = function (spec, extras) {\n return get(types, spec.type).fold(function () {\n domGlobals.console.error('skipping button defined by', spec);\n return Option.none();\n }, function (render) {\n return Option.some(render(spec, extras));\n });\n };\n var bespokeButtons = {\n styleselect: types.styleSelectButton,\n fontsizeselect: types.fontsizeSelectButton,\n fontselect: types.fontSelectButton,\n formatselect: types.formatButton,\n align: types.alignMenuButton\n };\n var removeUnusedDefaults = function (buttons) {\n var filteredItemGroups = map(defaultToolbar, function (group) {\n var items = filter(group.items, function (subItem) {\n return has(buttons, subItem) || has(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n var convertStringToolbar = function (strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map(groupsStrings, function (g) {\n return { items: g.trim().split(' ') };\n });\n };\n var createToolbar = function (toolbarConfig) {\n if (toolbarConfig.toolbar === false) {\n return [];\n } else if (toolbarConfig.toolbar === undefined || toolbarConfig.toolbar === true) {\n return removeUnusedDefaults(toolbarConfig.buttons);\n } else if (isString(toolbarConfig.toolbar)) {\n return convertStringToolbar(toolbarConfig.toolbar);\n } else if (isArray(toolbarConfig.toolbar) && isString(toolbarConfig.toolbar[0])) {\n return convertStringToolbar(toolbarConfig.toolbar.join(' | '));\n } else {\n return toolbarConfig.toolbar;\n }\n };\n var lookupButton = function (editor, buttons, toolbarItem, extras, prefixes) {\n return get(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get(bespokeButtons, toolbarItem.toLowerCase()).map(function (r) {\n return r(editor, extras);\n }).orThunk(function () {\n return Option.none();\n });\n }, function (spec) {\n return extractFrom$1(spec, extras);\n });\n };\n var identifyButtons = function (editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map(toolbarGroups, function (group) {\n var items = bind(group.items, function (toolbarItem) {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, extras, prefixes).toArray();\n });\n return {\n title: Option.from(editor.translate(group.name)),\n items: items\n };\n });\n return filter(groups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var register$4 = function (editor, registryContextToolbars, sink, extras) {\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function () {\n editor.focus();\n return Option.some(true);\n }\n }));\n var getBoxElement = function () {\n return Option.some(Element.fromDom(editor.contentAreaContainer));\n };\n editor.on('init', function () {\n var scroller = editor.getBody().ownerDocument.defaultView;\n var onScroll = bind$3(Element.fromDom(scroller), 'scroll', function () {\n lastAnchor.get().each(function (anchor) {\n var elem = lastElement.get().getOr(editor.selection.getNode());\n var nodeBounds = elem.getBoundingClientRect();\n var contentAreaBounds = editor.contentAreaContainer.getBoundingClientRect();\n var aboveEditor = nodeBounds.bottom < 0;\n var belowEditor = nodeBounds.top > contentAreaBounds.height;\n if (aboveEditor || belowEditor) {\n set$2(contextbar.element(), 'display', 'none');\n } else {\n remove$6(contextbar.element(), 'display');\n Positioning.positionWithin(sink, anchor, contextbar, getBoxElement());\n }\n });\n });\n editor.on('remove', function () {\n onScroll.unbind();\n });\n });\n var lastAnchor = Cell(Option.none());\n var lastElement = Cell(Option.none());\n var timer = Cell(null);\n var wrapInPopDialog = function (toolbarSpec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(function (comp) {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', function () {\n return Keying.focusIn(comp);\n });\n }),\n runOnDetached(function (comp) {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n };\n };\n var getScopes = cached(function () {\n return ToolbarScopes.categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar(toolbarApi);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n });\n });\n var buildToolbar = function (ctx) {\n var buttons = editor.ui.registry.getAll().buttons;\n var scopes = getScopes();\n return ctx.type === 'contexttoolbar' ? function () {\n var allButtons = merge(buttons, scopes.formNavigators);\n var initGroups = identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items\n }, extras, Option.some(['form:']));\n return renderToolbar({\n uid: generate$1('context-toolbar'),\n initGroups: initGroups,\n onEscape: Option.none,\n cyclicKeying: true,\n backstage: extras.backstage,\n getSink: function () {\n return Result.error('');\n }\n });\n }() : function () {\n return ContextForm.renderContextForm(ctx, extras.backstage);\n }();\n };\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n readOptFrom$1(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext(ctx, e.target === editor ? Option.none() : Option.some(e));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n var anchorOverrides = { maxHeightFunction: expandable() };\n var lineAnchorSpec = {\n bubble: nu$7(12, 0, bubbleAlignments),\n layouts: {\n onLtr: function () {\n return [east$1];\n },\n onRtl: function () {\n return [west$1];\n }\n },\n overrides: anchorOverrides\n };\n var anchorSpec = {\n bubble: nu$7(0, 12, bubbleAlignments),\n layouts: {\n onLtr: function () {\n return [\n north$1,\n south$1,\n northeast$1,\n southeast$1,\n northwest$1,\n southwest$1\n ];\n },\n onRtl: function () {\n return [\n north$1,\n south$1,\n northwest$1,\n southwest$1,\n northeast$1,\n southeast$1\n ];\n }\n },\n overrides: anchorOverrides\n };\n var getAnchor = function (position, element) {\n var anchorage = position === 'node' ? extras.backstage.shared.anchors.node(element) : extras.backstage.shared.anchors.cursor();\n var anchor = deepMerge(anchorage, position === 'line' ? lineAnchorSpec : anchorSpec);\n return anchor;\n };\n var launchContext = function (toolbarApi, elem) {\n clearTimer();\n var toolbarSpec = buildToolbar(toolbarApi);\n var sElem = elem.map(Element.fromDom);\n var anchor = getAnchor(toolbarApi.position, sElem);\n lastAnchor.set(Option.some(anchor));\n lastElement.set(elem);\n InlineView.showWithin(contextbar, anchor, wrapInPopDialog(toolbarSpec), getBoxElement());\n remove$6(contextbar.element(), 'display');\n };\n var launchContextToolbar = function () {\n var scopes = getScopes();\n ToolbarLookup.lookup(scopes, editor).fold(function () {\n lastAnchor.set(Option.none());\n InlineView.hide(contextbar);\n }, function (info) {\n launchContext(info.toolbarApi, Option.some(info.elem.dom()));\n });\n };\n var clearTimer = function () {\n var current = timer.get();\n if (current !== null) {\n global$1.clearTimeout(current);\n timer.set(null);\n }\n };\n var resetTimer = function (t) {\n clearTimer();\n timer.set(t);\n };\n editor.on('init', function () {\n editor.on('click keyup SetContent ObjectResized ResizeEditor', function (e) {\n resetTimer(global$1.setEditorTimeout(editor, launchContextToolbar, 0));\n });\n editor.on('focusout', function (e) {\n global$1.setEditorTimeout(editor, function () {\n if (search$1(sink.element()).isNone() && search$1(contextbar.element()).isNone()) {\n lastAnchor.set(Option.none());\n InlineView.hide(contextbar);\n }\n }, 0);\n });\n editor.on('NodeChange', function (e) {\n search$1(contextbar.element()).fold(function () {\n resetTimer(global$1.setEditorTimeout(editor, launchContextToolbar, 0));\n }, function (_) {\n });\n });\n });\n };\n var ContextToolbar = { register: register$4 };\n\n var setup$3 = function (editor, mothership, uiMothership) {\n var onMousedown = bind$3(Element.fromDom(domGlobals.document), 'mousedown', function (evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([dismissPopups()], { target: evt.target() });\n });\n });\n var onTouchstart = bind$3(Element.fromDom(domGlobals.document), 'touchstart', function (evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([dismissPopups()], { target: evt.target() });\n });\n });\n var onMouseup = bind$3(Element.fromDom(domGlobals.document), 'mouseup', function (evt) {\n if (evt.raw().button === 0) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([mouseReleased()], { target: evt.target() });\n });\n }\n });\n var onContentMousedown = function (raw) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([dismissPopups()], { target: Element.fromDom(raw.target) });\n });\n };\n editor.on('mousedown', onContentMousedown);\n editor.on('touchstart', onContentMousedown);\n var onContentMouseup = function (raw) {\n if (raw.button === 0) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([mouseReleased()], { target: Element.fromDom(raw.target) });\n });\n }\n };\n editor.on('mouseup', onContentMouseup);\n var onWindowScroll = function (evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastEvent(windowScroll(), evt);\n });\n };\n editor.on('ScrollWindow', onWindowScroll);\n var onWindowResize = function (evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastEvent(windowResize(), evt);\n });\n };\n editor.on('ResizeWindow', onWindowResize);\n editor.on('remove', function () {\n editor.off('mousedown', onContentMousedown);\n editor.off('touchstart', onContentMousedown);\n editor.off('mouseup', onContentMouseup);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ScrollWindow', onWindowScroll);\n onMousedown.unbind();\n onTouchstart.unbind();\n onMouseup.unbind();\n });\n editor.on('detach', function () {\n detachSystem(mothership);\n detachSystem(uiMothership);\n mothership.destroy();\n uiMothership.destroy();\n });\n };\n var Events = { setup: setup$3 };\n\n var parts$b = AlloyParts;\n var partType$1 = PartType;\n\n var factory$d = function (detail, spec) {\n var setMenus = function (comp, menus) {\n var newMenus = map(menus, function (m) {\n var buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: function (callback) {\n callback(m.getItems());\n }\n };\n var internal = createMenuButton(buttonSpec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', {\n getSink: detail.getSink,\n providers: detail.providers\n }, Option.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n var apis = {\n focus: Keying.focusIn,\n setMenus: setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(function (component) {\n detail.onSetup(component);\n }),\n run(mouseover(), function (comp, se) {\n descendant$2(comp.element(), '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$3(se.event().target(), '.' + 'tox-mbtn').each(function (hoveredButton) {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(function (activeComp) {\n comp.getSystem().getByDom(hoveredButton).each(function (hoveredComp) {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }),\n run(focusShifted(), function (comp, se) {\n se.event().prevFocus().bind(function (prev) {\n return comp.getSystem().getByDom(prev).toOption();\n }).each(function (prev) {\n se.event().newFocus().bind(function (nu) {\n return comp.getSystem().getByDom(nu).toOption();\n }).each(function (nu) {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: function (comp) {\n detail.onEscape(comp);\n return Option.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis: apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single$2({\n factory: factory$d,\n name: 'silver.Menubar',\n configFields: [\n strict$1('dom'),\n strict$1('uid'),\n strict$1('onEscape'),\n strict$1('getSink'),\n strict$1('providers'),\n defaulted$1('onSetup', noop)\n ],\n apis: {\n focus: function (apis, comp) {\n apis.focus(comp);\n },\n setMenus: function (apis, comp, menus) {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n var owner$4 = 'container';\n var schema$n = [field$1('slotBehaviours', [])];\n var getPartName$1 = function (name) {\n return '';\n };\n var sketch$2 = function (sSpec) {\n var parts = function () {\n var record = [];\n var slot = function (name, config) {\n record.push(name);\n return generateOne(owner$4, getPartName$1(name), config);\n };\n return {\n slot: slot,\n record: function () {\n return record;\n }\n };\n }();\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite(owner$4, schema$n, fieldParts, make$6, spec);\n };\n var make$6 = function (detail, components, spec) {\n var getSlotNames = function (_) {\n return getAllPartNames(detail);\n };\n var getSlot = function (container, key) {\n return getPart(container, detail, key);\n };\n var onSlot = function (f, def) {\n if (def === void 0) {\n def = undefined;\n }\n return function (container, key) {\n return getPart(container, detail, key).map(function (slot) {\n return f(slot, key);\n }).getOr(def);\n };\n };\n var onSlots = function (f) {\n return function (container, keys) {\n each(keys, function (key) {\n return f(container, key);\n });\n };\n };\n var doShowing = function (comp, key) {\n return get$2(comp.element(), 'aria-hidden') !== 'true';\n };\n var doShow = function (comp, key) {\n if (!doShowing(comp, key)) {\n var element = comp.element();\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n var doHide = function (comp, key) {\n if (doShowing(comp, key)) {\n var element = comp.element();\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n var isShowing = onSlot(doShowing, false);\n var hideSlot = onSlot(doHide);\n var hideSlots = onSlots(hideSlot);\n var hideAllSlots = function (container) {\n return hideSlots(container, getSlotNames(container));\n };\n var showSlot = onSlot(doShow);\n var apis = {\n getSlotNames: getSlotNames,\n getSlot: getSlot,\n isShowing: isShowing,\n hideSlot: hideSlot,\n hideAllSlots: hideAllSlots,\n showSlot: showSlot\n };\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n 'components': components,\n 'behaviours': get$b(detail.slotBehaviours),\n 'apis': apis\n };\n };\n var slotApis = map$1({\n getSlotNames: function (apis, c) {\n return apis.getSlotNames(c);\n },\n getSlot: function (apis, c, key) {\n return apis.getSlot(c, key);\n },\n isShowing: function (apis, c, key) {\n return apis.isShowing(c, key);\n },\n hideSlot: function (apis, c, key) {\n return apis.hideSlot(c, key);\n },\n hideAllSlots: function (apis, c) {\n return apis.hideAllSlots(c);\n },\n showSlot: function (apis, c, key) {\n return apis.showSlot(c, key);\n }\n }, makeApi);\n var SlotContainer = __assign({}, slotApis, { sketch: sketch$2 });\n\n var sidebarSchema = objOf([\n optionString('icon'),\n optionString('tooltip'),\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ]);\n var createSidebar = function (spec) {\n return asRaw('sidebar', sidebarSchema, spec);\n };\n\n var setup$4 = function (editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each(keys(sidebars), function (name) {\n var spec = sidebars[name];\n var isActive = function () {\n return Option.from(editor.queryCommandValue('ToggleSidebar')).is(name);\n };\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: function (buttonApi) {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: function (buttonApi) {\n var handleToggle = function () {\n return buttonApi.setActive(isActive());\n };\n editor.on('ToggleSidebar', handleToggle);\n return function () {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n var getApi = function (comp) {\n return {\n element: function () {\n return comp.element().dom();\n }\n };\n };\n var makePanels = function (parts, panelConfigs) {\n var specs = map(keys(panelConfigs), function (name) {\n var spec = panelConfigs[name];\n var bridged = getOrDie$1(createSidebar(spec));\n return {\n name: name,\n getApi: getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map(specs, function (spec) {\n var editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run(slotVisibility(), function (sidepanel, se) {\n var data = se.event();\n var optSidePanelSpec = find(specs, function (config) {\n return config.name === data.name();\n });\n optSidePanelSpec.each(function (sidePanelSpec) {\n var handler = data.visible() ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })\n ])\n });\n });\n };\n var makeSidebar = function (panelConfigs) {\n return SlotContainer.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(function (slotContainer) {\n return SlotContainer.hideAllSlots(slotContainer);\n })])\n };\n });\n };\n var setSidebar = function (sidebar, panelConfigs) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n return Replacing.set(slider, [makeSidebar(panelConfigs)]);\n });\n };\n var toggleSidebar = function (sidebar, name) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(function (slotContainer) {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n }\n });\n });\n };\n var whichSidebar = function (sidebar) {\n var optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(function (slider) {\n var sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n var optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(function (slotContainer) {\n return find(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Option.none();\n }\n });\n };\n var fixSize = generate$1('FixSizeEvent');\n var autoSize = generate$1('AutoSizeEvent');\n var renderSidebar = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'complementary' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: function (slider) {\n emit(slider, autoSize);\n },\n onStartGrow: function (slider) {\n emitWith(slider, fixSize, { width: getRaw(slider.element(), 'width').getOr('') });\n },\n onStartShrink: function (slider) {\n emitWith(slider, fixSize, { width: get$7(slider.element()) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: function (comp) {\n var children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run(fixSize, function (comp, se) {\n set$2(comp.element(), 'width', se.event().width());\n }),\n run(autoSize, function (comp, se) {\n remove$6(comp.element(), 'width');\n })\n ])\n ])\n };\n };\n\n var renderSpinner = function (providerBackstage) {\n return {\n dom: {\n tag: 'div',\n attributes: { 'aria-label': providerBackstage.translate('Loading...') },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml$2('
') }],\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Option.some(true);\n },\n onShiftTab: function () {\n return Option.some(true);\n }\n }),\n Focusing.config({})\n ])\n };\n };\n var toggleThrobber = function (comp, state, providerBackstage) {\n var element = comp.element();\n if (state === true) {\n Replacing.set(comp, [renderSpinner(providerBackstage)]);\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n } else {\n Replacing.set(comp, []);\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n }\n };\n var renderThrobber = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([Replacing.config({})]),\n components: []\n };\n };\n var setup$5 = function (editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = Cell(Option.none());\n var toggle = function (state) {\n if (state !== throbberState.get()) {\n toggleThrobber(lazyThrobber(), state, sharedBackstage.providers);\n throbberState.set(state);\n }\n };\n editor.on('ProgressState', function (e) {\n timer.get().each(global$1.clearTimeout);\n if (isNumber(e.time)) {\n var timerId = global$1.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(Option.some(timerId));\n } else {\n toggle(e.state);\n timer.set(Option.none());\n }\n });\n };\n\n var factory$e = function (detail, components, spec) {\n var apis = {\n getSocket: function (comp) {\n return parts$b.getPart(comp, detail, 'socket');\n },\n setSidebar: function (comp, panelConfigs) {\n parts$b.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function (comp, name) {\n parts$b.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function (comp) {\n return parts$b.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getToolbar: function (comp) {\n return parts$b.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function (comp, groups) {\n parts$b.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n Toolbar.setGroups(toolbar, groups);\n });\n },\n getMoreButton: function (comp) {\n var toolbar = parts$b.getPart(comp, detail, 'toolbar');\n return toolbar.bind(function (toolbar) {\n return SplitToolbar.getMoreButton(toolbar);\n });\n },\n getThrobber: function (comp) {\n return parts$b.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function (comp) {\n parts$b.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function (comp, menus) {\n parts$b.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function (comp) {\n parts$b.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.focus(menubar);\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n behaviours: detail.behaviours\n };\n };\n var partMenubar = partType$1.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [\n strict$1('dom'),\n strict$1('getSink')\n ]\n });\n var partToolbar = partType$1.optional({\n factory: {\n sketch: function (spec) {\n var renderer = spec.split === ToolbarDrawer.sliding || spec.split === ToolbarDrawer.floating ? renderMoreToolbar : renderToolbar;\n var toolbarSpec = {\n uid: spec.uid,\n onEscape: function () {\n spec.onEscape();\n return Option.some(true);\n },\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n backstage: spec.backstage,\n moreDrawerData: {\n floating: spec.split === ToolbarDrawer.floating,\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton\n }\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [\n strict$1('dom'),\n strict$1('onEscape'),\n strict$1('getSink')\n ]\n });\n var partSocket = partType$1.optional({\n name: 'socket',\n schema: [strict$1('dom')]\n });\n var partSidebar = partType$1.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [strict$1('dom')]\n });\n var partThrobber = partType$1.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [strict$1('dom')]\n });\n var OuterContainer = composite$1({\n name: 'OuterContainer',\n factory: factory$e,\n configFields: [\n strict$1('dom'),\n strict$1('behaviours')\n ],\n partFields: [\n partMenubar,\n partToolbar,\n partSocket,\n partSidebar,\n partThrobber\n ],\n apis: {\n getSocket: function (apis, comp) {\n return apis.getSocket(comp);\n },\n setSidebar: function (apis, comp, panelConfigs) {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: function (apis, comp, name) {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: function (apis, comp) {\n return apis.whichSidebar(comp);\n },\n getToolbar: function (apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function (apis, comp, grps) {\n var groups = map(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n getMoreButton: function (apis, comp) {\n return apis.getMoreButton(comp);\n },\n getThrobber: function (apis, comp) {\n return apis.getThrobber(comp);\n },\n setMenubar: function (apis, comp, menus) {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: function (apis, comp) {\n apis.focusMenubar(comp);\n },\n focusToolbar: function (apis, comp) {\n apis.focusToolbar(comp);\n }\n }\n });\n\n var defaultMenubar = 'file edit view insert format tools table help';\n var defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'spellchecker spellcheckerlanguage | a11ycheck code wordcount'\n },\n table: {\n title: 'Table',\n items: 'inserttable tableprops deletetable row column cell'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n var make$7 = function (menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function () {\n return bind(menu.items, function (i) {\n var itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, function (removedMenuItem) {\n return removedMenuItem === itemName;\n })) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n });\n }\n };\n };\n var parseItemsString = function (items) {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n return items;\n };\n var identifyMenus = function (editor, registry) {\n var rawMenuData = merge(defaultMenus, registry.menus);\n var userDefinedMenus = keys(registry.menus).length > 0;\n var menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n var validMenus = filter(menubar, function (menuName) {\n return userDefinedMenus ? registry.menus.hasOwnProperty(menuName) && registry.menus[menuName].hasOwnProperty('items') || defaultMenus.hasOwnProperty(menuName) : defaultMenus.hasOwnProperty(menuName);\n });\n var menus = map(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make$7({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter(menus, function (menu) {\n var isNotSeparator = function (item) {\n return item.type !== 'separator';\n };\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n var fireSkinLoaded = function (editor) {\n return editor.fire('SkinLoaded');\n };\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n var fireBeforeRenderUI = function (editor) {\n return editor.fire('BeforeRenderUI');\n };\n var fireResizeContent = function (editor) {\n return editor.fire('ResizeContent');\n };\n var Events$1 = {\n fireSkinLoaded: fireSkinLoaded,\n fireResizeEditor: fireResizeEditor,\n fireBeforeRenderUI: fireBeforeRenderUI,\n fireResizeContent: fireResizeContent\n };\n\n var fireSkinLoaded$1 = function (editor) {\n var done = function () {\n editor._skinLoaded = true;\n Events$1.fireSkinLoaded(editor);\n };\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n var SkinLoaded = { fireSkinLoaded: fireSkinLoaded$1 };\n\n var loadSkin = function (isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n var skinUiCss;\n if (skinUrl) {\n skinUiCss = skinUrl + '/skin.min.css';\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (isSkinDisabled(editor) === false && skinUiCss) {\n global$5.DOM.styleSheetLoader.load(skinUiCss, SkinLoaded.fireSkinLoaded(editor));\n } else {\n SkinLoaded.fireSkinLoaded(editor)();\n }\n };\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n\n var DOM = global$5.DOM;\n var handleSwitchMode = function (uiComponents) {\n return function (e) {\n var outerContainer = uiComponents.outerContainer;\n all('*', outerContainer.element()).forEach(function (elm) {\n outerContainer.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n if (e.mode === 'readonly') {\n Disabling.disable(comp);\n } else {\n Disabling.enable(comp);\n }\n }\n });\n });\n };\n };\n var render = function (editor, uiComponents, rawUiConfig, backstage, args) {\n iframe(editor);\n attachSystemAfter(Element.fromDom(args.targetNode), uiComponents.mothership);\n attachSystem(body(), uiComponents.uiMothership);\n editor.on('init', function () {\n OuterContainer.setToolbar(uiComponents.outerContainer, identifyButtons(editor, rawUiConfig, { backstage: backstage }, Option.none()));\n OuterContainer.setMenubar(uiComponents.outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setSidebar(uiComponents.outerContainer, rawUiConfig.sidebar);\n if (editor.readonly) {\n handleSwitchMode(uiComponents)({ mode: 'readonly' });\n }\n var lastDimensions = Cell(Position(0, 0));\n var window = editor.contentWindow;\n var resize = function () {\n var last = lastDimensions.get();\n if (last.left() !== window.innerWidth || last.top() !== window.innerHeight) {\n var next = Position(window.innerWidth, window.innerHeight);\n lastDimensions.set(next);\n Events$1.fireResizeContent(editor);\n }\n };\n DOM.bind(window, 'resize', resize);\n var removeResize = function () {\n DOM.unbind(window, 'resize', resize);\n };\n editor.on('remove', removeResize);\n });\n var socket = OuterContainer.getSocket(uiComponents.outerContainer).getOrDie('Could not find expected socket element');\n editor.on('SwitchMode', handleSwitchMode(uiComponents));\n if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n editor.addCommand('ToggleSidebar', function (ui, value) {\n OuterContainer.toggleSidebar(uiComponents.outerContainer, value);\n editor.fire('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', function () {\n return OuterContainer.whichSidebar(uiComponents.outerContainer);\n });\n var drawer = getToolbarDrawer(editor);\n var refreshDrawer = function () {\n var toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);\n toolbar.each(SplitToolbar.refresh);\n };\n if (drawer === ToolbarDrawer.sliding || drawer === ToolbarDrawer.floating) {\n editor.on('ResizeContent', refreshDrawer);\n }\n return {\n iframeContainer: socket.element().dom(),\n editorContainer: uiComponents.outerContainer.element().dom()\n };\n };\n var Iframe = {\n render: render,\n getBehaviours: function (_) {\n return [];\n }\n };\n\n var getOrigin = function (element, scroll) {\n return offsetParent(element).orThunk(function () {\n var marker = Element.fromTag('span');\n before(element, marker);\n var offsetParent$1 = offsetParent(marker);\n remove(marker);\n return offsetParent$1;\n }).map(function (offsetP) {\n var loc = absolute(offsetP);\n return loc.translate(-scroll.left(), -scroll.top());\n }).getOrThunk(function () {\n return Position(0, 0);\n });\n };\n\n var adt$b = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n var subtract = function (change) {\n return function (point) {\n return point.translate(-change.left(), -change.top());\n };\n };\n var add$4 = function (change) {\n return function (point) {\n return point.translate(change.left(), change.top());\n };\n };\n var transform$1 = function (changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, Position(x, y));\n };\n };\n var asFixed = function (coord, scroll, origin) {\n return coord.fold(transform$1([\n add$4(origin),\n subtract(scroll)\n ]), transform$1([subtract(scroll)]), transform$1([]));\n };\n var asAbsolute = function (coord, scroll, origin) {\n return coord.fold(transform$1([add$4(origin)]), transform$1([]), transform$1([add$4(scroll)]));\n };\n var asOffset = function (coord, scroll, origin) {\n return coord.fold(transform$1([]), transform$1([subtract(origin)]), transform$1([\n add$4(scroll),\n subtract(origin)\n ]));\n };\n var withinRange = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left() - a2.left()) <= xRange && Math.abs(a1.top() - a2.top()) <= yRange;\n };\n var toStyles = function (coord, scroll, origin) {\n return coord.fold(function (x, y) {\n return {\n position: 'absolute',\n left: x + 'px',\n top: y + 'px'\n };\n }, function (x, y) {\n return {\n position: 'absolute',\n left: x - origin.left() + 'px',\n top: y - origin.top() + 'px'\n };\n }, function (x, y) {\n return {\n position: 'fixed',\n left: x + 'px',\n top: y + 'px'\n };\n });\n };\n var translate$1 = function (coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return adt$b.offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return adt$b.absolute(x + deltaX, y + deltaY);\n }, function (x, y) {\n return adt$b.fixed(x + deltaX, y + deltaY);\n });\n };\n var absorb = function (partialCoord, originalCoord, scroll, origin) {\n var absorbOne = function (stencil, nu) {\n return function (optX, optY) {\n var original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left()), optY.getOr(original.top()));\n };\n };\n return partialCoord.fold(absorbOne(asOffset, adt$b.offset), absorbOne(asAbsolute, adt$b.absolute), absorbOne(asFixed, adt$b.fixed));\n };\n var offset = adt$b.offset;\n var absolute$2 = adt$b.absolute;\n var fixed$1 = adt$b.fixed;\n\n var appear = function (component, contextualInfo) {\n add$2(component.element(), contextualInfo.transitionClass);\n remove$4(component.element(), contextualInfo.fadeOutClass);\n add$2(component.element(), contextualInfo.fadeInClass);\n };\n var disappear = function (component, contextualInfo) {\n add$2(component.element(), contextualInfo.transitionClass);\n remove$4(component.element(), contextualInfo.fadeInClass);\n add$2(component.element(), contextualInfo.fadeOutClass);\n };\n var isPartiallyVisible = function (box, viewport) {\n return box.y() < viewport.bottom() && box.bottom() > viewport.y();\n };\n var isCompletelyVisible = function (box, viewport) {\n return box.y() >= viewport.y() && box.bottom() <= viewport.bottom();\n };\n var getAttr = function (elem, attr) {\n return has$1(elem, attr) ? Option.some(parseInt(get$2(elem, attr), 10)) : Option.none();\n };\n var getPrior = function (component, dockInfo) {\n var elem = component.element();\n return getAttr(elem, dockInfo.leftAttr).bind(function (left) {\n return getAttr(elem, dockInfo.topAttr).map(function (top) {\n var w = get$7(component.element());\n var h = get$8(component.element());\n return bounds(left, top, w, h);\n });\n });\n };\n var setPrior = function (component, dockInfo, absLeft, absTop) {\n var elem = component.element();\n set$1(elem, dockInfo.leftAttr, absLeft);\n set$1(elem, dockInfo.topAttr, absTop);\n };\n var clearPrior = function (component, dockInfo) {\n var elem = component.element();\n remove$1(elem, dockInfo.leftAttr);\n remove$1(elem, dockInfo.topAttr);\n };\n var morphToAbsolute = function (component, dockInfo, viewport) {\n return getPrior(component, dockInfo).bind(function (box) {\n if (isCompletelyVisible(box, viewport)) {\n clearPrior(component, dockInfo);\n return Option.some(absolute$2(box.x(), box.y()));\n } else {\n return Option.none();\n }\n });\n };\n var morphToFixed = function (component, dockInfo, viewport, scroll, origin) {\n var loc = absolute(component.element());\n var box = bounds(loc.left(), loc.top(), get$7(component.element()), get$8(component.element()));\n if (!isCompletelyVisible(box, viewport)) {\n setPrior(component, dockInfo, loc.left(), loc.top());\n var coord = absolute$2(loc.left(), loc.top());\n var asFixed$1 = asFixed(coord, scroll, origin);\n var viewportPt = absolute$2(viewport.x(), viewport.y());\n var fixedViewport = asFixed(viewportPt, scroll, origin);\n var fixedY = box.y() <= viewport.y() ? fixedViewport.top() : fixedViewport.top() + viewport.height() - box.height();\n return Option.some(fixed$1(asFixed$1.left(), fixedY));\n } else {\n return Option.none();\n }\n };\n var getMorph = function (component, dockInfo, viewport, scroll, origin) {\n var isDocked = getRaw(component.element(), 'position').is('fixed');\n return isDocked ? morphToAbsolute(component, dockInfo, viewport) : morphToFixed(component, dockInfo, viewport, scroll, origin);\n };\n\n var refresh$2 = function (component, config, state) {\n var viewport = config.lazyViewport(component);\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (elem) {\n var box$1 = box(elem);\n var isVisible = isPartiallyVisible(box$1, viewport);\n var method = isVisible ? appear : disappear;\n method(component, contextInfo);\n });\n });\n var doc = owner(component.element());\n var scroll = get$6(doc);\n var origin = getOrigin(component.element(), scroll);\n getMorph(component, config, viewport, scroll, origin).each(function (morph) {\n var styles = toStyles(morph, scroll, origin);\n setAll$1(component.element(), styles);\n });\n };\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n refresh: refresh$2\n });\n\n var events$f = function (dockInfo, dockState) {\n return derive([\n run(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (eq(component.element(), simulatedEvent.event().target())) {\n remove$4(component.element(), contextInfo.transitionClass);\n simulatedEvent.stop();\n }\n });\n }),\n run(windowScroll(), function (component, _) {\n refresh$2(component, dockInfo, dockState);\n })\n ]);\n };\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n events: events$f\n });\n\n var defaultLazyViewport = function (_component) {\n var scroll = get$6();\n return bounds(scroll.left(), scroll.top(), domGlobals.window.innerWidth, domGlobals.window.innerHeight);\n };\n var DockingSchema = [\n optionObjOf('contextual', [\n strict$1('fadeInClass'),\n strict$1('fadeOutClass'),\n strict$1('transitionClass'),\n strict$1('lazyContext')\n ]),\n defaulted$1('lazyViewport', defaultLazyViewport),\n strict$1('leftAttr'),\n strict$1('topAttr')\n ];\n\n var Docking = create$1({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis\n });\n\n var render$1 = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var floatContainer;\n var DOM = global$5.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var splitSetting = getToolbarDrawer(editor);\n var split = splitSetting === ToolbarDrawer.sliding || splitSetting === ToolbarDrawer.floating;\n var floating = splitSetting === ToolbarDrawer.floating;\n inline(editor);\n var calcPosition = function (offset) {\n if (offset === void 0) {\n offset = 0;\n }\n var location = absolute(Element.fromDom(editor.getBody()));\n return {\n top: Math.round(location.top() - get$8(floatContainer.element())) + offset + 'px',\n left: Math.round(location.left()) + 'px'\n };\n };\n var setChromePosition = function (toolbar) {\n var offset = split ? toolbar.fold(function () {\n return 0;\n }, function (tbar) {\n return tbar.components().length > 1 ? get$8(tbar.components()[1].element()) : 0;\n }) : 0;\n setAll$1(floatContainer.element(), calcPosition(offset));\n Docking.refresh(floatContainer);\n };\n var updateChromeUi = function () {\n var toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);\n if (split) {\n toolbar.each(SplitToolbar.refresh);\n }\n if (!useFixedToolbarContainer) {\n setChromePosition(toolbar);\n }\n };\n var show = function () {\n set$2(uiComponents.outerContainer.element(), 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n updateChromeUi();\n if (floating) {\n var toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);\n toolbar.each(function (tb) {\n var overflow = SplitToolbar.getOverflow(tb);\n overflow.each(function (overf) {\n remove$4(overf.element(), 'tox-toolbar__overflow--closed');\n });\n });\n }\n };\n var hide = function () {\n if (uiComponents.outerContainer) {\n set$2(uiComponents.outerContainer.element(), 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n if (floating) {\n var toolbar = OuterContainer.getToolbar(uiComponents.outerContainer);\n toolbar.each(function (tb) {\n var overflow = SplitToolbar.getOverflow(tb);\n overflow.each(function (overf) {\n add$2(overf.element(), 'tox-toolbar__overflow--closed');\n });\n });\n }\n }\n };\n var render = function () {\n if (floatContainer) {\n show();\n return;\n }\n floatContainer = uiComponents.outerContainer;\n var uiContainer = getUiContainer(editor);\n attachSystem(uiContainer, uiComponents.mothership);\n attachSystem(uiContainer, uiComponents.uiMothership);\n OuterContainer.setToolbar(uiComponents.outerContainer, identifyButtons(editor, rawUiConfig, { backstage: backstage }, Option.none()));\n OuterContainer.setMenubar(uiComponents.outerContainer, identifyMenus(editor, rawUiConfig));\n if (!useFixedToolbarContainer) {\n set$2(floatContainer.element(), 'position', 'absolute');\n }\n updateChromeUi();\n show();\n editor.on('NodeChange ResizeWindow', updateChromeUi);\n editor.on('activate', show);\n editor.on('deactivate', hide);\n editor.nodeChanged();\n };\n editor.on('focus', render);\n editor.on('blur hide', hide);\n editor.on('init', function () {\n if (editor.hasFocus()) {\n render();\n }\n });\n return { editorContainer: uiComponents.outerContainer.element().dom() };\n };\n var getBehaviours$2 = function (editor) {\n return useFixedContainer(editor) ? [] : [\n Docking.config({\n leftAttr: 'data-dock-left',\n topAttr: 'data-dock-top',\n contextual: {\n lazyContext: function (_) {\n return Option.from(editor).map(function (ed) {\n return Element.fromDom(ed.getBody());\n });\n },\n fadeInClass: 'tox-toolbar-dock-fadein',\n fadeOutClass: 'tox-toolbar-dock-fadeout',\n transitionClass: 'tox-toolbar-dock-transition'\n }\n }),\n Focusing.config({})\n ];\n };\n var Inline = {\n render: render$1,\n getBehaviours: getBehaviours$2\n };\n\n var nu$d = function (x, y) {\n return {\n anchor: 'makeshift',\n x: x,\n y: y\n };\n };\n var transpose$1 = function (pos, dx, dy) {\n return nu$d(pos.x + dx, pos.y + dy);\n };\n var fromPageXY = function (e) {\n return nu$d(e.pageX, e.pageY);\n };\n var fromClientXY = function (e) {\n return nu$d(e.clientX, e.clientY);\n };\n var transposeContentAreaContainer = function (element, pos) {\n var containerPos = global$5.DOM.getPos(element);\n return transpose$1(pos, containerPos.x, containerPos.y);\n };\n var getPointAnchor = function (editor, e) {\n if (e.type === 'contextmenu') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n var getSelectionAnchor = function (editor) {\n return {\n anchor: 'selection',\n root: Element.fromDom(editor.selection.getNode())\n };\n };\n var getNodeAnchor$1 = function (editor) {\n return {\n anchor: 'node',\n node: Option.some(Element.fromDom(editor.selection.getNode())),\n root: Element.fromDom(editor.getBody())\n };\n };\n\n var patchPipeConfig = function (config) {\n return typeof config === 'string' ? config.split(/[ ,]/) : config;\n };\n var shouldNeverUseNative = function (editor) {\n return editor.settings.contextmenu_never_use_native || false;\n };\n var getMenuItems = function (editor, name, defaultItems) {\n var contextMenus = editor.ui.registry.getAll().contextMenus;\n return get(editor.settings, name).map(patchPipeConfig).getOrThunk(function () {\n return filter(patchPipeConfig(defaultItems), function (item) {\n return has(contextMenus, item);\n });\n });\n };\n var getContextMenu = function (editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n var Settings$1 = {\n shouldNeverUseNative: shouldNeverUseNative,\n getContextMenu: getContextMenu\n };\n\n var isSeparator$1 = function (item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n var separator$3 = { type: 'separator' };\n var makeContextItem = function (item) {\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator$3;\n case 'submenu':\n return {\n type: 'nestedmenuitem',\n text: item.text,\n icon: item.icon,\n getSubmenuItems: function () {\n var items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map(items, makeContextItem);\n }\n }\n };\n default:\n return {\n type: 'menuitem',\n text: item.text,\n icon: item.icon,\n onAction: noarg(item.onAction)\n };\n }\n }\n };\n var addContextMenuGroup = function (xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n var lastMenuItem = last(xs).filter(function (item) {\n return !isSeparator$1(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator$3];\n });\n return xs.concat(before).concat(groupItems).concat([separator$3]);\n };\n var generateContextMenu = function (contextMenus, menuConfig, selectedElement) {\n var items = foldl(menuConfig, function (acc, name) {\n if (has(contextMenus, name)) {\n var items_1 = contextMenus[name].update(selectedElement);\n if (isString(items_1)) {\n return addContextMenuGroup(acc, items_1.split(' '));\n } else if (items_1.length > 0) {\n var allItems = map(items_1, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n } else {\n return acc.concat([name]);\n }\n }, []);\n if (items.length > 0 && isSeparator$1(items[items.length - 1])) {\n items.pop();\n }\n return items;\n };\n var isNativeOverrideKeyEvent = function (editor, e) {\n return e.ctrlKey && !Settings$1.shouldNeverUseNative(editor);\n };\n var setup$6 = function (editor, lazySink, sharedBackstage) {\n var contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink: lazySink,\n onEscape: function () {\n return editor.focus();\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run(dismissRequested(), function (comp, se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n editor.on('init', function () {\n editor.on('contextmenu', function (e) {\n if (isNativeOverrideKeyEvent(editor, e)) {\n return;\n }\n var isTriggeredByKeyboardEvent = e.button !== 2 || e.target === editor.getBody();\n var anchorSpec = isTriggeredByKeyboardEvent ? getNodeAnchor$1(editor) : getPointAnchor(editor, e);\n var registry = editor.ui.registry.getAll();\n var menuConfig = Settings$1.getContextMenu(editor);\n var selectedElement = isTriggeredByKeyboardEvent ? editor.selection.getStart(true) : e.target;\n var items = generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, sharedBackstage.providers).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, anchorSpec, {\n menu: { markers: markers$1('normal') },\n data: menuData\n });\n });\n });\n });\n };\n\n var parseToInt = function (val) {\n var re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Option.some(parseInt(val, 10));\n }\n return Option.none();\n };\n var numToPx = function (val) {\n return isNumber(val) ? val + 'px' : val;\n };\n var Utils = {\n parseToInt: parseToInt,\n numToPx: numToPx\n };\n\n var initialAttribute = 'data-initial-z-index';\n var resetZIndex = function (blocker) {\n parent(blocker.element()).each(function (root) {\n var initZIndex = get$2(root, initialAttribute);\n if (has$1(root, initialAttribute)) {\n set$2(root, 'z-index', initZIndex);\n } else {\n remove$6(root, 'z-index');\n }\n remove$1(root, initialAttribute);\n });\n };\n var changeZIndex = function (blocker) {\n parent(blocker.element()).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$1(root, initialAttribute, zindex);\n });\n set$2(root, 'z-index', get$4(blocker.element(), 'z-index'));\n });\n };\n var instigate = function (anyComponent, blocker) {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n var discard = function (blocker) {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n\n var get$d = function (component, snapsInfo) {\n var element = component.element();\n var x = parseInt(get$2(element, snapsInfo.leftAttr), 10);\n var y = parseInt(get$2(element, snapsInfo.topAttr), 10);\n return isNaN(x) || isNaN(y) ? Option.none() : Option.some(Position(x, y));\n };\n var set$8 = function (component, snapsInfo, pt) {\n var element = component.element();\n set$1(element, snapsInfo.leftAttr, pt.left() + 'px');\n set$1(element, snapsInfo.topAttr, pt.top() + 'px');\n };\n var clear = function (component, snapsInfo) {\n var element = component.element();\n remove$1(element, snapsInfo.leftAttr);\n remove$1(element, snapsInfo.topAttr);\n };\n\n var getCoords = function (component, snapInfo, coord, delta) {\n return get$d(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed) {\n return fixed$1(fixed.left() + delta.left(), fixed.top() + delta.top());\n });\n };\n var moveOrSnap = function (component, snapInfo, coord, delta, scroll, origin) {\n var newCoord = getCoords(component, snapInfo, coord, delta);\n var snap = findSnap(component, snapInfo, newCoord, scroll, origin);\n var fixedCoord = asFixed(newCoord, scroll, origin);\n set$8(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed$1(fixedCoord.left(), fixedCoord.top()),\n extra: Option.none()\n };\n }, function (spanned) {\n return {\n coord: spanned.output(),\n extra: spanned.extra()\n };\n });\n };\n var stopDrag = function (component, snapInfo) {\n clear(component, snapInfo);\n };\n var findSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMap(snaps, function (snap) {\n var sensor = snap.sensor();\n var inRange = withinRange(newCoord, sensor, snap.range().left(), snap.range().top(), scroll, origin);\n return inRange ? Option.some({\n output: constant(absorb(snap.output(), newCoord, scroll, origin)),\n extra: snap.extra\n }) : Option.none();\n });\n };\n\n var getCurrentCoord = function (target) {\n return getRaw(target, 'left').bind(function (left) {\n return getRaw(target, 'top').bind(function (top) {\n return getRaw(target, 'position').map(function (position) {\n var nu = position === 'fixed' ? fixed$1 : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n });\n });\n }).getOrThunk(function () {\n var location = absolute(target);\n return absolute$2(location.left(), location.top());\n });\n };\n var calcNewCoord = function (component, optSnaps, currentCoord, scroll, origin, delta) {\n return optSnaps.fold(function () {\n var translated = translate$1(currentCoord, delta.left(), delta.top());\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed$1(fixedCoord.left(), fixedCoord.top());\n }, function (snapInfo) {\n var snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(function (extra) {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n };\n var dragBy = function (component, dragConfig, delta) {\n var target = dragConfig.getTarget(component.element());\n if (dragConfig.repositionTarget) {\n var doc = owner(component.element());\n var scroll = get$6(doc);\n var origin = getOrigin(target, scroll);\n var currentCoord = getCurrentCoord(target);\n var newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll, origin, delta);\n var styles = toStyles(newCoord, scroll, origin);\n setAll$1(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n var defaultLazyViewport$1 = function () {\n var scroll = get$6();\n return {\n x: scroll.left,\n y: scroll.top,\n width: constant(domGlobals.window.innerWidth),\n height: constant(domGlobals.window.innerHeight),\n bottom: constant(scroll.top() + domGlobals.window.innerHeight),\n right: constant(scroll.left() + domGlobals.window.innerWidth)\n };\n };\n var SnapSchema = optionObjOf('snaps', [\n strict$1('getSnapPoints'),\n onHandler('onSensor'),\n strict$1('leftAttr'),\n strict$1('topAttr'),\n defaulted$1('lazyViewport', defaultLazyViewport$1)\n ]);\n\n var init$b = function (dragApi) {\n return derive([\n run(mousedown(), dragApi.forceDrop),\n run(mouseup(), dragApi.drop),\n run(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event());\n }),\n run(mouseout(), dragApi.delayDrop)\n ]);\n };\n\n var getData$1 = function (event) {\n return Option.from(Position(event.x(), event.y()));\n };\n var getDelta$1 = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n\n var MouseData = /*#__PURE__*/Object.freeze({\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n var handlers = function (dragConfig, dragState) {\n return derive([run(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event().raw();\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n var dragApi = {\n drop: function () {\n stop();\n },\n delayDrop: function () {\n delayDrop.schedule();\n },\n forceDrop: function () {\n stop();\n },\n move: function (event) {\n delayDrop.cancel();\n var delta = dragState.update(MouseData, event);\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dlt);\n });\n }\n };\n var blocker = component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [dragConfig.blockerClass]\n },\n events: init$b(dragApi)\n }));\n var stop = function () {\n discard(blocker);\n dragConfig.snaps.each(function (snapInfo) {\n stopDrag(component, snapInfo);\n });\n var target = dragConfig.getTarget(component.element());\n dragConfig.onDrop(component, target);\n };\n var delayDrop = DelayedFunction(stop, 200);\n var start = function () {\n dragState.reset();\n instigate(component, blocker);\n };\n start();\n })]);\n };\n var schema$o = [\n defaulted$1('useFixed', false),\n strict$1('blockerClass'),\n defaulted$1('getTarget', identity),\n defaulted$1('onDrag', noop),\n defaulted$1('repositionTarget', true),\n onHandler('onDrop'),\n SnapSchema,\n output('dragger', { handlers: handlers })\n ];\n\n var getDataFrom = function (touches) {\n var touch = touches[0];\n return Option.some(Position(touch.clientX, touch.clientY));\n };\n var getData$2 = function (event) {\n var raw = event.raw();\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Option.none();\n };\n var getDelta$2 = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n\n var TouchData = /*#__PURE__*/Object.freeze({\n getData: getData$2,\n getDelta: getDelta$2\n });\n\n var handlers$1 = function (dragConfig, dragState) {\n return derive([\n stopper(touchstart()),\n run(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n var delta = dragState.update(TouchData, simulatedEvent.event());\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dlt);\n });\n }),\n run(touchend(), function (component, simulatedEvent) {\n dragConfig.snaps.each(function (snapInfo) {\n stopDrag(component, snapInfo);\n });\n var target = dragConfig.getTarget(component.element());\n dragState.reset();\n dragConfig.onDrop(component, target);\n })\n ]);\n };\n var schema$p = [\n defaulted$1('useFixed', false),\n defaulted$1('getTarget', identity),\n defaulted$1('onDrag', noop),\n defaulted$1('repositionTarget', true),\n defaulted$1('onDrop', noop),\n SnapSchema,\n output('dragger', { handlers: handlers$1 })\n ];\n\n var mouse = schema$o;\n var touch = schema$p;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n mouse: mouse,\n touch: touch\n });\n\n var init$c = function () {\n var previous = Option.none();\n var reset = function () {\n previous = Option.none();\n };\n var calculateDelta = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.getDelta(old, nu);\n });\n previous = Option.some(nu);\n return result;\n };\n var update = function (mode, dragEvent) {\n return mode.getData(dragEvent).bind(function (nuData) {\n return calculateDelta(mode, nuData);\n });\n };\n var readState = constant({});\n return nu$5({\n readState: readState,\n reset: reset,\n update: update\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n init: init$c\n });\n\n var Dragging = createModes$1({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: function (dragConfig, dragState) {\n var dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: MixedBag([\n 'sensor',\n 'range',\n 'output'\n ], ['extra'])\n },\n state: DragState\n });\n\n var ResizeTypes;\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n }(ResizeTypes || (ResizeTypes = {})));\n var calcCappedSize = function (originalSize, delta, minSize, maxSize) {\n var newSize = originalSize + delta;\n var minOverride = minSize.filter(function (min) {\n return newSize < min;\n });\n var maxOverride = maxSize.filter(function (max) {\n return newSize > max;\n });\n return minOverride.or(maxOverride).getOr(newSize);\n };\n var getDimensions = function (editor, deltas, resizeType, originalHeight, originalWidth) {\n var dimensions = {};\n dimensions.height = calcCappedSize(originalHeight, deltas.top(), getMinHeightSetting(editor), getMaxHeightSetting(editor));\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth, deltas.left(), getMinWidthSetting(editor), getMaxWidthSetting(editor));\n }\n return dimensions;\n };\n var resize$3 = function (editor, deltas, resizeType) {\n var container = Element.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$8(container), get$7(container));\n each$1(dimensions, function (val, dim) {\n return set$2(container, dim, Utils.numToPx(val));\n });\n Events$1.fireResizeEditor(editor);\n };\n\n var isHidden$1 = function (elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\n return true;\n }\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\n return true;\n }\n }\n return false;\n };\n var renderElementPath = function (editor, settings) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n var getDataPath = function (data) {\n var parts = data || [];\n var newPathElements = map(parts, function (part, index) {\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: {\n 'role': 'button',\n 'data-index': index,\n 'tab-index': -1,\n 'aria-level': index + 1\n },\n innerHtml: part.name\n },\n action: function (btn) {\n editor.focus();\n editor.selection.select(part.element);\n editor.nodeChanged();\n }\n });\n });\n var divider = {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true },\n innerHtml: ' ' + settings.delimiter + ' '\n }\n };\n return foldl(newPathElements.slice(1), function (acc, element) {\n var newAcc = acc;\n newAcc.push(divider);\n newAcc.push(element);\n return newAcc;\n }, [newPathElements[0]]);\n };\n var updatePath = function (parents) {\n var newPath = [];\n var i = parents.length;\n while (i-- > 0) {\n var parent = parents[i];\n if (parent.nodeType === 1 && !isHidden$1(parent)) {\n var args = editor.fire('ResolveName', {\n name: parent.nodeName.toLowerCase(),\n target: parent\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Tabstopping.config({}),\n Replacing.config({}),\n config('elementPathEvents', [runOnAttached(function (comp, e) {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', function () {\n return Keying.focusIn(comp);\n });\n editor.on('NodeChange', function (e) {\n var newPath = updatePath(e.parents);\n if (newPath.length > 0) {\n Replacing.set(comp, getDataPath(newPath));\n }\n });\n })])\n ]),\n components: []\n };\n };\n var ElementPath = { renderElementPath: renderElementPath };\n\n var renderWordCount = function (editor, providersBackstage) {\n var _a;\n var replaceCountText = function (comp, count, mode) {\n return Replacing.set(comp, [text(providersBackstage.translate([\n '{0} ' + mode,\n count[mode]\n ]))]);\n };\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n run(tapOrClick(), function (comp) {\n var currentVal = Representing.getValue(comp);\n var newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }),\n runOnAttached(function (comp) {\n editor.on('wordCountUpdate', function (e) {\n var mode = Representing.getValue(comp).mode;\n Representing.setValue(comp, {\n mode: mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })\n ])\n ]),\n eventOrder: (_a = {}, _a[tapOrClick()] = [\n 'wordcount-events',\n 'alloy.base.behaviour'\n ], _a)\n });\n };\n\n var renderStatusbar = function (editor, providersBackstage) {\n var renderResizeHandlerIcon = function (resizeType) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: { title: providersBackstage.translate('Resize') },\n innerHtml: get$c('resize-handle', providersBackstage.icons)\n },\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function (comp, target, delta) {\n resize$3(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n })])\n };\n };\n var renderBranding = function () {\n var label = global$3.translate([\n 'Powered by {0}',\n 'Tiny'\n ]);\n var linkHtml = '' + label + '';\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding'],\n innerHtml: linkHtml\n }\n };\n };\n var getResizeType = function (editor) {\n var fallback = !contains$1(editor.settings.plugins, 'autoresize');\n var resize = editor.getParam('resize', fallback);\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n var getTextComponents = function () {\n var components = [];\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(ElementPath.renderElementPath(editor, {}));\n }\n if (contains$1(editor.settings.plugins, 'wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (editor.getParam('branding', true, 'boolean')) {\n components.push(renderBranding());\n }\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__text-container']\n },\n components: components\n }];\n }\n return [];\n };\n var getComponents = function () {\n var components = getTextComponents();\n var resizeType = getResizeType(editor);\n if (resizeType !== ResizeTypes.None) {\n components.push(renderResizeHandlerIcon(resizeType));\n }\n return components;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n var setup$7 = function (editor) {\n var isInline = editor.getParam('inline', false, 'boolean');\n var mode = isInline ? Inline : Iframe;\n var lazyOuterContainer = Option.none();\n var dirAttributes = global$3.isRtl() ? { attributes: { dir: 'rtl' } } : {};\n var sink = build$1({\n dom: __assign({\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ]\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({ useFixed: false })])\n });\n var memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n var lazyAnchorBar = function () {\n return lazyOuterContainer.bind(function (container) {\n return memAnchorBar.getOpt(container);\n }).getOrDie('Could not find a anchor bar element');\n };\n var lazyMoreButton = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getMoreButton(container);\n }).getOrDie('Could not find more button element');\n };\n var lazyToolbar = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getToolbar(container);\n }).getOrDie('Could not find more toolbar element');\n };\n var lazyThrobber = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getThrobber(container);\n }).getOrDie('Could not find throbber element');\n };\n var backstage = init$8(sink, editor, lazyAnchorBar, lazyMoreButton);\n var lazySink = function () {\n return Result.value(sink);\n };\n var partMenubar = OuterContainer.parts().menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n getSink: lazySink,\n providers: backstage.shared.providers,\n onEscape: function () {\n editor.focus();\n }\n });\n var partToolbar = OuterContainer.parts().toolbar({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySink,\n backstage: backstage,\n onEscape: function () {\n editor.focus();\n },\n split: getToolbarDrawer(editor),\n lazyToolbar: lazyToolbar,\n lazyMoreButton: lazyMoreButton\n });\n var partSocket = OuterContainer.parts().socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n var partSidebar = OuterContainer.parts().sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n var partThrobber = OuterContainer.parts().throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstage\n });\n var statusbar = editor.getParam('statusbar', true, 'boolean') && !isInline ? Option.some(renderStatusbar(editor, backstage.shared.providers)) : Option.none();\n var socketSidebarContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [\n partSocket,\n partSidebar\n ]\n };\n var hasToolbar = isToolbarEnabled(editor) || getMultipleToolbarsSetting(editor).isSome();\n var hasMenubar = isMenubarEnabled(editor);\n var editorComponents = flatten([\n hasMenubar ? [partMenubar] : [],\n hasToolbar ? [partToolbar] : [],\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()],\n isInline ? [] : [socketSidebarContainer]\n ]);\n var editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n var containerComponents = flatten([\n [editorContainer],\n isInline ? [] : statusbar.toArray(),\n [partThrobber]\n ]);\n var attributes = __assign({ role: 'application' }, global$3.isRtl() ? { dir: 'rtl' } : {});\n var outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []),\n styles: { visibility: 'hidden' },\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1(mode.getBehaviours(editor).concat([Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a'\n })]))\n }));\n lazyOuterContainer = Option.some(outerContainer);\n editor.shortcuts.add('alt+F9', 'focus menubar', function () {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.shortcuts.add('alt+F10', 'focus toolbar', function () {\n OuterContainer.focusToolbar(outerContainer);\n });\n var mothership = takeover(outerContainer);\n var uiMothership = takeover(sink);\n Events.setup(editor, mothership, uiMothership);\n var getUi = function () {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: function () {\n }\n };\n return { channels: channels };\n };\n var setEditorSize = function (elm) {\n var DOM = global$5.DOM;\n var baseWidth = editor.getParam('width', DOM.getStyle(elm, 'width'));\n var baseHeight = getHeightSetting(editor);\n var minWidth = getMinWidthSetting(editor);\n var minHeight = getMinHeightSetting(editor);\n var parsedWidth = Utils.parseToInt(baseWidth).bind(function (w) {\n return Utils.numToPx(minWidth.map(function (mw) {\n return Math.max(w, mw);\n }));\n }).getOr(Utils.numToPx(baseWidth));\n var parsedHeight = Utils.parseToInt(baseHeight).bind(function (h) {\n return minHeight.map(function (mh) {\n return Math.max(h, mh);\n });\n }).getOr(baseHeight);\n var stringWidth = Utils.numToPx(parsedWidth);\n if (isValidValue('div', 'width', stringWidth)) {\n set$2(outerContainer.element(), 'width', stringWidth);\n }\n if (!editor.inline) {\n var stringHeight = Utils.numToPx(parsedHeight);\n if (isValidValue('div', 'height', stringHeight)) {\n set$2(outerContainer.element(), 'height', stringHeight);\n } else {\n set$2(outerContainer.element(), 'height', '200px');\n }\n }\n return parsedHeight;\n };\n var renderUI = function () {\n setup$6(editor, lazySink, backstage.shared);\n setup$4(editor);\n setup$5(editor, lazyThrobber, backstage.shared);\n var _a = editor.ui.registry.getAll(), buttons = _a.buttons, menuItems = _a.menuItems, contextToolbars = _a.contextToolbars, sidebars = _a.sidebars;\n var rawUiConfig = {\n menuItems: menuItems,\n buttons: buttons,\n menus: !editor.settings.menu ? {} : map$1(editor.settings.menu, function (menu) {\n return merge(menu, { items: menu.items });\n }),\n menubar: editor.settings.menubar,\n toolbar: getMultipleToolbarsSetting(editor).getOr(editor.getParam('toolbar', true)),\n sidebar: sidebars\n };\n ContextToolbar.register(editor, contextToolbars, sink, { backstage: backstage });\n var elm = editor.getElement();\n var height = setEditorSize(elm);\n var uiComponents = {\n mothership: mothership,\n uiMothership: uiMothership,\n outerContainer: outerContainer\n };\n var args = {\n targetNode: elm,\n height: height\n };\n return mode.render(editor, uiComponents, rawUiConfig, backstage, args);\n };\n return {\n mothership: mothership,\n uiMothership: uiMothership,\n backstage: backstage,\n renderUI: renderUI,\n getUi: getUi\n };\n };\n var Render = { setup: setup$7 };\n\n var register$5 = function (editor) {\n var alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n global$b.each(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n onAction: function () {\n return editor.execCommand(item.cmd);\n },\n icon: item.icon,\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n var alignNoneToolbarButton = {\n name: 'alignnone',\n text: 'No alignment',\n cmd: 'JustifyNone',\n icon: 'align-none'\n };\n editor.ui.registry.addButton(alignNoneToolbarButton.name, {\n tooltip: alignNoneToolbarButton.text,\n onAction: function () {\n return editor.execCommand(alignNoneToolbarButton.cmd);\n },\n icon: alignNoneToolbarButton.icon\n });\n };\n var AlignmentButtons = { register: register$5 };\n\n var toggleFormat = function (editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n var registerFormatButtons = function (editor) {\n global$b.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\n ], function (btn, idx) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupFormatToggle(editor, btn.name),\n onAction: toggleFormat(editor, btn.name)\n });\n });\n for (var i = 1; i <= 6; i++) {\n var name = 'h' + i;\n editor.ui.registry.addToggleButton(name, {\n text: name.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name),\n onAction: toggleFormat(editor, name)\n });\n }\n };\n var registerCommandButtons = function (editor) {\n global$b.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n }\n ], function (btn) {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n };\n var registerCommandToggleButtons = function (editor) {\n global$b.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], function (btn) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: function () {\n return editor.execCommand(btn.action);\n },\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n var registerButtons = function (editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n var registerMenuItems = function (editor) {\n global$b.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through',\n shortcut: ''\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript',\n shortcut: ''\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript',\n shortcut: ''\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting',\n shortcut: ''\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document',\n shortcut: ''\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n }\n ], function (btn) {\n editor.ui.registry.addMenuItem(btn.name, {\n text: btn.text,\n icon: btn.icon,\n shortcut: btn.shortcut,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: toggleFormat(editor, 'code')\n });\n };\n var register$6 = function (editor) {\n registerButtons(editor);\n registerMenuItems(editor);\n };\n var SimpleControls = { register: register$6 };\n\n var toggleUndoRedoState = function (api, editor, type) {\n var checkState = function () {\n return editor.undoManager ? editor.undoManager[type]() : false;\n };\n var onUndoStateChange = function () {\n api.setDisabled(editor.readonly || !checkState());\n };\n api.setDisabled(!checkState());\n editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n return function () {\n return editor.off('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n };\n };\n var registerMenuItems$1 = function (editor) {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var registerButtons$1 = function (editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var register$7 = function (editor) {\n registerMenuItems$1(editor);\n registerButtons$1(editor);\n };\n var UndoRedo = { register: register$7 };\n\n var toggleVisualAidState = function (api, editor) {\n api.setActive(editor.hasVisual);\n var onVisualAid = function (e) {\n api.setActive(e.hasVisual);\n };\n editor.on('VisualAid', onVisualAid);\n return function () {\n return editor.off('VisualAid', onVisualAid);\n };\n };\n var registerMenuItems$2 = function (editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: function (api) {\n return toggleVisualAidState(api, editor);\n },\n onAction: function () {\n editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var registerToolbarButton = function (editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: function () {\n return editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var register$8 = function (editor) {\n registerToolbarButton(editor);\n registerMenuItems$2(editor);\n };\n var VisualAid = { register: register$8 };\n\n var toggleOutdentState = function (api, editor) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n var onNodeChange = function () {\n api.setDisabled(!editor.queryCommandState('outdent'));\n };\n editor.on('NodeChange', onNodeChange);\n return function () {\n return editor.off('NodeChange', onNodeChange);\n };\n };\n var registerButtons$2 = function (editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: function (api) {\n return toggleOutdentState(api, editor);\n },\n onAction: function () {\n return editor.execCommand('outdent');\n }\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: function () {\n return editor.execCommand('indent');\n }\n });\n };\n var register$9 = function (editor) {\n registerButtons$2(editor);\n };\n var IndentOutdent = { register: register$9 };\n\n var register$a = function (editor, backstage) {\n alignSelectMenu(editor, backstage);\n fontSelectMenu(editor, backstage);\n styleSelectMenu(editor, backstage);\n formatSelectMenu(editor, backstage);\n fontsizeSelectMenu(editor, backstage);\n };\n var ComplexControls = { register: register$a };\n\n var setup$8 = function (editor, backstage) {\n AlignmentButtons.register(editor);\n SimpleControls.register(editor);\n ComplexControls.register(editor, backstage);\n UndoRedo.register(editor);\n ColorSwatch.register(editor);\n VisualAid.register(editor);\n IndentOutdent.register(editor);\n };\n var FormatControls = { setup: setup$8 };\n\n var AriaLabel = {\n labelledBy: function (labelledElement, labelElement) {\n var labelId = Option.from(get$2(labelledElement, 'id')).fold(function () {\n var id = generate$1('dialog-label');\n set$1(labelElement, 'id', id);\n return id;\n }, identity);\n set$1(labelledElement, 'aria-labelledby', labelId);\n }\n };\n\n var schema$q = constant([\n strict$1('lazySink'),\n option('dragBlockClass'),\n defaulted$1('useTabstopAt', constant(true)),\n defaulted$1('eventOrder', {}),\n field$1('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n var basic$1 = { sketch: identity };\n var parts$c = constant([\n optional({\n name: 'draghandle',\n overrides: function (detail, spec) {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: function (handle) {\n return ancestor$2(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + Json.stringify(spec, null, 2)).message)\n })])\n };\n }\n }),\n required({\n schema: [strict$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic$1,\n schema: [strict$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic$1,\n schema: [strict$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic$1,\n schema: [strict$1('dom')],\n name: 'footer'\n }),\n external$1({\n factory: {\n sketch: function (spec, detail) {\n return __assign({}, spec, {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [\n defaulted$1('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted$1('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n var describedBy = function (describedElement, describeElement) {\n var describeId = Option.from(get$2(describedElement, 'id')).fold(function () {\n var id = generate$1('dialog-describe');\n set$1(describeElement, 'id', id);\n return id;\n }, identity);\n set$1(describedElement, 'aria-describedby', describeId);\n };\n\n var factory$f = function (detail, components, spec, externals) {\n var dialogBusyEvent = generate$1('alloy.dialog.busy');\n var dialogIdleEvent = generate$1('alloy.dialog.idle');\n var busyBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Option.some(true);\n },\n onShiftTab: function () {\n return Option.some(true);\n }\n }),\n Focusing.config({})\n ]);\n var showDialog = function (dialog) {\n var sink = detail.lazySink(dialog).getOrDie();\n var busyComp = Cell(Option.none());\n var externalBlocker = externals.blocker();\n var blocker = sink.getSystem().build(__assign({}, externalBlocker, {\n components: externalBlocker.components.concat([premade$1(dialog)]),\n behaviours: derive$1([config('dialog-blocker-events', [\n run(dialogIdleEvent, function (blocker, se) {\n if (has$1(dialog.element(), 'aria-busy')) {\n remove$1(dialog.element(), 'aria-busy');\n busyComp.get().each(function (bc) {\n return Replacing.remove(dialog, bc);\n });\n }\n }),\n run(dialogBusyEvent, function (blocker, se) {\n set$1(dialog.element(), 'aria-busy', 'true');\n var getBusySpec = se.event().getBusySpec();\n busyComp.get().each(function (bc) {\n Replacing.remove(dialog, bc);\n });\n var busySpec = getBusySpec(dialog, busyBehaviours);\n var busy = blocker.getSystem().build(busySpec);\n busyComp.set(Option.some(busy));\n Replacing.append(dialog, premade$1(busy));\n if (busy.hasConfigured(Keying)) {\n Keying.focusIn(busy);\n }\n })\n ])])\n }));\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n var hideDialog = function (dialog) {\n parent(dialog.element()).each(function (blockerDom) {\n dialog.getSystem().getByDom(blockerDom).each(function (blocker) {\n detach(blocker);\n });\n });\n };\n var getDialogBody = function (dialog) {\n return getPartOrDie(dialog, detail, 'body');\n };\n var getDialogFooter = function (dialog) {\n return getPartOrDie(dialog, detail, 'footer');\n };\n var setBusy = function (dialog, getBusySpec) {\n emitWith(dialog, dialogBusyEvent, { getBusySpec: getBusySpec });\n };\n var setIdle = function (dialog) {\n emit(dialog, dialogIdleEvent);\n };\n var modalEventsId = generate$1('modal-events');\n var eventOrder = __assign({}, detail.eventOrder, { 'alloy.system.attached': [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []) });\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle: setIdle,\n setBusy: setBusy\n },\n eventOrder: eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }),\n config(modalEventsId, [runOnAttached(function (c) {\n AriaLabel.labelledBy(c.element(), getPartOrDie(c, detail, 'title').element());\n describedBy(c.element(), getPartOrDie(c, detail, 'body').element());\n })])\n ])\n };\n };\n var ModalDialog = composite$1({\n name: 'ModalDialog',\n configFields: schema$q(),\n partFields: parts$c(),\n factory: factory$f,\n apis: {\n show: function (apis, dialog) {\n apis.show(dialog);\n },\n hide: function (apis, dialog) {\n apis.hide(dialog);\n },\n getBody: function (apis, dialog) {\n return apis.getBody(dialog);\n },\n getFooter: function (apis, dialog) {\n return apis.getFooter(dialog);\n },\n setBusy: function (apis, dialog, getBusySpec) {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: function (apis, dialog) {\n apis.setIdle(dialog);\n }\n }\n });\n\n var alertBannerFields = [\n strictString('type'),\n strictString('text'),\n strictStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n strictString('icon'),\n defaulted$1('url', '')\n ];\n\n var createBarFields = function (itemsField) {\n return [\n strictString('type'),\n itemsField\n ];\n };\n\n var buttonFields = [\n strictString('type'),\n strictString('text'),\n defaultedBoolean('primary', false),\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n optionString('icon')\n ];\n\n var checkboxFields = [\n strictString('type'),\n strictString('name'),\n strictString('label')\n ];\n var checkboxDataProcessor = boolean;\n\n var formComponentFields = [\n strictString('type'),\n strictString('name'),\n optionString('label')\n ];\n\n var colorInputFields = formComponentFields;\n var colorInputDataProcessor = string;\n\n var colorPickerFields = formComponentFields;\n var colorPickerDataProcessor = string;\n\n var dropZoneFields = formComponentFields;\n var dropZoneDataProcessor = arrOfVal();\n\n var createGridFields = function (itemsField) {\n return [\n strictString('type'),\n strictNumber('columns'),\n itemsField\n ];\n };\n\n var iframeFields = formComponentFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeDataProcessor = string;\n\n var inputFields = formComponentFields.concat([optionString('placeholder')]);\n var inputDataProcessor = string;\n\n var selectBoxFields = formComponentFields.concat([\n strictArrayOfObj('items', [\n strictString('text'),\n strictString('value')\n ]),\n defaultedNumber('size', 1)\n ]);\n var selectBoxDataProcessor = string;\n\n var sizeInputFields = formComponentFields.concat([defaultedBoolean('constrain', true)]);\n var sizeInputDataProcessor = objOf([\n strictString('width'),\n strictString('height')\n ]);\n\n var textAreaFields = formComponentFields.concat([optionString('placeholder')]);\n var textAreaDataProcessor = string;\n\n var urlInputFields = formComponentFields.concat([defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ])]);\n var urlInputDataProcessor = objOf([\n strictString('value'),\n defaulted$1('meta', {})\n ]);\n\n var customEditorFields = formComponentFields.concat([\n strictString('type'),\n defaultedString('tag', 'textarea'),\n strictFunction('init')\n ]);\n var customEditorDataProcessor = string;\n\n var htmlPanelFields = [\n strictString('type'),\n strictString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ])\n ];\n\n var imageToolsFields = formComponentFields.concat([strictOf('currentState', objOf([\n strict$1('blob'),\n strictString('url')\n ]))]);\n\n var collectionFields = formComponentFields.concat([defaulted$1('columns', 'auto')]);\n var collectionDataProcessor = arrOfObj$1([\n strictString('value'),\n strictString('text'),\n strictString('icon')\n ]);\n\n var createLabelFields = function (itemsField) {\n return [\n strictString('type'),\n strictString('label'),\n itemsField\n ];\n };\n\n var tableFields = [\n strictString('type'),\n strictArrayOf('header', string),\n strictArrayOf('cells', arrOf(string))\n ];\n\n var createItemsField = function (name) {\n return field('items', 'items', strict(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema$2, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n var itemSchema$2 = choose$1('type', {\n alertbanner: alertBannerFields,\n bar: createBarFields(createItemsField('bar')),\n button: buttonFields,\n checkbox: checkboxFields,\n colorinput: colorInputFields,\n colorpicker: colorPickerFields,\n dropzone: dropZoneFields,\n grid: createGridFields(createItemsField('grid')),\n iframe: iframeFields,\n input: inputFields,\n selectbox: selectBoxFields,\n sizeinput: sizeInputFields,\n textarea: textAreaFields,\n urlinput: urlInputFields,\n customeditor: customEditorFields,\n htmlpanel: htmlPanelFields,\n imagetools: imageToolsFields,\n collection: collectionFields,\n label: createLabelFields(createItemsField('label')),\n table: tableFields\n });\n\n var panelFields = [\n strictString('type'),\n strictArrayOf('items', itemSchema$2)\n ];\n\n var tabFields = [\n strictString('title'),\n strictArrayOf('items', itemSchema$2)\n ];\n var tabPanelFields = [\n strictString('type'),\n strictArrayOfObj('tabs', tabFields)\n ];\n\n var dialogButtonFields = [\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n strictString('text'),\n optionString('icon'),\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n defaultedBoolean('primary', false),\n defaultedBoolean('disabled', false)\n ];\n var dialogButtonSchema = objOf([strictStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ])].concat(dialogButtonFields));\n var dialogSchema = objOf([\n strictString('title'),\n strictOf('body', choose$1('type', {\n panel: panelFields,\n tabpanel: tabPanelFields\n })),\n defaultedString('size', 'normal'),\n strictArrayOf('buttons', dialogButtonSchema),\n defaulted$1('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaulted$1('onTabChange', noop)\n ]);\n var createDialog = function (spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n\n var getAllObjects = function (obj) {\n if (isObject(obj)) {\n return [obj].concat(bind(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n var isNamedItem = function (obj) {\n return isString(obj.type) && isString(obj.name);\n };\n var dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n sizeinput: sizeInputDataProcessor,\n selectbox: selectBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor\n };\n var getDataProcessor = function (item) {\n return Option.from(dataProcessors[item.type]);\n };\n var getNamedItems = function (structure) {\n return filter(getAllObjects(structure), isNamedItem);\n };\n\n var createDataValidator = function (structure) {\n var fields = bind(getNamedItems(structure), function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [strictOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n\n var urlDialogButtonSchema = objOf([strictStringEnum('type', [\n 'cancel',\n 'custom'\n ])].concat(dialogButtonFields));\n var urlDialogSchema = objOf([\n strictString('title'),\n strictString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n var createUrlDialog = function (spec) {\n return asRaw('dialog', urlDialogSchema, spec);\n };\n\n var extract$1 = function (structure) {\n var internalDialog = getOrDie$1(createDialog(structure));\n var dataValidator = createDataValidator(structure);\n var initialData = structure.initialData;\n return {\n internalDialog: internalDialog,\n dataValidator: dataValidator,\n initialData: initialData\n };\n };\n var DialogManager = {\n open: function (factory, structure) {\n var extraction = extract$1(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function (factory, structure) {\n var internalDialog = getOrDie$1(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function (structure) {\n return extract$1(structure);\n }\n };\n\n var toValidValues = function (values) {\n var errors = [];\n var result = {};\n each$1(values, function (value, name) {\n value.fold(function () {\n errors.push(name);\n }, function (v) {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n var renderBodyPanel = function (spec, backstage) {\n var memForm = record(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map(spec.items, function (item) {\n return interpretInForm(parts, item, backstage);\n })\n };\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n RepresentingConfigs.memento(memForm, {\n postprocess: function (formValue) {\n return toValidValues(formValue).fold(function (err) {\n domGlobals.console.error(err);\n return {};\n }, function (vals) {\n return vals;\n });\n }\n })\n ])\n };\n };\n\n var factory$g = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$7(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n };\n };\n var TabButton = single$2({\n name: 'TabButton',\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('value'),\n field('dom', 'dom', mergeWithThunk(function (spec) {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$1('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue$1()),\n option('action'),\n defaulted$1('domModification', {}),\n field$1('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n strict$1('view')\n ],\n factory: factory$g\n });\n\n var schema$r = constant([\n strict$1('tabs'),\n strict$1('dom'),\n defaulted$1('clickToDismiss', false),\n field$1('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function (barDetail, tabSpec) {\n var dismissTab$1 = function (tabbar, button) {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n var changeTab$1 = function (tabbar, button) {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n return {\n action: function (button) {\n var tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n var activeButton = Highlighting.isHighlighted(tabbar, button);\n var response = function () {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n }();\n response(tabbar, button);\n },\n domModification: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n var parts$d = constant([tabsPart]);\n\n var factory$h = function (detail, components, spec, externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n 'components': components,\n 'debug.sketcher': 'Tabbar',\n domModification: { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: function (tabbar, tab) {\n set$1(tab.element(), 'aria-selected', 'true');\n },\n onDehighlight: function (tabbar, tab) {\n set$1(tab.element(), 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: function (tabbar) {\n return Highlighting.getHighlighted(tabbar).map(function (tab) {\n return tab.element();\n });\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })\n ])\n };\n };\n var Tabbar = composite$1({\n name: 'Tabbar',\n configFields: schema$r(),\n partFields: parts$d(),\n factory: factory$h\n });\n\n var factory$i = function (detail, spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n };\n };\n var Tabview = single$2({\n name: 'Tabview',\n configFields: [field$1('tabviewBehaviours', [Replacing])],\n factory: factory$i\n });\n\n var schema$s = constant([\n defaulted$1('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted$1('tabs', []),\n field$1('tabSectionBehaviours', [])\n ]);\n var barPart = required({\n factory: Tabbar,\n schema: [\n strict$1('dom'),\n strictObjOf('markers', [\n strict$1('tabClass'),\n strict$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: function (detail) {\n return { tabs: detail.tabs };\n }\n });\n var viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n var parts$e = constant([\n barPart,\n viewPart\n ]);\n\n var factory$j = function (detail, components, spec, externals) {\n var changeTab$1 = function (button) {\n var tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(function (tabview) {\n var tabWithValue = find(detail.tabs, function (t) {\n return t.value === tabValue;\n });\n tabWithValue.each(function (tabData) {\n var panel = tabData.view();\n set$1(tabview.element(), 'aria-labelledby', get$2(button.element(), 'id'));\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n var changeTabBy = function (section, byPred) {\n getPart(section, detail, 'tabbar').each(function (tabbar) {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$b(detail.tabSectionBehaviours),\n events: derive(flatten([\n detail.selectFirst ? [runOnAttached(function (section, simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event().button();\n changeTab$1(button);\n }),\n run(dismissTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event().button();\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: function (section) {\n return getPart(section, detail, 'tabview').map(function (tabview) {\n return Replacing.contents(tabview);\n }).getOr([]);\n },\n showTab: function (section, tabKey) {\n var getTabIfNotActive = function (tabbar) {\n var candidates = Highlighting.getCandidates(tabbar);\n var optTab = find(candidates, function (c) {\n return Representing.getValue(c) === tabKey;\n });\n return optTab.filter(function (tab) {\n return !Highlighting.isHighlighted(tabbar, tab);\n });\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n var TabSection = composite$1({\n name: 'TabSection',\n configFields: schema$s(),\n partFields: parts$e(),\n factory: factory$j,\n apis: {\n getViewItems: function (apis, component) {\n return apis.getViewItems(component);\n },\n showTab: function (apis, component, tabKey) {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n var measureHeights = function (allTabs, tabview, tabviewComp) {\n return map(allTabs, function (tab, i) {\n Replacing.set(tabviewComp, allTabs[i].view());\n var rect = tabview.dom().getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n };\n var getMaxHeight = function (heights) {\n return head(sort(heights, function (a, b) {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n };\n var getMaxTabviewHeight = function (dialog, dialogBody) {\n var rootElm = ancestor$2(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$4(rootElm, 'position') === 'fixed';\n var maxHeight;\n if (isFixed) {\n maxHeight = Math.max(domGlobals.document.documentElement.clientHeight, domGlobals.window.innerHeight);\n } else {\n maxHeight = Math.max(domGlobals.document.documentElement.offsetHeight, domGlobals.document.documentElement.scrollHeight);\n }\n var dialogChrome = dialog.dom().getBoundingClientRect().height - dialogBody.dom().getBoundingClientRect().height;\n return maxHeight - dialogChrome;\n };\n var showTab = function (allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n var updateTabviewHeight = function (dialogBody, tabview, maxTabHeight) {\n ancestor$2(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n maxTabHeight.get().map(function (height) {\n set$2(tabview, 'height', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, dialogBody));\n }).each(function (height) {\n set$2(tabview, 'height', height + 'px');\n });\n });\n };\n var setMode = function (allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = Cell(Option.none());\n var extraEvents = [\n runOnAttached(function (comp) {\n descendant$2(comp.element(), '[role=\"tabpanel\"]').each(function (tabview) {\n set$2(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOption().each(function (tabviewComp) {\n var heights = measureHeights(allTabs, tabview, tabviewComp);\n var maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeight.set(maxTabHeightOpt);\n });\n updateTabviewHeight(comp.element(), tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$1.requestAnimationFrame(function () {\n updateTabviewHeight(comp.element(), tabview, maxTabHeight);\n });\n });\n }),\n run(windowResize(), function (comp) {\n descendant$2(comp.element(), '[role=\"tabpanel\"]').each(function (tabview) {\n updateTabviewHeight(comp.element(), tabview, maxTabHeight);\n });\n }),\n run(formResizeEvent, function (comp, se) {\n descendant$2(comp.element(), '[role=\"tabpanel\"]').each(function (tabview) {\n var oldFocus = active();\n set$2(tabview, 'visibility', 'hidden');\n var oldHeight = getRaw(tabview, 'height').map(function (h) {\n return parseInt(h, 10);\n });\n remove$6(tabview, 'height');\n var newHeight = tabview.dom().getBoundingClientRect().height;\n var hasGrown = oldHeight.forall(function (h) {\n return newHeight > h;\n });\n if (hasGrown) {\n maxTabHeight.set(Option.from(newHeight));\n updateTabviewHeight(comp.element(), tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n set$2(tabview, 'height', h + 'px');\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$1);\n });\n })\n ];\n var selectFirst = false;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n var naiveTabHeight = function () {\n var extraEvents = [];\n var selectFirst = true;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n return {\n smartTabHeight: smartTabHeight,\n naiveTabHeight: naiveTabHeight\n };\n };\n\n var SendDataToSectionChannel = 'send-data-to-section';\n var SendDataToViewChannel = 'send-data-to-view';\n var renderTabPanel = function (spec, backstage) {\n var storedValue = Cell({});\n var updateDataWithForm = function (form) {\n var formData = Representing.getValue(form);\n var validData = toValidValues(formData).getOr({});\n var currentData = storedValue.get();\n var newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n var setDataOnForm = function (form) {\n var tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n var oldTab = Cell(null);\n var allTabs = map(spec.tabs, function (tab) {\n return {\n value: tab.title,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item'],\n innerHtml: backstage.shared.providers.translate(tab.title)\n },\n view: function () {\n return [Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll$1([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\n ])\n })\n ])\n };\n })];\n }\n };\n });\n var tabMode = setMode(allTabs).smartTabHeight;\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: function (section, button, _viewItems) {\n var title = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n title: title,\n oldTitle: oldTab.get()\n });\n oldTab.set(title);\n },\n tabs: allTabs,\n components: [\n TabSection.parts().tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts().tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }),\n TabSection.parts().tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({\n find: function (comp) {\n return head(TabSection.getViewItems(comp));\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (tsection) {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n },\n setValue: function (tsection, value) {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n }\n }\n })\n ])\n });\n };\n\n var dialogChannel = generate$1('update-dialog');\n var titleChannel = generate$1('update-title');\n var bodyChannel = generate$1('update-body');\n var footerChannel = generate$1('update-footer');\n var bodySendMessageChannel = generate$1('body-send-message');\n\n var renderBody = function (foo, id, backstage, ariaAttrs) {\n var renderComponents = function (incoming) {\n switch (incoming.body.type) {\n case 'tabpanel': {\n return [renderTabPanel({ tabs: incoming.body.tabs }, backstage)];\n }\n default: {\n return [renderBodyPanel({ items: incoming.body.items }, backstage)];\n }\n }\n };\n var updateState = function (_comp, incoming) {\n return Option.some({\n isTabPanel: function () {\n return incoming.body.type === 'tabpanel';\n }\n });\n };\n var ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: __assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({}), ariaAttrs ? ariaAttributes : {})\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: bodyChannel,\n updateState: updateState,\n renderComponents: renderComponents,\n initialData: foo\n })\n ])\n };\n };\n var renderInlineBody = function (foo, contentId, backstage, ariaAttrs) {\n return renderBody(foo, Option.some(contentId), backstage, ariaAttrs);\n };\n var renderModalBody = function (foo, backstage) {\n var bodySpec = renderBody(foo, Option.none(), backstage, false);\n return ModalDialog.parts().body(bodySpec);\n };\n var renderIframeBody = function (spec) {\n var bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [NavigableObject.craft({\n dom: {\n tag: 'iframe',\n attributes: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(NavigableObject.isPseudoStop)\n })])\n };\n return ModalDialog.parts().body(bodySpec);\n };\n\n var initCommonEvents = function (fireApiEvent, extras) {\n return [\n runWithTarget(focusin(), NavigableObject.onFocus),\n fireApiEvent(formCloseEvent, function (api, spec) {\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, function (api, spec, _event, self) {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run(formUnblockEvent, function (c, se) {\n return extras.onUnblock();\n }),\n run(formBlockEvent, function (c, se) {\n return extras.onBlock(se.event());\n })\n ];\n };\n var initUrlDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event(), c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialog) {\n f(currentDialog, c);\n });\n };\n return initCommonEvents(fireApiEvent, extras).concat([fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, { name: event.name() });\n })]);\n };\n var initDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event(), c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialogInit) {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return initCommonEvents(fireApiEvent, extras).concat([\n fireApiEvent(formSubmitEvent, function (api, spec) {\n return spec.onSubmit(api);\n }),\n fireApiEvent(formChangeEvent, function (api, spec, event) {\n spec.onChange(api, { name: event.name() });\n }),\n fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, {\n name: event.name(),\n value: event.value()\n });\n }),\n fireApiEvent(formTabChangeEvent, function (api, spec, event) {\n spec.onTabChange(api, event.title());\n }),\n runOnDetached(function (component) {\n var api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ]);\n };\n var SilverDialogEvents = {\n initUrlDialog: initUrlDialog,\n initDialog: initDialog\n };\n\n var makeButton = function (button, providersBackstage) {\n return renderFooterButton(button, button.type, providersBackstage);\n };\n var lookup$2 = function (compInSystem, footerButtons, buttonName) {\n return find(footerButtons, function (button) {\n return button.name === buttonName;\n }).bind(function (memButton) {\n return memButton.memento.getOpt(compInSystem);\n });\n };\n var renderComponents = function (_data, state) {\n var footerButtons = state.map(function (s) {\n return s.footerButtons;\n }).getOr([]);\n var buttonGroups = partition(footerButtons, function (button) {\n return button.align === 'start';\n });\n var makeGroup = function (edge, buttons) {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-' + edge]\n },\n components: map(buttons, function (button) {\n return button.memento.asSpec();\n })\n });\n };\n var startButtons = makeGroup('start', buttonGroups.pass);\n var endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n var renderFooter = function (initFoo, providersBackstage) {\n var updateState = function (_comp, data) {\n var footerButtons = map(data.buttons, function (button) {\n var memButton = record(makeButton(button, providersBackstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n var lookupByName = function (compInSystem, buttonName) {\n return lookup$2(compInSystem, footerButtons, buttonName);\n };\n return Option.some({\n lookupByName: lookupByName,\n footerButtons: footerButtons\n });\n };\n return {\n dom: fromHtml$2('
'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: footerChannel,\n initialData: initFoo,\n updateState: updateState,\n renderComponents: renderComponents\n })])\n };\n };\n var renderInlineFooter = function (initFoo, providersBackstage) {\n return renderFooter(initFoo, providersBackstage);\n };\n var renderModalFooter = function (initFoo, providersBackstage) {\n return ModalDialog.parts().footer(renderFooter(initFoo, providersBackstage));\n };\n\n var getCompByName = function (access, name) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n var form_1 = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form_1, name).fold(function () {\n var footer = access.getFooter();\n var footerState = Reflecting.getState(footer);\n return footerState.get().bind(function (f) {\n return f.lookupByName(form_1, name);\n });\n }, function (comp) {\n return Option.some(comp);\n });\n } else {\n return Option.none();\n }\n };\n var validateData = function (access, data) {\n var root = access.getRoot();\n return Reflecting.getState(root).get().map(function (dialogState) {\n return getOrDie$1(asRaw('data', dialogState.dataValidator, data));\n }).getOr(data);\n };\n var getDialogApi = function (access, doRedial) {\n var withRoot = function (f) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var getData = function () {\n var root = access.getRoot();\n var valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n return Representing.getValue(valueComp);\n };\n var setData = function (newData) {\n withRoot(function (_) {\n var prevData = instanceApi.getData();\n var mergedData = merge(prevData, newData);\n var newInternalData = validateData(access, mergedData);\n var form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n });\n };\n var disable = function (name) {\n getCompByName(access, name).each(Disabling.disable);\n };\n var enable = function (name) {\n getCompByName(access, name).each(Disabling.enable);\n };\n var focus = function (name) {\n getCompByName(access, name).each(Focusing.focus);\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var showTab = function (title) {\n withRoot(function (_) {\n var body = access.getBody();\n var bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(function (b) {\n return b.isTabPanel();\n })) {\n Composing.getCurrent(body).each(function (tabSection) {\n TabSection.showTab(tabSection, title);\n });\n }\n });\n };\n var redial = function (d) {\n withRoot(function (root) {\n var dialogInit = doRedial(d);\n root.getSystem().broadcastOn([dialogChannel], dialogInit);\n root.getSystem().broadcastOn([titleChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([bodyChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([footerChannel], dialogInit.internalDialog);\n instanceApi.setData(dialogInit.initialData);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var instanceApi = {\n getData: getData,\n setData: setData,\n disable: disable,\n enable: enable,\n focus: focus,\n block: block,\n unblock: unblock,\n showTab: showTab,\n redial: redial,\n close: close\n };\n return instanceApi;\n };\n\n var renderClose = function (providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'title': providersBackstage.translate('Close')\n }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: ''\n }\n }],\n action: function (comp) {\n emit(comp, formCancelEvent);\n }\n });\n };\n var renderTitle = function (foo, id, providersBackstage) {\n var renderComponents = function (data) {\n return [text(providersBackstage.translate(data.title))];\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: __assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({}))\n },\n components: renderComponents(foo),\n behaviours: derive$1([Reflecting.config({\n channel: titleChannel,\n renderComponents: renderComponents\n })])\n };\n };\n var renderInlineHeader = function (foo, titleId, providersBackstage) {\n return Container.sketch({\n dom: fromHtml$2('
'),\n components: [\n renderTitle(foo, Option.some(titleId), providersBackstage),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: function (handle) {\n return closest$3(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: function () {\n return [];\n },\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n };\n var renderModalHeader = function (foo, providersBackstage) {\n var pTitle = ModalDialog.parts().title(renderTitle(foo, Option.none(), providersBackstage));\n var pHandle = ModalDialog.parts().draghandle({ dom: fromHtml$2('
') });\n var pClose = ModalDialog.parts().close(renderClose(providersBackstage));\n var components = [pTitle].concat(foo.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml$2('
'),\n components: components\n });\n };\n\n var getHeader = function (title, backstage) {\n return renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: true\n }, backstage.shared.providers);\n };\n var getEventExtras = function (lazyDialog, extra) {\n return {\n onClose: function () {\n return extra.closeWindow();\n },\n onBlock: function (blockEvent) {\n ModalDialog.setBusy(lazyDialog(), function (d, bs) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': blockEvent.message() },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml$2('
') }]\n };\n });\n },\n onUnblock: function () {\n ModalDialog.setIdle(lazyDialog());\n }\n };\n };\n var renderModalDialog = function (spec, initialData, dialogEvents, backstage) {\n var _a;\n var updateState = function (_comp, incoming) {\n return Option.some(incoming);\n };\n return build$1(ModalDialog.sketch({\n lazySink: backstage.shared.getSink,\n onEscape: function (c) {\n emit(c, formCancelEvent);\n return Option.some(true);\n },\n useTabstopAt: function (elem) {\n return !NavigableObject.isPseudoStop(elem) && (name(elem) !== 'button' || get$2(elem, 'disabled') !== 'disabled');\n },\n modalBehaviours: derive$1([\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: initialData\n }),\n RepresentingConfigs.memory({}),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), function (comp, se) {\n Keying.focusIn(comp);\n })])),\n config('scroll-lock', [\n runOnAttached(function () {\n add$2(body(), 'tox-dialog__disable-scroll');\n }),\n runOnDetached(function () {\n remove$4(body(), 'tox-dialog__disable-scroll');\n })\n ])\n ].concat(spec.extraBehaviours)),\n eventOrder: (_a = {}, _a[execute()] = ['execute-on-form'], _a[receive()] = [\n 'reflecting',\n 'receiving'\n ], _a[attachedToDom()] = [\n 'scroll-lock',\n 'reflecting',\n 'messages',\n 'execute-on-form',\n 'alloy.base.behaviour'\n ], _a[detachedFromDom()] = [\n 'alloy.base.behaviour',\n 'execute-on-form',\n 'messages',\n 'reflecting',\n 'scroll-lock'\n ], _a),\n dom: {\n tag: 'div',\n classes: ['tox-dialog'].concat(spec.extraClasses),\n styles: __assign({ position: 'relative' }, spec.extraStyles)\n },\n components: [\n spec.header,\n spec.body\n ].concat(spec.footer.toArray()),\n dragBlockClass: 'tox-dialog-wrap',\n parts: {\n blocker: {\n dom: fromHtml$2('
'),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog-wrap__backdrop']\n }\n }]\n }\n }\n }));\n };\n\n var renderDialog = function (dialogInit, extra, backstage) {\n var header = getHeader(dialogInit.internalDialog.title, backstage);\n var body = renderModalBody({ body: dialogInit.internalDialog.body }, backstage);\n var footer = renderModalFooter({ buttons: dialogInit.internalDialog.buttons }, backstage.shared.providers);\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, extra));\n var dialogSize = dialogInit.internalDialog.size !== 'normal' ? dialogInit.internalDialog.size === 'large' ? ['tox-dialog--width-lg'] : ['tox-dialog--width-md'] : [];\n var spec = {\n header: header,\n body: body,\n footer: Option.some(footer),\n extraClasses: dialogSize,\n extraBehaviours: [],\n extraStyles: {}\n };\n var dialog = renderModalDialog(spec, dialogInit, dialogEvents, backstage);\n var modalAccess = function () {\n var getForm = function () {\n var outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n return {\n getRoot: function () {\n return dialog;\n },\n getBody: function () {\n return ModalDialog.getBody(dialog);\n },\n getFooter: function () {\n return ModalDialog.getFooter(dialog);\n },\n getFormWrapper: getForm\n };\n }();\n var instanceApi = getDialogApi(modalAccess, extra.redial);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var global$d = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n var getUrlDialogApi = function (root) {\n var withRoot = function (f) {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var block = function (message) {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var sendMessage = function (data) {\n withRoot(function (root) {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block: block,\n unblock: unblock,\n close: close,\n sendMessage: sendMessage\n };\n };\n\n var SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n var isSupportedMessage = function (data) {\n return isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n };\n var isCustomMessage = function (data) {\n return !isSupportedMessage(data) && isObject(data) && has(data, 'mceAction');\n };\n var handleMessage = function (editor, api, data) {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n var ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n var renderUrlDialog = function (internalDialog, extra, editor, backstage) {\n var _a;\n var header = getHeader(internalDialog.title, backstage);\n var body = renderIframeBody(internalDialog);\n var footer = internalDialog.buttons.bind(function (buttons) {\n if (buttons.length === 0) {\n return Option.none();\n } else {\n return Option.some(renderModalFooter({ buttons: buttons }, backstage.shared.providers));\n }\n });\n var dialogEvents = SilverDialogEvents.initUrlDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, extra));\n var styles = __assign({}, internalDialog.height.fold(function () {\n return {};\n }, function (height) {\n return {\n 'height': height + 'px',\n 'max-height': height + 'px'\n };\n }), internalDialog.width.fold(function () {\n return {};\n }, function (width) {\n return {\n 'width': width + 'px',\n 'max-width': width + 'px'\n };\n }));\n var classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n var iframeUri = new global$d(internalDialog.url, { base_uri: new global$d(domGlobals.window.location.href) });\n var iframeDomain = iframeUri.protocol + '://' + iframeUri.host + (iframeUri.port ? ':' + iframeUri.port : '');\n var messageHandlerUnbinder = Cell(Option.none());\n var extraBehaviours = [\n config('messages', [\n runOnAttached(function () {\n var unbind = bind$3(Element.fromDom(domGlobals.window), 'message', function (e) {\n if (iframeUri.isSameOrigin(new global$d(e.raw().origin))) {\n var data = e.raw().data;\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(Option.some(unbind));\n }),\n runOnDetached(function () {\n messageHandlerUnbinder.get().each(function (unbinder) {\n return unbinder.unbind();\n });\n })\n ]),\n Receiving.config({\n channels: (_a = {}, _a[bodySendMessageChannel] = {\n onReceive: function (comp, data) {\n descendant$2(comp.element(), 'iframe').each(function (iframeEle) {\n var iframeWin = iframeEle.dom().contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }, _a)\n })\n ];\n var spec = {\n header: header,\n body: body,\n footer: footer,\n extraClasses: classes,\n extraBehaviours: extraBehaviours,\n extraStyles: styles\n };\n var dialog = renderModalDialog(spec, internalDialog, dialogEvents, backstage);\n var instanceApi = getUrlDialogApi(dialog);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var renderInlineDialog = function (dialogInit, extra, backstage, ariaAttrs) {\n var _a, _b;\n var dialogLabelId = generate$1('dialog-label');\n var dialogContentId = generate$1('dialog-content');\n var updateState = function (_comp, incoming) {\n return Option.some(incoming);\n };\n var memHeader = record(renderInlineHeader({\n title: dialogInit.internalDialog.title,\n draggable: true\n }, dialogLabelId, backstage.shared.providers));\n var memBody = record(renderInlineBody({ body: dialogInit.internalDialog.body }, dialogContentId, backstage, ariaAttrs));\n var memFooter = record(renderInlineFooter({ buttons: dialogInit.internalDialog.buttons }, backstage.shared.providers));\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, {\n onBlock: function () {\n },\n onUnblock: function () {\n },\n onClose: function () {\n return extra.closeWindow();\n }\n });\n var dialog = build$1({\n dom: {\n tag: 'div',\n classes: ['tox-dialog'],\n attributes: (_a = { role: 'dialog' }, _a['aria-labelledby'] = dialogLabelId, _a['aria-describedby'] = '' + dialogContentId, _a)\n },\n eventOrder: (_b = {}, _b[receive()] = [\n Reflecting.name(),\n Receiving.name()\n ], _b[execute()] = ['execute-on-form'], _b[attachedToDom()] = [\n 'reflecting',\n 'execute-on-form'\n ], _b),\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: function (c) {\n emit(c, formCloseEvent);\n return Option.some(true);\n },\n useTabstopAt: function (elem) {\n return !NavigableObject.isPseudoStop(elem) && (name(elem) !== 'button' || get$2(elem, 'disabled') !== 'disabled');\n }\n }),\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: dialogInit\n }),\n config('execute-on-form', dialogEvents),\n RepresentingConfigs.memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n memFooter.asSpec()\n ]\n });\n var instanceApi = getDialogApi({\n getRoot: function () {\n return dialog;\n },\n getFooter: function () {\n return memFooter.get(dialog);\n },\n getBody: function () {\n return memBody.get(dialog);\n },\n getFormWrapper: function () {\n var body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n }\n }, extra.redial);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var pClose = function (onClose, providersBackstage) {\n return ModalDialog.parts().close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n };\n var pUntitled = function () {\n return ModalDialog.parts().title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n };\n var pBodyMessage = function (message, providersBackstage) {\n return ModalDialog.parts().body({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog__body',\n 'todo-tox-fit'\n ]\n },\n components: [{ dom: fromHtml$2('

' + providersBackstage.translate(message) + '

') }]\n });\n };\n var pFooter = function (buttons) {\n return ModalDialog.parts().footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n };\n var pFooterGroup = function (startButtons, endButtons) {\n return [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n };\n var renderDialog$1 = function (spec) {\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: function () {\n spec.onCancel();\n return Option.some(true);\n },\n dom: {\n tag: 'div',\n classes: ['tox-dialog'].concat(spec.extraClasses)\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__header']\n },\n components: [\n spec.partSpecs.title,\n spec.partSpecs.close\n ]\n },\n spec.partSpecs.body,\n spec.partSpecs.footer\n ],\n parts: {\n blocker: {\n dom: fromHtml$2('
'),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog-wrap__backdrop']\n }\n }]\n }\n },\n modalBehaviours: derive$1([config('basic-dialog-events', [\n run(formCancelEvent, function (comp, se) {\n spec.onCancel();\n }),\n run(formSubmitEvent, function (comp, se) {\n spec.onSubmit();\n })\n ])])\n });\n };\n\n var setup$9 = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function () {\n ModalDialog.hide(alertDialog);\n callback();\n };\n var memFooterClose = record(renderFooterButton({\n name: 'close-alert',\n text: 'OK',\n primary: true,\n icon: Option.none()\n }, 'cancel', sharedBackstage.providers));\n var alertDialog = build$1(renderDialog$1({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n partSpecs: {\n title: pUntitled(),\n close: pClose(function () {\n closeDialog();\n }, sharedBackstage.providers),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: pFooter(pFooterGroup([], [memFooterClose.asSpec()]))\n },\n onCancel: function () {\n return closeDialog();\n },\n onSubmit: noop,\n extraClasses: ['tox-alert-dialog']\n }));\n ModalDialog.show(alertDialog);\n var footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open: open };\n };\n\n var setup$a = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function (state) {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n var memFooterYes = record(renderFooterButton({\n name: 'yes',\n text: 'Yes',\n primary: true,\n icon: Option.none()\n }, 'submit', sharedBackstage.providers));\n var footerNo = renderFooterButton({\n name: 'no',\n text: 'No',\n primary: true,\n icon: Option.none()\n }, 'cancel', sharedBackstage.providers);\n var confirmDialog = build$1(renderDialog$1({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n partSpecs: {\n title: pUntitled(),\n close: pClose(function () {\n closeDialog(false);\n }, sharedBackstage.providers),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))\n },\n onCancel: function () {\n return closeDialog(false);\n },\n onSubmit: function () {\n return closeDialog(true);\n },\n extraClasses: ['tox-confirm-dialog']\n }));\n ModalDialog.show(confirmDialog);\n var footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open: open };\n };\n\n var validateData$1 = function (data, validator) {\n return getOrDie$1(asRaw('data', validator, data));\n };\n var setup$b = function (extras) {\n var alertDialog = setup$9(extras);\n var confirmDialog = setup$a(extras);\n var open = function (config, params, closeWindow) {\n if (params !== undefined && params.inline === 'toolbar') {\n return openInlineDialog(config, extras.backstage.shared.anchors.toolbar(), closeWindow, params.ariaAttrs);\n } else if (params !== undefined && params.inline === 'cursor') {\n return openInlineDialog(config, extras.backstage.shared.anchors.cursor(), closeWindow, params.ariaAttrs);\n } else {\n return openModalDialog(config, closeWindow);\n }\n };\n var openUrl = function (config, closeWindow) {\n return openModalUrlDialog(config, closeWindow);\n };\n var openModalUrlDialog = function (config, closeWindow) {\n var factory = function (contents) {\n var dialog = renderUrlDialog(contents, {\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, extras.editor, extras.backstage);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n var openModalDialog = function (config, closeWindow) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = internalInitialData;\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, extras.backstage);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n var openInlineDialog = function (config$1, anchor, closeWindow, ariaAttrs) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = validateData$1(internalInitialData, dataValidator);\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n InlineView.hide(inlineDialog);\n closeWindow(dialogUi.instanceApi);\n }\n }, extras.backstage, ariaAttrs);\n var inlineDialog = build$1(InlineView.sketch({\n lazySink: extras.backstage.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('window-manager-inline-events', [run(dismissRequested(), function (comp, se) {\n emit(dialogUi.dialog, formCancelEvent);\n })])])\n }));\n InlineView.showAt(inlineDialog, anchor, premade$1(dialogUi.dialog));\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n var confirm = function (message, callback) {\n confirmDialog.open(message, function (state) {\n callback(state);\n });\n };\n var alert = function (message, callback) {\n alertDialog.open(message, function () {\n callback();\n });\n };\n var close = function (instanceApi) {\n instanceApi.close();\n };\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n close: close,\n confirm: confirm\n };\n };\n var WindowManager = { setup: setup$b };\n\n global.add('silver', function (editor) {\n var _a = Render.setup(editor), mothership = _a.mothership, uiMothership = _a.uiMothership, backstage = _a.backstage, renderUI = _a.renderUI, getUi = _a.getUi;\n FormatControls.setup(editor, backstage);\n registerInspector(generate$1('silver-demo'), mothership);\n registerInspector(generate$1('silver-ui-demo'), uiMothership);\n Autocompleter.register(editor, backstage.shared);\n var windowMgr = WindowManager.setup({\n editor: editor,\n backstage: backstage\n });\n return {\n renderUI: renderUI,\n getWindowManagerImpl: constant(windowMgr),\n getNotificationManagerImpl: function () {\n return NotificationManagerImpl(editor, { backstage: backstage }, uiMothership);\n },\n ui: getUi()\n };\n });\n function Theme () {\n }\n\n return Theme;\n\n}(window));\n})();\n","// Exports the \"template\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/template')\n// ES2015:\n// import 'tinymce/plugins/template'\nrequire('./plugin.js');","// Exports the \"table\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/table')\n// ES2015:\n// import 'tinymce/plugins/table'\nrequire('./plugin.js');","// Exports the \"advlist\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/advlist')\n// ES2015:\n// import 'tinymce/plugins/advlist'\nrequire('./plugin.js');","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// Exports the \"visualblocks\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/visualblocks')\n// ES2015:\n// import 'tinymce/plugins/visualblocks'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar template = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var never = constant(false);\n var always = constant(true);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.XHR');\n\n var getCreationDateClasses = function (editor) {\n return editor.getParam('template_cdate_classes', 'cdate');\n };\n var getModificationDateClasses = function (editor) {\n return editor.getParam('template_mdate_classes', 'mdate');\n };\n var getSelectedContentClasses = function (editor) {\n return editor.getParam('template_selected_content_classes', 'selcontent');\n };\n var getPreviewReplaceValues = function (editor) {\n return editor.getParam('template_preview_replace_values');\n };\n var getTemplateReplaceValues = function (editor) {\n return editor.getParam('template_replace_values');\n };\n var getTemplates = function (editorSettings) {\n return editorSettings.templates;\n };\n var getCdateFormat = function (editor) {\n return editor.getParam('template_cdate_format', editor.translate('%Y-%m-%d'));\n };\n var getMdateFormat = function (editor) {\n return editor.getParam('template_mdate_format', editor.translate('%Y-%m-%d'));\n };\n var Settings = {\n getCreationDateClasses: getCreationDateClasses,\n getModificationDateClasses: getModificationDateClasses,\n getSelectedContentClasses: getSelectedContentClasses,\n getPreviewReplaceValues: getPreviewReplaceValues,\n getTemplateReplaceValues: getTemplateReplaceValues,\n getTemplates: getTemplates,\n getCdateFormat: getCdateFormat,\n getMdateFormat: getMdateFormat\n };\n\n var addZeros = function (value, len) {\n value = '' + value;\n if (value.length < len) {\n for (var i = 0; i < len - value.length; i++) {\n value = '0' + value;\n }\n }\n return value;\n };\n var getDateTime = function (editor, fmt, date) {\n var daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' ');\n var daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' ');\n var monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');\n var monthsLong = 'January February March April May June July August September October November December'.split(' ');\n date = date || new Date();\n fmt = fmt.replace('%D', '%m/%d/%Y');\n fmt = fmt.replace('%r', '%I:%M:%S %p');\n fmt = fmt.replace('%Y', '' + date.getFullYear());\n fmt = fmt.replace('%y', '' + date.getYear());\n fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2));\n fmt = fmt.replace('%d', addZeros(date.getDate(), 2));\n fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2));\n fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2));\n fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2));\n fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1));\n fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM'));\n fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()]));\n fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()]));\n fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()]));\n fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()]));\n fmt = fmt.replace('%%', '%');\n return fmt;\n };\n var DateTimeHelper = { getDateTime: getDateTime };\n\n var createTemplateList = function (editorSettings, callback) {\n return function () {\n var templateList = Settings.getTemplates(editorSettings);\n if (typeof templateList === 'function') {\n templateList(callback);\n return;\n }\n if (typeof templateList === 'string') {\n global$2.send({\n url: templateList,\n success: function (text) {\n callback(JSON.parse(text));\n }\n });\n } else {\n callback(templateList);\n }\n };\n };\n var replaceTemplateValues = function (html, templateValues) {\n global$1.each(templateValues, function (v, k) {\n if (typeof v === 'function') {\n v = v(k);\n }\n html = html.replace(new RegExp('\\\\{\\\\$' + k + '\\\\}', 'g'), v);\n });\n return html;\n };\n var replaceVals = function (editor, e) {\n var dom = editor.dom, vl = Settings.getTemplateReplaceValues(editor);\n global$1.each(dom.select('*', e), function (e) {\n global$1.each(vl, function (v, k) {\n if (dom.hasClass(e, k)) {\n if (typeof vl[k] === 'function') {\n vl[k](e);\n }\n }\n });\n });\n };\n var hasClass = function (n, c) {\n return new RegExp('\\\\b' + c + '\\\\b', 'g').test(n.className);\n };\n var insertTemplate = function (editor, ui, html) {\n var el;\n var n;\n var dom = editor.dom;\n var sel = editor.selection.getContent();\n html = replaceTemplateValues(html, Settings.getTemplateReplaceValues(editor));\n el = dom.create('div', null, html);\n n = dom.select('.mceTmpl', el);\n if (n && n.length > 0) {\n el = dom.create('div', null);\n el.appendChild(n[0].cloneNode(true));\n }\n global$1.each(dom.select('*', el), function (n) {\n if (hasClass(n, Settings.getCreationDateClasses(editor).replace(/\\s+/g, '|'))) {\n n.innerHTML = DateTimeHelper.getDateTime(editor, Settings.getCdateFormat(editor));\n }\n if (hasClass(n, Settings.getModificationDateClasses(editor).replace(/\\s+/g, '|'))) {\n n.innerHTML = DateTimeHelper.getDateTime(editor, Settings.getMdateFormat(editor));\n }\n if (hasClass(n, Settings.getSelectedContentClasses(editor).replace(/\\s+/g, '|'))) {\n n.innerHTML = sel;\n }\n });\n replaceVals(editor, el);\n editor.execCommand('mceInsertContent', false, el.innerHTML);\n editor.addVisual();\n };\n var Templates = {\n createTemplateList: createTemplateList,\n replaceTemplateValues: replaceTemplateValues,\n replaceVals: replaceVals,\n insertTemplate: insertTemplate\n };\n\n var register = function (editor) {\n editor.addCommand('mceInsertTemplate', curry(Templates.insertTemplate, editor));\n };\n var Commands = { register: register };\n\n var setup = function (editor) {\n editor.on('PreProcess', function (o) {\n var dom = editor.dom, dateFormat = Settings.getMdateFormat(editor);\n global$1.each(dom.select('div', o.node), function (e) {\n if (dom.hasClass(e, 'mceTmpl')) {\n global$1.each(dom.select('*', e), function (e) {\n if (dom.hasClass(e, editor.getParam('template_mdate_classes', 'mdate').replace(/\\s+/g, '|'))) {\n e.innerHTML = DateTimeHelper.getDateTime(editor, dateFormat);\n }\n });\n Templates.replaceVals(editor, e);\n }\n });\n });\n };\n var FilterContent = { setup: setup };\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var hasOwnProperty = Object.hasOwnProperty;\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var entitiesAttr = {\n '\"': '"',\n '<': '<',\n '>': '>',\n '&': '&',\n '\\'': '''\n };\n var htmlEscape = function (html) {\n return html.replace(/[\"'<>&]/g, function (match) {\n return get(entitiesAttr, match).getOr(match);\n });\n };\n\n var getPreviewContent = function (editor, html) {\n if (html.indexOf('') === -1) {\n var contentCssLinks_1 = '';\n global$1.each(editor.contentCSS, function (url) {\n contentCssLinks_1 += '';\n });\n var bodyClass = editor.settings.body_class || '';\n if (bodyClass.indexOf('=') !== -1) {\n bodyClass = editor.getParam('body_class', '', 'hash');\n bodyClass = bodyClass[editor.id] || '';\n }\n html = '' + '' + '' + contentCssLinks_1 + '' + '' + html + '' + '';\n }\n return Templates.replaceTemplateValues(html, Settings.getPreviewReplaceValues(editor));\n };\n var open = function (editor, templateList) {\n var createTemplates = function () {\n if (!templateList || templateList.length === 0) {\n var message = editor.translate('No templates defined.');\n editor.notificationManager.open({\n text: message,\n type: 'info'\n });\n return Option.none();\n }\n return Option.from(global$1.map(templateList, function (template, index) {\n return {\n selected: index === 0,\n text: template.title,\n value: {\n url: template.url,\n content: template.content,\n description: template.description\n }\n };\n }));\n };\n var createSelectBoxItems = function (templates) {\n return map(templates, function (v) {\n return {\n text: v.text,\n value: v.text\n };\n });\n };\n var findTemplate = function (templates, templateTitle) {\n return find(templates, function (t) {\n return t.text === templateTitle;\n });\n };\n var getTemplateContent = function (t) {\n return new global$3(function (resolve, reject) {\n if (t.value.url) {\n global$2.send({\n url: t.value.url,\n success: function (html) {\n resolve(html);\n },\n error: function (e) {\n reject(e);\n }\n });\n } else {\n resolve(t.value.content);\n }\n });\n };\n var onChange = function (templates, updateDialog) {\n return function (api, change) {\n if (change.name === 'template') {\n var newTemplateTitle = api.getData().template;\n findTemplate(templates, newTemplateTitle).each(function (t) {\n api.block('Loading...');\n getTemplateContent(t).then(function (previewHtml) {\n updateDialog(api, t, previewHtml);\n api.unblock();\n });\n });\n }\n };\n };\n var onSubmit = function (templates) {\n return function (api) {\n var data = api.getData();\n findTemplate(templates, data.template).each(function (t) {\n getTemplateContent(t).then(function (previewHtml) {\n Templates.insertTemplate(editor, false, previewHtml);\n api.close();\n });\n });\n };\n };\n var openDialog = function (templates) {\n var selectBoxItems = createSelectBoxItems(templates);\n var buildDialogSpec = function (bodyItems, initialData) {\n return {\n title: 'Insert Template',\n size: 'large',\n body: {\n type: 'panel',\n items: bodyItems\n },\n initialData: initialData,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: onSubmit(templates),\n onChange: onChange(templates, updateDialog)\n };\n };\n var updateDialog = function (dialogApi, template, previewHtml) {\n var content = getPreviewContent(editor, previewHtml);\n var bodyItems = [\n {\n type: 'selectbox',\n name: 'template',\n label: 'Templates',\n items: selectBoxItems\n },\n {\n type: 'htmlpanel',\n html: '

' + htmlEscape(template.value.description) + '

'\n },\n {\n label: 'Preview',\n type: 'iframe',\n name: 'preview',\n sandboxed: false\n }\n ];\n var initialData = {\n template: template.text,\n preview: content\n };\n dialogApi.unblock();\n dialogApi.redial(buildDialogSpec(bodyItems, initialData));\n dialogApi.focus('template');\n };\n var dialogApi = editor.windowManager.open(buildDialogSpec([], {\n template: '',\n preview: ''\n }));\n dialogApi.block('Loading...');\n getTemplateContent(templates[0]).then(function (previewHtml) {\n updateDialog(dialogApi, templates[0], previewHtml);\n });\n };\n var optTemplates = createTemplates();\n optTemplates.each(openDialog);\n };\n var Dialog = { open: open };\n\n var showDialog = function (editor) {\n return function (templates) {\n Dialog.open(editor, templates);\n };\n };\n var register$1 = function (editor) {\n editor.ui.registry.addButton('template', {\n icon: 'template',\n tooltip: 'Insert template',\n onAction: Templates.createTemplateList(editor.settings, showDialog(editor))\n });\n editor.ui.registry.addMenuItem('template', {\n icon: 'template',\n text: 'Insert template...',\n onAction: Templates.createTemplateList(editor.settings, showDialog(editor))\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('template', function (editor) {\n Buttons.register(editor);\n Commands.register(editor);\n FilterContent.setup(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","/*!\n * jQuery JavaScript Library v3.3.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2018-01-20T17:24Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, doc, node ) {\n\t\tdoc = doc || document;\n\n\t\tvar i,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\tscript[ i ] = node[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.3.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\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}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\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\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc, node );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a property mapped along what jQuery.cssProps suggests or to\n// a vendor prefixed property.\nfunction finalPropName( name ) {\n\tvar ret = jQuery.cssProps[ name ];\n\tif ( !ret ) {\n\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t}\n\treturn ret;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\t\t) );\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\t\tval = curCSS( elem, dimension, styles ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox;\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\t// Check for style in case a browser which returns unreliable values\n\t// for getComputedStyle silently falls back to the reliable elem.style\n\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\tif ( val === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t// offsetWidth/offsetHeight provide border-box values\n\t\tvalueIsBorderBox = true;\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\telem,\n\t\t\t\t\tdimension,\n\t\t\t\t\textra,\n\t\t\t\t\tisBorderBox,\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && support.scrollboxSize() === styles.position ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\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\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\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}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\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\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\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\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\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\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"';\n };\n var dataToHtml = function (editor, dataIn) {\n var data = global$1.extend({}, dataIn);\n if (!data.source1) {\n global$1.extend(data, HtmlToData.htmlToData(Settings.getScripts(editor), data.embed));\n if (!data.source1) {\n return '';\n }\n }\n if (!data.source2) {\n data.source2 = '';\n }\n if (!data.poster) {\n data.poster = '';\n }\n data.source1 = editor.convertURL(data.source1, 'source');\n data.source2 = editor.convertURL(data.source2, 'source');\n data.source1mime = Mime.guess(data.source1);\n data.source2mime = Mime.guess(data.source2);\n data.poster = editor.convertURL(data.poster, 'poster');\n var pattern = matchPattern(data.source1);\n if (pattern) {\n data.source1 = pattern.url;\n data.type = pattern.type;\n data.allowFullscreen = pattern.allowFullscreen;\n data.width = data.width || pattern.w;\n data.height = data.height || pattern.h;\n }\n if (data.embed) {\n return UpdateHtml.updateHtml(data.embed, data, true);\n } else {\n var videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), data.source1);\n if (videoScript) {\n data.type = 'script';\n data.width = videoScript.width;\n data.height = videoScript.height;\n }\n var audioTemplateCallback = Settings.getAudioTemplateCallback(editor);\n var videoTemplateCallback = Settings.getVideoTemplateCallback(editor);\n data.width = data.width || 300;\n data.height = data.height || 150;\n global$1.each(data, function (value, key) {\n data[key] = editor.dom.encode('' + value);\n });\n if (data.type === 'iframe') {\n return getIframeHtml(data);\n } else if (data.source1mime === 'application/x-shockwave-flash') {\n return getFlashHtml(data);\n } else if (data.source1mime.indexOf('audio') !== -1) {\n return getAudioHtml(data, audioTemplateCallback);\n } else if (data.type === 'script') {\n return getScriptHtml(data);\n } else {\n return getVideoHtml(data, videoTemplateCallback);\n }\n }\n };\n var DataToHtml = { dataToHtml: dataToHtml };\n\n var cache = {};\n var embedPromise = function (data, dataToHtml, handler) {\n return new global$4(function (res, rej) {\n var wrappedResolve = function (response) {\n if (response.html) {\n cache[data.source1] = response;\n }\n return res({\n url: data.source1,\n html: response.html ? response.html : dataToHtml(data)\n });\n };\n if (cache[data.source1]) {\n wrappedResolve(cache[data.source1]);\n } else {\n handler({ url: data.source1 }, wrappedResolve, rej);\n }\n });\n };\n var defaultPromise = function (data, dataToHtml) {\n return new global$4(function (res) {\n res({\n html: dataToHtml(data),\n url: data.source1\n });\n });\n };\n var loadedData = function (editor) {\n return function (data) {\n return DataToHtml.dataToHtml(editor, data);\n };\n };\n var getEmbedHtml = function (editor, data) {\n var embedHandler = Settings.getUrlResolver(editor);\n return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));\n };\n var isCached = function (url) {\n return cache.hasOwnProperty(url);\n };\n var Service = {\n getEmbedHtml: getEmbedHtml,\n isCached: isCached\n };\n\n var unwrap = function (data) {\n return merge(data, {\n source1: data.source1.value,\n source2: get(data, 'source2').bind(function (source2) {\n return get(source2, 'value');\n }).getOr(''),\n poster: get(data, 'poster').bind(function (poster) {\n return get(poster, 'value');\n }).getOr('')\n });\n };\n var wrap = function (data) {\n return merge(data, {\n source1: { value: get(data, 'source1').getOr('') },\n source2: { value: get(data, 'source2').getOr('') },\n poster: { value: get(data, 'poster').getOr('') }\n });\n };\n var handleError = function (editor) {\n return function (error) {\n var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';\n editor.notificationManager.open({\n type: 'error',\n text: errorMessage\n });\n };\n };\n var snippetToData = function (editor, embedSnippet) {\n return global$1.extend({}, HtmlToData.htmlToData(Settings.getScripts(editor), embedSnippet));\n };\n var getEditorData = function (editor) {\n var element = editor.selection.getNode();\n var dataEmbed = element.getAttribute('data-ephox-embed-iri');\n if (dataEmbed) {\n return {\n source1: dataEmbed,\n width: Size.getMaxWidth(element),\n height: Size.getMaxHeight(element)\n };\n }\n return element.getAttribute('data-mce-object') ? HtmlToData.htmlToData(Settings.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {};\n };\n var getSource = function (editor) {\n var elm = editor.selection.getNode();\n return elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri') ? editor.selection.getContent() : '';\n };\n var addEmbedHtml = function (win, editor) {\n return function (response) {\n if (isString(response.url) && response.url.trim().length > 0) {\n var html = response.html;\n var snippetData_1 = snippetToData(editor, html);\n var nuData_1 = {\n source1: response.url,\n embed: html\n };\n each([\n 'width',\n 'height'\n ], function (prop) {\n get(snippetData_1, prop).each(function (value) {\n var dimensions = nuData_1.dimensions || {};\n dimensions[prop] = value;\n nuData_1.dimensions = dimensions;\n });\n });\n win.setData(wrap(nuData_1));\n }\n };\n };\n var selectPlaceholder = function (editor, beforeObjects) {\n var i;\n var y;\n var afterObjects = editor.dom.select('img[data-mce-object]');\n for (i = 0; i < beforeObjects.length; i++) {\n for (y = afterObjects.length - 1; y >= 0; y--) {\n if (beforeObjects[i] === afterObjects[y]) {\n afterObjects.splice(y, 1);\n }\n }\n }\n editor.selection.select(afterObjects[0]);\n };\n var handleInsert = function (editor, html) {\n var beforeObjects = editor.dom.select('img[data-mce-object]');\n editor.insertContent(html);\n selectPlaceholder(editor, beforeObjects);\n editor.nodeChanged();\n };\n var submitForm = function (data, editor) {\n data.embed = UpdateHtml.updateHtml(data.embed, data);\n if (data.embed && Service.isCached(data.source1)) {\n handleInsert(editor, data.embed);\n } else {\n Service.getEmbedHtml(editor, data).then(function (response) {\n handleInsert(editor, response.html);\n }).catch(handleError(editor));\n }\n };\n var showDialog = function (editor) {\n var editorData = getEditorData(editor);\n var defaultData = {\n source1: '',\n source2: '',\n embed: getSource(editor),\n poster: '',\n dimensions: {\n height: editorData.height ? editorData.height : '',\n width: editorData.width ? editorData.width : ''\n }\n };\n var initialData = wrap(merge(defaultData, editorData));\n var getSourceData = function (api) {\n var data = unwrap(api.getData());\n return Settings.hasDimensions(editor) ? merge(data, {\n width: data.dimensions.width,\n height: data.dimensions.height\n }) : data;\n };\n var handleSource1 = function (api) {\n var serviceData = getSourceData(api);\n Service.getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor));\n };\n var handleEmbed = function (api) {\n var data = unwrap(api.getData());\n var dataFromEmbed = snippetToData(editor, data.embed);\n dataFromEmbed.dimensions = {\n width: dataFromEmbed.width ? dataFromEmbed.width : data.dimensions.width,\n height: dataFromEmbed.height ? dataFromEmbed.height : data.dimensions.height\n };\n api.setData(wrap(dataFromEmbed));\n };\n var mediaInput = [{\n name: 'source1',\n type: 'urlinput',\n filetype: 'media',\n label: 'Source'\n }];\n var sizeInput = !Settings.hasDimensions(editor) ? [] : [{\n type: 'sizeinput',\n name: 'dimensions',\n label: 'Constrain proportions',\n constrain: true\n }];\n var generalTab = {\n title: 'General',\n items: flatten([\n mediaInput,\n sizeInput\n ])\n };\n var embedTextarea = {\n type: 'textarea',\n name: 'embed',\n label: 'Paste your embed code below:'\n };\n var embedTab = {\n title: 'Embed',\n items: [embedTextarea]\n };\n var advancedFormItems = [];\n if (Settings.hasAltSource(editor)) {\n advancedFormItems.push({\n name: 'source2',\n type: 'urlinput',\n filetype: 'media',\n label: 'Alternative source URL'\n });\n }\n if (Settings.hasPoster(editor)) {\n advancedFormItems.push({\n name: 'poster',\n type: 'urlinput',\n filetype: 'image',\n label: 'Media poster (Image URL)'\n });\n }\n var advancedTab = {\n title: 'Advanced',\n items: advancedFormItems\n };\n var tabs = [\n generalTab,\n embedTab\n ];\n if (advancedFormItems.length > 0) {\n tabs.push(advancedTab);\n }\n var body = {\n type: 'tabpanel',\n tabs: tabs\n };\n var win = editor.windowManager.open({\n title: 'Insert/Edit Media',\n size: 'normal',\n body: body,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: function (api) {\n var serviceData = getSourceData(api);\n submitForm(serviceData, editor);\n api.close();\n },\n onChange: function (api, detail) {\n switch (detail.name) {\n case 'source1':\n handleSource1(api);\n break;\n case 'embed':\n handleEmbed(api);\n break;\n default:\n break;\n }\n },\n initialData: initialData\n });\n };\n var Dialog = { showDialog: showDialog };\n\n var get$1 = function (editor) {\n var showDialog = function () {\n Dialog.showDialog(editor);\n };\n return { showDialog: showDialog };\n };\n var Api = { get: get$1 };\n\n var register = function (editor) {\n var showDialog = function () {\n Dialog.showDialog(editor);\n };\n editor.addCommand('mceMedia', showDialog);\n };\n var Commands = { register: register };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node');\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var sanitize = function (editor, html) {\n if (Settings.shouldFilterHtml(editor) === false) {\n return html;\n }\n var writer = global$5();\n var blocked;\n global$2({\n validate: false,\n allow_conditional_comments: false,\n comment: function (text) {\n writer.comment(text);\n },\n cdata: function (text) {\n writer.cdata(text);\n },\n text: function (text, raw) {\n writer.text(text, raw);\n },\n start: function (name, attrs, empty) {\n blocked = true;\n if (name === 'script' || name === 'noscript') {\n return;\n }\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].name.indexOf('on') === 0) {\n return;\n }\n if (attrs[i].name === 'style') {\n attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name);\n }\n }\n writer.start(name, attrs, empty);\n blocked = false;\n },\n end: function (name) {\n if (blocked) {\n return;\n }\n writer.end(name);\n }\n }, global$6({})).parse(html);\n return writer.getContent();\n };\n var Sanitize = { sanitize: sanitize };\n\n var createPlaceholderNode = function (editor, node) {\n var placeHolder;\n var name = node.name;\n placeHolder = new global$7('img', 1);\n placeHolder.shortEnded = true;\n retainAttributesAndInnerHtml(editor, node, placeHolder);\n placeHolder.attr({\n 'width': node.attr('width') || '300',\n 'height': node.attr('height') || (name === 'audio' ? '30' : '150'),\n 'style': node.attr('style'),\n 'src': global$8.transparentSrc,\n 'data-mce-object': name,\n 'class': 'mce-object mce-object-' + name\n });\n return placeHolder;\n };\n var createPreviewIframeNode = function (editor, node) {\n var previewWrapper;\n var previewNode;\n var shimNode;\n var name = node.name;\n previewWrapper = new global$7('span', 1);\n previewWrapper.attr({\n 'contentEditable': 'false',\n 'style': node.attr('style'),\n 'data-mce-object': name,\n 'class': 'mce-preview-object mce-object-' + name\n });\n retainAttributesAndInnerHtml(editor, node, previewWrapper);\n previewNode = new global$7(name, 1);\n previewNode.attr({\n src: node.attr('src'),\n allowfullscreen: node.attr('allowfullscreen'),\n style: node.attr('style'),\n class: node.attr('class'),\n width: node.attr('width'),\n height: node.attr('height'),\n frameborder: '0'\n });\n shimNode = new global$7('span', 1);\n shimNode.attr('class', 'mce-shim');\n previewWrapper.append(previewNode);\n previewWrapper.append(shimNode);\n return previewWrapper;\n };\n var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) {\n var attrName;\n var attrValue;\n var attribs;\n var ai;\n var innerHtml;\n attribs = sourceNode.attributes;\n ai = attribs.length;\n while (ai--) {\n attrName = attribs[ai].name;\n attrValue = attribs[ai].value;\n if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') {\n if (attrName === 'data' || attrName === 'src') {\n attrValue = editor.convertURL(attrValue, attrName);\n }\n targetNode.attr('data-mce-p-' + attrName, attrValue);\n }\n }\n innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;\n if (innerHtml) {\n targetNode.attr('data-mce-html', escape(Sanitize.sanitize(editor, innerHtml)));\n targetNode.firstChild = null;\n }\n };\n var isPageEmbedWrapper = function (node) {\n var nodeClass = node.attr('class');\n return nodeClass && /\\btiny-pageembed\\b/.test(nodeClass);\n };\n var isWithinEmbedWrapper = function (node) {\n while (node = node.parent) {\n if (node.attr('data-ephox-embed-iri') || isPageEmbedWrapper(node)) {\n return true;\n }\n }\n return false;\n };\n var placeHolderConverter = function (editor) {\n return function (nodes) {\n var i = nodes.length;\n var node;\n var videoScript;\n while (i--) {\n node = nodes[i];\n if (!node.parent) {\n continue;\n }\n if (node.parent.attr('data-mce-object')) {\n continue;\n }\n if (node.name === 'script') {\n videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), node.attr('src'));\n if (!videoScript) {\n continue;\n }\n }\n if (videoScript) {\n if (videoScript.width) {\n node.attr('width', videoScript.width.toString());\n }\n if (videoScript.height) {\n node.attr('height', videoScript.height.toString());\n }\n }\n if (node.name === 'iframe' && Settings.hasLiveEmbeds(editor) && global$8.ceFalse) {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPreviewIframeNode(editor, node));\n }\n } else {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPlaceholderNode(editor, node));\n }\n }\n }\n };\n };\n var Nodes = {\n createPreviewIframeNode: createPreviewIframeNode,\n createPlaceholderNode: createPlaceholderNode,\n placeHolderConverter: placeHolderConverter\n };\n\n var setup = function (editor) {\n editor.on('preInit', function () {\n var specialElements = editor.schema.getSpecialElements();\n global$1.each('video audio iframe object'.split(' '), function (name) {\n specialElements[name] = new RegExp(']*>', 'gi');\n });\n var boolAttrs = editor.schema.getBoolAttrs();\n global$1.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {\n boolAttrs[name] = {};\n });\n editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', Nodes.placeHolderConverter(editor));\n editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {\n var i = nodes.length;\n var node;\n var realElm;\n var ai;\n var attribs;\n var innerHtml;\n var innerNode;\n var realElmName;\n var className;\n while (i--) {\n node = nodes[i];\n if (!node.parent) {\n continue;\n }\n realElmName = node.attr(name);\n realElm = new global$7(realElmName, 1);\n if (realElmName !== 'audio' && realElmName !== 'script') {\n className = node.attr('class');\n if (className && className.indexOf('mce-preview-object') !== -1) {\n realElm.attr({\n width: node.firstChild.attr('width'),\n height: node.firstChild.attr('height')\n });\n } else {\n realElm.attr({\n width: node.attr('width'),\n height: node.attr('height')\n });\n }\n }\n realElm.attr({ style: node.attr('style') });\n attribs = node.attributes;\n ai = attribs.length;\n while (ai--) {\n var attrName = attribs[ai].name;\n if (attrName.indexOf('data-mce-p-') === 0) {\n realElm.attr(attrName.substr(11), attribs[ai].value);\n }\n }\n if (realElmName === 'script') {\n realElm.attr('type', 'text/javascript');\n }\n innerHtml = node.attr('data-mce-html');\n if (innerHtml) {\n innerNode = new global$7('#text', 3);\n innerNode.raw = true;\n innerNode.value = Sanitize.sanitize(editor, unescape(innerHtml));\n realElm.append(innerNode);\n }\n node.replace(realElm);\n }\n });\n });\n editor.on('SetContent', function () {\n editor.$('span.mce-preview-object').each(function (index, elm) {\n var $elm = editor.$(elm);\n if ($elm.find('span.mce-shim', elm).length === 0) {\n $elm.append('');\n }\n });\n });\n };\n var FilterContent = { setup: setup };\n\n var setup$1 = function (editor) {\n editor.on('ResolveName', function (e) {\n var name;\n if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {\n e.name = name;\n }\n });\n };\n var ResolveName = { setup: setup$1 };\n\n var setup$2 = function (editor) {\n editor.on('click keyup', function () {\n var selectedNode = editor.selection.getNode();\n if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {\n if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {\n selectedNode.setAttribute('data-mce-selected', '2');\n }\n }\n });\n editor.on('ObjectSelected', function (e) {\n var objectType = e.target.getAttribute('data-mce-object');\n if (objectType === 'audio' || objectType === 'script') {\n e.preventDefault();\n }\n });\n editor.on('ObjectResized', function (e) {\n var target = e.target;\n var html;\n if (target.getAttribute('data-mce-object')) {\n html = target.getAttribute('data-mce-html');\n if (html) {\n html = unescape(html);\n target.setAttribute('data-mce-html', escape(UpdateHtml.updateHtml(html, {\n width: e.width,\n height: e.height\n })));\n }\n }\n });\n };\n var Selection = { setup: setup$2 };\n\n var stateSelectorAdapter = function (editor, selector) {\n return function (buttonApi) {\n return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind;\n };\n };\n var register$1 = function (editor) {\n editor.ui.registry.addToggleButton('media', {\n tooltip: 'Insert/edit media',\n icon: 'embed',\n onAction: function () {\n editor.execCommand('mceMedia');\n },\n onSetup: stateSelectorAdapter(editor, [\n 'img[data-mce-object]',\n 'span[data-mce-object]',\n 'div[data-ephox-embed-iri]'\n ])\n });\n editor.ui.registry.addMenuItem('media', {\n icon: 'embed',\n text: 'Media...',\n onAction: function () {\n editor.execCommand('mceMedia');\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('media', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n ResolveName.setup(editor);\n FilterContent.setup(editor);\n Selection.setup(editor);\n return Api.get(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar textpattern = (function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isFunction = isType('function');\n\n var rawIndexOf = function () {\n var pIndexOf = Array.prototype.indexOf;\n var fastIndex = function (xs, x) {\n return pIndexOf.call(xs, x);\n };\n var slowIndex = function (xs, x) {\n return slowIndexOf(xs, x);\n };\n return pIndexOf === undefined ? slowIndex : fastIndex;\n }();\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var slowIndexOf = function (xs, x) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (xs[i] === x) {\n return i;\n }\n }\n return -1;\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i, xs) !== true) {\n return false;\n }\n }\n return true;\n };\n var slice = Array.prototype.slice;\n var sort = function (xs, comparator) {\n var copy = slice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var generate = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++)\n args[i] = arguments[i];\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd)\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate };\n\n var comparison = Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n var partition = function (results) {\n var errors = [];\n var values = [];\n each(results, function (result) {\n result.fold(function (err) {\n errors.push(err);\n }, function (value) {\n values.push(value);\n });\n });\n return {\n errors: errors,\n values: values\n };\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value,\n error: error\n };\n\n var isInlinePattern = function (pattern) {\n return pattern.type === 'inline-command' || pattern.type === 'inline-format';\n };\n var isBlockPattern = function (pattern) {\n return pattern.type === 'block-command' || pattern.type === 'block-format';\n };\n var sortPatterns = function (patterns) {\n return sort(patterns, function (a, b) {\n if (a.start.length === b.start.length) {\n return 0;\n }\n return a.start.length > b.start.length ? -1 : 1;\n });\n };\n var normalizePattern = function (pattern) {\n var err = function (message) {\n return Result.error({\n message: message,\n pattern: pattern\n });\n };\n var formatOrCmd = function (name, onFormat, onCommand) {\n if (pattern.format !== undefined) {\n var formats = void 0;\n if (isArray(pattern.format)) {\n if (!forall(pattern.format, isString)) {\n return err(name + ' pattern has non-string items in the `format` array');\n }\n formats = pattern.format;\n } else if (isString(pattern.format)) {\n formats = [pattern.format];\n } else {\n return err(name + ' pattern has non-string `format` parameter');\n }\n return Result.value(onFormat(formats));\n } else if (pattern.cmd !== undefined) {\n if (!isString(pattern.cmd)) {\n return err(name + ' pattern has non-string `cmd` parameter');\n }\n return Result.value(onCommand(pattern.cmd, pattern.value));\n } else {\n return err(name + ' pattern is missing both `format` and `cmd` parameters');\n }\n };\n if (!isObject(pattern)) {\n return err('Raw pattern is not an object');\n }\n if (!isString(pattern.start)) {\n return err('Raw pattern is missing `start` parameter');\n }\n if (pattern.end !== undefined) {\n if (!isString(pattern.end)) {\n return err('Inline pattern has non-string `end` parameter');\n }\n if (pattern.start.length === 0 && pattern.end.length === 0) {\n return err('Inline pattern has empty `start` and `end` parameters');\n }\n var start_1 = pattern.start;\n var end_1 = pattern.end;\n if (end_1.length === 0) {\n end_1 = start_1;\n start_1 = '';\n }\n return formatOrCmd('Inline', function (format) {\n return {\n type: 'inline-format',\n start: start_1,\n end: end_1,\n format: format\n };\n }, function (cmd, value) {\n return {\n type: 'inline-command',\n start: start_1,\n end: end_1,\n cmd: cmd,\n value: value\n };\n });\n } else if (pattern.replacement !== undefined) {\n if (!isString(pattern.replacement)) {\n return err('Replacement pattern has non-string `replacement` parameter');\n }\n if (pattern.start.length === 0) {\n return err('Replacement pattern has empty `start` parameter');\n }\n return Result.value({\n type: 'inline-command',\n start: '',\n end: pattern.start,\n cmd: 'mceInsertContent',\n value: pattern.replacement\n });\n } else {\n if (pattern.start.length === 0) {\n return err('Block pattern has empty `start` parameter');\n }\n return formatOrCmd('Block', function (formats) {\n return {\n type: 'block-format',\n start: pattern.start,\n format: formats[0]\n };\n }, function (command, commandValue) {\n return {\n type: 'block-command',\n start: pattern.start,\n cmd: command,\n value: commandValue\n };\n });\n }\n };\n var denormalizePattern = function (pattern) {\n if (pattern.type === 'block-command') {\n return {\n start: pattern.start,\n cmd: pattern.cmd,\n value: pattern.value\n };\n } else if (pattern.type === 'block-format') {\n return {\n start: pattern.start,\n format: pattern.format\n };\n } else if (pattern.type === 'inline-command') {\n if (pattern.cmd === 'mceInsertContent' && pattern.start === '') {\n return {\n start: pattern.end,\n replacement: pattern.value\n };\n } else {\n return {\n start: pattern.start,\n end: pattern.end,\n cmd: pattern.cmd,\n value: pattern.value\n };\n }\n } else if (pattern.type === 'inline-format') {\n return {\n start: pattern.start,\n end: pattern.end,\n format: pattern.format.length === 1 ? pattern.format[0] : pattern.format\n };\n }\n };\n var createPatternSet = function (patterns) {\n return {\n inlinePatterns: filter(patterns, isInlinePattern),\n blockPatterns: sortPatterns(filter(patterns, isBlockPattern))\n };\n };\n\n var get$1 = function (patternsState) {\n var setPatterns = function (newPatterns) {\n var normalized = partition(map(newPatterns, normalizePattern));\n if (normalized.errors.length > 0) {\n var firstError = normalized.errors[0];\n throw new Error(firstError.message + ':\\n' + JSON.stringify(firstError.pattern, null, 2));\n }\n patternsState.set(createPatternSet(normalized.values));\n };\n var getPatterns = function () {\n return map(patternsState.get().inlinePatterns, denormalizePattern).concat(map(patternsState.get().blockPatterns, denormalizePattern));\n };\n return {\n setPatterns: setPatterns,\n getPatterns: getPatterns\n };\n };\n var Api = { get: get$1 };\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var error$1 = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var console = Global.console;\n if (console) {\n if (console.error) {\n console.error.apply(console, args);\n } else {\n console.log.apply(console, args);\n }\n }\n };\n var defaultPatterns = [\n {\n start: '*',\n end: '*',\n format: 'italic'\n },\n {\n start: '**',\n end: '**',\n format: 'bold'\n },\n {\n start: '#',\n format: 'h1'\n },\n {\n start: '##',\n format: 'h2'\n },\n {\n start: '###',\n format: 'h3'\n },\n {\n start: '####',\n format: 'h4'\n },\n {\n start: '#####',\n format: 'h5'\n },\n {\n start: '######',\n format: 'h6'\n },\n {\n start: '1. ',\n cmd: 'InsertOrderedList'\n },\n {\n start: '* ',\n cmd: 'InsertUnorderedList'\n },\n {\n start: '- ',\n cmd: 'InsertUnorderedList'\n }\n ];\n var getPatternSet = function (editorSettings) {\n var patterns = get(editorSettings, 'textpattern_patterns').getOr(defaultPatterns);\n if (!isArray(patterns)) {\n error$1('The setting textpattern_patterns should be an array');\n return {\n inlinePatterns: [],\n blockPatterns: []\n };\n }\n var normalized = partition(map(patterns, normalizePattern));\n each(normalized.errors, function (err) {\n return error$1(err.message, err.pattern);\n });\n return createPatternSet(normalized.values);\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var zeroWidth = function () {\n return '\\uFEFF';\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '')\n return true;\n if (str.length < substr.length)\n return false;\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var startsWith = function (str, prefix) {\n return checkRange(str, prefix, 0);\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var isElement = function (node) {\n return node.nodeType === ELEMENT;\n };\n var isText = function (node) {\n return node.nodeType === TEXT;\n };\n var generatePath = function (root, node, offset) {\n if (offset < 0 || offset > node.data.length) {\n return Option.none();\n }\n var p = [offset];\n var current = node;\n while (current !== root && current.parentNode) {\n var parent = current.parentNode;\n for (var i = 0; i < parent.childNodes.length; i++) {\n if (parent.childNodes[i] === current) {\n p.push(i);\n break;\n }\n }\n current = parent;\n }\n return current === root ? Option.some(p.reverse()) : Option.none();\n };\n var generatePathRange = function (root, startNode, startOffset, endNode, endOffset) {\n return generatePath(root, startNode, startOffset).bind(function (start) {\n return generatePath(root, endNode, endOffset).map(function (end) {\n return {\n start: start,\n end: end\n };\n });\n });\n };\n var resolvePath = function (root, path) {\n var nodePath = path.slice();\n var offset = nodePath.pop();\n return foldl(nodePath, function (optNode, index) {\n return optNode.bind(function (node) {\n return Option.from(node.childNodes[index]);\n });\n }, Option.some(root)).bind(function (node) {\n if (isText(node) && offset >= 0 && offset <= node.data.length) {\n return Option.some({\n node: node,\n offset: offset\n });\n }\n return Option.none();\n });\n };\n var resolvePathRange = function (root, range) {\n return resolvePath(root, range.start).bind(function (_a) {\n var startNode = _a.node, startOffset = _a.offset;\n return resolvePath(root, range.end).map(function (_a) {\n var endNode = _a.node, endOffset = _a.offset;\n return {\n startNode: startNode,\n startOffset: startOffset,\n endNode: endNode,\n endOffset: endOffset\n };\n });\n });\n };\n\n var findPattern = function (patterns, text) {\n for (var i = 0; i < patterns.length; i++) {\n var pattern = patterns[i];\n if (text.indexOf(pattern.start) !== 0) {\n continue;\n }\n if (pattern.end && text.lastIndexOf(pattern.end) !== text.length - pattern.end.length) {\n continue;\n }\n return pattern;\n }\n };\n var textBefore = function (node, offset, block) {\n if (isText(node) && offset > 0) {\n return Option.some({\n node: node,\n offset: offset\n });\n }\n var startNode;\n if (offset > 0) {\n startNode = node.childNodes[offset - 1];\n } else {\n for (var current = node; current && current !== block && !startNode; current = current.parentNode) {\n startNode = current.previousSibling;\n }\n }\n var tw = new global$3(startNode, block);\n for (var current = tw.current(); current; current = tw.prev()) {\n if (isText(current) && current.length > 0) {\n return Option.some({\n node: current,\n offset: current.length\n });\n }\n }\n return Option.none();\n };\n var findInlinePatternStart = function (dom, pattern, node, offset, block, requireGap) {\n if (requireGap === void 0) {\n requireGap = false;\n }\n if (pattern.start.length === 0 && !requireGap) {\n return Option.some({\n node: node,\n offset: offset\n });\n }\n var sameBlockParent = function (spot) {\n return dom.getParent(spot.node, dom.isBlock) === block;\n };\n return textBefore(node, offset, block).filter(sameBlockParent).bind(function (_a) {\n var node = _a.node, offset = _a.offset;\n var text = node.data.substring(0, offset);\n var startPos = text.lastIndexOf(pattern.start);\n if (startPos === -1) {\n if (text.indexOf(pattern.end) !== -1) {\n return Option.none();\n }\n return findInlinePatternStart(dom, pattern, node, 0, block, requireGap && text.length === 0);\n }\n if (text.indexOf(pattern.end, startPos + pattern.start.length) !== -1) {\n return Option.none();\n }\n if (requireGap && startPos + pattern.start.length === text.length) {\n return Option.none();\n }\n return Option.some({\n node: node,\n offset: startPos\n });\n });\n };\n var findInlinePatternRec = function (dom, patterns, node, offset, block) {\n return textBefore(node, offset, block).bind(function (_a) {\n var endNode = _a.node, endOffset = _a.offset;\n var text = endNode.data.substring(0, endOffset);\n var _loop_1 = function (i) {\n var pattern = patterns[i];\n if (!endsWith(text, pattern.end)) {\n return 'continue';\n }\n var newOffset = endOffset - pattern.end.length;\n var hasContent = pattern.start.length > 0 && pattern.end.length > 0;\n var allowInner = hasContent ? Option.some(true) : Option.none();\n var recursiveMatch = allowInner.bind(function () {\n var patternsWithoutCurrent = patterns.slice();\n patternsWithoutCurrent.splice(i, 1);\n return findInlinePatternRec(dom, patternsWithoutCurrent, endNode, newOffset, block);\n }).fold(function () {\n var start = findInlinePatternStart(dom, pattern, endNode, newOffset, block, hasContent);\n return start.map(function (_a) {\n var startNode = _a.node, startOffset = _a.offset;\n var range = generatePathRange(dom.getRoot(), startNode, startOffset, endNode, endOffset).getOrDie('Internal constraint violation');\n return [{\n pattern: pattern,\n range: range\n }];\n });\n }, function (areas) {\n var outermostRange = resolvePathRange(dom.getRoot(), areas[areas.length - 1].range).getOrDie('Internal constraint violation');\n var start = findInlinePatternStart(dom, pattern, outermostRange.startNode, outermostRange.startOffset, block);\n return start.map(function (_a) {\n var startNode = _a.node, startOffset = _a.offset;\n var range = generatePathRange(dom.getRoot(), startNode, startOffset, endNode, endOffset).getOrDie('Internal constraint violation');\n return areas.concat([{\n pattern: pattern,\n range: range\n }]);\n });\n });\n if (recursiveMatch.isSome()) {\n return { value: recursiveMatch };\n }\n };\n for (var i = 0; i < patterns.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === 'object')\n return state_1.value;\n }\n return Option.none();\n });\n };\n var findNestedInlinePatterns = function (dom, patterns, rng, space) {\n if (rng.collapsed === false) {\n return [];\n }\n var block = dom.getParent(rng.startContainer, dom.isBlock);\n return findInlinePatternRec(dom, patterns, rng.startContainer, rng.startOffset - (space ? 1 : 0), block).getOr([]);\n };\n var findBlockPattern = function (dom, patterns, rng) {\n var block = dom.getParent(rng.startContainer, dom.isBlock);\n if (!(dom.is(block, 'p') && isElement(block))) {\n return Option.none();\n }\n var walker = new global$3(block, block);\n var node;\n var firstTextNode;\n while (node = walker.next()) {\n if (isText(node)) {\n firstTextNode = node;\n break;\n }\n }\n if (!firstTextNode) {\n return Option.none();\n }\n var pattern = findPattern(patterns, firstTextNode.data);\n if (!pattern) {\n return Option.none();\n }\n if (global$4.trim(block.textContent).length === pattern.start.length) {\n return Option.none();\n }\n return Option.some(pattern);\n };\n\n var unique = 0;\n var generate$1 = function (prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var liftN = function (arr, f) {\n var r = [];\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Option.none();\n }\n }\n return Option.some(f.apply(null, r));\n };\n function lift() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var f = args.pop();\n return liftN(args, f);\n }\n\n var isCollapsed = function (start, end, root) {\n var walker = new global$3(start, root);\n while (walker.next()) {\n var node = walker.current();\n if (isText(node) && node.data.length === 0) {\n continue;\n }\n return node === end;\n }\n return false;\n };\n var applyInlinePatterns = function (editor, areas) {\n var dom = editor.dom;\n var newMarker = function (id) {\n return dom.create('span', {\n 'data-mce-type': 'bookmark',\n 'id': id\n });\n };\n var markerRange = function (ids) {\n var start = Option.from(dom.select('#' + ids.start)[0]);\n var end = Option.from(dom.select('#' + ids.end)[0]);\n return lift(start, end, function (start, end) {\n var range = dom.createRng();\n range.setStartAfter(start);\n if (!isCollapsed(start, end, dom.getRoot())) {\n range.setEndBefore(end);\n } else {\n range.collapse(true);\n }\n return range;\n });\n };\n var markerPrefix = generate$1('mce_');\n var markerIds = map(areas, function (_area, i) {\n return {\n start: markerPrefix + '_' + i + '_start',\n end: markerPrefix + '_' + i + '_end'\n };\n });\n var cursor = editor.selection.getBookmark();\n for (var i = areas.length - 1; i >= 0; i--) {\n var _a = areas[i], pattern = _a.pattern, range = _a.range;\n var _b = resolvePath(dom.getRoot(), range.end).getOrDie('Failed to resolve range[' + i + '].end'), endNode = _b.node, endOffset = _b.offset;\n var textOutsideRange = endOffset === 0 ? endNode : endNode.splitText(endOffset);\n textOutsideRange.parentNode.insertBefore(newMarker(markerIds[i].end), textOutsideRange);\n if (pattern.start.length > 0) {\n endNode.deleteData(endOffset - pattern.end.length, pattern.end.length);\n }\n }\n for (var i = 0; i < areas.length; i++) {\n var _c = areas[i], pattern = _c.pattern, range = _c.range;\n var _d = resolvePath(dom.getRoot(), range.start).getOrDie('Failed to resolve range.start'), startNode = _d.node, startOffset = _d.offset;\n var textInsideRange = startOffset === 0 ? startNode : startNode.splitText(startOffset);\n textInsideRange.parentNode.insertBefore(newMarker(markerIds[i].start), textInsideRange);\n if (pattern.start.length > 0) {\n textInsideRange.deleteData(0, pattern.start.length);\n } else {\n textInsideRange.deleteData(0, pattern.end.length);\n }\n }\n var _loop_1 = function (i) {\n var pattern = areas[i].pattern;\n var optRange = markerRange(markerIds[i]);\n optRange.each(function (range) {\n editor.selection.setRng(range);\n if (pattern.type === 'inline-format') {\n pattern.format.forEach(function (format) {\n editor.formatter.apply(format);\n });\n } else {\n editor.execCommand(pattern.cmd, false, pattern.value);\n }\n });\n dom.remove(markerIds[i].start);\n dom.remove(markerIds[i].end);\n };\n for (var i = 0; i < areas.length; i++) {\n _loop_1(i);\n }\n editor.selection.moveToBookmark(cursor);\n };\n var isBlockFormatName = function (name, formatter) {\n var formatSet = formatter.get(name);\n return isArray(formatSet) && head(formatSet).exists(function (format) {\n return has(format, 'block');\n });\n };\n var applyBlockPattern = function (editor, pattern) {\n var dom = editor.dom;\n var rng = editor.selection.getRng();\n var block = dom.getParent(rng.startContainer, dom.isBlock);\n if (!block || !dom.is(block, 'p') || !isElement(block)) {\n return;\n }\n var walker = new global$3(block, block);\n var node;\n var firstTextNode;\n while (node = walker.next()) {\n if (isText(node)) {\n firstTextNode = node;\n break;\n }\n }\n if (!firstTextNode) {\n return;\n }\n if (!startsWith(firstTextNode.data, pattern.start)) {\n return;\n }\n if (global$4.trim(block.textContent).length === pattern.start.length) {\n return;\n }\n var cursor = editor.selection.getBookmark();\n if (pattern.type === 'block-format') {\n if (isBlockFormatName(pattern.format, editor.formatter)) {\n editor.undoManager.transact(function () {\n firstTextNode.deleteData(0, pattern.start.length);\n editor.formatter.apply(pattern.format);\n });\n }\n } else if (pattern.type === 'block-command') {\n editor.undoManager.transact(function () {\n firstTextNode.deleteData(0, pattern.start.length);\n editor.execCommand(pattern.cmd, false, pattern.value);\n });\n }\n editor.selection.moveToBookmark(cursor);\n };\n\n var handleEnter = function (editor, patternSet) {\n var inlineAreas = findNestedInlinePatterns(editor.dom, patternSet.inlinePatterns, editor.selection.getRng(), false);\n var blockArea = findBlockPattern(editor.dom, patternSet.blockPatterns, editor.selection.getRng());\n if (editor.selection.isCollapsed() && (inlineAreas.length > 0 || blockArea.isSome())) {\n editor.undoManager.add();\n editor.undoManager.extra(function () {\n editor.execCommand('mceInsertNewLine');\n }, function () {\n editor.insertContent(zeroWidth());\n applyInlinePatterns(editor, inlineAreas);\n blockArea.each(function (pattern) {\n return applyBlockPattern(editor, pattern);\n });\n var range = editor.selection.getRng();\n var block = editor.dom.getParent(range.startContainer, editor.dom.isBlock);\n var spot = textBefore(range.startContainer, range.startOffset, block);\n editor.execCommand('mceInsertNewLine');\n spot.each(function (s) {\n if (s.node.data.charAt(s.offset - 1) === zeroWidth()) {\n s.node.deleteData(s.offset - 1, 1);\n if (editor.dom.isEmpty(s.node.parentNode)) {\n editor.dom.remove(s.node.parentNode);\n }\n }\n });\n });\n return true;\n }\n return false;\n };\n var handleInlineKey = function (editor, patternSet) {\n var areas = findNestedInlinePatterns(editor.dom, patternSet.inlinePatterns, editor.selection.getRng(), true);\n if (areas.length > 0) {\n editor.undoManager.transact(function () {\n applyInlinePatterns(editor, areas);\n });\n }\n };\n var checkKeyEvent = function (codes, event, predicate) {\n for (var i = 0; i < codes.length; i++) {\n if (predicate(codes[i], event)) {\n return true;\n }\n }\n };\n var checkKeyCode = function (codes, event) {\n return checkKeyEvent(codes, event, function (code, event) {\n return code === event.keyCode && global$2.modifierPressed(event) === false;\n });\n };\n var checkCharCode = function (chars, event) {\n return checkKeyEvent(chars, event, function (chr, event) {\n return chr.charCodeAt(0) === event.charCode;\n });\n };\n var KeyHandler = {\n handleEnter: handleEnter,\n handleInlineKey: handleInlineKey,\n checkCharCode: checkCharCode,\n checkKeyCode: checkKeyCode\n };\n\n var setup = function (editor, patternsState) {\n var charCodes = [\n ',',\n '.',\n ';',\n ':',\n '!',\n '?'\n ];\n var keyCodes = [32];\n editor.on('keydown', function (e) {\n if (e.keyCode === 13 && !global$2.modifierPressed(e)) {\n if (KeyHandler.handleEnter(editor, patternsState.get())) {\n e.preventDefault();\n }\n }\n }, true);\n editor.on('keyup', function (e) {\n if (KeyHandler.checkKeyCode(keyCodes, e)) {\n KeyHandler.handleInlineKey(editor, patternsState.get());\n }\n });\n editor.on('keypress', function (e) {\n if (KeyHandler.checkCharCode(charCodes, e)) {\n global$1.setEditorTimeout(editor, function () {\n KeyHandler.handleInlineKey(editor, patternsState.get());\n });\n }\n });\n };\n var Keyboard = { setup: setup };\n\n global.add('textpattern', function (editor) {\n var patternsState = Cell(getPatternSet(editor.settings));\n Keyboard.setup(editor, patternsState);\n return Api.get(patternsState);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","// Exports the \"media\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/media')\n// ES2015:\n// import 'tinymce/plugins/media'\nrequire('./plugin.js');","// Exports the \"link\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/link')\n// ES2015:\n// import 'tinymce/plugins/link'\nrequire('./plugin.js');","// Exports the \"insertdatetime\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/insertdatetime')\n// ES2015:\n// import 'tinymce/plugins/insertdatetime'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar visualblocks = (function () {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var fireVisualBlocks = function (editor, state) {\n editor.fire('VisualBlocks', { state: state });\n };\n var Events = { fireVisualBlocks: fireVisualBlocks };\n\n var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {\n var dom = editor.dom;\n dom.toggleClass(editor.getBody(), 'mce-visualblocks');\n enabledState.set(!enabledState.get());\n Events.fireVisualBlocks(editor, enabledState.get());\n };\n var VisualBlocks = { toggleVisualBlocks: toggleVisualBlocks };\n\n var register = function (editor, pluginUrl, enabledState) {\n editor.addCommand('mceVisualBlocks', function () {\n VisualBlocks.toggleVisualBlocks(editor, pluginUrl, enabledState);\n });\n };\n var Commands = { register: register };\n\n var isEnabledByDefault = function (editor) {\n return editor.getParam('visualblocks_default_state', false, 'boolean');\n };\n var Settings = { isEnabledByDefault: isEnabledByDefault };\n\n var setup = function (editor, pluginUrl, enabledState) {\n editor.on('PreviewFormats AfterPreviewFormats', function (e) {\n if (enabledState.get()) {\n editor.dom.toggleClass(editor.getBody(), 'mce-visualblocks', e.type === 'afterpreviewformats');\n }\n });\n editor.on('init', function () {\n if (Settings.isEnabledByDefault(editor)) {\n VisualBlocks.toggleVisualBlocks(editor, pluginUrl, enabledState);\n }\n });\n editor.on('remove', function () {\n editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');\n });\n };\n var Bindings = { setup: setup };\n\n var toggleActiveState = function (editor, enabledState) {\n return function (api) {\n api.setActive(enabledState.get());\n var editorEventCallback = function (e) {\n return api.setActive(e.state);\n };\n editor.on('VisualBlocks', editorEventCallback);\n return function () {\n return editor.off('VisualBlocks', editorEventCallback);\n };\n };\n };\n var register$1 = function (editor, enabledState) {\n editor.ui.registry.addToggleButton('visualblocks', {\n icon: 'paragraph',\n tooltip: 'Show blocks',\n onAction: function () {\n return editor.execCommand('mceVisualBlocks');\n },\n onSetup: toggleActiveState(editor, enabledState)\n });\n editor.ui.registry.addToggleMenuItem('visualblocks', {\n text: 'Show blocks',\n onAction: function () {\n return editor.execCommand('mceVisualBlocks');\n },\n onSetup: toggleActiveState(editor, enabledState)\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('visualblocks', function (editor, pluginUrl) {\n var enabledState = Cell(false);\n Commands.register(editor, pluginUrl, enabledState);\n Buttons.register(editor, enabledState);\n Bindings.setup(editor, pluginUrl, enabledState);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","// Exports the \"image\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/image')\n// ES2015:\n// import 'tinymce/plugins/image'\nrequire('./plugin.js');","// Exports the \"searchreplace\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/searchreplace')\n// ES2015:\n// import 'tinymce/plugins/searchreplace'\nrequire('./plugin.js');","// Exports the \"code\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/code')\n// ES2015:\n// import 'tinymce/plugins/code'\nrequire('./plugin.js');","// Exports the \"save\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/save')\n// ES2015:\n// import 'tinymce/plugins/save'\nrequire('./plugin.js');","// Exports the \"emoticons\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/emoticons')\n// ES2015:\n// import 'tinymce/plugins/emoticons'\nrequire('./plugin.js');","// Exports the \"autoresize\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/autoresize')\n// ES2015:\n// import 'tinymce/plugins/autoresize'\nrequire('./plugin.js');","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar save = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var enableWhenDirty = function (editor) {\n return editor.getParam('save_enablewhendirty', true);\n };\n var hasOnSaveCallback = function (editor) {\n return !!editor.getParam('save_onsavecallback');\n };\n var hasOnCancelCallback = function (editor) {\n return !!editor.getParam('save_oncancelcallback');\n };\n var Settings = {\n enableWhenDirty: enableWhenDirty,\n hasOnSaveCallback: hasOnSaveCallback,\n hasOnCancelCallback: hasOnCancelCallback\n };\n\n var displayErrorMessage = function (editor, message) {\n editor.notificationManager.open({\n text: message,\n type: 'error'\n });\n };\n var save = function (editor) {\n var formObj;\n formObj = global$1.DOM.getParent(editor.id, 'form');\n if (Settings.enableWhenDirty(editor) && !editor.isDirty()) {\n return;\n }\n editor.save();\n if (Settings.hasOnSaveCallback(editor)) {\n editor.execCallback('save_onsavecallback', editor);\n editor.nodeChanged();\n return;\n }\n if (formObj) {\n editor.setDirty(false);\n if (!formObj.onsubmit || formObj.onsubmit()) {\n if (typeof formObj.submit === 'function') {\n formObj.submit();\n } else {\n displayErrorMessage(editor, 'Error: Form submit field collision.');\n }\n }\n editor.nodeChanged();\n } else {\n displayErrorMessage(editor, 'Error: No form element found.');\n }\n };\n var cancel = function (editor) {\n var h = global$2.trim(editor.startContent);\n if (Settings.hasOnCancelCallback(editor)) {\n editor.execCallback('save_oncancelcallback', editor);\n return;\n }\n editor.resetContent(h);\n };\n var Actions = {\n save: save,\n cancel: cancel\n };\n\n var register = function (editor) {\n editor.addCommand('mceSave', function () {\n Actions.save(editor);\n });\n editor.addCommand('mceCancel', function () {\n Actions.cancel(editor);\n });\n };\n var Commands = { register: register };\n\n var stateToggle = function (editor) {\n return function (api) {\n var handler = function () {\n api.setDisabled(Settings.enableWhenDirty(editor) && !editor.isDirty());\n };\n editor.on('NodeChange dirty', handler);\n return function () {\n return editor.off('NodeChange dirty', handler);\n };\n };\n };\n var register$1 = function (editor) {\n editor.ui.registry.addButton('save', {\n icon: 'save',\n tooltip: 'Save',\n disabled: true,\n onAction: function () {\n return editor.execCommand('mceSave');\n },\n onSetup: stateToggle(editor)\n });\n editor.ui.registry.addButton('cancel', {\n icon: 'cancel',\n tooltip: 'Cancel',\n disabled: true,\n onAction: function () {\n return editor.execCommand('mceCancel');\n },\n onSetup: stateToggle(editor)\n });\n editor.addShortcut('Meta+S', '', 'mceSave');\n };\n var Buttons = { register: register$1 };\n\n global.add('save', function (editor) {\n Buttons.register(editor);\n Commands.register(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","// Exports the \"textpattern\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/textpattern')\n// ES2015:\n// import 'tinymce/plugins/textpattern'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar paste = (function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var hasProPlugin = function (editor) {\n if (/(^|[ ,])powerpaste([, ]|$)/.test(editor.settings.plugins) && global.get('powerpaste')) {\n if (typeof domGlobals.window.console !== 'undefined' && domGlobals.window.console.log) {\n domGlobals.window.console.log('PowerPaste is incompatible with Paste plugin! Remove \\'paste\\' from the \\'plugins\\' option.');\n }\n return true;\n } else {\n return false;\n }\n };\n var DetectProPlugin = { hasProPlugin: hasProPlugin };\n\n var get = function (clipboard, quirks) {\n return {\n clipboard: clipboard,\n quirks: quirks\n };\n };\n var Api = { get: get };\n\n var firePastePreProcess = function (editor, html, internal, isWordHtml) {\n return editor.fire('PastePreProcess', {\n content: html,\n internal: internal,\n wordContent: isWordHtml\n });\n };\n var firePastePostProcess = function (editor, node, internal, isWordHtml) {\n return editor.fire('PastePostProcess', {\n node: node,\n internal: internal,\n wordContent: isWordHtml\n });\n };\n var firePastePlainTextToggle = function (editor, state) {\n return editor.fire('PastePlainTextToggle', { state: state });\n };\n var firePaste = function (editor, ieFake) {\n return editor.fire('paste', { ieFake: ieFake });\n };\n var Events = {\n firePastePreProcess: firePastePreProcess,\n firePastePostProcess: firePastePostProcess,\n firePastePlainTextToggle: firePastePlainTextToggle,\n firePaste: firePaste\n };\n\n var togglePlainTextPaste = function (editor, clipboard) {\n if (clipboard.pasteFormat.get() === 'text') {\n clipboard.pasteFormat.set('html');\n Events.firePastePlainTextToggle(editor, false);\n } else {\n clipboard.pasteFormat.set('text');\n Events.firePastePlainTextToggle(editor, true);\n }\n editor.focus();\n };\n var Actions = { togglePlainTextPaste: togglePlainTextPaste };\n\n var register = function (editor, clipboard) {\n editor.addCommand('mceTogglePlainTextPaste', function () {\n Actions.togglePlainTextPaste(editor, clipboard);\n });\n editor.addCommand('mceInsertClipboardContent', function (ui, value) {\n if (value.content) {\n clipboard.pasteHtml(value.content, value.internal);\n }\n if (value.text) {\n clipboard.pasteText(value.text);\n }\n });\n };\n var Commands = { register: register };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var internalMimeType = 'x-tinymce/html';\n var internalMark = '';\n var mark = function (html) {\n return internalMark + html;\n };\n var unmark = function (html) {\n return html.replace(internalMark, '');\n };\n var isMarked = function (html) {\n return html.indexOf(internalMark) !== -1;\n };\n var InternalHtml = {\n mark: mark,\n unmark: unmark,\n isMarked: isMarked,\n internalHtmlMime: function () {\n return internalMimeType;\n }\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n var isPlainText = function (text) {\n return !/<(?:\\/?(?!(?:div|p|br|span)>)\\w+|(?:(?!(?:span style=\"white-space:\\s?pre;?\">)|br\\s?\\/>))\\w+\\s[^>]+)>/i.test(text);\n };\n var toBRs = function (text) {\n return text.replace(/\\r?\\n/g, '
');\n };\n var openContainer = function (rootTag, rootAttrs) {\n var key;\n var attrs = [];\n var tag = '<' + rootTag;\n if (typeof rootAttrs === 'object') {\n for (key in rootAttrs) {\n if (rootAttrs.hasOwnProperty(key)) {\n attrs.push(key + '=\"' + global$5.encodeAllRaw(rootAttrs[key]) + '\"');\n }\n }\n if (attrs.length) {\n tag += ' ' + attrs.join(' ');\n }\n }\n return tag + '>';\n };\n var toBlockElements = function (text, rootTag, rootAttrs) {\n var blocks = text.split(/\\n\\n/);\n var tagOpen = openContainer(rootTag, rootAttrs);\n var tagClose = '';\n var paragraphs = global$3.map(blocks, function (p) {\n return p.split(/\\n/).join('
');\n });\n var stitch = function (p) {\n return tagOpen + p + tagClose;\n };\n return paragraphs.length === 1 ? paragraphs[0] : global$3.map(paragraphs, stitch).join('');\n };\n var convert = function (text, rootTag, rootAttrs) {\n return rootTag ? toBlockElements(text, rootTag, rootAttrs) : toBRs(text);\n };\n var Newlines = {\n isPlainText: isPlainText,\n convert: convert,\n toBRs: toBRs,\n toBlockElements: toBlockElements\n };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.html.DomParser');\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node');\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.html.Schema');\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.html.Serializer');\n\n var shouldBlockDrop = function (editor) {\n return editor.getParam('paste_block_drop', false);\n };\n var shouldPasteDataImages = function (editor) {\n return editor.getParam('paste_data_images', false);\n };\n var shouldFilterDrop = function (editor) {\n return editor.getParam('paste_filter_drop', true);\n };\n var getPreProcess = function (editor) {\n return editor.getParam('paste_preprocess');\n };\n var getPostProcess = function (editor) {\n return editor.getParam('paste_postprocess');\n };\n var getWebkitStyles = function (editor) {\n return editor.getParam('paste_webkit_styles');\n };\n var shouldRemoveWebKitStyles = function (editor) {\n return editor.getParam('paste_remove_styles_if_webkit', true);\n };\n var shouldMergeFormats = function (editor) {\n return editor.getParam('paste_merge_formats', true);\n };\n var isSmartPasteEnabled = function (editor) {\n return editor.getParam('smart_paste', true);\n };\n var isPasteAsTextEnabled = function (editor) {\n return editor.getParam('paste_as_text', false);\n };\n var getRetainStyleProps = function (editor) {\n return editor.getParam('paste_retain_style_properties');\n };\n var getWordValidElements = function (editor) {\n var defaultValidElements = '-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + '-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,' + 'td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody';\n return editor.getParam('paste_word_valid_elements', defaultValidElements);\n };\n var shouldConvertWordFakeLists = function (editor) {\n return editor.getParam('paste_convert_word_fake_lists', true);\n };\n var shouldUseDefaultFilters = function (editor) {\n return editor.getParam('paste_enable_default_filters', true);\n };\n var Settings = {\n shouldBlockDrop: shouldBlockDrop,\n shouldPasteDataImages: shouldPasteDataImages,\n shouldFilterDrop: shouldFilterDrop,\n getPreProcess: getPreProcess,\n getPostProcess: getPostProcess,\n getWebkitStyles: getWebkitStyles,\n shouldRemoveWebKitStyles: shouldRemoveWebKitStyles,\n shouldMergeFormats: shouldMergeFormats,\n isSmartPasteEnabled: isSmartPasteEnabled,\n isPasteAsTextEnabled: isPasteAsTextEnabled,\n getRetainStyleProps: getRetainStyleProps,\n getWordValidElements: getWordValidElements,\n shouldConvertWordFakeLists: shouldConvertWordFakeLists,\n shouldUseDefaultFilters: shouldUseDefaultFilters\n };\n\n function filter(content, items) {\n global$3.each(items, function (v) {\n if (v.constructor === RegExp) {\n content = content.replace(v, '');\n } else {\n content = content.replace(v[0], v[1]);\n }\n });\n return content;\n }\n function innerText(html) {\n var schema = global$8();\n var domParser = global$6({}, schema);\n var text = '';\n var shortEndedElements = schema.getShortEndedElements();\n var ignoreElements = global$3.makeMap('script noscript style textarea video audio iframe object', ' ');\n var blockElements = schema.getBlockElements();\n function walk(node) {\n var name = node.name, currentNode = node;\n if (name === 'br') {\n text += '\\n';\n return;\n }\n if (name === 'wbr') {\n return;\n }\n if (shortEndedElements[name]) {\n text += ' ';\n }\n if (ignoreElements[name]) {\n text += ' ';\n return;\n }\n if (node.type === 3) {\n text += node.value;\n }\n if (!node.shortEnded) {\n if (node = node.firstChild) {\n do {\n walk(node);\n } while (node = node.next);\n }\n }\n if (blockElements[name] && currentNode.next) {\n text += '\\n';\n if (name === 'p') {\n text += '\\n';\n }\n }\n }\n html = filter(html, [//g]);\n walk(domParser.parse(html));\n return text;\n }\n function trimHtml(html) {\n function trimSpaces(all, s1, s2) {\n if (!s1 && !s2) {\n return ' ';\n }\n return '\\xA0';\n }\n html = filter(html, [\n /^[\\s\\S]*]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig,\n /|/g,\n [\n /( ?)\\u00a0<\\/span>( ?)/g,\n trimSpaces\n ],\n /
/g,\n /
$/i\n ]);\n return html;\n }\n function createIdGenerator(prefix) {\n var count = 0;\n return function () {\n return prefix + count++;\n };\n }\n var isMsEdge = function () {\n return domGlobals.navigator.userAgent.indexOf(' Edge/') !== -1;\n };\n var Utils = {\n filter: filter,\n innerText: innerText,\n trimHtml: trimHtml,\n createIdGenerator: createIdGenerator,\n isMsEdge: isMsEdge\n };\n\n function isWordContent(content) {\n return / 1) {\n currentListNode.attr('start', '' + start);\n }\n paragraphNode.wrap(currentListNode);\n } else {\n currentListNode.append(paragraphNode);\n }\n paragraphNode.name = 'li';\n if (level > lastLevel && prevListNode) {\n prevListNode.lastChild.append(currentListNode);\n }\n lastLevel = level;\n removeIgnoredNodes(paragraphNode);\n trimListStart(paragraphNode, /^\\u00a0+/);\n trimListStart(paragraphNode, /^\\s*([\\u2022\\u00b7\\u00a7\\u25CF]|\\w+\\.)/);\n trimListStart(paragraphNode, /^\\u00a0+/);\n }\n var elements = [];\n var child = node.firstChild;\n while (typeof child !== 'undefined' && child !== null) {\n elements.push(child);\n child = child.walk();\n if (child !== null) {\n while (typeof child !== 'undefined' && child.parent !== node) {\n child = child.walk();\n }\n }\n }\n for (var i = 0; i < elements.length; i++) {\n node = elements[i];\n if (node.name === 'p' && node.firstChild) {\n var nodeText = getText(node);\n if (isBulletList(nodeText)) {\n convertParagraphToLi(node, 'ul');\n continue;\n }\n if (isNumericList(nodeText)) {\n var matches = /([0-9]+)\\./.exec(nodeText);\n var start = 1;\n if (matches) {\n start = parseInt(matches[1], 10);\n }\n convertParagraphToLi(node, 'ol', start);\n continue;\n }\n if (node._listLevel) {\n convertParagraphToLi(node, 'ul', 1);\n continue;\n }\n currentListNode = null;\n } else {\n prevListNode = currentListNode;\n currentListNode = null;\n }\n }\n }\n function filterStyles(editor, validStyles, node, styleValue) {\n var outputStyles = {}, matches;\n var styles = editor.dom.parseStyle(styleValue);\n global$3.each(styles, function (value, name) {\n switch (name) {\n case 'mso-list':\n matches = /\\w+ \\w+([0-9]+)/i.exec(styleValue);\n if (matches) {\n node._listLevel = parseInt(matches[1], 10);\n }\n if (/Ignore/i.test(value) && node.firstChild) {\n node._listIgnore = true;\n node.firstChild._listIgnore = true;\n }\n break;\n case 'horiz-align':\n name = 'text-align';\n break;\n case 'vert-align':\n name = 'vertical-align';\n break;\n case 'font-color':\n case 'mso-foreground':\n name = 'color';\n break;\n case 'mso-background':\n case 'mso-highlight':\n name = 'background';\n break;\n case 'font-weight':\n case 'font-style':\n if (value !== 'normal') {\n outputStyles[name] = value;\n }\n return;\n case 'mso-element':\n if (/^(comment|comment-list)$/i.test(value)) {\n node.remove();\n return;\n }\n break;\n }\n if (name.indexOf('mso-comment') === 0) {\n node.remove();\n return;\n }\n if (name.indexOf('mso-') === 0) {\n return;\n }\n if (Settings.getRetainStyleProps(editor) === 'all' || validStyles && validStyles[name]) {\n outputStyles[name] = value;\n }\n });\n if (/(bold)/i.test(outputStyles['font-weight'])) {\n delete outputStyles['font-weight'];\n node.wrap(new global$7('b', 1));\n }\n if (/(italic)/i.test(outputStyles['font-style'])) {\n delete outputStyles['font-style'];\n node.wrap(new global$7('i', 1));\n }\n outputStyles = editor.dom.serializeStyle(outputStyles, node.name);\n if (outputStyles) {\n return outputStyles;\n }\n return null;\n }\n var filterWordContent = function (editor, content) {\n var retainStyleProperties, validStyles;\n retainStyleProperties = Settings.getRetainStyleProps(editor);\n if (retainStyleProperties) {\n validStyles = global$3.makeMap(retainStyleProperties.split(/[, ]/));\n }\n content = Utils.filter(content, [\n /
/gi,\n /]+id=\"?docs-internal-[^>]*>/gi,\n //gi,\n /<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|img|meta|link|style|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\n [\n /<(\\/?)s>/gi,\n '<$1strike>'\n ],\n [\n / /gi,\n '\\xA0'\n ],\n [\n /([\\s\\u00a0]*)<\\/span>/gi,\n function (str, spaces) {\n return spaces.length > 0 ? spaces.replace(/./, ' ').slice(Math.floor(spaces.length / 2)).split('').join('\\xA0') : '';\n }\n ]\n ]);\n var validElements = Settings.getWordValidElements(editor);\n var schema = global$8({\n valid_elements: validElements,\n valid_children: '-li[p]'\n });\n global$3.each(schema.elements, function (rule) {\n if (!rule.attributes.class) {\n rule.attributes.class = {};\n rule.attributesOrder.push('class');\n }\n if (!rule.attributes.style) {\n rule.attributes.style = {};\n rule.attributesOrder.push('style');\n }\n });\n var domParser = global$6({}, schema);\n domParser.addAttributeFilter('style', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n node.attr('style', filterStyles(editor, validStyles, node, node.attr('style')));\n if (node.name === 'span' && node.parent && !node.attributes.length) {\n node.unwrap();\n }\n }\n });\n domParser.addAttributeFilter('class', function (nodes) {\n var i = nodes.length, node, className;\n while (i--) {\n node = nodes[i];\n className = node.attr('class');\n if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) {\n node.remove();\n }\n node.attr('class', null);\n }\n });\n domParser.addNodeFilter('del', function (nodes) {\n var i = nodes.length;\n while (i--) {\n nodes[i].remove();\n }\n });\n domParser.addNodeFilter('a', function (nodes) {\n var i = nodes.length, node, href, name;\n while (i--) {\n node = nodes[i];\n href = node.attr('href');\n name = node.attr('name');\n if (href && href.indexOf('#_msocom_') !== -1) {\n node.remove();\n continue;\n }\n if (href && href.indexOf('file://') === 0) {\n href = href.split('#')[1];\n if (href) {\n href = '#' + href;\n }\n }\n if (!href && !name) {\n node.unwrap();\n } else {\n if (name && !/^_?(?:toc|edn|ftn)/i.test(name)) {\n node.unwrap();\n continue;\n }\n node.attr({\n href: href,\n name: name\n });\n }\n }\n });\n var rootNode = domParser.parse(content);\n if (Settings.shouldConvertWordFakeLists(editor)) {\n convertFakeListsToProperLists(rootNode);\n }\n content = global$9({ validate: editor.settings.validate }, schema).serialize(rootNode);\n return content;\n };\n var preProcess = function (editor, content) {\n return Settings.shouldUseDefaultFilters(editor) ? filterWordContent(editor, content) : content;\n };\n var WordFilter = {\n preProcess: preProcess,\n isWordContent: isWordContent\n };\n\n var processResult = function (content, cancelled) {\n return {\n content: content,\n cancelled: cancelled\n };\n };\n var postProcessFilter = function (editor, html, internal, isWordHtml) {\n var tempBody = editor.dom.create('div', { style: 'display:none' }, html);\n var postProcessArgs = Events.firePastePostProcess(editor, tempBody, internal, isWordHtml);\n return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());\n };\n var filterContent = function (editor, content, internal, isWordHtml) {\n var preProcessArgs = Events.firePastePreProcess(editor, content, internal, isWordHtml);\n if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {\n return postProcessFilter(editor, preProcessArgs.content, internal, isWordHtml);\n } else {\n return processResult(preProcessArgs.content, preProcessArgs.isDefaultPrevented());\n }\n };\n var process = function (editor, html, internal) {\n var isWordHtml = WordFilter.isWordContent(html);\n var content = isWordHtml ? WordFilter.preProcess(editor, html) : html;\n return filterContent(editor, content, internal, isWordHtml);\n };\n var ProcessFilters = { process: process };\n\n var removeMeta = function (editor, html) {\n var body = editor.dom.create('body', {}, html);\n global$3.each(body.querySelectorAll('meta'), function (elm) {\n return elm.parentNode.removeChild(elm);\n });\n return body.innerHTML;\n };\n var pasteHtml = function (editor, html) {\n editor.insertContent(removeMeta(editor, html), {\n merge: Settings.shouldMergeFormats(editor),\n paste: true\n });\n return true;\n };\n var isAbsoluteUrl = function (url) {\n return /^https?:\\/\\/[\\w\\?\\-\\/+=.&%@~#]+$/i.test(url);\n };\n var isImageUrl = function (url) {\n return isAbsoluteUrl(url) && /.(gif|jpe?g|png)$/.test(url);\n };\n var createImage = function (editor, url, pasteHtmlFn) {\n editor.undoManager.extra(function () {\n pasteHtmlFn(editor, url);\n }, function () {\n editor.insertContent('');\n });\n return true;\n };\n var createLink = function (editor, url, pasteHtmlFn) {\n editor.undoManager.extra(function () {\n pasteHtmlFn(editor, url);\n }, function () {\n editor.execCommand('mceInsertLink', false, url);\n });\n return true;\n };\n var linkSelection = function (editor, html, pasteHtmlFn) {\n return editor.selection.isCollapsed() === false && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false;\n };\n var insertImage = function (editor, html, pasteHtmlFn) {\n return isImageUrl(html) ? createImage(editor, html, pasteHtmlFn) : false;\n };\n var smartInsertContent = function (editor, html) {\n global$3.each([\n linkSelection,\n insertImage,\n pasteHtml\n ], function (action) {\n return action(editor, html, pasteHtml) !== true;\n });\n };\n var insertContent = function (editor, html) {\n if (Settings.isSmartPasteEnabled(editor) === false) {\n pasteHtml(editor, html);\n } else {\n smartInsertContent(editor, html);\n }\n };\n var SmartPaste = {\n isImageUrl: isImageUrl,\n isAbsoluteUrl: isAbsoluteUrl,\n insertContent: insertContent\n };\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var filter$1 = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n r.push(x);\n }\n }\n return r;\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var nu = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady())\n call(nCallback);\n else\n callbacks.push(nCallback);\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu,\n pure: pure\n };\n\n var bounce = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var me = this;\n domGlobals.setTimeout(function () {\n f.apply(me, args);\n }, 0);\n };\n };\n\n var nu$1 = function (baseFn) {\n var get = function (callback) {\n baseFn(bounce(callback));\n };\n var map = function (fab) {\n return nu$1(function (callback) {\n get(function (a) {\n var value = fab(a);\n callback(value);\n });\n });\n };\n var bind = function (aFutureB) {\n return nu$1(function (callback) {\n get(function (a) {\n aFutureB(a).get(callback);\n });\n });\n };\n var anonBind = function (futureB) {\n return nu$1(function (callback) {\n get(function (a) {\n futureB.get(callback);\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return nu$1(function (callback) {\n if (cache === null) {\n cache = toLazy();\n }\n cache.get(callback);\n });\n };\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n get: get\n };\n };\n var pure$1 = function (a) {\n return nu$1(function (callback) {\n callback(a);\n });\n };\n var Future = {\n nu: nu$1,\n pure: pure$1\n };\n\n var par = function (asyncValues, nu) {\n return nu(function (callback) {\n var r = [];\n var count = 0;\n var cb = function (i) {\n return function (value) {\n r[i] = value;\n count++;\n if (count >= asyncValues.length) {\n callback(r);\n }\n };\n };\n if (asyncValues.length === 0) {\n callback([]);\n } else {\n each(asyncValues, function (asyncValue, i) {\n asyncValue.get(cb(i));\n });\n }\n });\n };\n\n var par$1 = function (futures) {\n return par(futures, Future.nu);\n };\n var mapM = function (array, fn) {\n var futures = map(array, fn);\n return par$1(futures);\n };\n\n var pasteHtml$1 = function (editor, html, internalFlag) {\n var internal = internalFlag ? internalFlag : InternalHtml.isMarked(html);\n var args = ProcessFilters.process(editor, InternalHtml.unmark(html), internal);\n if (args.cancelled === false) {\n SmartPaste.insertContent(editor, args.content);\n }\n };\n var pasteText = function (editor, text) {\n text = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\n text = Newlines.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs);\n pasteHtml$1(editor, text, false);\n };\n var getDataTransferItems = function (dataTransfer) {\n var items = {};\n var mceInternalUrlPrefix = 'data:text/mce-internal,';\n if (dataTransfer) {\n if (dataTransfer.getData) {\n var legacyText = dataTransfer.getData('Text');\n if (legacyText && legacyText.length > 0) {\n if (legacyText.indexOf(mceInternalUrlPrefix) === -1) {\n items['text/plain'] = legacyText;\n }\n }\n }\n if (dataTransfer.types) {\n for (var i = 0; i < dataTransfer.types.length; i++) {\n var contentType = dataTransfer.types[i];\n try {\n items[contentType] = dataTransfer.getData(contentType);\n } catch (ex) {\n items[contentType] = '';\n }\n }\n }\n }\n return items;\n };\n var getClipboardContent = function (editor, clipboardEvent) {\n var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer);\n return Utils.isMsEdge() ? global$3.extend(content, { 'text/html': '' }) : content;\n };\n var hasContentType = function (clipboardContent, mimeType) {\n return mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\n };\n var hasHtmlOrText = function (content) {\n return hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\n };\n var getBase64FromUri = function (uri) {\n var idx;\n idx = uri.indexOf(',');\n if (idx !== -1) {\n return uri.substr(idx + 1);\n }\n return null;\n };\n var isValidDataUriImage = function (settings, imgElm) {\n return settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true;\n };\n var extractFilename = function (editor, str) {\n var m = str.match(/([\\s\\S]+?)\\.(?:jpeg|jpg|png|gif)$/i);\n return m ? editor.dom.encode(m[1]) : null;\n };\n var uniqueId = Utils.createIdGenerator('mceclip');\n var pasteImage = function (editor, imageItem) {\n var base64 = getBase64FromUri(imageItem.uri);\n var id = uniqueId();\n var name = editor.settings.images_reuse_filename && imageItem.blob.name ? extractFilename(editor, imageItem.blob.name) : id;\n var img = new domGlobals.Image();\n img.src = imageItem.uri;\n if (isValidDataUriImage(editor.settings, img)) {\n var blobCache = editor.editorUpload.blobCache;\n var blobInfo = void 0, existingBlobInfo = void 0;\n existingBlobInfo = blobCache.findFirst(function (cachedBlobInfo) {\n return cachedBlobInfo.base64() === base64;\n });\n if (!existingBlobInfo) {\n blobInfo = blobCache.create(id, imageItem.blob, base64, name);\n blobCache.add(blobInfo);\n } else {\n blobInfo = existingBlobInfo;\n }\n pasteHtml$1(editor, '', false);\n } else {\n pasteHtml$1(editor, '', false);\n }\n };\n var isClipboardEvent = function (event) {\n return event.type === 'paste';\n };\n var readBlobsAsDataUris = function (items) {\n return mapM(items, function (item) {\n return Future.nu(function (resolve) {\n var blob = item.getAsFile ? item.getAsFile() : item;\n var reader = new window.FileReader();\n reader.onload = function () {\n resolve({\n blob: blob,\n uri: reader.result\n });\n };\n reader.readAsDataURL(blob);\n });\n });\n };\n var getImagesFromDataTransfer = function (dataTransfer) {\n var items = dataTransfer.items ? map(from$1(dataTransfer.items), function (item) {\n return item.getAsFile();\n }) : [];\n var files = dataTransfer.files ? from$1(dataTransfer.files) : [];\n var images = filter$1(items.length > 0 ? items : files, function (file) {\n return /^image\\/(jpeg|png|gif|bmp)$/.test(file.type);\n });\n return images;\n };\n var pasteImageData = function (editor, e, rng) {\n var dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;\n if (editor.settings.paste_data_images && dataTransfer) {\n var images = getImagesFromDataTransfer(dataTransfer);\n if (images.length > 0) {\n e.preventDefault();\n readBlobsAsDataUris(images).get(function (blobResults) {\n if (rng) {\n editor.selection.setRng(rng);\n }\n each(blobResults, function (result) {\n pasteImage(editor, result);\n });\n });\n return true;\n }\n }\n return false;\n };\n var isBrokenAndroidClipboardEvent = function (e) {\n var clipboardData = e.clipboardData;\n return domGlobals.navigator.userAgent.indexOf('Android') !== -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;\n };\n var isKeyboardPasteEvent = function (e) {\n return global$4.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;\n };\n var registerEventHandlers = function (editor, pasteBin, pasteFormat) {\n var keyboardPasteTimeStamp = 0;\n var keyboardPastePlainTextState;\n editor.on('keydown', function (e) {\n function removePasteBinOnKeyUp(e) {\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n pasteBin.remove();\n }\n }\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;\n if (keyboardPastePlainTextState && global$1.webkit && domGlobals.navigator.userAgent.indexOf('Version/') !== -1) {\n return;\n }\n e.stopImmediatePropagation();\n keyboardPasteTimeStamp = new Date().getTime();\n if (global$1.ie && keyboardPastePlainTextState) {\n e.preventDefault();\n Events.firePaste(editor, true);\n return;\n }\n pasteBin.remove();\n pasteBin.create();\n editor.once('keyup', removePasteBinOnKeyUp);\n editor.once('paste', function () {\n editor.off('keyup', removePasteBinOnKeyUp);\n });\n }\n });\n function insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal) {\n var content, isPlainTextHtml;\n if (hasContentType(clipboardContent, 'text/html')) {\n content = clipboardContent['text/html'];\n } else {\n content = pasteBin.getHtml();\n internal = internal ? internal : InternalHtml.isMarked(content);\n if (pasteBin.isDefaultContent(content)) {\n plainTextMode = true;\n }\n }\n content = Utils.trimHtml(content);\n pasteBin.remove();\n isPlainTextHtml = internal === false && Newlines.isPlainText(content);\n if (!content.length || isPlainTextHtml) {\n plainTextMode = true;\n }\n if (plainTextMode) {\n if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {\n content = clipboardContent['text/plain'];\n } else {\n content = Utils.innerText(content);\n }\n }\n if (pasteBin.isDefaultContent(content)) {\n if (!isKeyBoardPaste) {\n editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.');\n }\n return;\n }\n if (plainTextMode) {\n pasteText(editor, content);\n } else {\n pasteHtml$1(editor, content, internal);\n }\n }\n var getLastRng = function () {\n return pasteBin.getLastRng() || editor.selection.getRng();\n };\n editor.on('paste', function (e) {\n var clipboardTimer = new Date().getTime();\n var clipboardContent = getClipboardContent(editor, e);\n var clipboardDelay = new Date().getTime() - clipboardTimer;\n var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay < 1000;\n var plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;\n var internal = hasContentType(clipboardContent, InternalHtml.internalHtmlMime());\n keyboardPastePlainTextState = false;\n if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\n pasteBin.remove();\n return;\n }\n if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) {\n pasteBin.remove();\n return;\n }\n if (!isKeyBoardPaste) {\n e.preventDefault();\n }\n if (global$1.ie && (!isKeyBoardPaste || e.ieFake) && !hasContentType(clipboardContent, 'text/html')) {\n pasteBin.create();\n editor.dom.bind(pasteBin.getEl(), 'paste', function (e) {\n e.stopPropagation();\n });\n editor.getDoc().execCommand('Paste', false, null);\n clipboardContent['text/html'] = pasteBin.getHtml();\n }\n if (hasContentType(clipboardContent, 'text/html')) {\n e.preventDefault();\n if (!internal) {\n internal = InternalHtml.isMarked(clipboardContent['text/html']);\n }\n insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal);\n } else {\n global$2.setEditorTimeout(editor, function () {\n insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal);\n }, 0);\n }\n });\n };\n var registerEventsAndFilters = function (editor, pasteBin, pasteFormat) {\n registerEventHandlers(editor, pasteBin, pasteFormat);\n var src;\n editor.parser.addNodeFilter('img', function (nodes, name, args) {\n var isPasteInsert = function (args) {\n return args.data && args.data.paste === true;\n };\n var remove = function (node) {\n if (!node.attr('data-mce-object') && src !== global$1.transparentSrc) {\n node.remove();\n }\n };\n var isWebKitFakeUrl = function (src) {\n return src.indexOf('webkit-fake-url') === 0;\n };\n var isDataUri = function (src) {\n return src.indexOf('data:') === 0;\n };\n if (!editor.settings.paste_data_images && isPasteInsert(args)) {\n var i = nodes.length;\n while (i--) {\n src = nodes[i].attr('src');\n if (!src) {\n continue;\n }\n if (isWebKitFakeUrl(src)) {\n remove(nodes[i]);\n } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) {\n remove(nodes[i]);\n }\n }\n }\n });\n };\n\n var getPasteBinParent = function (editor) {\n return global$1.ie && editor.inline ? domGlobals.document.body : editor.getBody();\n };\n var isExternalPasteBin = function (editor) {\n return getPasteBinParent(editor) !== editor.getBody();\n };\n var delegatePasteEvents = function (editor, pasteBinElm, pasteBinDefaultContent) {\n if (isExternalPasteBin(editor)) {\n editor.dom.bind(pasteBinElm, 'paste keyup', function (e) {\n if (!isDefault(editor, pasteBinDefaultContent)) {\n editor.fire('paste');\n }\n });\n }\n };\n var create = function (editor, lastRngCell, pasteBinDefaultContent) {\n var dom = editor.dom, body = editor.getBody();\n var pasteBinElm;\n lastRngCell.set(editor.selection.getRng());\n pasteBinElm = editor.dom.add(getPasteBinParent(editor), 'div', {\n 'id': 'mcepastebin',\n 'class': 'mce-pastebin',\n 'contentEditable': true,\n 'data-mce-bogus': 'all',\n 'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'\n }, pasteBinDefaultContent);\n if (global$1.ie || global$1.gecko) {\n dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);\n }\n dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function (e) {\n e.stopPropagation();\n });\n delegatePasteEvents(editor, pasteBinElm, pasteBinDefaultContent);\n pasteBinElm.focus();\n editor.selection.select(pasteBinElm, true);\n };\n var remove = function (editor, lastRngCell) {\n if (getEl(editor)) {\n var pasteBinClone = void 0;\n var lastRng = lastRngCell.get();\n while (pasteBinClone = editor.dom.get('mcepastebin')) {\n editor.dom.remove(pasteBinClone);\n editor.dom.unbind(pasteBinClone);\n }\n if (lastRng) {\n editor.selection.setRng(lastRng);\n }\n }\n lastRngCell.set(null);\n };\n var getEl = function (editor) {\n return editor.dom.get('mcepastebin');\n };\n var getHtml = function (editor) {\n var pasteBinElm, pasteBinClones, i, dirtyWrappers, cleanWrapper;\n var copyAndRemove = function (toElm, fromElm) {\n toElm.appendChild(fromElm);\n editor.dom.remove(fromElm, true);\n };\n pasteBinClones = global$3.grep(getPasteBinParent(editor).childNodes, function (elm) {\n return elm.id === 'mcepastebin';\n });\n pasteBinElm = pasteBinClones.shift();\n global$3.each(pasteBinClones, function (pasteBinClone) {\n copyAndRemove(pasteBinElm, pasteBinClone);\n });\n dirtyWrappers = editor.dom.select('div[id=mcepastebin]', pasteBinElm);\n for (i = dirtyWrappers.length - 1; i >= 0; i--) {\n cleanWrapper = editor.dom.create('div');\n pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]);\n copyAndRemove(cleanWrapper, dirtyWrappers[i]);\n }\n return pasteBinElm ? pasteBinElm.innerHTML : '';\n };\n var getLastRng = function (lastRng) {\n return lastRng.get();\n };\n var isDefaultContent = function (pasteBinDefaultContent, content) {\n return content === pasteBinDefaultContent;\n };\n var isPasteBin = function (elm) {\n return elm && elm.id === 'mcepastebin';\n };\n var isDefault = function (editor, pasteBinDefaultContent) {\n var pasteBinElm = getEl(editor);\n return isPasteBin(pasteBinElm) && isDefaultContent(pasteBinDefaultContent, pasteBinElm.innerHTML);\n };\n var PasteBin = function (editor) {\n var lastRng = Cell(null);\n var pasteBinDefaultContent = '%MCEPASTEBIN%';\n return {\n create: function () {\n return create(editor, lastRng, pasteBinDefaultContent);\n },\n remove: function () {\n return remove(editor, lastRng);\n },\n getEl: function () {\n return getEl(editor);\n },\n getHtml: function () {\n return getHtml(editor);\n },\n getLastRng: function () {\n return getLastRng(lastRng);\n },\n isDefault: function () {\n return isDefault(editor, pasteBinDefaultContent);\n },\n isDefaultContent: function (content) {\n return isDefaultContent(pasteBinDefaultContent, content);\n }\n };\n };\n\n var Clipboard = function (editor, pasteFormat) {\n var pasteBin = PasteBin(editor);\n editor.on('PreInit', function () {\n return registerEventsAndFilters(editor, pasteBin, pasteFormat);\n });\n return {\n pasteFormat: pasteFormat,\n pasteHtml: function (html, internalFlag) {\n return pasteHtml$1(editor, html, internalFlag);\n },\n pasteText: function (text) {\n return pasteText(editor, text);\n },\n pasteImageData: function (e, rng) {\n return pasteImageData(editor, e, rng);\n },\n getDataTransferItems: getDataTransferItems,\n hasHtmlOrText: hasHtmlOrText,\n hasContentType: hasContentType\n };\n };\n\n var noop = function () {\n };\n var hasWorkingClipboardApi = function (clipboardData) {\n return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && Utils.isMsEdge() !== true;\n };\n var setHtml5Clipboard = function (clipboardData, html, text) {\n if (hasWorkingClipboardApi(clipboardData)) {\n try {\n clipboardData.clearData();\n clipboardData.setData('text/html', html);\n clipboardData.setData('text/plain', text);\n clipboardData.setData(InternalHtml.internalHtmlMime(), html);\n return true;\n } catch (e) {\n return false;\n }\n } else {\n return false;\n }\n };\n var setClipboardData = function (evt, data, fallback, done) {\n if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) {\n evt.preventDefault();\n done();\n } else {\n fallback(data.html, done);\n }\n };\n var fallback = function (editor) {\n return function (html, done) {\n var markedHtml = InternalHtml.mark(html);\n var outer = editor.dom.create('div', {\n 'contenteditable': 'false',\n 'data-mce-bogus': 'all'\n });\n var inner = editor.dom.create('div', { contenteditable: 'true' }, markedHtml);\n editor.dom.setStyles(outer, {\n position: 'fixed',\n top: '0',\n left: '-3000px',\n width: '1000px',\n overflow: 'hidden'\n });\n outer.appendChild(inner);\n editor.dom.add(editor.getBody(), outer);\n var range = editor.selection.getRng();\n inner.focus();\n var offscreenRange = editor.dom.createRng();\n offscreenRange.selectNodeContents(inner);\n editor.selection.setRng(offscreenRange);\n global$2.setTimeout(function () {\n editor.selection.setRng(range);\n outer.parentNode.removeChild(outer);\n done();\n }, 0);\n };\n };\n var getData = function (editor) {\n return {\n html: editor.selection.getContent({ contextual: true }),\n text: editor.selection.getContent({ format: 'text' })\n };\n };\n var isTableSelection = function (editor) {\n return !!editor.dom.getParent(editor.selection.getStart(), 'td[data-mce-selected],th[data-mce-selected]', editor.getBody());\n };\n var hasSelectedContent = function (editor) {\n return !editor.selection.isCollapsed() || isTableSelection(editor);\n };\n var cut = function (editor) {\n return function (evt) {\n if (hasSelectedContent(editor)) {\n setClipboardData(evt, getData(editor), fallback(editor), function () {\n global$2.setTimeout(function () {\n editor.execCommand('Delete');\n }, 0);\n });\n }\n };\n };\n var copy = function (editor) {\n return function (evt) {\n if (hasSelectedContent(editor)) {\n setClipboardData(evt, getData(editor), fallback(editor), noop);\n }\n };\n };\n var register$1 = function (editor) {\n editor.on('cut', cut(editor));\n editor.on('copy', copy(editor));\n };\n var CutCopy = { register: register$1 };\n\n var global$a = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n\n var getCaretRangeFromEvent = function (editor, e) {\n return global$a.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc());\n };\n var isPlainTextFileUrl = function (content) {\n var plainTextContent = content['text/plain'];\n return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\n };\n var setFocusedRange = function (editor, rng) {\n editor.focus();\n editor.selection.setRng(rng);\n };\n var setup = function (editor, clipboard, draggingInternallyState) {\n if (Settings.shouldBlockDrop(editor)) {\n editor.on('dragend dragover draggesture dragdrop drop drag', function (e) {\n e.preventDefault();\n e.stopPropagation();\n });\n }\n if (!Settings.shouldPasteDataImages(editor)) {\n editor.on('drop', function (e) {\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {\n e.preventDefault();\n }\n });\n }\n editor.on('drop', function (e) {\n var dropContent, rng;\n rng = getCaretRangeFromEvent(editor, e);\n if (e.isDefaultPrevented() || draggingInternallyState.get()) {\n return;\n }\n dropContent = clipboard.getDataTransferItems(e.dataTransfer);\n var internal = clipboard.hasContentType(dropContent, InternalHtml.internalHtmlMime());\n if ((!clipboard.hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && clipboard.pasteImageData(e, rng)) {\n return;\n }\n if (rng && Settings.shouldFilterDrop(editor)) {\n var content_1 = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];\n if (content_1) {\n e.preventDefault();\n global$2.setEditorTimeout(editor, function () {\n editor.undoManager.transact(function () {\n if (dropContent['mce-internal']) {\n editor.execCommand('Delete');\n }\n setFocusedRange(editor, rng);\n content_1 = Utils.trimHtml(content_1);\n if (!dropContent['text/html']) {\n clipboard.pasteText(content_1);\n } else {\n clipboard.pasteHtml(content_1, internal);\n }\n });\n });\n }\n }\n });\n editor.on('dragstart', function (e) {\n draggingInternallyState.set(true);\n });\n editor.on('dragover dragend', function (e) {\n if (Settings.shouldPasteDataImages(editor) && draggingInternallyState.get() === false) {\n e.preventDefault();\n setFocusedRange(editor, getCaretRangeFromEvent(editor, e));\n }\n if (e.type === 'dragend') {\n draggingInternallyState.set(false);\n }\n });\n };\n var DragDrop = { setup: setup };\n\n var setup$1 = function (editor) {\n var plugin = editor.plugins.paste;\n var preProcess = Settings.getPreProcess(editor);\n if (preProcess) {\n editor.on('PastePreProcess', function (e) {\n preProcess.call(plugin, plugin, e);\n });\n }\n var postProcess = Settings.getPostProcess(editor);\n if (postProcess) {\n editor.on('PastePostProcess', function (e) {\n postProcess.call(plugin, plugin, e);\n });\n }\n };\n var PrePostProcess = { setup: setup$1 };\n\n function addPreProcessFilter(editor, filterFunc) {\n editor.on('PastePreProcess', function (e) {\n e.content = filterFunc(editor, e.content, e.internal, e.wordContent);\n });\n }\n function addPostProcessFilter(editor, filterFunc) {\n editor.on('PastePostProcess', function (e) {\n filterFunc(editor, e.node);\n });\n }\n function removeExplorerBrElementsAfterBlocks(editor, html) {\n if (!WordFilter.isWordContent(html)) {\n return html;\n }\n var blockElements = [];\n global$3.each(editor.schema.getBlockElements(), function (block, blockName) {\n blockElements.push(blockName);\n });\n var explorerBlocksRegExp = new RegExp('(?:
 [\\\\s\\\\r\\\\n]+|
)*(<\\\\/?(' + blockElements.join('|') + ')[^>]*>)(?:
 [\\\\s\\\\r\\\\n]+|
)*', 'g');\n html = Utils.filter(html, [[\n explorerBlocksRegExp,\n '$1'\n ]]);\n html = Utils.filter(html, [\n [\n /

/g,\n '

'\n ],\n [\n /
/g,\n ' '\n ],\n [\n /

/g,\n '
'\n ]\n ]);\n return html;\n }\n function removeWebKitStyles(editor, content, internal, isWordHtml) {\n if (isWordHtml || internal) {\n return content;\n }\n var webKitStylesSetting = Settings.getWebkitStyles(editor);\n var webKitStyles;\n if (Settings.shouldRemoveWebKitStyles(editor) === false || webKitStylesSetting === 'all') {\n return content;\n }\n if (webKitStylesSetting) {\n webKitStyles = webKitStylesSetting.split(/[, ]/);\n }\n if (webKitStyles) {\n var dom_1 = editor.dom, node_1 = editor.selection.getNode();\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, function (all, before, value, after) {\n var inputStyles = dom_1.parseStyle(dom_1.decode(value));\n var outputStyles = {};\n if (webKitStyles === 'none') {\n return before + after;\n }\n for (var i = 0; i < webKitStyles.length; i++) {\n var inputValue = inputStyles[webKitStyles[i]], currentValue = dom_1.getStyle(node_1, webKitStyles[i], true);\n if (/color/.test(webKitStyles[i])) {\n inputValue = dom_1.toHex(inputValue);\n currentValue = dom_1.toHex(currentValue);\n }\n if (currentValue !== inputValue) {\n outputStyles[webKitStyles[i]] = inputValue;\n }\n }\n outputStyles = dom_1.serializeStyle(outputStyles, 'span');\n if (outputStyles) {\n return before + ' style=\"' + outputStyles + '\"' + after;\n }\n return before + after;\n });\n } else {\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\n }\n content = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, function (all, before, value, after) {\n return before + ' style=\"' + value + '\"' + after;\n });\n return content;\n }\n function removeUnderlineAndFontInAnchor(editor, root) {\n editor.$('a', root).find('font,u').each(function (i, node) {\n editor.dom.remove(node, true);\n });\n }\n var setup$2 = function (editor) {\n if (global$1.webkit) {\n addPreProcessFilter(editor, removeWebKitStyles);\n }\n if (global$1.ie) {\n addPreProcessFilter(editor, removeExplorerBrElementsAfterBlocks);\n addPostProcessFilter(editor, removeUnderlineAndFontInAnchor);\n }\n };\n var Quirks = { setup: setup$2 };\n\n var makeSetupHandler = function (editor, clipboard) {\n return function (api) {\n api.setActive(clipboard.pasteFormat.get() === 'text');\n var pastePlainTextToggleHandler = function (e) {\n return api.setActive(e.state);\n };\n editor.on('PastePlainTextToggle', pastePlainTextToggleHandler);\n return function () {\n return editor.off('PastePlainTextToggle', pastePlainTextToggleHandler);\n };\n };\n };\n var register$2 = function (editor, clipboard) {\n editor.ui.registry.addToggleButton('pastetext', {\n active: false,\n icon: 'paste-text',\n tooltip: 'Paste as text',\n onAction: function () {\n return editor.execCommand('mceTogglePlainTextPaste');\n },\n onSetup: makeSetupHandler(editor, clipboard)\n });\n editor.ui.registry.addToggleMenuItem('pastetext', {\n text: 'Paste as text',\n onAction: function () {\n return editor.execCommand('mceTogglePlainTextPaste');\n },\n onSetup: makeSetupHandler(editor, clipboard)\n });\n };\n var Buttons = { register: register$2 };\n\n global.add('paste', function (editor) {\n if (DetectProPlugin.hasProPlugin(editor) === false) {\n var draggingInternallyState = Cell(false);\n var pasteFormat = Cell(Settings.isPasteAsTextEnabled(editor) ? 'text' : 'html');\n var clipboard = Clipboard(editor, pasteFormat);\n var quirks = Quirks.setup(editor);\n Buttons.register(editor, clipboard);\n Commands.register(editor, clipboard);\n PrePostProcess.setup(editor);\n CutCopy.register(editor);\n DragDrop.setup(editor, clipboard, draggingInternallyState);\n return Api.get(clipboard, quirks);\n }\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","tinymce.addI18n('pl',{\n\"Redo\": \"Pon\\u00f3w\",\n\"Undo\": \"Cofnij\",\n\"Cut\": \"Wytnij\",\n\"Copy\": \"Kopiuj\",\n\"Paste\": \"Wklej\",\n\"Select all\": \"Zaznacz wszystko\",\n\"New document\": \"Nowy dokument\",\n\"Ok\": \"Ok\",\n\"Cancel\": \"Anuluj\",\n\"Visual aids\": \"Pomoce wizualne\",\n\"Bold\": \"Pogrubienie\",\n\"Italic\": \"Kursywa\",\n\"Underline\": \"Podkre\\u015blenie\",\n\"Strikethrough\": \"Przekre\\u015blenie\",\n\"Superscript\": \"Indeks g\\u00f3rny\",\n\"Subscript\": \"Indeks dolny\",\n\"Clear formatting\": \"Wyczy\\u015b\\u0107 formatowanie\",\n\"Align left\": \"Wyr\\u00f3wnaj do lewej\",\n\"Align center\": \"Wyr\\u00f3wnaj do \\u015brodka\",\n\"Align right\": \"Wyr\\u00f3wnaj do prawej\",\n\"Justify\": \"Do lewej i prawej\",\n\"Bullet list\": \"Lista wypunktowana\",\n\"Numbered list\": \"Lista numerowana\",\n\"Decrease indent\": \"Zmniejsz wci\\u0119cie\",\n\"Increase indent\": \"Zwi\\u0119ksz wci\\u0119cie\",\n\"Close\": \"Zamknij\",\n\"Formats\": \"Formaty\",\n\"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\\/C\\/V keyboard shortcuts instead.\": \"Twoja przegl\\u0105darka nie obs\\u0142uguje bezpo\\u015bredniego dost\\u0119pu do schowka. U\\u017cyj zamiast tego kombinacji klawiszy Ctrl+X\\/C\\/V.\",\n\"Headers\": \"Nag\\u0142\\u00f3wki\",\n\"Header 1\": \"Nag\\u0142\\u00f3wek 1\",\n\"Header 2\": \"Nag\\u0142\\u00f3wek 2\",\n\"Header 3\": \"Nag\\u0142\\u00f3wek 3\",\n\"Header 4\": \"Nag\\u0142\\u00f3wek 4\",\n\"Header 5\": \"Nag\\u0142\\u00f3wek 5\",\n\"Header 6\": \"Nag\\u0142\\u00f3wek 6\",\n\"Headings\": \"Nag\\u0142\\u00f3wki\",\n\"Heading 1\": \"Nag\\u0142\\u00f3wek 1\",\n\"Heading 2\": \"Nag\\u0142\\u00f3wek 2\",\n\"Heading 3\": \"Nag\\u0142\\u00f3wek 3\",\n\"Heading 4\": \"Nag\\u0142\\u00f3wek 4\",\n\"Heading 5\": \"Nag\\u0142\\u00f3wek 5\",\n\"Heading 6\": \"Nag\\u0142\\u00f3wek 6\",\n\"Preformatted\": \"Sformatowany tekst\",\n\"Div\": \"Div\",\n\"Pre\": \"Sformatowany tekst\",\n\"Code\": \"Kod \\u017ar\\u00f3d\\u0142owy\",\n\"Paragraph\": \"Akapit\",\n\"Blockquote\": \"Blok cytatu\",\n\"Inline\": \"W tek\\u015bcie\",\n\"Blocks\": \"Bloki\",\n\"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\": \"Wklejanie jest w trybie tekstowym. Zawarto\\u015b\\u0107 zostanie wklejona jako zwyk\\u0142y tekst dop\\u00f3ki nie wy\\u0142\\u0105czysz tej opcji.\",\n\"Fonts\": \"Fonty\",\n\"Font Sizes\": \"Rozmiar fontu\",\n\"Class\": \"Klasa\",\n\"Browse for an image\": \"Przegl\\u0105daj za zdj\\u0119ciem\",\n\"OR\": \"LUB\",\n\"Drop an image here\": \"Upu\\u015b\\u0107 obraz tutaj\",\n\"Upload\": \"Prze\\u015blij\",\n\"Block\": \"Zablokuj\",\n\"Align\": \"Wyr\\u00f3wnaj\",\n\"Default\": \"Domy\\u015blne\",\n\"Circle\": \"K\\u00f3\\u0142ko\",\n\"Disc\": \"Dysk\",\n\"Square\": \"Kwadrat\",\n\"Lower Alpha\": \"Ma\\u0142e litery\",\n\"Lower Greek\": \"Ma\\u0142e greckie\",\n\"Lower Roman\": \"Ma\\u0142e rzymskie\",\n\"Upper Alpha\": \"Wielkie litery\",\n\"Upper Roman\": \"Wielkie rzymskie\",\n\"Anchor...\": \"Kotwica...\",\n\"Name\": \"Nazwa\",\n\"Id\": \"Identyfikator\",\n\"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.\": \"Identyfikator powinien zaczyna\\u0107 si\\u0119 liter\\u0105, dozwolone s\\u0105 tylko litery, numery, uko\\u015bniki, kropki, dwukropki i podkre\\u015blniki - tzw. pod\\u0142ogi\",\n\"You have unsaved changes are you sure you want to navigate away?\": \"Masz niezapisane zmiany. Czy na pewno chcesz opu\\u015bci\\u0107 stron\\u0119?\",\n\"Restore last draft\": \"Przywr\\u00f3\\u0107 ostatni szkic\",\n\"Special characters...\": \"Znaki specjalne...\",\n\"Source code\": \"Kod \\u017ar\\u00f3d\\u0142owy\",\n\"Insert\\/Edit code sample\": \"Dodaj\\/Edytuj przyk\\u0142adowy kod\",\n\"Language\": \"J\\u0119zyk\",\n\"Code sample...\": \"Przyk\\u0142ad kodu...\",\n\"Color Picker\": \"Wybierz kolor\",\n\"R\": \"R\",\n\"G\": \"G\",\n\"B\": \"B\",\n\"Left to right\": \"Od lewej do prawej\",\n\"Right to left\": \"Od prawej do lewej\",\n\"Emoticons...\": \"Emotikony...\",\n\"Metadata and Document Properties\": \"Metadane i w\\u0142a\\u015bciwo\\u015bci dokumentu\",\n\"Title\": \"Tytu\\u0142\",\n\"Keywords\": \"S\\u0142owa kluczowe\",\n\"Description\": \"Opis\",\n\"Robots\": \"Roboty\",\n\"Author\": \"Autor\",\n\"Encoding\": \"Kodowanie\",\n\"Fullscreen\": \"Pe\\u0142ny ekran\",\n\"Action\": \"Akcja\",\n\"Shortcut\": \"Skr\\u00f3t\",\n\"Help\": \"Pomoc\",\n\"Address\": \"Adres\",\n\"Focus to menubar\": \"Skup si\\u0119 na pasku menu\",\n\"Focus to toolbar\": \"Skupi\\u0107 si\\u0119 na pasku\",\n\"Focus to element path\": \"Skup si\\u0119 na \\u015bcie\\u017cce elementu\",\n\"Focus to contextual toolbar\": \"Skupi\\u0107 si\\u0119 na pasku narz\\u0119dzi kontekstowych\",\n\"Insert link (if link plugin activated)\": \"Wstaw \\u0142\\u0105cze (je\\u015bli w\\u0142\\u0105czysz wtyczk\\u0119 link\\u00f3w)\",\n\"Save (if save plugin activated)\": \"Zapisz (je\\u015bli aktywowana jest wtyczka do zapisu)\",\n\"Find (if searchreplace plugin activated)\": \"Znajd\\u017a (je\\u015bli w\\u0142\\u0105czysz wtyczk\\u0119 do wyszukiwania)\",\n\"Plugins installed ({0}):\": \"Zainstalowane wtyczki ({0}):\",\n\"Premium plugins:\": \"Wtyczki Premium:\",\n\"Learn more...\": \"Dowiedz si\\u0119 wi\\u0119cej...\",\n\"You are using {0}\": \"U\\u017cywasz {0}\",\n\"Plugins\": \"Pluginy\",\n\"Handy Shortcuts\": \"Przydatne skr\\u00f3ty\",\n\"Horizontal line\": \"Pozioma linia\",\n\"Insert\\/edit image\": \"Wstaw\\/edytuj obrazek\",\n\"Image description\": \"Opis obrazka\",\n\"Source\": \"\\u0179r\\u00f3d\\u0142o\",\n\"Dimensions\": \"Wymiary\",\n\"Constrain proportions\": \"Zachowaj proporcje\",\n\"General\": \"Og\\u00f3lne\",\n\"Advanced\": \"Zaawansowane\",\n\"Style\": \"Styl\",\n\"Vertical space\": \"Odst\\u0119p pionowy\",\n\"Horizontal space\": \"Odst\\u0119p poziomy\",\n\"Border\": \"Ramka\",\n\"Insert image\": \"Wstaw obrazek\",\n\"Image...\": \"Obraz...\",\n\"Image list\": \"Lista obrazk\\u00f3w\",\n\"Rotate counterclockwise\": \"Obr\\u00f3\\u0107 w lewo\",\n\"Rotate clockwise\": \"Obr\\u00f3\\u0107 w prawo\",\n\"Flip vertically\": \"Przerzu\\u0107 w pionie\",\n\"Flip horizontally\": \"Przerzu\\u0107 w poziomie\",\n\"Edit image\": \"Edytuj obrazek\",\n\"Image options\": \"Opcje obrazu\",\n\"Zoom in\": \"Powi\\u0119ksz\",\n\"Zoom out\": \"Pomniejsz\",\n\"Crop\": \"Przytnij\",\n\"Resize\": \"Zmiana rozmiaru\",\n\"Orientation\": \"Orientacja\",\n\"Brightness\": \"Jasno\\u015b\\u0107\",\n\"Sharpen\": \"Wyostrz\",\n\"Contrast\": \"Kontrast\",\n\"Color levels\": \"Poziom koloru\",\n\"Gamma\": \"Gamma\",\n\"Invert\": \"Odwr\\u00f3\\u0107\",\n\"Apply\": \"Zaakceptuj\",\n\"Back\": \"Cofnij\",\n\"Insert date\\/time\": \"Wstaw dat\\u0119\\/czas\",\n\"Date\\/time\": \"Data\\/Czas\",\n\"Insert\\/Edit Link\": \"Wstaw\\/Dostosuj \\u0142\\u0105cze\",\n\"Insert\\/edit link\": \"Wstaw\\/edytuj \\u0142\\u0105cze\",\n\"Text to display\": \"Tekst do wy\\u015bwietlenia\",\n\"Url\": \"URL\",\n\"Open link in...\": \"Otw\\u00f3rz \\u0142\\u0105cze w...\",\n\"Current window\": \"Aktualne okno\",\n\"None\": \"\\u017baden\",\n\"New window\": \"Nowe okno\",\n\"Remove link\": \"Usu\\u0144 \\u0142\\u0105cze\",\n\"Anchors\": \"Kotwice\",\n\"Link...\": \"\\u0141\\u0105cze...\",\n\"Paste or type a link\": \"Wklej lub wpisz adres \\u0142\\u0105cza\",\n\"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?\": \"URL, kt\\u00f3ry wprowadzi\\u0142e\\u015b wygl\\u0105da na adres e-mail. Czy chcesz doda\\u0107 mailto: jako prefiks?\",\n\"The URL you entered seems to be an external link. Do you want to add the required http:\\/\\/ prefix?\": \"URL, kt\\u00f3ry wprowadzi\\u0142e\\u015b wygl\\u0105da na link zewn\\u0119trzny. Czy chcesz doda\\u0107 http:\\/\\/ jako prefiks?\",\n\"Link list\": \"Lista link\\u00f3w\",\n\"Insert video\": \"Wstaw wideo\",\n\"Insert\\/edit video\": \"Wstaw\\/edytuj wideo\",\n\"Insert\\/edit media\": \"Wstaw\\/Edytuj media\",\n\"Alternative source\": \"Alternatywne \\u017ar\\u00f3d\\u0142o\",\n\"Alternative source URL\": \"Alternatywny URL \\u017ar\\u00f3d\\u0142a\",\n\"Media poster (Image URL)\": \"Plakat (URL obrazu)\",\n\"Paste your embed code below:\": \"Wklej tutaj kod do osadzenia:\",\n\"Embed\": \"Osad\\u017a\",\n\"Media...\": \"Media...\",\n\"Nonbreaking space\": \"Nie\\u0142amliwa spacja\",\n\"Page break\": \"Podzia\\u0142 strony\",\n\"Paste as text\": \"Wklej jako zwyk\\u0142y tekst\",\n\"Preview\": \"Podgl\\u0105d\",\n\"Print...\": \"Drukuj...\",\n\"Save\": \"Zapisz\",\n\"Find\": \"Znajd\\u017a\",\n\"Replace with\": \"Zamie\\u0144 na\",\n\"Replace\": \"Zamie\\u0144\",\n\"Replace all\": \"Zamie\\u0144 wszystko\",\n\"Previous\": \"Poprzedni\",\n\"Next\": \"Nast.\",\n\"Find and replace...\": \"Znajd\\u017a i zamie\\u0144...\",\n\"Could not find the specified string.\": \"Nie znaleziono szukanego tekstu.\",\n\"Match case\": \"Dopasuj wielko\\u015b\\u0107 liter\",\n\"Find whole words only\": \"Znajd\\u017a tylko ca\\u0142e wyrazy\",\n\"Spell check\": \"Sprawd\\u017a pisowni\\u0119\",\n\"Ignore\": \"Ignoruj\",\n\"Ignore all\": \"Ignoruj wszystko\",\n\"Finish\": \"Zako\\u0144cz\",\n\"Add to Dictionary\": \"Dodaj do s\\u0142ownika\",\n\"Insert table\": \"Wstaw tabel\\u0119\",\n\"Table properties\": \"W\\u0142a\\u015bciwo\\u015bci tabeli\",\n\"Delete table\": \"Usu\\u0144 tabel\\u0119\",\n\"Cell\": \"Kom\\u00f3rka\",\n\"Row\": \"Wiersz\",\n\"Column\": \"Kolumna\",\n\"Cell properties\": \"W\\u0142a\\u015bciwo\\u015bci kom\\u00f3rki\",\n\"Merge cells\": \"\\u0141\\u0105cz kom\\u00f3rki\",\n\"Split cell\": \"Podziel kom\\u00f3rk\\u0119\",\n\"Insert row before\": \"Wstaw wiersz przed\",\n\"Insert row after\": \"Wstaw wiersz po\",\n\"Delete row\": \"Usu\\u0144 wiersz\",\n\"Row properties\": \"W\\u0142a\\u015bciwo\\u015bci wiersza\",\n\"Cut row\": \"Wytnij wiersz\",\n\"Copy row\": \"Kopiuj wiersz\",\n\"Paste row before\": \"Wklej wiersz przed\",\n\"Paste row after\": \"Wklej wiersz po\",\n\"Insert column before\": \"Wstaw kolumn\\u0119 przed\",\n\"Insert column after\": \"Wstaw kolumn\\u0119 po\",\n\"Delete column\": \"Usu\\u0144 kolumn\\u0119\",\n\"Cols\": \"Kol.\",\n\"Rows\": \"Wiersz.\",\n\"Width\": \"Szeroko\\u015b\\u0107\",\n\"Height\": \"Wysoko\\u015b\\u0107\",\n\"Cell spacing\": \"Odst\\u0119py kom\\u00f3rek\",\n\"Cell padding\": \"Dope\\u0142nienie kom\\u00f3rki\",\n\"Show caption\": \"Poka\\u017c podpis\",\n\"Left\": \"Lewo\",\n\"Center\": \"\\u015arodek\",\n\"Right\": \"Prawo\",\n\"Cell type\": \"Typ kom\\u00f3rki\",\n\"Scope\": \"Kontekst\",\n\"Alignment\": \"Wyr\\u00f3wnanie\",\n\"H Align\": \"Wyr\\u00f3wnanie w pionie\",\n\"V Align\": \"Wyr\\u00f3wnanie w poziomie\",\n\"Top\": \"G\\u00f3ra\",\n\"Middle\": \"\\u015arodek\",\n\"Bottom\": \"D\\u00f3\\u0142\",\n\"Header cell\": \"Kom\\u00f3rka nag\\u0142\\u00f3wka\",\n\"Row group\": \"Grupa wierszy\",\n\"Column group\": \"Grupa kolumn\",\n\"Row type\": \"Typ wiersza\",\n\"Header\": \"Nag\\u0142\\u00f3wek\",\n\"Body\": \"Tre\\u015b\\u0107\",\n\"Footer\": \"Stopka\",\n\"Border color\": \"Kolor ramki\",\n\"Insert template...\": \"Wstaw szablon...\",\n\"Templates\": \"Szablony\",\n\"Template\": \"Szablon\",\n\"Text color\": \"Kolor tekstu\",\n\"Background color\": \"Kolor t\\u0142a\",\n\"Custom...\": \"Niestandardowy...\",\n\"Custom color\": \"Kolor niestandardowy\",\n\"No color\": \"Bez koloru\",\n\"Remove color\": \"Usu\\u0144 kolor\",\n\"Table of Contents\": \"Spis tre\\u015bci\",\n\"Show blocks\": \"Poka\\u017c bloki\",\n\"Show invisible characters\": \"Poka\\u017c niewidoczne znaki\",\n\"Word count\": \"Liczba s\\u0142\\u00f3w\",\n\"Words: {0}\": \"S\\u0142\\u00f3w: {0}\",\n\"{0} words\": \"{0} s\\u0142\\u00f3w\",\n\"File\": \"Plik\",\n\"Edit\": \"Edycja\",\n\"Insert\": \"Wstaw\",\n\"View\": \"Widok\",\n\"Format\": \"Format\",\n\"Table\": \"Tabela\",\n\"Tools\": \"Narz\\u0119dzia\",\n\"Powered by {0}\": \"Powered by {0}\",\n\"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help\": \"Obszar Edycji. ALT-F9 - menu. ALT-F10 - pasek narz\\u0119dzi. ALT-0 - pomoc\",\n\"Image title\": \"Tytu\\u0142 obrazu\",\n\"Border width\": \"Grubo\\u015b\\u0107 ramki\",\n\"Border style\": \"Styl ramki\",\n\"Error\": \"B\\u0142\\u0105d\",\n\"Warn\": \"Ostrze\\u017cenie\",\n\"Valid\": \"Poprawny\",\n\"To open the popup, press Shift+Enter\": \"Aby otworzy\\u0107 okienko, naci\\u015bnij Shift+Enter\",\n\"Rich Text Area. Press ALT-0 for help.\": \"Obszar tekstu sformatowanego. Naci\\u015bnij ALT-0 aby uzyska\\u0107 pomoc.\",\n\"System Font\": \"Font systemowy\",\n\"Failed to upload image: {0}\": \"Nie uda\\u0142o si\\u0119 przes\\u0142a\\u0107 obrazu: {0}\",\n\"Failed to load plugin: {0} from url {1}\": \"Nie uda\\u0142o si\\u0119 za\\u0142adowa\\u0107 wtyczki: {0} z adresu {1}\",\n\"Failed to load plugin url: {0}\": \"Nie uda\\u0142o si\\u0119 za\\u0142adowa\\u0107 adresu wtyczki: {0}\",\n\"Failed to initialize plugin: {0}\": \"Nie mo\\u017cna zainicjowa\\u0107 wtyczki: {0}\",\n\"example\": \"przyk\\u0142ad\",\n\"Search\": \"Znajd\\u017a\",\n\"All\": \"Wszystkie\",\n\"Currency\": \"Waluty\",\n\"Text\": \"Tekstowe\",\n\"Quotations\": \"Cudzys\\u0142owy\",\n\"Mathematical\": \"Matematyczne\",\n\"Extended Latin\": \"Dodatkowe\",\n\"Symbols\": \"Symbole\",\n\"Arrows\": \"Strza\\u0142ki\",\n\"User Defined\": \"W\\u0142asny\",\n\"dollar sign\": \"znak dolara\",\n\"currency sign\": \"znak waluty\",\n\"euro-currency sign\": \"znak euro\",\n\"colon sign\": \"znak colon\",\n\"cruzeiro sign\": \"znak cruzeiro\",\n\"french franc sign\": \"znak franka francuskiego\",\n\"lira sign\": \"znak liry\",\n\"mill sign\": \"znak mill\",\n\"naira sign\": \"znak nairy\",\n\"peseta sign\": \"znak pesety\",\n\"rupee sign\": \"znak rupii\",\n\"won sign\": \"znak wona\",\n\"new sheqel sign\": \"znak nowego szekla\",\n\"dong sign\": \"znak donga\",\n\"kip sign\": \"znak kipa\",\n\"tugrik sign\": \"znak tugrika\",\n\"drachma sign\": \"znak drachmy\",\n\"german penny symbol\": \"znak feniga\",\n\"peso sign\": \"znak peso\",\n\"guarani sign\": \"znak guarani\",\n\"austral sign\": \"znak australa\",\n\"hryvnia sign\": \"znak hrywny\",\n\"cedi sign\": \"znak cedi\",\n\"livre tournois sign\": \"znak livre tournois\",\n\"spesmilo sign\": \"znak spesmilo\",\n\"tenge sign\": \"znak tenge\",\n\"indian rupee sign\": \"znak rupii indyjskiej\",\n\"turkish lira sign\": \"znak liry tureckiej\",\n\"nordic mark sign\": \"znak nordic mark\",\n\"manat sign\": \"znak manata\",\n\"ruble sign\": \"znak rubla\",\n\"yen character\": \"znak jena\",\n\"yuan character\": \"znak juana\",\n\"yuan character, in hong kong and taiwan\": \"znak juana w Hongkongu i Tajwanie\",\n\"yen\\/yuan character variant one\": \"jen\\/juan wariant pierwszy\",\n\"Loading emoticons...\": \"\\u0141adowanie emotikon\\u00f3w...\",\n\"Could not load emoticons\": \"Nie mo\\u017cna za\\u0142adowa\\u0107 emotikon\\u00f3w\",\n\"People\": \"Ludzie\",\n\"Animals and Nature\": \"Zwierz\\u0119ta i natura\",\n\"Food and Drink\": \"Jedzenie i picie\",\n\"Activity\": \"Aktywno\\u015b\\u0107\",\n\"Travel and Places\": \"Podr\\u00f3\\u017ce i miejsca\",\n\"Objects\": \"Obiekty\",\n\"Flags\": \"Flagi\",\n\"Characters\": \"Znak\\u00f3w\",\n\"Characters (no spaces)\": \"Znak\\u00f3w (bez spacji)\",\n\"Error: Form submit field collision.\": \"B\\u0142\\u0105d: Kolizja pola przesy\\u0142ania formularza.\",\n\"Error: No form element found.\": \"B\\u0142\\u0105d: nie znaleziono elementu formularza.\",\n\"Update\": \"Aktualizuj\",\n\"Color swatch\": \"Pr\\u00f3bka koloru\",\n\"Turquoise\": \"Turkusowy\",\n\"Green\": \"Zielony\",\n\"Blue\": \"Niebieski\",\n\"Purple\": \"Purpurowy\",\n\"Navy Blue\": \"Ciemnoniebieski\",\n\"Dark Turquoise\": \"Ciemny Turkusowy\",\n\"Dark Green\": \"Ciemny Zielony\",\n\"Medium Blue\": \"\\u015aredni Niebieski\",\n\"Medium Purple\": \"\\u015aredni Purpurowy\",\n\"Midnight Blue\": \"Niebieska p\\u00f3\\u0142noc, Midnight Blue\",\n\"Yellow\": \"\\u017b\\u00f3\\u0142ty\",\n\"Orange\": \"Pomara\\u0144czowy\",\n\"Red\": \"Czerwony\",\n\"Light Gray\": \"Jasny Szary\",\n\"Gray\": \"Szary\",\n\"Dark Yellow\": \"Ciemny \\u017b\\u00f3\\u0142ty\",\n\"Dark Orange\": \"Ciemny Pomara\\u0144czowy\",\n\"Dark Red\": \"Ciemny Czerwony\",\n\"Medium Gray\": \"\\u015aredni Szary\",\n\"Dark Gray\": \"Ciemny Szary\",\n\"Black\": \"Czarny\",\n\"White\": \"Bia\\u0142y\",\n\"Switch to or from fullscreen mode\": \"W\\u0142\\u0105cz lub wy\\u0142\\u0105cz tryb pe\\u0142noekranowy\",\n\"Open help dialog\": \"Otw\\u00f3rz okienko pomocy\",\n\"history\": \"historia\",\n\"styles\": \"style\",\n\"formatting\": \"formatowanie\",\n\"alignment\": \"wyr\\u00f3wnanie\",\n\"indentation\": \"wci\\u0119cie\",\n\"permanent pen\": \"marker\",\n\"comments\": \"komentarze\",\n\"Anchor\": \"Kotwica\",\n\"Special character\": \"Znak specjalny\",\n\"Code sample\": \"Przyk\\u0142ad kodu \\u017ar\\u00f3d\\u0142owego\",\n\"Color\": \"Kolor\",\n\"Emoticons\": \"Ikony emocji\",\n\"Document properties\": \"W\\u0142a\\u015bciwo\\u015bci dokumentu\",\n\"Image\": \"Obraz\",\n\"Insert link\": \"Wstaw \\u0142\\u0105cze\",\n\"Target\": \"Cel\",\n\"Link\": \"Adres \\u0142\\u0105cza\",\n\"Poster\": \"Plakat\",\n\"Media\": \"Media\",\n\"Print\": \"Drukuj\",\n\"Prev\": \"Poprz.\",\n\"Find and replace\": \"Znajd\\u017a i zamie\\u0144\",\n\"Whole words\": \"Ca\\u0142e s\\u0142owa\",\n\"Spellcheck\": \"Sprawdzanie pisowni\",\n\"Caption\": \"Tytu\\u0142\",\n\"Insert template\": \"Wstaw szablon\"\n});","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');","// Exports the \"directionality\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/directionality')\n// ES2015:\n// import 'tinymce/plugins/directionality'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar advlist = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var applyListFormat = function (editor, listName, styleValue) {\n var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';\n editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });\n };\n var Actions = { applyListFormat: applyListFormat };\n\n var register = function (editor) {\n editor.addCommand('ApplyUnorderedListStyle', function (ui, value) {\n Actions.applyListFormat(editor, 'UL', value['list-style-type']);\n });\n editor.addCommand('ApplyOrderedListStyle', function (ui, value) {\n Actions.applyListFormat(editor, 'OL', value['list-style-type']);\n });\n };\n var Commands = { register: register };\n\n var getNumberStyles = function (editor) {\n var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman');\n return styles ? styles.split(/[ ,]/) : [];\n };\n var getBulletStyles = function (editor) {\n var styles = editor.getParam('advlist_bullet_styles', 'default,circle,square');\n return styles ? styles.split(/[ ,]/) : [];\n };\n var Settings = {\n getNumberStyles: getNumberStyles,\n getBulletStyles: getBulletStyles\n };\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var isChildOfBody = function (editor, elm) {\n return editor.$.contains(editor.getBody(), elm);\n };\n var isTableCellNode = function (node) {\n return node && /^(TH|TD)$/.test(node.nodeName);\n };\n var isListNode = function (editor) {\n return function (node) {\n return node && /^(OL|UL|DL)$/.test(node.nodeName) && isChildOfBody(editor, node);\n };\n };\n var getSelectedStyleType = function (editor) {\n var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');\n var style = editor.dom.getStyle(listElm, 'listStyleType');\n return Option.from(style);\n };\n var ListUtils = {\n isTableCellNode: isTableCellNode,\n isListNode: isListNode,\n getSelectedStyleType: getSelectedStyleType\n };\n\n var findIndex = function (list, predicate) {\n for (var index = 0; index < list.length; index++) {\n var element = list[index];\n if (predicate(element)) {\n return index;\n }\n }\n return -1;\n };\n var styleValueToText = function (styleValue) {\n return styleValue.replace(/\\-/g, ' ').replace(/\\b\\w/g, function (chr) {\n return chr.toUpperCase();\n });\n };\n var isWithinList = function (editor, e, nodeName) {\n var tableCellIndex = findIndex(e.parents, ListUtils.isTableCellNode);\n var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;\n var lists = global$1.grep(parents, ListUtils.isListNode(editor));\n return lists.length > 0 && lists[0].nodeName === nodeName;\n };\n var addSplitButton = function (editor, id, tooltip, cmd, nodeName, styles) {\n editor.ui.registry.addSplitButton(id, {\n tooltip: tooltip,\n icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list',\n presets: 'listpreview',\n columns: 3,\n fetch: function (callback) {\n var items = global$1.map(styles, function (styleValue) {\n var iconStyle = nodeName === 'OL' ? 'num' : 'bull';\n var iconName = styleValue === 'disc' || styleValue === 'decimal' ? 'default' : styleValue;\n var itemValue = styleValue === 'default' ? '' : styleValue;\n var displayText = styleValueToText(styleValue);\n return {\n type: 'choiceitem',\n value: itemValue,\n icon: 'list-' + iconStyle + '-' + iconName,\n text: displayText\n };\n });\n callback(items);\n },\n onAction: function () {\n return editor.execCommand(cmd);\n },\n onItemAction: function (splitButtonApi, value) {\n Actions.applyListFormat(editor, nodeName, value);\n },\n select: function (value) {\n var listStyleType = ListUtils.getSelectedStyleType(editor);\n return listStyleType.map(function (listStyle) {\n return value === listStyle;\n }).getOr(false);\n },\n onSetup: function (api) {\n var nodeChangeHandler = function (e) {\n api.setActive(isWithinList(editor, e, nodeName));\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n }\n });\n };\n var addButton = function (editor, id, tooltip, cmd, nodeName, styles) {\n editor.ui.registry.addToggleButton(id, {\n active: false,\n tooltip: tooltip,\n icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list',\n onSetup: function (api) {\n var nodeChangeHandler = function (e) {\n api.setActive(isWithinList(editor, e, nodeName));\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n },\n onAction: function () {\n return editor.execCommand(cmd);\n }\n });\n };\n var addControl = function (editor, id, tooltip, cmd, nodeName, styles) {\n if (styles.length > 0) {\n addSplitButton(editor, id, tooltip, cmd, nodeName, styles);\n } else {\n addButton(editor, id, tooltip, cmd, nodeName, styles);\n }\n };\n var register$1 = function (editor) {\n addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', Settings.getNumberStyles(editor));\n addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', Settings.getBulletStyles(editor));\n };\n var Buttons = { register: register$1 };\n\n global.add('advlist', function (editor) {\n var hasPlugin = function (editor, plugin) {\n var plugins = editor.settings.plugins ? editor.settings.plugins : '';\n return global$1.inArray(plugins.split(/[ ,]/), plugin) !== -1;\n };\n if (hasPlugin(editor, 'lists')) {\n Buttons.register(editor);\n Commands.register(editor);\n }\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar autosave = (function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var fireRestoreDraft = function (editor) {\n return editor.fire('RestoreDraft');\n };\n var fireStoreDraft = function (editor) {\n return editor.fire('StoreDraft');\n };\n var fireRemoveDraft = function (editor) {\n return editor.fire('RemoveDraft');\n };\n\n var parse = function (timeString, defaultTime) {\n var multiples = {\n s: 1000,\n m: 60000\n };\n var toParse = timeString || defaultTime;\n var parsedTime = /^(\\d+)([ms]?)$/.exec('' + toParse);\n return (parsedTime[2] ? multiples[parsedTime[2]] : 1) * parseInt(toParse, 10);\n };\n\n var shouldAskBeforeUnload = function (editor) {\n return editor.getParam('autosave_ask_before_unload', true);\n };\n var getAutoSavePrefix = function (editor) {\n var prefix = editor.getParam('autosave_prefix', 'tinymce-autosave-{path}{query}{hash}-{id}-');\n prefix = prefix.replace(/\\{path\\}/g, domGlobals.document.location.pathname);\n prefix = prefix.replace(/\\{query\\}/g, domGlobals.document.location.search);\n prefix = prefix.replace(/\\{hash\\}/g, domGlobals.document.location.hash);\n prefix = prefix.replace(/\\{id\\}/g, editor.id);\n return prefix;\n };\n var shouldRestoreWhenEmpty = function (editor) {\n return editor.getParam('autosave_restore_when_empty', false);\n };\n var getAutoSaveInterval = function (editor) {\n return parse(editor.settings.autosave_interval, '30s');\n };\n var getAutoSaveRetention = function (editor) {\n return parse(editor.settings.autosave_retention, '20m');\n };\n\n var isEmpty = function (editor, html) {\n var forcedRootBlockName = editor.settings.forced_root_block;\n html = global$3.trim(typeof html === 'undefined' ? editor.getBody().innerHTML : html);\n return html === '' || new RegExp('^<' + forcedRootBlockName + '[^>]*>((\\xA0| |[ \\t]|]*>)+?|)|
$', 'i').test(html);\n };\n var hasDraft = function (editor) {\n var time = parseInt(global$2.getItem(getAutoSavePrefix(editor) + 'time'), 10) || 0;\n if (new Date().getTime() - time > getAutoSaveRetention(editor)) {\n removeDraft(editor, false);\n return false;\n }\n return true;\n };\n var removeDraft = function (editor, fire) {\n var prefix = getAutoSavePrefix(editor);\n global$2.removeItem(prefix + 'draft');\n global$2.removeItem(prefix + 'time');\n if (fire !== false) {\n fireRemoveDraft(editor);\n }\n };\n var storeDraft = function (editor) {\n var prefix = getAutoSavePrefix(editor);\n if (!isEmpty(editor) && editor.isDirty()) {\n global$2.setItem(prefix + 'draft', editor.getContent({\n format: 'raw',\n no_events: true\n }));\n global$2.setItem(prefix + 'time', new Date().getTime().toString());\n fireStoreDraft(editor);\n }\n };\n var restoreDraft = function (editor) {\n var prefix = getAutoSavePrefix(editor);\n if (hasDraft(editor)) {\n editor.setContent(global$2.getItem(prefix + 'draft'), { format: 'raw' });\n fireRestoreDraft(editor);\n }\n };\n var startStoreDraft = function (editor, started) {\n var interval = getAutoSaveInterval(editor);\n if (!started.get()) {\n global$1.setInterval(function () {\n if (!editor.removed) {\n storeDraft(editor);\n }\n }, interval);\n started.set(true);\n }\n };\n var restoreLastDraft = function (editor) {\n editor.undoManager.transact(function () {\n restoreDraft(editor);\n removeDraft(editor);\n });\n editor.focus();\n };\n\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n\n var get = function (editor) {\n return {\n hasDraft: curry(hasDraft, editor),\n storeDraft: curry(storeDraft, editor),\n restoreDraft: curry(restoreDraft, editor),\n removeDraft: curry(removeDraft, editor),\n isEmpty: curry(isEmpty, editor)\n };\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n global$4._beforeUnloadHandler = function () {\n var msg;\n global$3.each(global$4.get(), function (editor) {\n if (editor.plugins.autosave) {\n editor.plugins.autosave.storeDraft();\n }\n if (!msg && editor.isDirty() && shouldAskBeforeUnload(editor)) {\n msg = editor.translate('You have unsaved changes are you sure you want to navigate away?');\n }\n });\n return msg;\n };\n var setup = function (editor) {\n domGlobals.window.onbeforeunload = global$4._beforeUnloadHandler;\n };\n\n var makeSetupHandler = function (editor, started) {\n return function (api) {\n api.setDisabled(!hasDraft(editor));\n var editorEventCallback = function () {\n return api.setDisabled(!hasDraft(editor));\n };\n editor.on('StoreDraft RestoreDraft RemoveDraft', editorEventCallback);\n return function () {\n return editor.off('StoreDraft RestoreDraft RemoveDraft', editorEventCallback);\n };\n };\n };\n var register = function (editor, started) {\n startStoreDraft(editor, started);\n editor.ui.registry.addButton('restoredraft', {\n tooltip: 'Restore last draft',\n icon: 'restore-draft',\n onAction: function () {\n restoreLastDraft(editor);\n },\n onSetup: makeSetupHandler(editor, started)\n });\n editor.ui.registry.addMenuItem('restoredraft', {\n text: 'Restore last draft',\n icon: 'restore-draft',\n onAction: function () {\n restoreLastDraft(editor);\n },\n onSetup: makeSetupHandler(editor, started)\n });\n };\n\n global.add('autosave', function (editor) {\n var started = Cell(false);\n setup(editor);\n register(editor, started);\n editor.on('init', function () {\n if (shouldRestoreWhenEmpty(editor) && editor.dom.isEmpty(editor.getBody())) {\n restoreDraft(editor);\n }\n });\n return get(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","// Exports the \"wordcount\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/wordcount')\n// ES2015:\n// import 'tinymce/plugins/wordcount'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar table = (function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var noarg = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f();\n };\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var tripleEquals = function (a, b) {\n return a === b;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var apply = function (f) {\n return f();\n };\n var call = function (f) {\n f();\n };\n var never = constant(false);\n var always = constant(true);\n\n var Fun = /*#__PURE__*/Object.freeze({\n noop: noop,\n noarg: noarg,\n compose: compose,\n constant: constant,\n identity: identity,\n tripleEquals: tripleEquals,\n curry: curry,\n not: not,\n die: die,\n apply: apply,\n call: call,\n never: never,\n always: always\n });\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isArray = isType('array');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var rawIndexOf = function () {\n var pIndexOf = Array.prototype.indexOf;\n var fastIndex = function (xs, x) {\n return pIndexOf.call(xs, x);\n };\n var slowIndex = function (xs, x) {\n return slowIndexOf(xs, x);\n };\n return pIndexOf === undefined ? slowIndex : fastIndex;\n }();\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Option.none() : Option.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n return findIndex(xs, pred).isSome();\n };\n var range = function (num, f) {\n var r = [];\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n var chunk = function (array, size) {\n var r = [];\n for (var i = 0; i < array.length; i += size) {\n var s = array.slice(i, i + size);\n r.push(s);\n }\n return r;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i, xs) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n r.push(x);\n }\n }\n return r;\n };\n var groupBy = function (xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var slowIndexOf = function (xs, x) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (xs[i] === x) {\n return i;\n }\n }\n return -1;\n };\n var push = Array.prototype.push;\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!Array.prototype.isPrototypeOf(xs[i]))\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n push.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i, xs) !== true) {\n return false;\n }\n }\n return true;\n };\n var equal = function (a1, a2) {\n return a1.length === a2.length && forall(a1, function (x, i) {\n return x === a2[i];\n });\n };\n var slice = Array.prototype.slice;\n var reverse = function (xs) {\n var r = slice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var mapToObject = function (xs, f) {\n var r = {};\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n var pure = function (x) {\n return [x];\n };\n var sort = function (xs, comparator) {\n var copy = slice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var Arr = /*#__PURE__*/Object.freeze({\n indexOf: indexOf,\n contains: contains,\n exists: exists,\n range: range,\n chunk: chunk,\n map: map,\n each: each,\n eachr: eachr,\n partition: partition,\n filter: filter,\n groupBy: groupBy,\n foldr: foldr,\n foldl: foldl,\n find: find,\n findIndex: findIndex,\n flatten: flatten,\n bind: bind,\n forall: forall,\n equal: equal,\n reverse: reverse,\n difference: difference,\n mapToObject: mapToObject,\n pure: pure,\n sort: sort,\n head: head,\n last: last,\n from: from$1\n });\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i, obj);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i, obj) {\n return {\n k: i,\n v: f(x, i, obj)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i, obj);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var sort$1 = function (arr) {\n return arr.slice(0).sort();\n };\n var reqMessage = function (required, keys) {\n throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');\n };\n var unsuppMessage = function (unsupported) {\n throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));\n };\n var validateStrArr = function (label, array) {\n if (!isArray(array))\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n each(array, function (a) {\n if (!isString(a))\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n });\n };\n var invalidTypeMessage = function (incorrect, type) {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.');\n };\n var checkDupes = function (everything) {\n var sorted = sort$1(everything);\n var dupe = find(sorted, function (s, i) {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(function (d) {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n var MixedBag = function (required, optional) {\n var everything = required.concat(optional);\n if (everything.length === 0)\n throw new Error('You must specify at least one required or optional field.');\n validateStrArr('required', required);\n validateStrArr('optional', optional);\n checkDupes(everything);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd)\n reqMessage(required, keys$1);\n var unsupported = filter(keys$1, function (key) {\n return !contains(everything, key);\n });\n if (unsupported.length > 0)\n unsuppMessage(unsupported);\n var r = {};\n each(required, function (req) {\n r[req] = constant(obj[req]);\n });\n each(optional, function (opt) {\n r[opt] = constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());\n });\n return r;\n };\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var value = function (element) {\n return element.dom().nodeValue;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isComment = function (element) {\n return type(element) === COMMENT || name(element) === '#comment';\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n var isDocument = isType$1(DOCUMENT);\n\n var Node = /*#__PURE__*/Object.freeze({\n name: name,\n type: type,\n value: value,\n isElement: isElement,\n isText: isText,\n isDocument: isDocument,\n isComment: isComment\n });\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$1 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove = function (element, key) {\n element.dom().removeAttribute(key);\n };\n var clone = function (element) {\n return foldl(element.dom().attributes, function (acc, attr) {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n };\n\n var checkRange = function (str, substr, start) {\n if (substr === '')\n return true;\n if (str.length < substr.length)\n return false;\n var x = str.substr(start, start + substr.length);\n return x === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var startsWith = function (str, prefix) {\n return checkRange(str, prefix, 0);\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined;\n };\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n var body = cached(function () {\n return getBody(Element.fromDom(domGlobals.document));\n });\n var getBody = function (doc) {\n var b = doc.dom().body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return Element.fromDom(b);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$1 = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n var setAll$1 = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n var get$2 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var getAllRaw = function (element) {\n var css = {};\n var dom = element.dom();\n if (isSupported(dom)) {\n for (var i = 0; i < dom.style.length; i++) {\n var ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n var isValidValue = function (tag, property, value) {\n var element = Element.fromTag(tag);\n set$1(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n var remove$1 = function (element, property) {\n var dom = element.dom();\n internalRemove(dom, property);\n if (has$1(element, 'style') && trim(get$1(element, 'style')) === '') {\n remove(element, 'style');\n }\n };\n var preserve = function (element, f) {\n var oldStyles = get$1(element, 'style');\n var result = f(element);\n var restore = oldStyles === undefined ? remove : set;\n restore(element, 'style', oldStyles);\n return result;\n };\n var copy = function (source, target) {\n var sourceDom = source.dom();\n var targetDom = target.dom();\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n var reflow = function (e) {\n return e.dom().offsetWidth;\n };\n var transferOne = function (source, destination, style) {\n getRaw(source, style).each(function (value) {\n if (getRaw(destination, style).isNone()) {\n set$1(destination, style, value);\n }\n });\n };\n var transfer = function (source, destination, styles) {\n if (!isElement(source) || !isElement(destination)) {\n return;\n }\n each(styles, function (style) {\n transferOne(source, destination, style);\n });\n };\n\n var Css = /*#__PURE__*/Object.freeze({\n copy: copy,\n set: set$1,\n preserve: preserve,\n setAll: setAll$1,\n setOptions: setOptions,\n remove: remove$1,\n get: get$2,\n getRaw: getRaw,\n getAllRaw: getAllRaw,\n isValidValue: isValidValue,\n reflow: reflow,\n transfer: transfer\n });\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var path = function (parts, scope) {\n var o = scope !== undefined && scope !== null ? scope : Global;\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\n o = o[parts[i]];\n return o;\n };\n var resolve = function (p, scope) {\n var parts = p.split('.');\n return path(parts, scope);\n };\n\n var unsafe = function (name, scope) {\n return resolve(name, scope);\n };\n var getOrDie = function (name, scope) {\n var actual = unsafe(name, scope);\n if (actual === undefined || actual === null)\n throw name + ' not available on this browser';\n return actual;\n };\n var Global$1 = { getOrDie: getOrDie };\n\n var node = function () {\n var f = Global$1.getOrDie('Node');\n return f;\n };\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node$1 = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s))\n return x;\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r)\n return {\n major: 0,\n minor: 0\n };\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0)\n return unknown();\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\n var isTouch = os.isiOS() || os.isAndroid();\n var isPhone = isTouch && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n return monstrosity;\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var detect$3 = cached(function () {\n var userAgent = domGlobals.navigator.userAgent;\n return PlatformDetection.detect(userAgent);\n });\n var PlatformDetection$1 = { detect: detect$3 };\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is = function (element, selector) {\n var elem = element.dom();\n if (elem.nodeType !== ELEMENT$1) {\n return false;\n } else if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node$1.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = PlatformDetection$1.detect().browser;\n var contains$2 = browser.isIE() ? ieContains : regularContains;\n var is$1 = is;\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var defaultView = function (element) {\n var el = element.dom();\n var defView = el.ownerDocument.defaultView;\n return Element.fromDom(defView);\n };\n var parent = function (element) {\n var dom = element.dom();\n return Option.from(dom.parentNode).map(Element.fromDom);\n };\n var parents = function (element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n var dom = element.dom();\n var ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = Element.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n var prevSibling = function (element) {\n var dom = element.dom();\n return Option.from(dom.previousSibling).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n var dom = element.dom();\n return Option.from(dom.nextSibling).map(Element.fromDom);\n };\n var children = function (element) {\n var dom = element.dom();\n return map(dom.childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var spot = Immutable('element', 'offset');\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var wrap = function (element, wrapper) {\n before(element, wrapper);\n append(wrapper, element);\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var after$1 = function (marker, elements) {\n each(elements, function (x, i) {\n var e = i === 0 ? marker : elements[i - 1];\n after(e, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove$2(rogue);\n });\n };\n var remove$2 = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove$2(wrapper);\n };\n\n var dimensions = Immutable('width', 'height');\n var grid = Immutable('rows', 'columns');\n var address = Immutable('row', 'column');\n var coords = Immutable('x', 'y');\n var detail = Immutable('element', 'rowspan', 'colspan');\n var detailnew = Immutable('element', 'rowspan', 'colspan', 'isNew');\n var extended = Immutable('element', 'rowspan', 'colspan', 'row', 'column');\n var rowdata = Immutable('element', 'cells', 'section');\n var elementnew = Immutable('element', 'isNew');\n var rowdatanew = Immutable('element', 'cells', 'section', 'isNew');\n var rowcells = Immutable('cells', 'section');\n var rowdetails = Immutable('details', 'section');\n var bounds = Immutable('startRow', 'startCol', 'finishRow', 'finishCol');\n var Structs = {\n dimensions: dimensions,\n grid: grid,\n address: address,\n coords: coords,\n extended: extended,\n detail: detail,\n detailnew: detailnew,\n rowdata: rowdata,\n elementnew: elementnew,\n rowdatanew: rowdatanew,\n rowcells: rowcells,\n rowdetails: rowdetails,\n bounds: bounds\n };\n\n var ancestors = function (scope, predicate, isRoot) {\n return filter(parents(scope, isRoot), predicate);\n };\n var children$1 = function (scope, predicate) {\n return filter(children(scope), predicate);\n };\n var descendants = function (scope, predicate) {\n var result = [];\n each(children(scope), function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants(x, predicate));\n });\n return result;\n };\n\n var ancestors$1 = function (scope, selector, isRoot) {\n return ancestors(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var children$2 = function (scope, selector) {\n return children$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendants$1 = function (scope, selector) {\n return all(selector, scope);\n };\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s) {\n return predicate(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n var sibling = function (scope, predicate) {\n var element = scope.dom();\n if (!element.parentNode) {\n return Option.none();\n }\n return child$1(Element.fromDom(element.parentNode), function (x) {\n return !eq(scope, x) && predicate(x);\n });\n };\n var child$1 = function (scope, predicate) {\n var result = find(scope.dom().childNodes, compose(predicate, Element.fromDom));\n return result.map(Element.fromDom);\n };\n var descendant = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n if (predicate(Element.fromDom(node.childNodes[i]))) {\n return Option.some(Element.fromDom(node.childNodes[i]));\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope.dom());\n };\n\n var first = function (selector) {\n return one(selector);\n };\n var ancestor$1 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var sibling$1 = function (scope, selector) {\n return sibling(scope, function (e) {\n return is(e, selector);\n });\n };\n var child$2 = function (scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendant$1 = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$1 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n var SelectorFind = /*#__PURE__*/Object.freeze({\n first: first,\n ancestor: ancestor$1,\n sibling: sibling$1,\n child: child$2,\n descendant: descendant$1,\n closest: closest$1\n });\n\n var firstLayer = function (scope, selector) {\n return filterFirstLayer(scope, selector, constant(true));\n };\n var filterFirstLayer = function (scope, selector, predicate) {\n return bind(children(scope), function (x) {\n return is(x, selector) ? predicate(x) ? [x] : [] : filterFirstLayer(x, selector, predicate);\n });\n };\n var LayerSelector = {\n firstLayer: firstLayer,\n filterFirstLayer: filterFirstLayer\n };\n\n var lookup = function (tags, element, _isRoot) {\n var isRoot = _isRoot !== undefined ? _isRoot : constant(false);\n if (isRoot(element)) {\n return Option.none();\n }\n if (contains(tags, name(element))) {\n return Option.some(element);\n }\n var isRootOrUpperTable = function (elm) {\n return is(elm, 'table') || isRoot(elm);\n };\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n var cell = function (element, isRoot) {\n return lookup([\n 'td',\n 'th'\n ], element, isRoot);\n };\n var cells = function (ancestor) {\n return LayerSelector.firstLayer(ancestor, 'th,td');\n };\n var notCell = function (element, isRoot) {\n return lookup([\n 'caption',\n 'tr',\n 'tbody',\n 'tfoot',\n 'thead'\n ], element, isRoot);\n };\n var neighbours = function (selector, element) {\n return parent(element).map(function (parent) {\n return children$2(parent, selector);\n });\n };\n var neighbourCells = curry(neighbours, 'th,td');\n var neighbourRows = curry(neighbours, 'tr');\n var firstCell = function (ancestor) {\n return descendant$1(ancestor, 'th,td');\n };\n var table = function (element, isRoot) {\n return closest$1(element, 'table', isRoot);\n };\n var row = function (element, isRoot) {\n return lookup(['tr'], element, isRoot);\n };\n var rows = function (ancestor) {\n return LayerSelector.firstLayer(ancestor, 'tr');\n };\n var attr = function (element, property) {\n return parseInt(get$1(element, property), 10);\n };\n var grid$1 = function (element, rowProp, colProp) {\n var rowsCount = attr(element, rowProp);\n var cols = attr(element, colProp);\n return Structs.grid(rowsCount, cols);\n };\n var TableLookup = {\n cell: cell,\n firstCell: firstCell,\n cells: cells,\n neighbourCells: neighbourCells,\n table: table,\n row: row,\n rows: rows,\n notCell: notCell,\n neighbourRows: neighbourRows,\n attr: attr,\n grid: grid$1\n };\n\n var fromTable = function (table) {\n var rows = TableLookup.rows(table);\n return map(rows, function (row) {\n var element = row;\n var parent$1 = parent(element);\n var parentSection = parent$1.map(function (p) {\n var parentName = name(p);\n return parentName === 'tfoot' || parentName === 'thead' || parentName === 'tbody' ? parentName : 'tbody';\n }).getOr('tbody');\n var cells = map(TableLookup.cells(row), function (cell) {\n var rowspan = has$1(cell, 'rowspan') ? parseInt(get$1(cell, 'rowspan'), 10) : 1;\n var colspan = has$1(cell, 'colspan') ? parseInt(get$1(cell, 'colspan'), 10) : 1;\n return Structs.detail(cell, rowspan, colspan);\n });\n return Structs.rowdata(element, cells, parentSection);\n });\n };\n var fromPastedRows = function (rows, example) {\n return map(rows, function (row) {\n var cells = map(TableLookup.cells(row), function (cell) {\n var rowspan = has$1(cell, 'rowspan') ? parseInt(get$1(cell, 'rowspan'), 10) : 1;\n var colspan = has$1(cell, 'colspan') ? parseInt(get$1(cell, 'colspan'), 10) : 1;\n return Structs.detail(cell, rowspan, colspan);\n });\n return Structs.rowdata(row, cells, example.section());\n });\n };\n var DetailsList = {\n fromTable: fromTable,\n fromPastedRows: fromPastedRows\n };\n\n var key = function (row, column) {\n return row + ',' + column;\n };\n var getAt = function (warehouse, row, column) {\n var raw = warehouse.access()[key(row, column)];\n return raw !== undefined ? Option.some(raw) : Option.none();\n };\n var findItem = function (warehouse, item, comparator) {\n var filtered = filterItems(warehouse, function (detail) {\n return comparator(item, detail.element());\n });\n return filtered.length > 0 ? Option.some(filtered[0]) : Option.none();\n };\n var filterItems = function (warehouse, predicate) {\n var all = bind(warehouse.all(), function (r) {\n return r.cells();\n });\n return filter(all, predicate);\n };\n var generate = function (list) {\n var access = {};\n var cells = [];\n var maxRows = list.length;\n var maxColumns = 0;\n each(list, function (details, r) {\n var currentRow = [];\n each(details.cells(), function (detail, c) {\n var start = 0;\n while (access[key(r, start)] !== undefined) {\n start++;\n }\n var current = Structs.extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);\n for (var i = 0; i < detail.colspan(); i++) {\n for (var j = 0; j < detail.rowspan(); j++) {\n var cr = r + j;\n var cc = start + i;\n var newpos = key(cr, cc);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, cc + 1);\n }\n }\n currentRow.push(current);\n });\n cells.push(Structs.rowdata(details.element(), currentRow, details.section()));\n });\n var grid = Structs.grid(maxRows, maxColumns);\n return {\n grid: constant(grid),\n access: constant(access),\n all: constant(cells)\n };\n };\n var justCells = function (warehouse) {\n var rows = map(warehouse.all(), function (w) {\n return w.cells();\n });\n return flatten(rows);\n };\n var Warehouse = {\n generate: generate,\n getAt: getAt,\n findItem: findItem,\n filterItems: filterItems,\n justCells: justCells\n };\n\n var statsStruct = Immutable('minRow', 'minCol', 'maxRow', 'maxCol');\n var findSelectedStats = function (house, isSelected) {\n var totalColumns = house.grid().columns();\n var totalRows = house.grid().rows();\n var minRow = totalRows;\n var minCol = totalColumns;\n var maxRow = 0;\n var maxCol = 0;\n each$1(house.access(), function (detail) {\n if (isSelected(detail)) {\n var startRow = detail.row();\n var endRow = startRow + detail.rowspan() - 1;\n var startCol = detail.column();\n var endCol = startCol + detail.colspan() - 1;\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol);\n };\n var makeCell = function (list, seenSelected, rowIndex) {\n var row = list[rowIndex].element();\n var td = Element.fromTag('td');\n append(td, Element.fromTag('br'));\n var f = seenSelected ? append : prepend;\n f(row, td);\n };\n var fillInGaps = function (list, house, stats, isSelected) {\n var totalColumns = house.grid().columns();\n var totalRows = house.grid().rows();\n for (var i = 0; i < totalRows; i++) {\n var seenSelected = false;\n for (var j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow() || i > stats.maxRow() || j < stats.minCol() || j > stats.maxCol())) {\n var needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n if (needCell) {\n makeCell(list, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n var clean = function (table, stats) {\n var emptyRows = filter(LayerSelector.firstLayer(table, 'tr'), function (row) {\n return row.dom().childElementCount === 0;\n });\n each(emptyRows, remove$2);\n if (stats.minCol() === stats.maxCol() || stats.minRow() === stats.maxRow()) {\n each(LayerSelector.firstLayer(table, 'th,td'), function (cell) {\n remove(cell, 'rowspan');\n remove(cell, 'colspan');\n });\n }\n remove(table, 'width');\n remove(table, 'height');\n remove$1(table, 'width');\n remove$1(table, 'height');\n };\n var extract = function (table, selectedSelector) {\n var isSelected = function (detail) {\n return is(detail.element(), selectedSelector);\n };\n var list = DetailsList.fromTable(table);\n var house = Warehouse.generate(list);\n var stats = findSelectedStats(house, isSelected);\n var selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n var unselectedCells = LayerSelector.filterFirstLayer(table, 'th,td', function (cell) {\n return is(cell, selector);\n });\n each(unselectedCells, remove$2);\n fillInGaps(list, house, stats, isSelected);\n clean(table, stats);\n return table;\n };\n var CopySelected = { extract: extract };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOptionIE10 = function (element) {\n try {\n return getOptionSafe(element);\n } catch (e) {\n return Option.none();\n }\n };\n var getOptionSafe = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var browser = PlatformDetection$1.detect().browser;\n var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api = NodeValue(isText, 'text');\n var get$3 = function (element) {\n return api.get(element);\n };\n var getOption = function (element) {\n return api.getOption(element);\n };\n var set$2 = function (element, value) {\n api.set(element, value);\n };\n\n var getEnd = function (element) {\n return name(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\n var NBSP = '\\xA0';\n var isTextNodeWithCursorPosition = function (el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(NBSP) > -1;\n }).isSome();\n };\n var elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n var isCursorPosition = function (elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains(elementsWithCursorPosition, name(elem));\n };\n\n var first$1 = function (element) {\n return descendant(element, isCursorPosition);\n };\n var last$1 = function (element) {\n return descendantRtl(element, isCursorPosition);\n };\n var descendantRtl = function (scope, predicate) {\n var descend = function (element) {\n var children$1 = children(element);\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n if (predicate(child)) {\n return Option.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Option.none();\n };\n return descend(scope);\n };\n\n var clone$1 = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow = function (original) {\n return clone$1(original, false);\n };\n var deep = function (original) {\n return clone$1(original, true);\n };\n var shallowAs = function (original, tag) {\n var nu = Element.fromTag(tag);\n var attributes = clone(original);\n setAll(nu, attributes);\n return nu;\n };\n var copy$1 = function (original, tag) {\n var nu = shallowAs(original, tag);\n var cloneChildren = children(deep(original));\n append$1(nu, cloneChildren);\n return nu;\n };\n\n var createCell = function () {\n var td = Element.fromTag('td');\n append(td, Element.fromTag('br'));\n return td;\n };\n var replace = function (cell, tag, attrs) {\n var replica = copy$1(cell, tag);\n each$1(attrs, function (v, k) {\n if (v === null) {\n remove(replica, k);\n } else {\n set(replica, k, v);\n }\n });\n return replica;\n };\n var pasteReplace = function (cellContent) {\n return cellContent;\n };\n var newRow = function (doc) {\n return function () {\n return Element.fromTag('tr', doc.dom());\n };\n };\n var cloneFormats = function (oldCell, newCell, formats) {\n var first = first$1(oldCell);\n return first.map(function (firstText) {\n var formatSelector = formats.join(',');\n var parents = ancestors$1(firstText, formatSelector, function (element) {\n return eq(element, oldCell);\n });\n return foldr(parents, function (last, parent) {\n var clonedFormat = shallow(parent);\n remove(clonedFormat, 'contenteditable');\n append(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n var cellOperations = function (mutate, doc, formatsToClone) {\n var newCell = function (prev) {\n var docu = owner(prev.element());\n var td = Element.fromTag(name(prev.element()), docu.dom());\n var formats = formatsToClone.getOr([\n 'strong',\n 'em',\n 'b',\n 'i',\n 'span',\n 'font',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div'\n ]);\n var lastNode = formats.length > 0 ? cloneFormats(prev.element(), td, formats) : td;\n append(lastNode, Element.fromTag('br'));\n copy(prev.element(), td);\n remove$1(td, 'height');\n if (prev.colspan() !== 1) {\n remove$1(prev.element(), 'width');\n }\n mutate(prev.element(), td);\n return td;\n };\n return {\n row: newRow(doc),\n cell: newCell,\n replace: replace,\n gap: createCell\n };\n };\n var paste = function (doc) {\n return {\n row: newRow(doc),\n cell: createCell,\n replace: pasteReplace,\n gap: createCell\n };\n };\n var TableFill = {\n cellOperations: cellOperations,\n paste: paste\n };\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var TagBoundaries = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'li',\n 'table',\n 'thead',\n 'tbody',\n 'tfoot',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n\n function DomUniverse () {\n var clone$1 = function (element) {\n return Element.fromDom(element.dom().cloneNode(false));\n };\n var document = function (element) {\n return element.dom().ownerDocument;\n };\n var isBoundary = function (element) {\n if (!isElement(element))\n return false;\n if (name(element) === 'body')\n return true;\n return contains(TagBoundaries, name(element));\n };\n var isEmptyTag = function (element) {\n if (!isElement(element))\n return false;\n return contains([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], name(element));\n };\n var comparePosition = function (element, other) {\n return element.dom().compareDocumentPosition(other.dom());\n };\n var copyAttributesTo = function (source, destination) {\n var as = clone(source);\n setAll(destination, as);\n };\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor,\n all: parents\n }),\n down: constant({\n selector: descendants$1,\n predicate: descendants\n }),\n styles: constant({\n get: get$2,\n getRaw: getRaw,\n set: set$1,\n remove: remove$1\n }),\n attrs: constant({\n get: get$1,\n set: set,\n remove: remove,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before,\n after: after,\n afterAll: after$1,\n append: append,\n appendAll: append$1,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$2\n }),\n create: constant({\n nu: Element.fromTag,\n clone: clone$1,\n text: Element.fromText\n }),\n query: constant({\n comparePosition: comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children,\n name: name,\n parent: parent,\n document: document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n getText: get$3,\n setText: set$2,\n isBoundary: isBoundary,\n isEmptyTag: isEmptyTag\n }),\n eq: eq,\n is: is$1\n };\n }\n\n var leftRight = Immutable('left', 'right');\n var bisect = function (universe, parent, child) {\n var children = universe.property().children(parent);\n var index = findIndex(children, curry(universe.eq, child));\n return index.map(function (ind) {\n return {\n before: constant(children.slice(0, ind)),\n after: constant(children.slice(ind + 1))\n };\n });\n };\n var breakToRight = function (universe, parent, child) {\n return bisect(universe, parent, child).map(function (parts) {\n var second = universe.create().clone(parent);\n universe.insert().appendAll(second, parts.after());\n universe.insert().after(parent, second);\n return leftRight(parent, second);\n });\n };\n var breakToLeft = function (universe, parent, child) {\n return bisect(universe, parent, child).map(function (parts) {\n var prior = universe.create().clone(parent);\n universe.insert().appendAll(prior, parts.before().concat([child]));\n universe.insert().appendAll(parent, parts.after());\n universe.insert().before(parent, prior);\n return leftRight(prior, parent);\n });\n };\n var breakPath = function (universe, item, isTop, breaker) {\n var result = Immutable('first', 'second', 'splits');\n var next = function (child, group, splits) {\n var fallback = result(child, Option.none(), splits);\n if (isTop(child))\n return result(child, group, splits);\n else {\n return universe.property().parent(child).bind(function (parent) {\n return breaker(universe, parent, child).map(function (breakage) {\n var extra = [{\n first: breakage.left,\n second: breakage.right\n }];\n var nextChild = isTop(parent) ? parent : breakage.left();\n return next(nextChild, Option.some(breakage.right()), splits.concat(extra));\n }).getOr(fallback);\n });\n }\n };\n return next(item, Option.none(), []);\n };\n var Breaker = {\n breakToLeft: breakToLeft,\n breakToRight: breakToRight,\n breakPath: breakPath\n };\n\n var all$1 = function (universe, look, elements, f) {\n var head = elements[0];\n var tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n var oneAll = function (universe, look, elements) {\n return elements.length > 0 ? all$1(universe, look, elements, unsafeOne) : Option.none();\n };\n var unsafeOne = function (universe, look, head, tail) {\n var start = look(universe, head);\n return foldr(tail, function (b, a) {\n var current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n var commonElement = function (universe, start, end) {\n return start.bind(function (s) {\n return end.filter(curry(universe.eq, s));\n });\n };\n var Shared = { oneAll: oneAll };\n\n var eq$1 = function (universe, item) {\n return curry(universe.eq, item);\n };\n var unsafeSubset = function (universe, common, ps1, ps2) {\n var children = universe.property().children(common);\n if (universe.eq(common, ps1[0]))\n return Option.some([ps1[0]]);\n if (universe.eq(common, ps2[0]))\n return Option.some([ps2[0]]);\n var finder = function (ps) {\n var topDown = reverse(ps);\n var index = findIndex(topDown, eq$1(universe, common)).getOr(-1);\n var item = index < topDown.length - 1 ? topDown[index + 1] : topDown[index];\n return findIndex(children, eq$1(universe, item));\n };\n var startIndex = finder(ps1);\n var endIndex = finder(ps2);\n return startIndex.bind(function (sIndex) {\n return endIndex.map(function (eIndex) {\n var first = Math.min(sIndex, eIndex);\n var last = Math.max(sIndex, eIndex);\n return children.slice(first, last + 1);\n });\n });\n };\n var ancestors$2 = function (universe, start, end, _isRoot) {\n var isRoot = _isRoot !== undefined ? _isRoot : constant(false);\n var ps1 = [start].concat(universe.up().all(start));\n var ps2 = [end].concat(universe.up().all(end));\n var prune = function (path) {\n var index = findIndex(path, isRoot);\n return index.fold(function () {\n return path;\n }, function (ind) {\n return path.slice(0, ind + 1);\n });\n };\n var pruned1 = prune(ps1);\n var pruned2 = prune(ps2);\n var shared = find(pruned1, function (x) {\n return exists(pruned2, eq$1(universe, x));\n });\n return {\n firstpath: constant(pruned1),\n secondpath: constant(pruned2),\n shared: constant(shared)\n };\n };\n var subset = function (universe, start, end) {\n var ancs = ancestors$2(universe, start, end);\n return ancs.shared().bind(function (shared) {\n return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());\n });\n };\n var Subset = {\n subset: subset,\n ancestors: ancestors$2\n };\n\n var sharedOne = function (universe, look, elements) {\n return Shared.oneAll(universe, look, elements);\n };\n var subset$1 = function (universe, start, finish) {\n return Subset.subset(universe, start, finish);\n };\n var ancestors$3 = function (universe, start, finish, _isRoot) {\n return Subset.ancestors(universe, start, finish, _isRoot);\n };\n var breakToLeft$1 = function (universe, parent, child) {\n return Breaker.breakToLeft(universe, parent, child);\n };\n var breakToRight$1 = function (universe, parent, child) {\n return Breaker.breakToRight(universe, parent, child);\n };\n var breakPath$1 = function (universe, child, isTop, breaker) {\n return Breaker.breakPath(universe, child, isTop, breaker);\n };\n var Parent = {\n sharedOne: sharedOne,\n subset: subset$1,\n ancestors: ancestors$3,\n breakToLeft: breakToLeft$1,\n breakToRight: breakToRight$1,\n breakPath: breakPath$1\n };\n\n var universe = DomUniverse();\n var sharedOne$1 = function (look, elements) {\n return Parent.sharedOne(universe, function (universe, element) {\n return look(element);\n }, elements);\n };\n var subset$2 = function (start, finish) {\n return Parent.subset(universe, start, finish);\n };\n var ancestors$4 = function (start, finish, _isRoot) {\n return Parent.ancestors(universe, start, finish, _isRoot);\n };\n var breakToLeft$2 = function (parent, child) {\n return Parent.breakToLeft(universe, parent, child);\n };\n var breakToRight$2 = function (parent, child) {\n return Parent.breakToRight(universe, parent, child);\n };\n var breakPath$2 = function (child, isTop, breaker) {\n return Parent.breakPath(universe, child, isTop, function (u, p, c) {\n return breaker(p, c);\n });\n };\n var DomParent = {\n sharedOne: sharedOne$1,\n subset: subset$2,\n ancestors: ancestors$4,\n breakToLeft: breakToLeft$2,\n breakToRight: breakToRight$2,\n breakPath: breakPath$2\n };\n\n var inSelection = function (bounds, detail) {\n var leftEdge = detail.column();\n var rightEdge = detail.column() + detail.colspan() - 1;\n var topEdge = detail.row();\n var bottomEdge = detail.row() + detail.rowspan() - 1;\n return leftEdge <= bounds.finishCol() && rightEdge >= bounds.startCol() && (topEdge <= bounds.finishRow() && bottomEdge >= bounds.startRow());\n };\n var isWithin = function (bounds, detail) {\n return detail.column() >= bounds.startCol() && detail.column() + detail.colspan() - 1 <= bounds.finishCol() && detail.row() >= bounds.startRow() && detail.row() + detail.rowspan() - 1 <= bounds.finishRow();\n };\n var isRectangular = function (warehouse, bounds) {\n var isRect = true;\n var detailIsWithin = curry(isWithin, bounds);\n for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {\n for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n return isRect ? Option.some(bounds) : Option.none();\n };\n var CellBounds = {\n inSelection: inSelection,\n isWithin: isWithin,\n isRectangular: isRectangular\n };\n\n var getBounds = function (detailA, detailB) {\n return Structs.bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));\n };\n var getAnyBox = function (warehouse, startCell, finishCell) {\n var startCoords = Warehouse.findItem(warehouse, startCell, eq);\n var finishCoords = Warehouse.findItem(warehouse, finishCell, eq);\n return startCoords.bind(function (sc) {\n return finishCoords.map(function (fc) {\n return getBounds(sc, fc);\n });\n });\n };\n var getBox = function (warehouse, startCell, finishCell) {\n return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {\n return CellBounds.isRectangular(warehouse, bounds);\n });\n };\n var CellGroup = {\n getAnyBox: getAnyBox,\n getBox: getBox\n };\n\n var moveBy = function (warehouse, cell, row, column) {\n return Warehouse.findItem(warehouse, cell, eq).bind(function (detail) {\n var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();\n var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();\n var dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(function (d) {\n return d.element();\n });\n });\n };\n var intercepts = function (warehouse, start, finish) {\n return CellGroup.getAnyBox(warehouse, start, finish).map(function (bounds) {\n var inside = Warehouse.filterItems(warehouse, curry(CellBounds.inSelection, bounds));\n return map(inside, function (detail) {\n return detail.element();\n });\n });\n };\n var parentCell = function (warehouse, innerCell) {\n var isContainedBy = function (c1, c2) {\n return contains$2(c2, c1);\n };\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).bind(function (detail) {\n return detail.element();\n });\n };\n var CellFinder = {\n moveBy: moveBy,\n intercepts: intercepts,\n parentCell: parentCell\n };\n\n var moveBy$1 = function (cell, deltaRow, deltaColumn) {\n return TableLookup.table(cell).bind(function (table) {\n var warehouse = getWarehouse(table);\n return CellFinder.moveBy(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n var intercepts$1 = function (table, first, last) {\n var warehouse = getWarehouse(table);\n return CellFinder.intercepts(warehouse, first, last);\n };\n var nestedIntercepts = function (table, first, firstTable, last, lastTable) {\n var warehouse = getWarehouse(table);\n var startCell = eq(table, firstTable) ? first : CellFinder.parentCell(warehouse, first);\n var lastCell = eq(table, lastTable) ? last : CellFinder.parentCell(warehouse, last);\n return CellFinder.intercepts(warehouse, startCell, lastCell);\n };\n var getBox$1 = function (table, first, last) {\n var warehouse = getWarehouse(table);\n return CellGroup.getBox(warehouse, first, last);\n };\n var getWarehouse = function (table) {\n var list = DetailsList.fromTable(table);\n return Warehouse.generate(list);\n };\n var TablePositions = {\n moveBy: moveBy$1,\n intercepts: intercepts$1,\n nestedIntercepts: nestedIntercepts,\n getBox: getBox$1\n };\n\n var lookupTable = function (container, isRoot) {\n return ancestor$1(container, 'table');\n };\n var identified = MixedBag([\n 'boxes',\n 'start',\n 'finish'\n ], []);\n var identify = function (start, finish, isRoot) {\n var getIsRoot = function (rootTable) {\n return function (element) {\n return isRoot(element) || eq(element, rootTable);\n };\n };\n if (eq(start, finish)) {\n return Option.some(identified({\n boxes: Option.some([start]),\n start: start,\n finish: finish\n }));\n } else {\n return lookupTable(start, isRoot).bind(function (startTable) {\n return lookupTable(finish, isRoot).bind(function (finishTable) {\n if (eq(startTable, finishTable)) {\n return Option.some(identified({\n boxes: TablePositions.intercepts(startTable, start, finish),\n start: start,\n finish: finish\n }));\n } else if (contains$2(startTable, finishTable)) {\n var ancestorCells = ancestors$1(finish, 'td,th', getIsRoot(startTable));\n var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Option.some(identified({\n boxes: TablePositions.nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start: start,\n finish: finishCell\n }));\n } else if (contains$2(finishTable, startTable)) {\n var ancestorCells = ancestors$1(start, 'td,th', getIsRoot(finishTable));\n var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Option.some(identified({\n boxes: TablePositions.nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start: start,\n finish: startCell\n }));\n } else {\n return DomParent.ancestors(start, finish).shared().bind(function (lca) {\n return closest$1(lca, 'table', isRoot).bind(function (lcaTable) {\n var finishAncestorCells = ancestors$1(finish, 'td,th', getIsRoot(lcaTable));\n var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n var startAncestorCells = ancestors$1(start, 'td,th', getIsRoot(lcaTable));\n var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Option.some(identified({\n boxes: TablePositions.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n }));\n });\n });\n }\n });\n });\n }\n };\n var retrieve = function (container, selector) {\n var sels = descendants$1(container, selector);\n return sels.length > 0 ? Option.some(sels) : Option.none();\n };\n var getLast = function (boxes, lastSelectedSelector) {\n return find(boxes, function (box) {\n return is(box, lastSelectedSelector);\n });\n };\n var getEdges = function (container, firstSelectedSelector, lastSelectedSelector) {\n return descendant$1(container, firstSelectedSelector).bind(function (first) {\n return descendant$1(container, lastSelectedSelector).bind(function (last) {\n return DomParent.sharedOne(lookupTable, [\n first,\n last\n ]).map(function (tbl) {\n return {\n first: constant(first),\n last: constant(last),\n table: constant(tbl)\n };\n });\n });\n });\n };\n var expandTo = function (finish, firstSelectedSelector) {\n return ancestor$1(finish, 'table').bind(function (table) {\n return descendant$1(table, firstSelectedSelector).bind(function (start) {\n return identify(start, finish).bind(function (identified) {\n return identified.boxes().map(function (boxes) {\n return {\n boxes: constant(boxes),\n start: constant(identified.start()),\n finish: constant(identified.finish())\n };\n });\n });\n });\n });\n };\n var shiftSelection = function (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) {\n return getLast(boxes, lastSelectedSelector).bind(function (last) {\n return TablePositions.moveBy(last, deltaRow, deltaColumn).bind(function (finish) {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n var CellSelection = {\n identify: identify,\n retrieve: retrieve,\n shiftSelection: shiftSelection,\n getEdges: getEdges\n };\n\n var retrieve$1 = function (container, selector) {\n return CellSelection.retrieve(container, selector);\n };\n var retrieveBox = function (container, firstSelectedSelector, lastSelectedSelector) {\n return CellSelection.getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(function (edges) {\n var isRoot = function (ancestor) {\n return eq(container, ancestor);\n };\n var firstAncestor = ancestor$1(edges.first(), 'thead,tfoot,tbody,table', isRoot);\n var lastAncestor = ancestor$1(edges.last(), 'thead,tfoot,tbody,table', isRoot);\n return firstAncestor.bind(function (fA) {\n return lastAncestor.bind(function (lA) {\n return eq(fA, lA) ? TablePositions.getBox(edges.table(), edges.first(), edges.last()) : Option.none();\n });\n });\n });\n };\n var TableSelection = {\n retrieve: retrieve$1,\n retrieveBox: retrieveBox\n };\n\n var selected = 'data-mce-selected';\n var selectedSelector = 'td[' + selected + '],th[' + selected + ']';\n var attributeSelector = '[' + selected + ']';\n var firstSelected = 'data-mce-first-selected';\n var firstSelectedSelector = 'td[' + firstSelected + '],th[' + firstSelected + ']';\n var lastSelected = 'data-mce-last-selected';\n var lastSelectedSelector = 'td[' + lastSelected + '],th[' + lastSelected + ']';\n var Ephemera = {\n selected: constant(selected),\n selectedSelector: constant(selectedSelector),\n attributeSelector: constant(attributeSelector),\n firstSelected: constant(firstSelected),\n firstSelectedSelector: constant(firstSelectedSelector),\n lastSelected: constant(lastSelected),\n lastSelectedSelector: constant(lastSelectedSelector)\n };\n\n var generate$1 = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++)\n args[i] = arguments[i];\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd)\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate$1 };\n\n var type$1 = Adt.generate([\n { none: [] },\n { multiple: ['elements'] },\n { single: ['selection'] }\n ]);\n var cata = function (subject, onNone, onMultiple, onSingle) {\n return subject.fold(onNone, onMultiple, onSingle);\n };\n var SelectionTypes = {\n cata: cata,\n none: type$1.none,\n multiple: type$1.multiple,\n single: type$1.single\n };\n\n var selection = function (cell, selections) {\n return SelectionTypes.cata(selections.get(), constant([]), identity, constant([cell]));\n };\n var unmergable = function (cell, selections) {\n var hasSpan = function (elem) {\n return has$1(elem, 'rowspan') && parseInt(get$1(elem, 'rowspan'), 10) > 1 || has$1(elem, 'colspan') && parseInt(get$1(elem, 'colspan'), 10) > 1;\n };\n var candidates = selection(cell, selections);\n return candidates.length > 0 && forall(candidates, hasSpan) ? Option.some(candidates) : Option.none();\n };\n var mergable = function (table, selections) {\n return SelectionTypes.cata(selections.get(), Option.none, function (cells, _env) {\n if (cells.length === 0) {\n return Option.none();\n }\n return TableSelection.retrieveBox(table, Ephemera.firstSelectedSelector(), Ephemera.lastSelectedSelector()).bind(function (bounds) {\n return cells.length > 1 ? Option.some({\n bounds: constant(bounds),\n cells: constant(cells)\n }) : Option.none();\n });\n }, Option.none);\n };\n var CellOperations = {\n mergable: mergable,\n unmergable: unmergable,\n selection: selection\n };\n\n var noMenu = function (cell) {\n return {\n element: constant(cell),\n mergable: Option.none,\n unmergable: Option.none,\n selection: constant([cell])\n };\n };\n var forMenu = function (selections, table, cell) {\n return {\n element: constant(cell),\n mergable: constant(CellOperations.mergable(table, selections)),\n unmergable: constant(CellOperations.unmergable(cell, selections)),\n selection: constant(CellOperations.selection(cell, selections))\n };\n };\n var notCell$1 = function (element) {\n return noMenu(element);\n };\n var paste$1 = Immutable('element', 'clipboard', 'generators');\n var pasteRows = function (selections, table, cell, clipboard, generators) {\n return {\n element: constant(cell),\n mergable: Option.none,\n unmergable: Option.none,\n selection: constant(CellOperations.selection(cell, selections)),\n clipboard: constant(clipboard),\n generators: constant(generators)\n };\n };\n var TableTargets = {\n noMenu: noMenu,\n forMenu: forMenu,\n notCell: notCell$1,\n paste: paste$1,\n pasteRows: pasteRows\n };\n\n var extractSelected = function (cells) {\n return TableLookup.table(cells[0]).map(deep).map(function (replica) {\n return [CopySelected.extract(replica, Ephemera.attributeSelector())];\n });\n };\n var serializeElements = function (editor, elements) {\n return map(elements, function (elm) {\n return editor.selection.serializer.serialize(elm.dom(), {});\n }).join('');\n };\n var getTextContent = function (elements) {\n return map(elements, function (element) {\n return element.dom().innerText;\n }).join('');\n };\n var registerEvents = function (editor, selections, actions, cellSelection) {\n editor.on('BeforeGetContent', function (e) {\n var multiCellContext = function (cells) {\n e.preventDefault();\n extractSelected(cells).each(function (elements) {\n e.content = e.format === 'text' ? getTextContent(elements) : serializeElements(editor, elements);\n });\n };\n if (e.selection === true) {\n SelectionTypes.cata(selections.get(), noop, multiCellContext, noop);\n }\n });\n editor.on('BeforeSetContent', function (e) {\n if (e.selection === true && e.paste === true) {\n var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));\n cellOpt.each(function (domCell) {\n var cell = Element.fromDom(domCell);\n TableLookup.table(cell).each(function (table) {\n var elements = filter(fromHtml$1(e.content), function (content) {\n return name(content) !== 'meta';\n });\n if (elements.length === 1 && name(elements[0]) === 'table') {\n e.preventDefault();\n var doc = Element.fromDom(editor.getDoc());\n var generators = TableFill.paste(doc);\n var targets = TableTargets.paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n });\n }\n });\n });\n }\n });\n };\n var Clipboard = { registerEvents: registerEvents };\n\n function Dimension (name, getOffset) {\n var set = function (element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n var dom = element.dom();\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$2(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$2(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n }\n\n var api$1 = Dimension('height', function (element) {\n var dom = element.dom();\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$4 = function (element) {\n return api$1.get(element);\n };\n var getOuter = function (element) {\n return api$1.getOuter(element);\n };\n\n var api$2 = Dimension('width', function (element) {\n return element.dom().offsetWidth;\n });\n var get$5 = function (element) {\n return api$2.get(element);\n };\n var getOuter$1 = function (element) {\n return api$2.getOuter(element);\n };\n\n var platform = PlatformDetection$1.detect();\n var needManualCalc = function () {\n return platform.browser.isIE() || platform.browser.isEdge();\n };\n var toNumber = function (px, fallback) {\n var num = parseFloat(px);\n return isNaN(num) ? fallback : num;\n };\n var getProp = function (elm, name, fallback) {\n return toNumber(get$2(elm, name), fallback);\n };\n var getCalculatedHeight = function (cell) {\n var paddingTop = getProp(cell, 'padding-top', 0);\n var paddingBottom = getProp(cell, 'padding-bottom', 0);\n var borderTop = getProp(cell, 'border-top-width', 0);\n var borderBottom = getProp(cell, 'border-bottom-width', 0);\n var height = cell.dom().getBoundingClientRect().height;\n var boxSizing = get$2(cell, 'box-sizing');\n var borders = borderTop + borderBottom;\n return boxSizing === 'border-box' ? height : height - paddingTop - paddingBottom - borders;\n };\n var getWidth = function (cell) {\n return getProp(cell, 'width', get$5(cell));\n };\n var getHeight = function (cell) {\n return needManualCalc() ? getCalculatedHeight(cell) : getProp(cell, 'height', get$4(cell));\n };\n var RuntimeSize = {\n getWidth: getWidth,\n getHeight: getHeight\n };\n\n var genericSizeRegex = /(\\d+(\\.\\d+)?)(\\w|%)*/;\n var percentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n var pixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n var setPixelWidth = function (cell, amount) {\n set$1(cell, 'width', amount + 'px');\n };\n var setPercentageWidth = function (cell, amount) {\n set$1(cell, 'width', amount + '%');\n };\n var setHeight = function (cell, amount) {\n set$1(cell, 'height', amount + 'px');\n };\n var getHeightValue = function (cell) {\n return getRaw(cell, 'height').getOrThunk(function () {\n return RuntimeSize.getHeight(cell) + 'px';\n });\n };\n var convert = function (cell, number, getter, setter) {\n var newSize = TableLookup.table(cell).map(function (table) {\n var total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n var normalizePixelSize = function (value, cell, getter, setter) {\n var number = parseInt(value, 10);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n var getTotalHeight = function (cell) {\n var value = getHeightValue(cell);\n if (!value) {\n return get$4(cell);\n }\n return normalizePixelSize(value, cell, get$4, setHeight);\n };\n var get$6 = function (cell, type, f) {\n var v = f(cell);\n var span = getSpan(cell, type);\n return v / span;\n };\n var getSpan = function (cell, type) {\n return has$1(cell, type) ? parseInt(get$1(cell, type), 10) : 1;\n };\n var getRawWidth = function (element) {\n var cssWidth = getRaw(element, 'width');\n return cssWidth.fold(function () {\n return Option.from(get$1(element, 'width'));\n }, function (width) {\n return Option.some(width);\n });\n };\n var normalizePercentageWidth = function (cellWidth, tableSize) {\n return cellWidth / tableSize.pixelWidth() * 100;\n };\n var choosePercentageSize = function (element, width, tableSize) {\n if (percentageBasedSizeRegex.test(width)) {\n var percentMatch = percentageBasedSizeRegex.exec(width);\n return parseFloat(percentMatch[1]);\n } else {\n var intWidth = get$5(element);\n return normalizePercentageWidth(intWidth, tableSize);\n }\n };\n var getPercentageWidth = function (cell, tableSize) {\n var width = getRawWidth(cell);\n return width.fold(function () {\n var intWidth = get$5(cell);\n return normalizePercentageWidth(intWidth, tableSize);\n }, function (w) {\n return choosePercentageSize(cell, w, tableSize);\n });\n };\n var normalizePixelWidth = function (cellWidth, tableSize) {\n return cellWidth / 100 * tableSize.pixelWidth();\n };\n var choosePixelSize = function (element, width, tableSize) {\n if (pixelBasedSizeRegex.test(width)) {\n var pixelMatch = pixelBasedSizeRegex.exec(width);\n return parseInt(pixelMatch[1], 10);\n } else if (percentageBasedSizeRegex.test(width)) {\n var percentMatch = percentageBasedSizeRegex.exec(width);\n var floatWidth = parseFloat(percentMatch[1]);\n return normalizePixelWidth(floatWidth, tableSize);\n } else {\n return get$5(element);\n }\n };\n var getPixelWidth = function (cell, tableSize) {\n var width = getRawWidth(cell);\n return width.fold(function () {\n return get$5(cell);\n }, function (w) {\n return choosePixelSize(cell, w, tableSize);\n });\n };\n var getHeight$1 = function (cell) {\n return get$6(cell, 'rowspan', getTotalHeight);\n };\n var getGenericWidth = function (cell) {\n var width = getRawWidth(cell);\n return width.bind(function (w) {\n if (genericSizeRegex.test(w)) {\n var match = genericSizeRegex.exec(w);\n return Option.some({\n width: constant(match[1]),\n unit: constant(match[3])\n });\n } else {\n return Option.none();\n }\n });\n };\n var setGenericWidth = function (cell, amount, unit) {\n set$1(cell, 'width', amount + unit);\n };\n var Sizes = {\n percentageBasedSizeRegex: constant(percentageBasedSizeRegex),\n pixelBasedSizeRegex: constant(pixelBasedSizeRegex),\n setPixelWidth: setPixelWidth,\n setPercentageWidth: setPercentageWidth,\n setHeight: setHeight,\n getPixelWidth: getPixelWidth,\n getPercentageWidth: getPercentageWidth,\n getGenericWidth: getGenericWidth,\n setGenericWidth: setGenericWidth,\n getHeight: getHeight$1,\n getRawWidth: getRawWidth\n };\n\n var halve = function (main, other) {\n var width = Sizes.getGenericWidth(main);\n width.each(function (w) {\n var newWidth = w.width() / 2;\n Sizes.setGenericWidth(main, newWidth, w.unit());\n Sizes.setGenericWidth(other, newWidth, w.unit());\n });\n };\n var CellMutations = { halve: halve };\n\n var attached = function (element, scope) {\n var doc = scope || Element.fromDom(domGlobals.document.documentElement);\n return ancestor(element, curry(eq, doc)).isSome();\n };\n var windowOf = function (element) {\n var dom = element.dom();\n if (dom === dom.window && element instanceof domGlobals.Window) {\n return element;\n }\n return isDocument(element) ? dom.defaultView || dom.parentWindow : null;\n };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: constant(left),\n top: constant(top),\n translate: translate\n };\n };\n var Position = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return Position(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n return a !== undefined ? a : b !== undefined ? b : 0;\n };\n var absolute = function (element) {\n var doc = element.dom().ownerDocument;\n var body = doc.body;\n var win = windowOf(Element.fromDom(doc));\n var html = doc.documentElement;\n var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport = function (element) {\n var dom = element.dom();\n var doc = dom.ownerDocument;\n var body = doc.body;\n var html = Element.fromDom(doc.documentElement);\n if (body === dom) {\n return Position(body.offsetLeft, body.offsetTop);\n }\n if (!attached(element, html)) {\n return Position(0, 0);\n }\n return boxPosition(dom);\n };\n\n var rowInfo = Immutable('row', 'y');\n var colInfo = Immutable('col', 'x');\n var rtlEdge = function (cell) {\n var pos = absolute(cell);\n return pos.left() + getOuter$1(cell);\n };\n var ltrEdge = function (cell) {\n return absolute(cell).left();\n };\n var getLeftEdge = function (index, cell) {\n return colInfo(index, ltrEdge(cell));\n };\n var getRightEdge = function (index, cell) {\n return colInfo(index, rtlEdge(cell));\n };\n var getTop = function (cell) {\n return absolute(cell).top();\n };\n var getTopEdge = function (index, cell) {\n return rowInfo(index, getTop(cell));\n };\n var getBottomEdge = function (index, cell) {\n return rowInfo(index, getTop(cell) + getOuter(cell));\n };\n var findPositions = function (getInnerEdge, getOuterEdge, array) {\n if (array.length === 0) {\n return [];\n }\n var lines = map(array.slice(1), function (cellOption, index) {\n return cellOption.map(function (cell) {\n return getInnerEdge(index, cell);\n });\n });\n var lastLine = array[array.length - 1].map(function (cell) {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n var negate = function (step, _table) {\n return -step;\n };\n var height = {\n delta: identity,\n positions: curry(findPositions, getTopEdge, getBottomEdge),\n edge: getTop\n };\n var ltr = {\n delta: identity,\n edge: ltrEdge,\n positions: curry(findPositions, getLeftEdge, getRightEdge)\n };\n var rtl = {\n delta: negate,\n edge: rtlEdge,\n positions: curry(findPositions, getRightEdge, getLeftEdge)\n };\n var BarPositions = {\n height: height,\n rtl: rtl,\n ltr: ltr\n };\n\n var ResizeDirection = {\n ltr: BarPositions.ltr,\n rtl: BarPositions.rtl\n };\n\n function TableDirection (directionAt) {\n var auto = function (table) {\n return directionAt(table).isRtl() ? ResizeDirection.rtl : ResizeDirection.ltr;\n };\n var delta = function (amount, table) {\n return auto(table).delta(amount, table);\n };\n var positions = function (cols, table) {\n return auto(table).positions(cols);\n };\n var edge = function (cell) {\n return auto(cell).edge(cell);\n };\n return {\n delta: delta,\n edge: edge,\n positions: positions\n };\n }\n\n var getGridSize = function (table) {\n var input = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(input);\n return warehouse.grid();\n };\n var TableGridSize = { getGridSize: getGridSize };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow$1 = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++)\n objects[i] = arguments[i];\n if (objects.length === 0)\n throw new Error('Can\\'t merge zero objects');\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject)\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n return ret;\n };\n };\n var merge = baseMerge(shallow$1);\n\n var cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n\n var setIfNot = function (element, property, value, ignore) {\n if (value === ignore) {\n remove(element, property);\n } else {\n set(element, property, value);\n }\n };\n var render = function (table, grid) {\n var newRows = [];\n var newCells = [];\n var renderSection = function (gridSection, sectionName) {\n var section = child$2(table, sectionName).getOrThunk(function () {\n var tb = Element.fromTag(sectionName, owner(table).dom());\n append(table, tb);\n return tb;\n });\n empty(section);\n var rows = map(gridSection, function (row) {\n if (row.isNew()) {\n newRows.push(row.element());\n }\n var tr = row.element();\n empty(tr);\n each(row.cells(), function (cell) {\n if (cell.isNew()) {\n newCells.push(cell.element());\n }\n setIfNot(cell.element(), 'colspan', cell.colspan(), 1);\n setIfNot(cell.element(), 'rowspan', cell.rowspan(), 1);\n append(tr, cell.element());\n });\n return tr;\n });\n append$1(section, rows);\n };\n var removeSection = function (sectionName) {\n child$2(table, sectionName).each(remove$2);\n };\n var renderOrRemoveSection = function (gridSection, sectionName) {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n var headSection = [];\n var bodySection = [];\n var footSection = [];\n each(grid, function (row) {\n switch (row.section()) {\n case 'thead':\n headSection.push(row);\n break;\n case 'tbody':\n bodySection.push(row);\n break;\n case 'tfoot':\n footSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows: constant(newRows),\n newCells: constant(newCells)\n };\n };\n var copy$2 = function (grid) {\n var rows = map(grid, function (row) {\n var tr = shallow(row.element());\n each(row.cells(), function (cell) {\n var clonedCell = deep(cell.element());\n setIfNot(clonedCell, 'colspan', cell.colspan(), 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan(), 1);\n append(tr, clonedCell);\n });\n return tr;\n });\n return rows;\n };\n var Redraw = {\n render: render,\n copy: copy$2\n };\n\n var read = function (element, attr) {\n var value = get$1(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add = function (element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set(element, attr, nu.join(' '));\n return true;\n };\n var remove$3 = function (element, attr, id) {\n var nu = filter(read(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set(element, attr, nu.join(' '));\n } else {\n remove(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$7 = function (element) {\n return read(element, 'class');\n };\n var add$1 = function (element, clazz) {\n return add(element, 'class', clazz);\n };\n var remove$4 = function (element, clazz) {\n return remove$3(element, 'class', clazz);\n };\n var toggle = function (element, clazz) {\n if (contains(get$7(element), clazz)) {\n return remove$4(element, clazz);\n } else {\n return add$1(element, clazz);\n }\n };\n\n var ClassList = /*#__PURE__*/Object.freeze({\n get: get$7,\n add: add$1,\n remove: remove$4,\n toggle: toggle,\n supports: supports\n });\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$7(element);\n if (classList.length === 0) {\n remove(element, 'class');\n }\n };\n var remove$5 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$4(element, clazz);\n }\n cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var repeat = function (repititions, f) {\n var r = [];\n for (var i = 0; i < repititions; i++) {\n r.push(f(i));\n }\n return r;\n };\n var range$1 = function (start, end) {\n var r = [];\n for (var i = start; i < end; i++) {\n r.push(i);\n }\n return r;\n };\n var unique = function (xs, comparator) {\n var result = [];\n each(xs, function (x, i) {\n if (i < xs.length - 1 && !comparator(x, xs[i + 1])) {\n result.push(x);\n } else if (i === xs.length - 1) {\n result.push(x);\n }\n });\n return result;\n };\n var deduce = function (xs, index) {\n if (index < 0 || index >= xs.length - 1) {\n return Option.none();\n }\n var current = xs[index].fold(function () {\n var rest = reverse(xs.slice(0, index));\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (c) {\n return Option.some({\n value: c,\n delta: 0\n });\n });\n var next = xs[index + 1].fold(function () {\n var rest = xs.slice(index + 1);\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (n) {\n return Option.some({\n value: n,\n delta: 1\n });\n });\n return current.bind(function (c) {\n return next.map(function (n) {\n var extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n });\n });\n };\n var Util = {\n repeat: repeat,\n range: range$1,\n unique: unique,\n deduce: deduce\n };\n\n var columns = function (warehouse) {\n var grid = warehouse.grid();\n var cols = Util.range(0, grid.columns());\n var rowsArr = Util.range(0, grid.rows());\n return map(cols, function (col) {\n var getBlock = function () {\n return bind(rowsArr, function (r) {\n return Warehouse.getAt(warehouse, r, col).filter(function (detail) {\n return detail.column() === col;\n }).fold(constant([]), function (detail) {\n return [detail];\n });\n });\n };\n var isSingle = function (detail) {\n return detail.colspan() === 1;\n };\n var getFallback = function () {\n return Warehouse.getAt(warehouse, 0, col);\n };\n return decide(getBlock, isSingle, getFallback);\n });\n };\n var decide = function (getBlock, isSingle, getFallback) {\n var inBlock = getBlock();\n var singleInBlock = find(inBlock, isSingle);\n var detailOption = singleInBlock.orThunk(function () {\n return Option.from(inBlock[0]).orThunk(getFallback);\n });\n return detailOption.map(function (detail) {\n return detail.element();\n });\n };\n var rows$1 = function (warehouse) {\n var grid = warehouse.grid();\n var rowsArr = Util.range(0, grid.rows());\n var cols = Util.range(0, grid.columns());\n return map(rowsArr, function (row) {\n var getBlock = function () {\n return bind(cols, function (c) {\n return Warehouse.getAt(warehouse, row, c).filter(function (detail) {\n return detail.row() === row;\n }).fold(constant([]), function (detail) {\n return [detail];\n });\n });\n };\n var isSingle = function (detail) {\n return detail.rowspan() === 1;\n };\n var getFallback = function () {\n return Warehouse.getAt(warehouse, row, 0);\n };\n return decide(getBlock, isSingle, getFallback);\n });\n };\n var Blocks = {\n columns: columns,\n rows: rows$1\n };\n\n var css = function (namespace) {\n var dashNamespace = namespace.replace(/\\./g, '-');\n var resolve = function (str) {\n return dashNamespace + '-' + str;\n };\n return { resolve: resolve };\n };\n\n var styles = css('ephox-snooker');\n var Styles = { resolve: styles.resolve };\n\n var col = function (column, x, y, w, h) {\n var blocker = Element.fromTag('div');\n setAll$1(blocker, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll(blocker, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return blocker;\n };\n var row$1 = function (r, x, y, w, h) {\n var blocker = Element.fromTag('div');\n setAll$1(blocker, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll(blocker, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return blocker;\n };\n var Bar = {\n col: col,\n row: row$1\n };\n\n var resizeBar = Styles.resolve('resizer-bar');\n var resizeRowBar = Styles.resolve('resizer-rows');\n var resizeColBar = Styles.resolve('resizer-cols');\n var BAR_THICKNESS = 7;\n var clear = function (wire) {\n var previous = descendants$1(wire.parent(), '.' + resizeBar);\n each(previous, remove$2);\n };\n var drawBar = function (wire, positions, create) {\n var origin = wire.origin();\n each(positions, function (cpOption, i) {\n cpOption.each(function (cp) {\n var bar = create(origin, cp);\n add$2(bar, resizeBar);\n append(wire.parent(), bar);\n });\n });\n };\n var refreshCol = function (wire, colPositions, position, tableHeight) {\n drawBar(wire, colPositions, function (origin, cp) {\n var colBar = Bar.col(cp.col(), cp.x() - origin.left(), position.top() - origin.top(), BAR_THICKNESS, tableHeight);\n add$2(colBar, resizeColBar);\n return colBar;\n });\n };\n var refreshRow = function (wire, rowPositions, position, tableWidth) {\n drawBar(wire, rowPositions, function (origin, cp) {\n var rowBar = Bar.row(cp.row(), position.left() - origin.left(), cp.y() - origin.top(), tableWidth, BAR_THICKNESS);\n add$2(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n var refreshGrid = function (wire, table, rows, cols, hdirection, vdirection) {\n var position = absolute(table);\n var rowPositions = rows.length > 0 ? hdirection.positions(rows, table) : [];\n refreshRow(wire, rowPositions, position, getOuter$1(table));\n var colPositions = cols.length > 0 ? vdirection.positions(cols, table) : [];\n refreshCol(wire, colPositions, position, getOuter(table));\n };\n var refresh = function (wire, table, hdirection, vdirection) {\n clear(wire);\n var list = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(list);\n var rows = Blocks.rows(warehouse);\n var cols = Blocks.columns(warehouse);\n refreshGrid(wire, table, rows, cols, hdirection, vdirection);\n };\n var each$2 = function (wire, f) {\n var bars = descendants$1(wire.parent(), '.' + resizeBar);\n each(bars, f);\n };\n var hide = function (wire) {\n each$2(wire, function (bar) {\n set$1(bar, 'display', 'none');\n });\n };\n var show = function (wire) {\n each$2(wire, function (bar) {\n set$1(bar, 'display', 'block');\n });\n };\n var isRowBar = function (element) {\n return has$2(element, resizeRowBar);\n };\n var isColBar = function (element) {\n return has$2(element, resizeColBar);\n };\n var Bars = {\n refresh: refresh,\n hide: hide,\n show: show,\n destroy: clear,\n isRowBar: isRowBar,\n isColBar: isColBar\n };\n\n var addCell = function (gridRow, index, cell) {\n var cells = gridRow.cells();\n var before = cells.slice(0, index);\n var after = cells.slice(index);\n var newCells = before.concat([cell]).concat(after);\n return setCells(gridRow, newCells);\n };\n var mutateCell = function (gridRow, index, cell) {\n var cells = gridRow.cells();\n cells[index] = cell;\n };\n var setCells = function (gridRow, cells) {\n return Structs.rowcells(cells, gridRow.section());\n };\n var mapCells = function (gridRow, f) {\n var cells = gridRow.cells();\n var r = map(cells, f);\n return Structs.rowcells(r, gridRow.section());\n };\n var getCell = function (gridRow, index) {\n return gridRow.cells()[index];\n };\n var getCellElement = function (gridRow, index) {\n return getCell(gridRow, index).element();\n };\n var cellLength = function (gridRow) {\n return gridRow.cells().length;\n };\n var GridRow = {\n addCell: addCell,\n setCells: setCells,\n mutateCell: mutateCell,\n getCell: getCell,\n getCellElement: getCellElement,\n mapCells: mapCells,\n cellLength: cellLength\n };\n\n var getColumn = function (grid, index) {\n return map(grid, function (row) {\n return GridRow.getCell(row, index);\n });\n };\n var getRow = function (grid, index) {\n return grid[index];\n };\n var findDiff = function (xs, comp) {\n if (xs.length === 0) {\n return 0;\n }\n var first = xs[0];\n var index = findIndex(xs, function (x) {\n return !comp(first.element(), x.element());\n });\n return index.fold(function () {\n return xs.length;\n }, function (ind) {\n return ind;\n });\n };\n var subgrid = function (grid, row, column, comparator) {\n var restOfRow = getRow(grid, row).cells().slice(column);\n var endColIndex = findDiff(restOfRow, comparator);\n var restOfColumn = getColumn(grid, column).slice(row);\n var endRowIndex = findDiff(restOfColumn, comparator);\n return {\n colspan: constant(endColIndex),\n rowspan: constant(endRowIndex)\n };\n };\n var TableGrid = { subgrid: subgrid };\n\n var toDetails = function (grid, comparator) {\n var seen = map(grid, function (row, ri) {\n return map(row.cells(), function (col, ci) {\n return false;\n });\n });\n var updateSeen = function (ri, ci, rowspan, colspan) {\n for (var r = ri; r < ri + rowspan; r++) {\n for (var c = ci; c < ci + colspan; c++) {\n seen[r][c] = true;\n }\n }\n };\n return map(grid, function (row, ri) {\n var details = bind(row.cells(), function (cell, ci) {\n if (seen[ri][ci] === false) {\n var result = TableGrid.subgrid(grid, ri, ci, comparator);\n updateSeen(ri, ci, result.rowspan(), result.colspan());\n return [Structs.detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];\n } else {\n return [];\n }\n });\n return Structs.rowdetails(details, row.section());\n });\n };\n var toGrid = function (warehouse, generators, isNew) {\n var grid = [];\n for (var i = 0; i < warehouse.grid().rows(); i++) {\n var rowCells = [];\n for (var j = 0; j < warehouse.grid().columns(); j++) {\n var element = Warehouse.getAt(warehouse, i, j).map(function (item) {\n return Structs.elementnew(item.element(), isNew);\n }).getOrThunk(function () {\n return Structs.elementnew(generators.gap(), true);\n });\n rowCells.push(element);\n }\n var row = Structs.rowcells(rowCells, warehouse.all()[i].section());\n grid.push(row);\n }\n return grid;\n };\n var Transitions = {\n toDetails: toDetails,\n toGrid: toGrid\n };\n\n var fromWarehouse = function (warehouse, generators) {\n return Transitions.toGrid(warehouse, generators, false);\n };\n var deriveRows = function (rendered, generators) {\n var findRow = function (details) {\n var rowOfCells = findMap(details, function (detail) {\n return parent(detail.element()).map(function (row) {\n var isNew = parent(row).isNone();\n return Structs.elementnew(row, isNew);\n });\n });\n return rowOfCells.getOrThunk(function () {\n return Structs.elementnew(generators.row(), true);\n });\n };\n return map(rendered, function (details) {\n var row = findRow(details.details());\n return Structs.rowdatanew(row.element(), details.details(), details.section(), row.isNew());\n });\n };\n var toDetailList = function (grid, generators) {\n var rendered = Transitions.toDetails(grid, eq);\n return deriveRows(rendered, generators);\n };\n var findInWarehouse = function (warehouse, element) {\n var all = flatten(map(warehouse.all(), function (r) {\n return r.cells();\n }));\n return find(all, function (e) {\n return eq(element, e.element());\n });\n };\n var run = function (operation, extract, adjustment, postAction, genWrappers) {\n return function (wire, table, target, generators, direction) {\n var input = DetailsList.fromTable(table);\n var warehouse = Warehouse.generate(input);\n var output = extract(warehouse, target).map(function (info) {\n var model = fromWarehouse(warehouse, generators);\n var result = operation(model, info, eq, genWrappers(generators));\n var grid = toDetailList(result.grid(), generators);\n return {\n grid: constant(grid),\n cursor: result.cursor\n };\n });\n return output.fold(function () {\n return Option.none();\n }, function (out) {\n var newElements = Redraw.render(table, out.grid());\n adjustment(table, out.grid(), direction);\n postAction(table);\n Bars.refresh(wire, table, BarPositions.height, direction);\n return Option.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n };\n var onCell = function (warehouse, target) {\n return TableLookup.cell(target.element()).bind(function (cell) {\n return findInWarehouse(warehouse, cell);\n });\n };\n var onPaste = function (warehouse, target) {\n return TableLookup.cell(target.element()).bind(function (cell) {\n return findInWarehouse(warehouse, cell).map(function (details) {\n return merge(details, {\n generators: target.generators,\n clipboard: target.clipboard\n });\n });\n });\n };\n var onPasteRows = function (warehouse, target) {\n var details = map(target.selection(), function (cell) {\n return TableLookup.cell(cell).bind(function (lc) {\n return findInWarehouse(warehouse, lc);\n });\n });\n var cells = cat(details);\n return cells.length > 0 ? Option.some(merge({ cells: cells }, {\n generators: target.generators,\n clipboard: target.clipboard\n })) : Option.none();\n };\n var onMergable = function (warehouse, target) {\n return target.mergable();\n };\n var onUnmergable = function (warehouse, target) {\n return target.unmergable();\n };\n var onCells = function (warehouse, target) {\n var details = map(target.selection(), function (cell) {\n return TableLookup.cell(cell).bind(function (lc) {\n return findInWarehouse(warehouse, lc);\n });\n });\n var cells = cat(details);\n return cells.length > 0 ? Option.some(cells) : Option.none();\n };\n var RunOperation = {\n run: run,\n toDetailList: toDetailList,\n onCell: onCell,\n onCells: onCells,\n onPaste: onPaste,\n onPasteRows: onPasteRows,\n onMergable: onMergable,\n onUnmergable: onUnmergable\n };\n\n var value$1 = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value$1(o);\n };\n var orThunk = function (f) {\n return value$1(o);\n };\n var map = function (f) {\n return value$1(f(o));\n };\n var mapError = function (f) {\n return value$1(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value$1,\n error: error\n };\n\n var measure = function (startAddress, gridA, gridB) {\n if (startAddress.row() >= gridA.length || startAddress.column() > GridRow.cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row() + ', column: ' + startAddress.column());\n }\n var rowRemainder = gridA.slice(startAddress.row());\n var colRemainder = rowRemainder[0].cells().slice(startAddress.column());\n var colRequired = GridRow.cellLength(gridB[0]);\n var rowRequired = gridB.length;\n return Result.value({\n rowDelta: constant(rowRemainder.length - rowRequired),\n colDelta: constant(colRemainder.length - colRequired)\n });\n };\n var measureWidth = function (gridA, gridB) {\n var colLengthA = GridRow.cellLength(gridA[0]);\n var colLengthB = GridRow.cellLength(gridB[0]);\n return {\n rowDelta: constant(0),\n colDelta: constant(colLengthA - colLengthB)\n };\n };\n var fill = function (cells, generator) {\n return map(cells, function () {\n return Structs.elementnew(generator.cell(), true);\n });\n };\n var rowFill = function (grid, amount, generator) {\n return grid.concat(Util.repeat(amount, function (_row) {\n return GridRow.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));\n }));\n };\n var colFill = function (grid, amount, generator) {\n return map(grid, function (row) {\n return GridRow.setCells(row, row.cells().concat(fill(Util.range(0, amount), generator)));\n });\n };\n var tailor = function (gridA, delta, generator) {\n var fillCols = delta.colDelta() < 0 ? colFill : identity;\n var fillRows = delta.rowDelta() < 0 ? rowFill : identity;\n var modifiedCols = fillCols(gridA, Math.abs(delta.colDelta()), generator);\n var tailoredGrid = fillRows(modifiedCols, Math.abs(delta.rowDelta()), generator);\n return tailoredGrid;\n };\n var Fitment = {\n measure: measure,\n measureWidth: measureWidth,\n tailor: tailor\n };\n\n var merge$1 = function (grid, bounds, comparator, substitution) {\n if (grid.length === 0) {\n return grid;\n }\n for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {\n for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {\n GridRow.mutateCell(grid[i], j, Structs.elementnew(substitution(), false));\n }\n }\n return grid;\n };\n var unmerge = function (grid, target, comparator, substitution) {\n var first = true;\n for (var i = 0; i < grid.length; i++) {\n for (var j = 0; j < GridRow.cellLength(grid[0]); j++) {\n var current = GridRow.getCellElement(grid[i], j);\n var isToReplace = comparator(current, target);\n if (isToReplace === true && first === false) {\n GridRow.mutateCell(grid[i], j, Structs.elementnew(substitution(), true));\n } else if (isToReplace === true) {\n first = false;\n }\n }\n }\n return grid;\n };\n var uniqueCells = function (row, comparator) {\n return foldl(row, function (rest, cell) {\n return exists(rest, function (currentCell) {\n return comparator(currentCell.element(), cell.element());\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n var splitRows = function (grid, index, comparator, substitution) {\n if (index > 0 && index < grid.length) {\n var rowPrevCells = grid[index - 1].cells();\n var cells = uniqueCells(rowPrevCells, comparator);\n each(cells, function (cell) {\n var replacement = Option.none();\n var _loop_1 = function (i) {\n var _loop_2 = function (j) {\n var current = grid[i].cells()[j];\n var isToReplace = comparator(current.element(), cell.element());\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Option.some(substitution());\n }\n replacement.each(function (sub) {\n GridRow.mutateCell(grid[i], j, Structs.elementnew(sub, true));\n });\n }\n };\n for (var j = 0; j < GridRow.cellLength(grid[0]); j++) {\n _loop_2(j);\n }\n };\n for (var i = index; i < grid.length; i++) {\n _loop_1(i);\n }\n });\n }\n return grid;\n };\n var MergingOperations = {\n merge: merge$1,\n unmerge: unmerge,\n splitRows: splitRows\n };\n\n var isSpanning = function (grid, row, col, comparator) {\n var candidate = GridRow.getCell(grid[row], col);\n var matching = curry(comparator, candidate.element());\n var currentRow = grid[row];\n return grid.length > 1 && GridRow.cellLength(currentRow) > 1 && (col > 0 && matching(GridRow.getCellElement(currentRow, col - 1)) || col < currentRow.length - 1 && matching(GridRow.getCellElement(currentRow, col + 1)) || row > 0 && matching(GridRow.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(GridRow.getCellElement(grid[row + 1], col)));\n };\n var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {\n var startRow = startAddress.row();\n var startCol = startAddress.column();\n var mergeHeight = gridB.length;\n var mergeWidth = GridRow.cellLength(gridB[0]);\n var endRow = startRow + mergeHeight;\n var endCol = startCol + mergeWidth;\n for (var r = startRow; r < endRow; r++) {\n for (var c = startCol; c < endCol; c++) {\n if (isSpanning(gridA, r, c, comparator)) {\n MergingOperations.unmerge(gridA, GridRow.getCellElement(gridA[r], c), comparator, generator.cell);\n }\n var newCell = GridRow.getCellElement(gridB[r - startRow], c - startCol);\n var replacement = generator.replace(newCell);\n GridRow.mutateCell(gridA[r], c, Structs.elementnew(replacement, true));\n }\n }\n return gridA;\n };\n var merge$2 = function (startAddress, gridA, gridB, generator, comparator) {\n var result = Fitment.measure(startAddress, gridA, gridB);\n return result.map(function (delta) {\n var fittedGrid = Fitment.tailor(gridA, delta, generator);\n return mergeTables(startAddress, fittedGrid, gridB, generator, comparator);\n });\n };\n var insert = function (index, gridA, gridB, generator, comparator) {\n MergingOperations.splitRows(gridA, index, comparator, generator.cell);\n var delta = Fitment.measureWidth(gridB, gridA);\n var fittedNewGrid = Fitment.tailor(gridB, delta, generator);\n var secondDelta = Fitment.measureWidth(gridA, fittedNewGrid);\n var fittedOldGrid = Fitment.tailor(gridA, secondDelta, generator);\n return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));\n };\n var TableMerge = {\n merge: merge$2,\n insert: insert\n };\n\n var insertRowAt = function (grid, index, example, comparator, substitution) {\n var before = grid.slice(0, index);\n var after = grid.slice(index);\n var between = GridRow.mapCells(grid[example], function (ex, c) {\n var withinSpan = index > 0 && index < grid.length && comparator(GridRow.getCellElement(grid[index - 1], c), GridRow.getCellElement(grid[index], c));\n var ret = withinSpan ? GridRow.getCell(grid[index], c) : Structs.elementnew(substitution(ex.element(), comparator), true);\n return ret;\n });\n return before.concat([between]).concat(after);\n };\n var insertColumnAt = function (grid, index, example, comparator, substitution) {\n return map(grid, function (row) {\n var withinSpan = index > 0 && index < GridRow.cellLength(row) && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));\n var sub = withinSpan ? GridRow.getCell(row, index) : Structs.elementnew(substitution(GridRow.getCellElement(row, example), comparator), true);\n return GridRow.addCell(row, index, sub);\n });\n };\n var splitCellIntoColumns = function (grid, exampleRow, exampleCol, comparator, substitution) {\n var index = exampleCol + 1;\n return map(grid, function (row, i) {\n var isTargetCell = i === exampleRow;\n var sub = isTargetCell ? Structs.elementnew(substitution(GridRow.getCellElement(row, exampleCol), comparator), true) : GridRow.getCell(row, exampleCol);\n return GridRow.addCell(row, index, sub);\n });\n };\n var splitCellIntoRows = function (grid, exampleRow, exampleCol, comparator, substitution) {\n var index = exampleRow + 1;\n var before = grid.slice(0, index);\n var after = grid.slice(index);\n var between = GridRow.mapCells(grid[exampleRow], function (ex, i) {\n var isTargetCell = i === exampleCol;\n return isTargetCell ? Structs.elementnew(substitution(ex.element(), comparator), true) : ex;\n });\n return before.concat([between]).concat(after);\n };\n var deleteColumnsAt = function (grid, start, finish) {\n var rows = map(grid, function (row) {\n var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));\n return Structs.rowcells(cells, row.section());\n });\n return filter(rows, function (row) {\n return row.cells().length > 0;\n });\n };\n var deleteRowsAt = function (grid, start, finish) {\n return grid.slice(0, start).concat(grid.slice(finish + 1));\n };\n var ModificationOperations = {\n insertRowAt: insertRowAt,\n insertColumnAt: insertColumnAt,\n splitCellIntoColumns: splitCellIntoColumns,\n splitCellIntoRows: splitCellIntoRows,\n deleteRowsAt: deleteRowsAt,\n deleteColumnsAt: deleteColumnsAt\n };\n\n var replaceIn = function (grid, targets, comparator, substitution) {\n var isTarget = function (cell) {\n return exists(targets, function (target) {\n return comparator(cell.element(), target.element());\n });\n };\n return map(grid, function (row) {\n return GridRow.mapCells(row, function (cell) {\n return isTarget(cell) ? Structs.elementnew(substitution(cell.element(), comparator), true) : cell;\n });\n });\n };\n var notStartRow = function (grid, rowIndex, colIndex, comparator) {\n return GridRow.getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(GridRow.getCellElement(grid[rowIndex - 1], colIndex), GridRow.getCellElement(grid[rowIndex], colIndex)));\n };\n var notStartColumn = function (row, index, comparator) {\n return index > 0 && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));\n };\n var replaceColumn = function (grid, index, comparator, substitution) {\n var targets = bind(grid, function (row, i) {\n var alreadyAdded = notStartRow(grid, i, index, comparator) || notStartColumn(row, index, comparator);\n return alreadyAdded ? [] : [GridRow.getCell(row, index)];\n });\n return replaceIn(grid, targets, comparator, substitution);\n };\n var replaceRow = function (grid, index, comparator, substitution) {\n var targetRow = grid[index];\n var targets = bind(targetRow.cells(), function (item, i) {\n var alreadyAdded = notStartRow(grid, index, i, comparator) || notStartColumn(targetRow, i, comparator);\n return alreadyAdded ? [] : [item];\n });\n return replaceIn(grid, targets, comparator, substitution);\n };\n var TransformOperations = {\n replaceColumn: replaceColumn,\n replaceRow: replaceRow\n };\n\n var none$1 = function () {\n return folder(function (n, o, l, m, r) {\n return n();\n });\n };\n var only = function (index) {\n return folder(function (n, o, l, m, r) {\n return o(index);\n });\n };\n var left = function (index, next) {\n return folder(function (n, o, l, m, r) {\n return l(index, next);\n });\n };\n var middle = function (prev, index, next) {\n return folder(function (n, o, l, m, r) {\n return m(prev, index, next);\n });\n };\n var right = function (prev, index) {\n return folder(function (n, o, l, m, r) {\n return r(prev, index);\n });\n };\n var folder = function (fold) {\n return { fold: fold };\n };\n var ColumnContext = {\n none: none$1,\n only: only,\n left: left,\n middle: middle,\n right: right\n };\n\n var neighbours$1 = function (input, index) {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n return ColumnContext.none();\n };\n var determine = function (input, column, step, tableSize) {\n var result = input.slice(0);\n var context = neighbours$1(input, column);\n var zero = function (array) {\n return map(array, constant(0));\n };\n var onNone = constant(zero(result));\n var onOnly = function (index) {\n return tableSize.singleColumnWidth(result[index], step);\n };\n var onChange = function (index, next) {\n if (step >= 0) {\n var newNext = Math.max(tableSize.minCellWidth(), result[next] - step);\n return zero(result.slice(0, index)).concat([\n step,\n newNext - result[next]\n ]).concat(zero(result.slice(next + 1)));\n } else {\n var newThis = Math.max(tableSize.minCellWidth(), result[index] + step);\n var diffx = result[index] - newThis;\n return zero(result.slice(0, index)).concat([\n newThis - result[index],\n diffx\n ]).concat(zero(result.slice(next + 1)));\n }\n };\n var onLeft = onChange;\n var onMiddle = function (prev, index, next) {\n return onChange(index, next);\n };\n var onRight = function (prev, index) {\n if (step >= 0) {\n return zero(result.slice(0, index)).concat([step]);\n } else {\n var size = Math.max(tableSize.minCellWidth(), result[index] + step);\n return zero(result.slice(0, index)).concat([size - result[index]]);\n }\n };\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n var Deltas = { determine: determine };\n\n var getSpan$1 = function (cell, type) {\n return has$1(cell, type) && parseInt(get$1(cell, type), 10) > 1;\n };\n var hasColspan = function (cell) {\n return getSpan$1(cell, 'colspan');\n };\n var hasRowspan = function (cell) {\n return getSpan$1(cell, 'rowspan');\n };\n var getInt = function (element, property) {\n return parseInt(get$2(element, property), 10);\n };\n var CellUtils = {\n hasColspan: hasColspan,\n hasRowspan: hasRowspan,\n minWidth: constant(10),\n minHeight: constant(10),\n getInt: getInt\n };\n\n var getRaw$1 = function (cell, property, getter) {\n return getRaw(cell, property).fold(function () {\n return getter(cell) + 'px';\n }, function (raw) {\n return raw;\n });\n };\n var getRawW = function (cell) {\n return getRaw$1(cell, 'width', Sizes.getPixelWidth);\n };\n var getRawH = function (cell) {\n return getRaw$1(cell, 'height', Sizes.getHeight);\n };\n var getWidthFrom = function (warehouse, direction, getWidth, fallback, tableSize) {\n var columns = Blocks.columns(warehouse);\n var backups = map(columns, function (cellOption) {\n return cellOption.map(direction.edge);\n });\n return map(columns, function (cellOption, c) {\n var columnCell = cellOption.filter(not(CellUtils.hasColspan));\n return columnCell.fold(function () {\n var deduced = Util.deduce(backups, c);\n return fallback(deduced);\n }, function (cell) {\n return getWidth(cell, tableSize);\n });\n });\n };\n var getDeduced = function (deduced) {\n return deduced.map(function (d) {\n return d + 'px';\n }).getOr('');\n };\n var getRawWidths = function (warehouse, direction) {\n return getWidthFrom(warehouse, direction, getRawW, getDeduced);\n };\n var getPercentageWidths = function (warehouse, direction, tableSize) {\n return getWidthFrom(warehouse, direction, Sizes.getPercentageWidth, function (deduced) {\n return deduced.fold(function () {\n return tableSize.minCellWidth();\n }, function (cellWidth) {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n }, tableSize);\n };\n var getPixelWidths = function (warehouse, direction, tableSize) {\n return getWidthFrom(warehouse, direction, Sizes.getPixelWidth, function (deduced) {\n return deduced.getOrThunk(tableSize.minCellWidth);\n }, tableSize);\n };\n var getHeightFrom = function (warehouse, direction, getHeight, fallback) {\n var rows = Blocks.rows(warehouse);\n var backups = map(rows, function (cellOption) {\n return cellOption.map(direction.edge);\n });\n return map(rows, function (cellOption, c) {\n var rowCell = cellOption.filter(not(CellUtils.hasRowspan));\n return rowCell.fold(function () {\n var deduced = Util.deduce(backups, c);\n return fallback(deduced);\n }, function (cell) {\n return getHeight(cell);\n });\n });\n };\n var getPixelHeights = function (warehouse, direction) {\n return getHeightFrom(warehouse, direction, Sizes.getHeight, function (deduced) {\n return deduced.getOrThunk(CellUtils.minHeight);\n });\n };\n var getRawHeights = function (warehouse, direction) {\n return getHeightFrom(warehouse, direction, getRawH, getDeduced);\n };\n var ColumnSizes = {\n getRawWidths: getRawWidths,\n getPixelWidths: getPixelWidths,\n getPercentageWidths: getPercentageWidths,\n getPixelHeights: getPixelHeights,\n getRawHeights: getRawHeights\n };\n\n var total = function (start, end, measures) {\n var r = 0;\n for (var i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n return r;\n };\n var recalculateWidth = function (warehouse, widths) {\n var all = Warehouse.justCells(warehouse);\n return map(all, function (cell) {\n var width = total(cell.column(), cell.column() + cell.colspan(), widths);\n return {\n element: cell.element,\n width: constant(width),\n colspan: cell.colspan\n };\n });\n };\n var recalculateHeight = function (warehouse, heights) {\n var all = Warehouse.justCells(warehouse);\n return map(all, function (cell) {\n var height = total(cell.row(), cell.row() + cell.rowspan(), heights);\n return {\n element: cell.element,\n height: constant(height),\n rowspan: cell.rowspan\n };\n });\n };\n var matchRowHeight = function (warehouse, heights) {\n return map(warehouse.all(), function (row, i) {\n return {\n element: row.element,\n height: constant(heights[i])\n };\n });\n };\n var Recalculations = {\n recalculateWidth: recalculateWidth,\n recalculateHeight: recalculateHeight,\n matchRowHeight: matchRowHeight\n };\n\n var percentageSize = function (width, element) {\n var floatWidth = parseFloat(width);\n var pixelWidth = get$5(element);\n var getCellDelta = function (delta) {\n return delta / pixelWidth * 100;\n };\n var singleColumnWidth = function (w, _delta) {\n return [100 - w];\n };\n var minCellWidth = function () {\n return CellUtils.minWidth() / pixelWidth * 100;\n };\n var setTableWidth = function (table, _newWidths, delta) {\n var total = floatWidth + delta;\n Sizes.setPercentageWidth(table, total);\n };\n return {\n width: constant(floatWidth),\n pixelWidth: constant(pixelWidth),\n getWidths: ColumnSizes.getPercentageWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: minCellWidth,\n setElementWidth: Sizes.setPercentageWidth,\n setTableWidth: setTableWidth\n };\n };\n var pixelSize = function (width) {\n var intWidth = parseInt(width, 10);\n var getCellDelta = identity;\n var singleColumnWidth = function (w, delta) {\n var newNext = Math.max(CellUtils.minWidth(), w + delta);\n return [newNext - w];\n };\n var setTableWidth = function (table, newWidths, _delta) {\n var total = foldr(newWidths, function (b, a) {\n return b + a;\n }, 0);\n Sizes.setPixelWidth(table, total);\n };\n return {\n width: constant(intWidth),\n pixelWidth: constant(intWidth),\n getWidths: ColumnSizes.getPixelWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: CellUtils.minWidth,\n setElementWidth: Sizes.setPixelWidth,\n setTableWidth: setTableWidth\n };\n };\n var chooseSize = function (element, width) {\n if (Sizes.percentageBasedSizeRegex().test(width)) {\n var percentMatch = Sizes.percentageBasedSizeRegex().exec(width);\n return percentageSize(percentMatch[1], element);\n } else if (Sizes.pixelBasedSizeRegex().test(width)) {\n var pixelMatch = Sizes.pixelBasedSizeRegex().exec(width);\n return pixelSize(pixelMatch[1]);\n } else {\n var fallbackWidth = get$5(element);\n return pixelSize(fallbackWidth);\n }\n };\n var getTableSize = function (element) {\n var width = Sizes.getRawWidth(element);\n return width.fold(function () {\n var fallbackWidth = get$5(element);\n return pixelSize(fallbackWidth);\n }, function (w) {\n return chooseSize(element, w);\n });\n };\n var TableSize = { getTableSize: getTableSize };\n\n var getWarehouse$1 = function (list) {\n return Warehouse.generate(list);\n };\n var sumUp = function (newSize) {\n return foldr(newSize, function (b, a) {\n return b + a;\n }, 0);\n };\n var getTableWarehouse = function (table) {\n var list = DetailsList.fromTable(table);\n return getWarehouse$1(list);\n };\n var adjustWidth = function (table, delta, index, direction) {\n var tableSize = TableSize.getTableSize(table);\n var step = tableSize.getCellDelta(delta);\n var warehouse = getTableWarehouse(table);\n var widths = tableSize.getWidths(warehouse, direction, tableSize);\n var deltas = Deltas.determine(widths, index, step, tableSize);\n var newWidths = map(deltas, function (dx, i) {\n return dx + widths[i];\n });\n var newSizes = Recalculations.recalculateWidth(warehouse, newWidths);\n each(newSizes, function (cell) {\n tableSize.setElementWidth(cell.element(), cell.width());\n });\n if (index === warehouse.grid().columns() - 1) {\n tableSize.setTableWidth(table, newWidths, step);\n }\n };\n var adjustHeight = function (table, delta, index, direction) {\n var warehouse = getTableWarehouse(table);\n var heights = ColumnSizes.getPixelHeights(warehouse, direction);\n var newHeights = map(heights, function (dy, i) {\n return index === i ? Math.max(delta + dy, CellUtils.minHeight()) : dy;\n });\n var newCellSizes = Recalculations.recalculateHeight(warehouse, newHeights);\n var newRowSizes = Recalculations.matchRowHeight(warehouse, newHeights);\n each(newRowSizes, function (row) {\n Sizes.setHeight(row.element(), row.height());\n });\n each(newCellSizes, function (cell) {\n Sizes.setHeight(cell.element(), cell.height());\n });\n var total = sumUp(newHeights);\n Sizes.setHeight(table, total);\n };\n var adjustWidthTo = function (table, list, direction) {\n var tableSize = TableSize.getTableSize(table);\n var warehouse = getWarehouse$1(list);\n var widths = tableSize.getWidths(warehouse, direction, tableSize);\n var newSizes = Recalculations.recalculateWidth(warehouse, widths);\n each(newSizes, function (cell) {\n tableSize.setElementWidth(cell.element(), cell.width());\n });\n var total = foldr(widths, function (b, a) {\n return a + b;\n }, 0);\n if (newSizes.length > 0) {\n tableSize.setTableWidth(table, total);\n }\n };\n var Adjustments = {\n adjustWidth: adjustWidth,\n adjustHeight: adjustHeight,\n adjustWidthTo: adjustWidthTo\n };\n\n var base = function (handleUnsupported, required) {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n var baseWith = function (handleUnsupported, required, pred) {\n if (required.length === 0)\n throw new Error('You must specify at least one required field.');\n validateStrArr('required', required);\n checkDupes(required);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains(keys$1, req);\n });\n if (!allReqd)\n reqMessage(required, keys$1);\n handleUnsupported(required, keys$1);\n var invalidKeys = filter(required, function (key) {\n return !pred.validate(obj[key], key);\n });\n if (invalidKeys.length > 0)\n invalidTypeMessage(invalidKeys, pred.label);\n return obj;\n };\n };\n var handleExact = function (required, keys) {\n var unsupported = filter(keys, function (key) {\n return !contains(required, key);\n });\n if (unsupported.length > 0)\n unsuppMessage(unsupported);\n };\n var allowExtra = noop;\n var exactly = function (required) {\n return base(handleExact, required);\n };\n var ensure = function (required) {\n return base(allowExtra, required);\n };\n var ensureWith = function (required, condition) {\n return baseWith(allowExtra, required, condition);\n };\n\n var Contracts = /*#__PURE__*/Object.freeze({\n exactly: exactly,\n ensure: ensure,\n ensureWith: ensureWith\n });\n\n var elementToData = function (element) {\n var colspan = has$1(element, 'colspan') ? parseInt(get$1(element, 'colspan'), 10) : 1;\n var rowspan = has$1(element, 'rowspan') ? parseInt(get$1(element, 'rowspan'), 10) : 1;\n return {\n element: constant(element),\n colspan: constant(colspan),\n rowspan: constant(rowspan)\n };\n };\n var modification = function (generators, _toData) {\n contract(generators);\n var position = Cell(Option.none());\n var toData = _toData !== undefined ? _toData : elementToData;\n var nu = function (data) {\n return generators.cell(data);\n };\n var nuFrom = function (element) {\n var data = toData(element);\n return nu(data);\n };\n var add = function (element) {\n var replacement = nuFrom(element);\n if (position.get().isNone()) {\n position.set(Option.some(replacement));\n }\n recent = Option.some({\n item: element,\n replacement: replacement\n });\n return replacement;\n };\n var recent = Option.none();\n var getOrInit = function (element, comparator) {\n return recent.fold(function () {\n return add(element);\n }, function (p) {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n return {\n getOrInit: getOrInit,\n cursor: position.get\n };\n };\n var transform = function (scope, tag) {\n return function (generators) {\n var position = Cell(Option.none());\n contract(generators);\n var list = [];\n var find$1 = function (element, comparator) {\n return find(list, function (x) {\n return comparator(x.item, element);\n });\n };\n var makeNew = function (element) {\n var cell = generators.replace(element, tag, { scope: scope });\n list.push({\n item: element,\n sub: cell\n });\n if (position.get().isNone()) {\n position.set(Option.some(cell));\n }\n return cell;\n };\n var replaceOrInit = function (element, comparator) {\n return find$1(element, comparator).fold(function () {\n return makeNew(element);\n }, function (p) {\n return comparator(element, p.item) ? p.sub : makeNew(element);\n });\n };\n return {\n replaceOrInit: replaceOrInit,\n cursor: position.get\n };\n };\n };\n var merging = function (generators) {\n contract(generators);\n var position = Cell(Option.none());\n var combine = function (cell) {\n if (position.get().isNone()) {\n position.set(Option.some(cell));\n }\n return function () {\n var raw = generators.cell({\n element: constant(cell),\n colspan: constant(1),\n rowspan: constant(1)\n });\n remove$1(raw, 'width');\n remove$1(cell, 'width');\n return raw;\n };\n };\n return {\n combine: combine,\n cursor: position.get\n };\n };\n var contract = exactly([\n 'cell',\n 'row',\n 'replace',\n 'gap'\n ]);\n var Generators = {\n modification: modification,\n transform: transform,\n merging: merging\n };\n\n var blockList = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'table',\n 'thead',\n 'tfoot',\n 'tbody',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n var isList = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'ol',\n 'ul'\n ], tagName);\n };\n var isBlock = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains(blockList, tagName);\n };\n var isFormatting = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'address',\n 'pre',\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], tagName);\n };\n var isHeading = function (universe, item) {\n var tagName = universe.property().name(item);\n return contains([\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ], tagName);\n };\n var isContainer = function (universe, item) {\n return contains([\n 'div',\n 'li',\n 'td',\n 'th',\n 'blockquote',\n 'body',\n 'caption'\n ], universe.property().name(item));\n };\n var isEmptyTag = function (universe, item) {\n return contains([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], universe.property().name(item));\n };\n var isFrame = function (universe, item) {\n return universe.property().name(item) === 'iframe';\n };\n var isInline = function (universe, item) {\n return !(isBlock(universe, item) || isEmptyTag(universe, item)) && universe.property().name(item) !== 'li';\n };\n var Structure = {\n isBlock: isBlock,\n isList: isList,\n isFormatting: isFormatting,\n isHeading: isHeading,\n isContainer: isContainer,\n isEmptyTag: isEmptyTag,\n isFrame: isFrame,\n isInline: isInline\n };\n\n var universe$1 = DomUniverse();\n var isBlock$1 = function (element) {\n return Structure.isBlock(universe$1, element);\n };\n var isList$1 = function (element) {\n return Structure.isList(universe$1, element);\n };\n var isFormatting$1 = function (element) {\n return Structure.isFormatting(universe$1, element);\n };\n var isHeading$1 = function (element) {\n return Structure.isHeading(universe$1, element);\n };\n var isContainer$1 = function (element) {\n return Structure.isContainer(universe$1, element);\n };\n var isEmptyTag$1 = function (element) {\n return Structure.isEmptyTag(universe$1, element);\n };\n var isFrame$1 = function (element) {\n return Structure.isFrame(universe$1, element);\n };\n var isInline$1 = function (element) {\n return Structure.isInline(universe$1, element);\n };\n var DomStructure = {\n isBlock: isBlock$1,\n isList: isList$1,\n isFormatting: isFormatting$1,\n isHeading: isHeading$1,\n isContainer: isContainer$1,\n isEmptyTag: isEmptyTag$1,\n isFrame: isFrame$1,\n isInline: isInline$1\n };\n\n var merge$3 = function (cells) {\n var isBr = function (el) {\n return name(el) === 'br';\n };\n var advancedBr = function (children) {\n return forall(children, function (c) {\n return isBr(c) || isText(c) && get$3(c).trim().length === 0;\n });\n };\n var isListItem = function (el) {\n return name(el) === 'li' || ancestor(el, DomStructure.isList).isSome();\n };\n var siblingIsBlock = function (el) {\n return nextSibling(el).map(function (rightSibling) {\n if (DomStructure.isBlock(rightSibling)) {\n return true;\n }\n if (DomStructure.isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n }).getOr(false);\n };\n var markCell = function (cell) {\n return last$1(cell).bind(function (rightEdge) {\n var rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(function (parent) {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || DomStructure.isBlock(parent) && !eq(cell, parent) ? [] : [Element.fromTag('br')];\n });\n }).getOr([]);\n };\n var markContent = function () {\n var content = bind(cells, function (cell) {\n var children$1 = children(cell);\n return advancedBr(children$1) ? [] : children$1.concat(markCell(cell));\n });\n return content.length === 0 ? [Element.fromTag('br')] : content;\n };\n var contents = markContent();\n empty(cells[0]);\n append$1(cells[0], contents);\n };\n var TableContent = { merge: merge$3 };\n\n var prune = function (table) {\n var cells = TableLookup.cells(table);\n if (cells.length === 0) {\n remove$2(table);\n }\n };\n var outcome = Immutable('grid', 'cursor');\n var elementFromGrid = function (grid, row, column) {\n return findIn(grid, row, column).orThunk(function () {\n return findIn(grid, 0, 0);\n });\n };\n var findIn = function (grid, row, column) {\n return Option.from(grid[row]).bind(function (r) {\n return Option.from(r.cells()[column]).bind(function (c) {\n return Option.from(c.element());\n });\n });\n };\n var bundle = function (grid, row, column) {\n return outcome(grid, findIn(grid, row, column));\n };\n var uniqueRows = function (details) {\n return foldl(details, function (rest, detail) {\n return exists(rest, function (currentDetail) {\n return currentDetail.row() === detail.row();\n }) ? rest : rest.concat([detail]);\n }, []).sort(function (detailA, detailB) {\n return detailA.row() - detailB.row();\n });\n };\n var uniqueColumns = function (details) {\n return foldl(details, function (rest, detail) {\n return exists(rest, function (currentDetail) {\n return currentDetail.column() === detail.column();\n }) ? rest : rest.concat([detail]);\n }, []).sort(function (detailA, detailB) {\n return detailA.column() - detailB.column();\n });\n };\n var insertRowBefore = function (grid, detail, comparator, genWrappers) {\n var example = detail.row();\n var targetIndex = detail.row();\n var newGrid = ModificationOperations.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, targetIndex, detail.column());\n };\n var insertRowsBefore = function (grid, details, comparator, genWrappers) {\n var example = details[0].row();\n var targetIndex = details[0].row();\n var rows = uniqueRows(details);\n var newGrid = foldl(rows, function (newG, _row) {\n return ModificationOperations.insertRowAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column());\n };\n var insertRowAfter = function (grid, detail, comparator, genWrappers) {\n var example = detail.row();\n var targetIndex = detail.row() + detail.rowspan();\n var newGrid = ModificationOperations.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, targetIndex, detail.column());\n };\n var insertRowsAfter = function (grid, details, comparator, genWrappers) {\n var rows = uniqueRows(details);\n var example = rows[rows.length - 1].row();\n var targetIndex = rows[rows.length - 1].row() + rows[rows.length - 1].rowspan();\n var newGrid = foldl(rows, function (newG, _row) {\n return ModificationOperations.insertRowAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column());\n };\n var insertColumnBefore = function (grid, detail, comparator, genWrappers) {\n var example = detail.column();\n var targetIndex = detail.column();\n var newGrid = ModificationOperations.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), targetIndex);\n };\n var insertColumnsBefore = function (grid, details, comparator, genWrappers) {\n var columns = uniqueColumns(details);\n var example = columns[0].column();\n var targetIndex = columns[0].column();\n var newGrid = foldl(columns, function (newG, _row) {\n return ModificationOperations.insertColumnAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row(), targetIndex);\n };\n var insertColumnAfter = function (grid, detail, comparator, genWrappers) {\n var example = detail.column();\n var targetIndex = detail.column() + detail.colspan();\n var newGrid = ModificationOperations.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), targetIndex);\n };\n var insertColumnsAfter = function (grid, details, comparator, genWrappers) {\n var example = details[details.length - 1].column();\n var targetIndex = details[details.length - 1].column() + details[details.length - 1].colspan();\n var columns = uniqueColumns(details);\n var newGrid = foldl(columns, function (newG, _row) {\n return ModificationOperations.insertColumnAt(newG, targetIndex, example, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row(), targetIndex);\n };\n var makeRowHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var makeColumnHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var unmakeRowHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var unmakeColumnHeader = function (grid, detail, comparator, genWrappers) {\n var newGrid = TransformOperations.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var splitCellIntoColumns$1 = function (grid, detail, comparator, genWrappers) {\n var newGrid = ModificationOperations.splitCellIntoColumns(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var splitCellIntoRows$1 = function (grid, detail, comparator, genWrappers) {\n var newGrid = ModificationOperations.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);\n return bundle(newGrid, detail.row(), detail.column());\n };\n var eraseColumns = function (grid, details, comparator, _genWrappers) {\n var columns = uniqueColumns(details);\n var newGrid = ModificationOperations.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());\n var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());\n return outcome(newGrid, cursor);\n };\n var eraseRows = function (grid, details, comparator, _genWrappers) {\n var rows = uniqueRows(details);\n var newGrid = ModificationOperations.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());\n var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());\n return outcome(newGrid, cursor);\n };\n var mergeCells = function (grid, mergable, comparator, _genWrappers) {\n var cells = mergable.cells();\n TableContent.merge(cells);\n var newGrid = MergingOperations.merge(grid, mergable.bounds(), comparator, constant(cells[0]));\n return outcome(newGrid, Option.from(cells[0]));\n };\n var unmergeCells = function (grid, unmergable, comparator, genWrappers) {\n var newGrid = foldr(unmergable, function (b, cell) {\n return MergingOperations.unmerge(b, cell, comparator, genWrappers.combine(cell));\n }, grid);\n return outcome(newGrid, Option.from(unmergable[0]));\n };\n var pasteCells = function (grid, pasteDetails, comparator, genWrappers) {\n var gridify = function (table, generators) {\n var list = DetailsList.fromTable(table);\n var wh = Warehouse.generate(list);\n return Transitions.toGrid(wh, generators, true);\n };\n var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());\n var startAddress = Structs.address(pasteDetails.row(), pasteDetails.column());\n var mergedGrid = TableMerge.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);\n return mergedGrid.fold(function () {\n return outcome(grid, Option.some(pasteDetails.element()));\n }, function (nuGrid) {\n var cursor = elementFromGrid(nuGrid, pasteDetails.row(), pasteDetails.column());\n return outcome(nuGrid, cursor);\n });\n };\n var gridifyRows = function (rows, generators, example) {\n var pasteDetails = DetailsList.fromPastedRows(rows, example);\n var wh = Warehouse.generate(pasteDetails);\n return Transitions.toGrid(wh, generators, true);\n };\n var pasteRowsBefore = function (grid, pasteDetails, comparator, genWrappers) {\n var example = grid[pasteDetails.cells[0].row()];\n var index = pasteDetails.cells[0].row();\n var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);\n var mergedGrid = TableMerge.insert(index, grid, gridB, pasteDetails.generators(), comparator);\n var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());\n return outcome(mergedGrid, cursor);\n };\n var pasteRowsAfter = function (grid, pasteDetails, comparator, genWrappers) {\n var example = grid[pasteDetails.cells[0].row()];\n var index = pasteDetails.cells[pasteDetails.cells.length - 1].row() + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan();\n var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);\n var mergedGrid = TableMerge.insert(index, grid, gridB, pasteDetails.generators(), comparator);\n var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());\n return outcome(mergedGrid, cursor);\n };\n var resize = Adjustments.adjustWidthTo;\n var TableOperations = {\n insertRowBefore: RunOperation.run(insertRowBefore, RunOperation.onCell, noop, noop, Generators.modification),\n insertRowsBefore: RunOperation.run(insertRowsBefore, RunOperation.onCells, noop, noop, Generators.modification),\n insertRowAfter: RunOperation.run(insertRowAfter, RunOperation.onCell, noop, noop, Generators.modification),\n insertRowsAfter: RunOperation.run(insertRowsAfter, RunOperation.onCells, noop, noop, Generators.modification),\n insertColumnBefore: RunOperation.run(insertColumnBefore, RunOperation.onCell, resize, noop, Generators.modification),\n insertColumnsBefore: RunOperation.run(insertColumnsBefore, RunOperation.onCells, resize, noop, Generators.modification),\n insertColumnAfter: RunOperation.run(insertColumnAfter, RunOperation.onCell, resize, noop, Generators.modification),\n insertColumnsAfter: RunOperation.run(insertColumnsAfter, RunOperation.onCells, resize, noop, Generators.modification),\n splitCellIntoColumns: RunOperation.run(splitCellIntoColumns$1, RunOperation.onCell, resize, noop, Generators.modification),\n splitCellIntoRows: RunOperation.run(splitCellIntoRows$1, RunOperation.onCell, noop, noop, Generators.modification),\n eraseColumns: RunOperation.run(eraseColumns, RunOperation.onCells, resize, prune, Generators.modification),\n eraseRows: RunOperation.run(eraseRows, RunOperation.onCells, noop, prune, Generators.modification),\n makeColumnHeader: RunOperation.run(makeColumnHeader, RunOperation.onCell, noop, noop, Generators.transform('row', 'th')),\n unmakeColumnHeader: RunOperation.run(unmakeColumnHeader, RunOperation.onCell, noop, noop, Generators.transform(null, 'td')),\n makeRowHeader: RunOperation.run(makeRowHeader, RunOperation.onCell, noop, noop, Generators.transform('col', 'th')),\n unmakeRowHeader: RunOperation.run(unmakeRowHeader, RunOperation.onCell, noop, noop, Generators.transform(null, 'td')),\n mergeCells: RunOperation.run(mergeCells, RunOperation.onMergable, noop, noop, Generators.merging),\n unmergeCells: RunOperation.run(unmergeCells, RunOperation.onUnmergable, resize, noop, Generators.merging),\n pasteCells: RunOperation.run(pasteCells, RunOperation.onPaste, resize, noop, Generators.modification),\n pasteRowsBefore: RunOperation.run(pasteRowsBefore, RunOperation.onPasteRows, noop, noop, Generators.modification),\n pasteRowsAfter: RunOperation.run(pasteRowsAfter, RunOperation.onPasteRows, noop, noop, Generators.modification)\n };\n\n var getBody$1 = function (editor) {\n return Element.fromDom(editor.getBody());\n };\n var getPixelWidth$1 = function (elm) {\n return elm.getBoundingClientRect().width;\n };\n var getPixelHeight = function (elm) {\n return elm.getBoundingClientRect().height;\n };\n var getIsRoot = function (editor) {\n return function (element) {\n return eq(element, getBody$1(editor));\n };\n };\n var removePxSuffix = function (size) {\n return size ? size.replace(/px$/, '') : '';\n };\n var addSizeSuffix = function (size) {\n if (/^[0-9]+$/.test(size)) {\n size += 'px';\n }\n return size;\n };\n var removeDataStyle = function (table) {\n var dataStyleCells = descendants$1(table, 'td[data-mce-style],th[data-mce-style]');\n remove(table, 'data-mce-style');\n each(dataStyleCells, function (cell) {\n remove(cell, 'data-mce-style');\n });\n };\n\n var getDirection = function (element) {\n return get$2(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var ltr$1 = { isRtl: constant(false) };\n var rtl$1 = { isRtl: constant(true) };\n var directionAt = function (element) {\n var dir = getDirection(element);\n return dir === 'rtl' ? rtl$1 : ltr$1;\n };\n var Direction = { directionAt: directionAt };\n\n var defaultTableToolbar = 'tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol';\n var defaultStyles = {\n 'border-collapse': 'collapse',\n 'width': '100%'\n };\n var defaultAttributes = { border: '1' };\n var getDefaultAttributes = function (editor) {\n return editor.getParam('table_default_attributes', defaultAttributes, 'object');\n };\n var getDefaultStyles = function (editor) {\n return editor.getParam('table_default_styles', defaultStyles, 'object');\n };\n var hasTableResizeBars = function (editor) {\n return editor.getParam('table_resize_bars', true, 'boolean');\n };\n var hasTabNavigation = function (editor) {\n return editor.getParam('table_tab_navigation', true, 'boolean');\n };\n var hasAdvancedCellTab = function (editor) {\n return editor.getParam('table_cell_advtab', true, 'boolean');\n };\n var hasAdvancedRowTab = function (editor) {\n return editor.getParam('table_row_advtab', true, 'boolean');\n };\n var hasAdvancedTableTab = function (editor) {\n return editor.getParam('table_advtab', true, 'boolean');\n };\n var hasAppearanceOptions = function (editor) {\n return editor.getParam('table_appearance_options', true, 'boolean');\n };\n var hasTableGrid = function (editor) {\n return editor.getParam('table_grid', true, 'boolean');\n };\n var shouldStyleWithCss = function (editor) {\n return editor.getParam('table_style_by_css', false, 'boolean');\n };\n var getCellClassList = function (editor) {\n return editor.getParam('table_cell_class_list', [], 'array');\n };\n var getRowClassList = function (editor) {\n return editor.getParam('table_row_class_list', [], 'array');\n };\n var getTableClassList = function (editor) {\n return editor.getParam('table_class_list', [], 'array');\n };\n var isPixelsForced = function (editor) {\n return editor.getParam('table_responsive_width') === false;\n };\n var getToolbar = function (editor) {\n return editor.getParam('table_toolbar', defaultTableToolbar);\n };\n var getCloneElements = function (editor) {\n var cloneElements = editor.getParam('table_clone_elements');\n if (isString(cloneElements)) {\n return Option.some(cloneElements.split(/[ ,]/));\n } else if (Array.isArray(cloneElements)) {\n return Option.some(cloneElements);\n } else {\n return Option.none();\n }\n };\n var hasObjectResizing = function (editor) {\n var objectResizing = editor.getParam('object_resizing', true);\n return isString(objectResizing) ? objectResizing === 'table' : objectResizing;\n };\n\n var fireNewRow = function (editor, row) {\n return editor.fire('newrow', { node: row });\n };\n var fireNewCell = function (editor, cell) {\n return editor.fire('newcell', { node: cell });\n };\n var fireObjectResizeStart = function (editor, target, width, height) {\n editor.fire('ObjectResizeStart', {\n target: target,\n width: width,\n height: height\n });\n };\n var fireObjectResized = function (editor, target, width, height) {\n editor.fire('ObjectResized', {\n target: target,\n width: width,\n height: height\n });\n };\n\n var TableActions = function (editor, lazyWire) {\n var isTableBody = function (editor) {\n return name(getBody$1(editor)) === 'table';\n };\n var lastRowGuard = function (table) {\n var size = TableGridSize.getGridSize(table);\n return isTableBody(editor) === false || size.rows() > 1;\n };\n var lastColumnGuard = function (table) {\n var size = TableGridSize.getGridSize(table);\n return isTableBody(editor) === false || size.columns() > 1;\n };\n var cloneFormats = getCloneElements(editor);\n var execute = function (operation, guard, mutate, lazyWire) {\n return function (table, target) {\n removeDataStyle(table);\n var wire = lazyWire();\n var doc = Element.fromDom(editor.getDoc());\n var direction = TableDirection(Direction.directionAt);\n var generators = TableFill.cellOperations(mutate, doc, cloneFormats);\n return guard(table) ? operation(wire, table, target, generators, direction).bind(function (result) {\n each(result.newRows(), function (row) {\n fireNewRow(editor, row.dom());\n });\n each(result.newCells(), function (cell) {\n fireNewCell(editor, cell.dom());\n });\n return result.cursor().map(function (cell) {\n var rng = editor.dom.createRng();\n rng.setStart(cell.dom(), 0);\n rng.setEnd(cell.dom(), 0);\n return rng;\n });\n }) : Option.none();\n };\n };\n var deleteRow = execute(TableOperations.eraseRows, lastRowGuard, noop, lazyWire);\n var deleteColumn = execute(TableOperations.eraseColumns, lastColumnGuard, noop, lazyWire);\n var insertRowsBefore = execute(TableOperations.insertRowsBefore, always, noop, lazyWire);\n var insertRowsAfter = execute(TableOperations.insertRowsAfter, always, noop, lazyWire);\n var insertColumnsBefore = execute(TableOperations.insertColumnsBefore, always, CellMutations.halve, lazyWire);\n var insertColumnsAfter = execute(TableOperations.insertColumnsAfter, always, CellMutations.halve, lazyWire);\n var mergeCells = execute(TableOperations.mergeCells, always, noop, lazyWire);\n var unmergeCells = execute(TableOperations.unmergeCells, always, noop, lazyWire);\n var pasteRowsBefore = execute(TableOperations.pasteRowsBefore, always, noop, lazyWire);\n var pasteRowsAfter = execute(TableOperations.pasteRowsAfter, always, noop, lazyWire);\n var pasteCells = execute(TableOperations.pasteCells, always, noop, lazyWire);\n return {\n deleteRow: deleteRow,\n deleteColumn: deleteColumn,\n insertRowsBefore: insertRowsBefore,\n insertRowsAfter: insertRowsAfter,\n insertColumnsBefore: insertColumnsBefore,\n insertColumnsAfter: insertColumnsAfter,\n mergeCells: mergeCells,\n unmergeCells: unmergeCells,\n pasteRowsBefore: pasteRowsBefore,\n pasteRowsAfter: pasteRowsAfter,\n pasteCells: pasteCells\n };\n };\n\n var copyRows = function (table, target, generators) {\n var list = DetailsList.fromTable(table);\n var house = Warehouse.generate(list);\n var details = RunOperation.onCells(house, target);\n return details.map(function (selectedCells) {\n var grid = Transitions.toGrid(house, generators, false);\n var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());\n var slicedDetails = RunOperation.toDetailList(slicedGrid, generators);\n return Redraw.copy(slicedDetails);\n });\n };\n var CopyRows = { copyRows: copyRows };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getTDTHOverallStyle = function (dom, elm, name) {\n var cells = dom.select('td,th', elm);\n var firstChildStyle;\n var checkChildren = function (firstChildStyle, elms) {\n for (var i = 0; i < elms.length; i++) {\n var currentStyle = dom.getStyle(elms[i], name);\n if (typeof firstChildStyle === 'undefined') {\n firstChildStyle = currentStyle;\n }\n if (firstChildStyle !== currentStyle) {\n return '';\n }\n }\n return firstChildStyle;\n };\n firstChildStyle = checkChildren(firstChildStyle, cells);\n return firstChildStyle;\n };\n var applyAlign = function (editor, elm, name) {\n if (name) {\n editor.formatter.apply('align' + name, {}, elm);\n }\n };\n var applyVAlign = function (editor, elm, name) {\n if (name) {\n editor.formatter.apply('valign' + name, {}, elm);\n }\n };\n var unApplyAlign = function (editor, elm) {\n global$1.each('left center right'.split(' '), function (name) {\n editor.formatter.remove('align' + name, {}, elm);\n });\n };\n var unApplyVAlign = function (editor, elm) {\n global$1.each('top middle bottom'.split(' '), function (name) {\n editor.formatter.remove('valign' + name, {}, elm);\n });\n };\n var Styles$1 = {\n applyAlign: applyAlign,\n applyVAlign: applyVAlign,\n unApplyAlign: unApplyAlign,\n unApplyVAlign: unApplyVAlign,\n getTDTHOverallStyle: getTDTHOverallStyle\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var buildListItems = function (inputList, itemCallback, startItems) {\n var appendItems = function (values, output) {\n output = output || [];\n global$1.each(values, function (item) {\n var menuItem = { text: item.text || item.title };\n if (item.menu) {\n menuItem.menu = appendItems(item.menu);\n } else {\n menuItem.value = item.value;\n if (itemCallback) {\n itemCallback(menuItem);\n }\n }\n output.push(menuItem);\n });\n return output;\n };\n return appendItems(inputList, startItems || []);\n };\n var extractAdvancedStyles = function (dom, elm) {\n var rgbToHex = function (value) {\n return startsWith(value, 'rgb') ? dom.toHex(value) : value;\n };\n var borderStyle = getRaw(Element.fromDom(elm), 'border-style').getOr('');\n var borderColor = getRaw(Element.fromDom(elm), 'border-color').map(rgbToHex).getOr('');\n var bgColor = getRaw(Element.fromDom(elm), 'background-color').map(rgbToHex).getOr('');\n return {\n borderstyle: borderStyle,\n bordercolor: borderColor,\n backgroundcolor: bgColor\n };\n };\n var getSharedValues = function (data) {\n var baseData = data[0];\n var comparisonData = data.slice(1);\n var keys$1 = keys(baseData);\n each(comparisonData, function (items) {\n each(keys$1, function (key) {\n each$1(items, function (itemValue, itemKey, _) {\n var comparisonValue = baseData[key];\n if (comparisonValue !== '' && key === itemKey) {\n if (comparisonValue !== itemValue) {\n baseData[key] = '';\n }\n }\n });\n });\n });\n return baseData;\n };\n var getAdvancedTab = function () {\n var items = [\n {\n name: 'borderstyle',\n type: 'selectbox',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n },\n {\n name: 'bordercolor',\n type: 'colorinput',\n label: 'Border color'\n },\n {\n name: 'backgroundcolor',\n type: 'colorinput',\n label: 'Background color'\n }\n ];\n return {\n title: 'Advanced',\n items: items\n };\n };\n var getAlignment = function (alignments, formatName, dataName, editor, elm) {\n var alignmentData = {};\n global$1.each(alignments.split(' '), function (name) {\n if (editor.formatter.matchNode(elm, formatName + name)) {\n alignmentData[dataName] = name;\n }\n });\n if (!alignmentData[dataName]) {\n alignmentData[dataName] = '';\n }\n return alignmentData;\n };\n var getHAlignment = curry(getAlignment, 'left center right');\n var getVAlignment = curry(getAlignment, 'top middle bottom');\n var extractDataFromSettings = function (editor, hasAdvTableTab) {\n var style = getDefaultStyles(editor);\n var attrs = getDefaultAttributes(editor);\n var extractAdvancedStyleData = function (dom) {\n var rgbToHex = function (value) {\n return startsWith(value, 'rgb') ? dom.toHex(value) : value;\n };\n var borderStyle = get(style, 'border-style').getOr('');\n var borderColor = get(style, 'border-color').getOr('');\n var bgColor = get(style, 'background-color').getOr('');\n return {\n borderstyle: borderStyle,\n bordercolor: rgbToHex(borderColor),\n backgroundcolor: rgbToHex(bgColor)\n };\n };\n var defaultData = {\n height: '',\n width: '100%',\n cellspacing: '',\n cellpadding: '',\n caption: false,\n class: '',\n align: '',\n border: ''\n };\n var getBorder = function () {\n var borderWidth = style['border-width'];\n if (shouldStyleWithCss(editor) && borderWidth) {\n return { border: borderWidth };\n }\n return get(attrs, 'border').fold(function () {\n return {};\n }, function (border) {\n return { border: border };\n });\n };\n var dom = editor.dom;\n var advStyle = hasAdvTableTab ? extractAdvancedStyleData(dom) : {};\n var getCellPaddingCellSpacing = function () {\n var spacing = get(style, 'border-spacing').or(get(attrs, 'cellspacing')).fold(function () {\n return {};\n }, function (cellspacing) {\n return { cellspacing: cellspacing };\n });\n var padding = get(style, 'border-padding').or(get(attrs, 'cellpadding')).fold(function () {\n return {};\n }, function (cellpadding) {\n return { cellpadding: cellpadding };\n });\n return __assign({}, spacing, padding);\n };\n var data = __assign({}, defaultData, style, attrs, advStyle, getBorder(), getCellPaddingCellSpacing());\n return data;\n };\n var extractDataFromTableElement = function (editor, elm, hasAdvTableTab) {\n var getBorder = function (dom, elm) {\n var optBorderWidth = getRaw(Element.fromDom(elm), 'border-width');\n if (shouldStyleWithCss(editor) && optBorderWidth.isSome()) {\n return optBorderWidth.getOr('');\n }\n return dom.getAttrib(elm, 'border') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'border-width') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'border');\n };\n var dom = editor.dom;\n var data = __assign({\n width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n cellspacing: dom.getStyle(elm, 'border-spacing') || dom.getAttrib(elm, 'cellspacing'),\n cellpadding: dom.getAttrib(elm, 'cellpadding') || Styles$1.getTDTHOverallStyle(editor.dom, elm, 'padding'),\n border: getBorder(dom, elm),\n caption: !!dom.select('caption', elm)[0],\n class: dom.getAttrib(elm, 'class', '')\n }, getHAlignment('align', 'align', editor, elm), hasAdvTableTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var extractDataFromRowElement = function (editor, elm, hasAdvancedRowTab) {\n var dom = editor.dom;\n var data = __assign({\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n scope: dom.getAttrib(elm, 'scope'),\n class: dom.getAttrib(elm, 'class', ''),\n align: '',\n type: elm.parentNode.nodeName.toLowerCase()\n }, getHAlignment('align', 'align', editor, elm), hasAdvancedRowTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var extractDataFromCellElement = function (editor, elm, hasAdvancedCellTab) {\n var dom = editor.dom;\n var data = __assign({\n width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n scope: dom.getAttrib(elm, 'scope'),\n celltype: elm.nodeName.toLowerCase(),\n class: dom.getAttrib(elm, 'class', '')\n }, getHAlignment('align', 'halign', editor, elm), getVAlignment('valign', 'valign', editor, elm), hasAdvancedCellTab ? extractAdvancedStyles(dom, elm) : {});\n return data;\n };\n var Helpers = {\n buildListItems: buildListItems,\n extractAdvancedStyles: extractAdvancedStyles,\n getSharedValues: getSharedValues,\n getAdvancedTab: getAdvancedTab,\n extractDataFromTableElement: extractDataFromTableElement,\n extractDataFromRowElement: extractDataFromRowElement,\n extractDataFromCellElement: extractDataFromCellElement,\n extractDataFromSettings: extractDataFromSettings\n };\n\n var getClassList = function (editor) {\n var rowClassList = getCellClassList(editor);\n var classes = Helpers.buildListItems(rowClassList, function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'tr',\n classes: [item.value]\n });\n };\n }\n });\n if (rowClassList.length > 0) {\n return Option.some({\n name: 'class',\n type: 'selectbox',\n label: 'Class',\n items: classes\n });\n }\n return Option.none();\n };\n var children$3 = [\n {\n name: 'width',\n type: 'input',\n label: 'Width'\n },\n {\n name: 'height',\n type: 'input',\n label: 'Height'\n },\n {\n name: 'celltype',\n type: 'selectbox',\n label: 'Cell type',\n items: [\n {\n text: 'Cell',\n value: 'td'\n },\n {\n text: 'Header cell',\n value: 'th'\n }\n ]\n },\n {\n name: 'scope',\n type: 'selectbox',\n label: 'Scope',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Row',\n value: 'row'\n },\n {\n text: 'Column',\n value: 'col'\n },\n {\n text: 'Row group',\n value: 'rowgroup'\n },\n {\n text: 'Column group',\n value: 'colgroup'\n }\n ]\n },\n {\n name: 'halign',\n type: 'selectbox',\n label: 'H Align',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n },\n {\n name: 'valign',\n type: 'selectbox',\n label: 'V Align',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Top',\n value: 'top'\n },\n {\n text: 'Middle',\n value: 'middle'\n },\n {\n text: 'Bottom',\n value: 'bottom'\n }\n ]\n }\n ];\n var items = function (editor) {\n return getClassList(editor).fold(function () {\n return children$3;\n }, function (classlist) {\n return children$3.concat(classlist);\n });\n };\n var CellDialogGeneralTab = { items: items };\n\n var normal = function (dom, node) {\n var setAttrib = function (attr, value) {\n dom.setAttrib(node, attr, value);\n };\n var setStyle = function (prop, value) {\n dom.setStyle(node, prop, value);\n };\n return {\n setAttrib: setAttrib,\n setStyle: setStyle\n };\n };\n var ifTruthy = function (dom, node) {\n var setAttrib = function (attr, value) {\n if (value) {\n dom.setAttrib(node, attr, value);\n }\n };\n var setStyle = function (prop, value) {\n if (value) {\n dom.setStyle(node, prop, value);\n }\n };\n return {\n setAttrib: setAttrib,\n setStyle: setStyle\n };\n };\n var DomModifiers = {\n normal: normal,\n ifTruthy: ifTruthy\n };\n\n var updateSimpleProps = function (modifiers, data) {\n modifiers.setAttrib('scope', data.scope);\n modifiers.setAttrib('class', data.class);\n modifiers.setStyle('width', addSizeSuffix(data.width));\n modifiers.setStyle('height', addSizeSuffix(data.height));\n };\n var updateAdvancedProps = function (modifiers, data) {\n modifiers.setStyle('background-color', data.backgroundcolor);\n modifiers.setStyle('border-color', data.bordercolor);\n modifiers.setStyle('border-style', data.borderstyle);\n };\n var applyToSingle = function (editor, cells, data) {\n var dom = editor.dom;\n var cellElm = data.celltype && cells[0].nodeName.toLowerCase() !== data.celltype ? dom.rename(cells[0], data.celltype) : cells[0];\n var modifiers = DomModifiers.normal(dom, cellElm);\n updateSimpleProps(modifiers, data);\n if (hasAdvancedCellTab(editor)) {\n updateAdvancedProps(modifiers, data);\n }\n Styles$1.unApplyAlign(editor, cellElm);\n Styles$1.unApplyVAlign(editor, cellElm);\n if (data.halign) {\n Styles$1.applyAlign(editor, cellElm, data.halign);\n }\n if (data.valign) {\n Styles$1.applyVAlign(editor, cellElm, data.valign);\n }\n };\n var applyToMultiple = function (editor, cells, data) {\n var dom = editor.dom;\n global$1.each(cells, function (cellElm) {\n if (data.celltype && cellElm.nodeName.toLowerCase() !== data.celltype) {\n cellElm = dom.rename(cellElm, data.celltype);\n }\n var modifiers = DomModifiers.ifTruthy(dom, cellElm);\n updateSimpleProps(modifiers, data);\n if (hasAdvancedCellTab(editor)) {\n updateAdvancedProps(modifiers, data);\n }\n if (data.halign) {\n Styles$1.applyAlign(editor, cellElm, data.halign);\n }\n if (data.valign) {\n Styles$1.applyVAlign(editor, cellElm, data.valign);\n }\n });\n };\n var onSubmitCellForm = function (editor, cells, api) {\n var data = api.getData();\n api.close();\n editor.undoManager.transact(function () {\n var applicator = cells.length === 1 ? applyToSingle : applyToMultiple;\n applicator(editor, cells, data);\n editor.focus();\n });\n };\n var open = function (editor) {\n var cellElm, cells = [];\n cells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]');\n cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th');\n if (!cells.length && cellElm) {\n cells.push(cellElm);\n }\n cellElm = cellElm || cells[0];\n if (!cellElm) {\n return;\n }\n var cellsData = global$1.map(cells, function (cellElm) {\n return Helpers.extractDataFromCellElement(editor, cellElm, hasAdvancedCellTab(editor));\n });\n var data = Helpers.getSharedValues(cellsData);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n items: CellDialogGeneralTab.items(editor)\n },\n Helpers.getAdvancedTab()\n ]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: CellDialogGeneralTab.items(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Cell Properties',\n size: 'normal',\n body: hasAdvancedCellTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data,\n onSubmit: curry(onSubmitCellForm, editor, cells)\n });\n };\n var CellDialog = { open: open };\n\n var getClassList$1 = function (editor) {\n var rowClassList = getRowClassList(editor);\n var classes = Helpers.buildListItems(rowClassList, function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'tr',\n classes: [item.value]\n });\n };\n }\n });\n if (rowClassList.length > 0) {\n return Option.some({\n name: 'class',\n type: 'selectbox',\n label: 'Class',\n items: classes\n });\n }\n return Option.none();\n };\n var formChildren = [\n {\n type: 'selectbox',\n name: 'type',\n label: 'Row type',\n items: [\n {\n text: 'Header',\n value: 'thead'\n },\n {\n text: 'Body',\n value: 'tbody'\n },\n {\n text: 'Footer',\n value: 'tfoot'\n }\n ]\n },\n {\n type: 'selectbox',\n name: 'align',\n label: 'Alignment',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n },\n {\n label: 'Height',\n name: 'height',\n type: 'input'\n }\n ];\n var items$1 = function (editor) {\n return getClassList$1(editor).fold(function () {\n return formChildren;\n }, function (classes) {\n return formChildren.concat(classes);\n });\n };\n var RowDialogGeneralTab = { items: items$1 };\n\n var switchRowType = function (dom, rowElm, toType) {\n var tableElm = dom.getParent(rowElm, 'table');\n var oldParentElm = rowElm.parentNode;\n var parentElm = dom.select(toType, tableElm)[0];\n if (!parentElm) {\n parentElm = dom.create(toType);\n if (tableElm.firstChild) {\n if (tableElm.firstChild.nodeName === 'CAPTION') {\n dom.insertAfter(parentElm, tableElm.firstChild);\n } else {\n tableElm.insertBefore(parentElm, tableElm.firstChild);\n }\n } else {\n tableElm.appendChild(parentElm);\n }\n }\n parentElm.appendChild(rowElm);\n if (!oldParentElm.hasChildNodes()) {\n dom.remove(oldParentElm);\n }\n };\n var updateAdvancedProps$1 = function (modifiers, data) {\n modifiers.setStyle('background-color', data.backgroundcolor);\n modifiers.setStyle('border-color', data.bordercolor);\n modifiers.setStyle('border-style', data.borderstyle);\n };\n var onSubmitRowForm = function (editor, rows, oldData, api) {\n var dom = editor.dom;\n var data = api.getData();\n api.close();\n var createModifier = rows.length === 1 ? DomModifiers.normal : DomModifiers.ifTruthy;\n editor.undoManager.transact(function () {\n global$1.each(rows, function (rowElm) {\n if (data.type !== rowElm.parentNode.nodeName.toLowerCase()) {\n switchRowType(editor.dom, rowElm, data.type);\n }\n var modifiers = createModifier(dom, rowElm);\n modifiers.setAttrib('scope', data.scope);\n modifiers.setAttrib('class', data.class);\n modifiers.setStyle('height', addSizeSuffix(data.height));\n if (hasAdvancedRowTab(editor)) {\n updateAdvancedProps$1(modifiers, data);\n }\n if (data.align !== oldData.align) {\n Styles$1.unApplyAlign(editor, rowElm);\n Styles$1.applyAlign(editor, rowElm, data.align);\n }\n });\n editor.focus();\n });\n };\n var open$1 = function (editor) {\n var dom = editor.dom;\n var tableElm, cellElm, rowElm;\n var rows = [];\n tableElm = dom.getParent(editor.selection.getStart(), 'table');\n if (!tableElm) {\n return;\n }\n cellElm = dom.getParent(editor.selection.getStart(), 'td,th');\n global$1.each(tableElm.rows, function (row) {\n global$1.each(row.cells, function (cell) {\n if ((dom.getAttrib(cell, 'data-mce-selected') || cell === cellElm) && rows.indexOf(row) < 0) {\n rows.push(row);\n return false;\n }\n });\n });\n rowElm = rows[0];\n if (!rowElm) {\n return;\n }\n var rowsData = global$1.map(rows, function (rowElm) {\n return Helpers.extractDataFromRowElement(editor, rowElm, hasAdvancedRowTab(editor));\n });\n var data = Helpers.getSharedValues(rowsData);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n items: RowDialogGeneralTab.items(editor)\n },\n Helpers.getAdvancedTab()\n ]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: RowDialogGeneralTab.items(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Row Properties',\n size: 'normal',\n body: hasAdvancedRowTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data,\n onSubmit: curry(onSubmitRowForm, editor, rows, data)\n });\n };\n var RowDialog = { open: open$1 };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: { border: '1' },\n percentages: true\n };\n var makeTable = function () {\n return Element.fromTag('table');\n };\n var tableBody = function () {\n return Element.fromTag('tbody');\n };\n var tableRow = function () {\n return Element.fromTag('tr');\n };\n var tableHeaderCell = function () {\n return Element.fromTag('th');\n };\n var tableCell = function () {\n return Element.fromTag('td');\n };\n var render$1 = function (rows, columns, rowHeaders, columnHeaders, renderOpts) {\n if (renderOpts === void 0) {\n renderOpts = DefaultRenderOptions;\n }\n var table = makeTable();\n setAll$1(table, renderOpts.styles);\n setAll(table, renderOpts.attributes);\n var tbody = tableBody();\n append(table, tbody);\n var trs = [];\n for (var i = 0; i < rows; i++) {\n var tr = tableRow();\n for (var j = 0; j < columns; j++) {\n var td = i < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n if (j < columnHeaders) {\n set(td, 'scope', 'row');\n }\n if (i < rowHeaders) {\n set(td, 'scope', 'col');\n }\n append(td, Element.fromTag('br'));\n if (renderOpts.percentages) {\n set$1(td, 'width', 100 / columns + '%');\n }\n append(tr, td);\n }\n trs.push(tr);\n }\n append$1(tbody, trs);\n return table;\n };\n\n var get$8 = function (element) {\n return element.dom().innerHTML;\n };\n var getOuter$2 = function (element) {\n var container = Element.fromTag('div');\n var clone = Element.fromDom(element.dom().cloneNode(true));\n append(container, clone);\n return get$8(container);\n };\n\n var placeCaretInCell = function (editor, cell) {\n editor.selection.select(cell.dom(), true);\n editor.selection.collapse(true);\n };\n var selectFirstCellInTable = function (editor, tableElm) {\n descendant$1(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n var fireEvents = function (editor, table) {\n each(descendants$1(table, 'tr'), function (row) {\n fireNewRow(editor, row.dom());\n each(descendants$1(row, 'th,td'), function (cell) {\n fireNewCell(editor, cell.dom());\n });\n });\n };\n var isPercentage = function (width) {\n return isString(width) && width.indexOf('%') !== -1;\n };\n var insert$1 = function (editor, columns, rows) {\n var defaultStyles = getDefaultStyles(editor);\n var options = {\n styles: defaultStyles,\n attributes: getDefaultAttributes(editor),\n percentages: isPercentage(defaultStyles.width) && !isPixelsForced(editor)\n };\n var table = render$1(rows, columns, 0, 0, options);\n set(table, 'data-mce-id', '__mce');\n var html = getOuter$2(table);\n editor.insertContent(html);\n return descendant$1(getBody$1(editor), 'table[data-mce-id=\"__mce\"]').map(function (table) {\n if (isPixelsForced(editor)) {\n set$1(table, 'width', get$2(table, 'width'));\n }\n remove(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom();\n }).getOr(null);\n };\n var InsertTable = { insert: insert$1 };\n\n var styleTDTH = function (dom, elm, name, value) {\n if (elm.tagName === 'TD' || elm.tagName === 'TH') {\n if (isString(name)) {\n dom.setStyle(elm, name, value);\n } else {\n dom.setStyle(elm, name);\n }\n } else {\n if (elm.children) {\n for (var i = 0; i < elm.children.length; i++) {\n styleTDTH(dom, elm.children[i], name, value);\n }\n }\n }\n };\n var applyDataToElement = function (editor, tableElm, data) {\n var dom = editor.dom;\n var attrs = {};\n var styles = {};\n attrs.class = data.class;\n styles.height = addSizeSuffix(data.height);\n if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {\n attrs.width = removePxSuffix(data.width);\n } else {\n styles.width = addSizeSuffix(data.width);\n }\n if (shouldStyleWithCss(editor)) {\n styles['border-width'] = addSizeSuffix(data.border);\n styles['border-spacing'] = addSizeSuffix(data.cellspacing);\n } else {\n attrs.border = data.border;\n attrs.cellpadding = data.cellpadding;\n attrs.cellspacing = data.cellspacing;\n }\n if (shouldStyleWithCss(editor) && tableElm.children) {\n for (var i = 0; i < tableElm.children.length; i++) {\n styleTDTH(dom, tableElm.children[i], {\n 'border-width': addSizeSuffix(data.border),\n 'padding': addSizeSuffix(data.cellpadding)\n });\n if (hasAdvancedTableTab(editor)) {\n styleTDTH(dom, tableElm.children[i], { 'border-color': data.bordercolor });\n }\n }\n }\n if (hasAdvancedTableTab(editor)) {\n styles['background-color'] = data.backgroundcolor;\n styles['border-color'] = data.bordercolor;\n styles['border-style'] = data.borderstyle;\n }\n attrs.style = dom.serializeStyle(merge(getDefaultStyles(editor), styles));\n dom.setAttribs(tableElm, merge(getDefaultAttributes(editor), attrs));\n };\n var onSubmitTableForm = function (editor, tableElm, api) {\n var dom = editor.dom;\n var captionElm;\n var data = api.getData();\n api.close();\n if (data.class === '') {\n delete data.class;\n }\n editor.undoManager.transact(function () {\n if (!tableElm) {\n var cols = parseInt(data.cols, 10) || 1;\n var rows = parseInt(data.rows, 10) || 1;\n tableElm = InsertTable.insert(editor, cols, rows);\n }\n applyDataToElement(editor, tableElm, data);\n captionElm = dom.select('caption', tableElm)[0];\n if (captionElm && !data.caption) {\n dom.remove(captionElm);\n }\n if (!captionElm && data.caption) {\n captionElm = dom.create('caption');\n captionElm.innerHTML = !global$2.ie ? '
' : '\\xA0';\n tableElm.insertBefore(captionElm, tableElm.firstChild);\n }\n if (data.align === '') {\n Styles$1.unApplyAlign(editor, tableElm);\n } else {\n Styles$1.applyAlign(editor, tableElm, data.align);\n }\n editor.focus();\n editor.addVisual();\n });\n };\n var open$2 = function (editor, isNew) {\n var dom = editor.dom;\n var tableElm;\n var data = Helpers.extractDataFromSettings(editor, hasAdvancedTableTab(editor));\n if (isNew === false) {\n tableElm = dom.getParent(editor.selection.getStart(), 'table');\n if (tableElm) {\n data = Helpers.extractDataFromTableElement(editor, tableElm, hasAdvancedTableTab(editor));\n } else {\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n } else {\n data.cols = '1';\n data.rows = '1';\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n var hasClasses = getTableClassList(editor).length > 0;\n if (hasClasses) {\n if (data.class) {\n data.class = data.class.replace(/\\s*mce\\-item\\-table\\s*/g, '');\n }\n }\n var rowColCountItems = !isNew ? [] : [\n {\n type: 'input',\n name: 'cols',\n label: 'Cols'\n },\n {\n type: 'input',\n name: 'rows',\n label: 'Rows'\n }\n ];\n var alwaysItems = [\n {\n type: 'input',\n name: 'width',\n label: 'Width'\n },\n {\n type: 'input',\n name: 'height',\n label: 'Height'\n }\n ];\n var appearanceItems = hasAppearanceOptions(editor) ? [\n {\n type: 'input',\n name: 'cellspacing',\n label: 'Cell spacing'\n },\n {\n type: 'input',\n name: 'cellpadding',\n label: 'Cell padding'\n },\n {\n type: 'input',\n name: 'border',\n label: 'Border width'\n },\n {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n }\n ] : [];\n var alignmentItem = [{\n type: 'selectbox',\n name: 'align',\n label: 'Alignment',\n items: [\n {\n text: 'None',\n value: ''\n },\n {\n text: 'Left',\n value: 'left'\n },\n {\n text: 'Center',\n value: 'center'\n },\n {\n text: 'Right',\n value: 'right'\n }\n ]\n }];\n var classListItem = hasClasses ? [{\n type: 'selectbox',\n name: 'class',\n label: 'Class',\n items: Helpers.buildListItems(getTableClassList(editor), function (item) {\n if (item.value) {\n item.textStyle = function () {\n return editor.formatter.getCssText({\n block: 'table',\n classes: [item.value]\n });\n };\n }\n })\n }] : [];\n var generalTabItems = rowColCountItems.concat(alwaysItems).concat(appearanceItems).concat(alignmentItem).concat(classListItem);\n var generalPanel = {\n type: 'grid',\n columns: 2,\n items: generalTabItems\n };\n var nonAdvancedForm = {\n type: 'panel',\n items: [generalPanel]\n };\n var advancedForm = {\n type: 'tabpanel',\n tabs: [\n {\n title: 'General',\n items: [generalPanel]\n },\n Helpers.getAdvancedTab()\n ]\n };\n var dialogBody = hasAdvancedTableTab(editor) ? advancedForm : nonAdvancedForm;\n editor.windowManager.open({\n title: 'Table Properties',\n size: 'normal',\n body: dialogBody,\n onSubmit: curry(onSubmitTableForm, editor, tableElm),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: data\n });\n };\n var TableDialog = { open: open$2 };\n\n var getSelectionStartFromSelector = function (selector) {\n return function (editor) {\n return Option.from(editor.dom.getParent(editor.selection.getStart(), selector)).map(Element.fromDom);\n };\n };\n var getSelectionStartCell = getSelectionStartFromSelector('th,td');\n var getSelectionStartCellOrCaption = getSelectionStartFromSelector('th,td,caption');\n\n var each$3 = global$1.each;\n var registerCommands = function (editor, actions, cellSelection, selections, clipboardRows) {\n var isRoot = getIsRoot(editor);\n var eraseTable = function () {\n getSelectionStartCellOrCaption(editor).each(function (cellOrCaption) {\n var tableOpt = TableLookup.table(cellOrCaption, isRoot);\n tableOpt.filter(not(isRoot)).each(function (table) {\n var cursor = Element.fromText('');\n after(table, cursor);\n remove$2(table);\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n var rng = editor.dom.createRng();\n rng.setStart(cursor.dom(), 0);\n rng.setEnd(cursor.dom(), 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n };\n var getTableFromCell = function (cell) {\n return TableLookup.table(cell, isRoot);\n };\n var getSize = function (table) {\n return {\n width: getPixelWidth$1(table.dom()),\n height: getPixelWidth$1(table.dom())\n };\n };\n var resizeChange = function (editor, oldSize, table) {\n var newSize = getSize(table);\n if (oldSize.width !== newSize.width || oldSize.height !== newSize.height) {\n fireObjectResizeStart(editor, table.dom(), oldSize.width, oldSize.height);\n fireObjectResized(editor, table.dom(), newSize.width, newSize.height);\n }\n };\n var actOnSelection = function (execute) {\n getSelectionStartCell(editor).each(function (cell) {\n getTableFromCell(cell).each(function (table) {\n var targets = TableTargets.forMenu(selections, table, cell);\n var beforeSize = getSize(table);\n execute(table, targets).each(function (rng) {\n resizeChange(editor, beforeSize, table);\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n removeDataStyle(table);\n });\n });\n });\n };\n var copyRowSelection = function (execute) {\n return getSelectionStartCell(editor).map(function (cell) {\n return getTableFromCell(cell).bind(function (table) {\n var doc = Element.fromDom(editor.getDoc());\n var targets = TableTargets.forMenu(selections, table, cell);\n var generators = TableFill.cellOperations(noop, doc, Option.none());\n return CopyRows.copyRows(table, targets, generators);\n });\n });\n };\n var pasteOnSelection = function (execute) {\n clipboardRows.get().each(function (rows) {\n var clonedRows = map(rows, function (row) {\n return deep(row);\n });\n getSelectionStartCell(editor).each(function (cell) {\n getTableFromCell(cell).each(function (table) {\n var doc = Element.fromDom(editor.getDoc());\n var generators = TableFill.paste(doc);\n var targets = TableTargets.pasteRows(selections, table, cell, clonedRows, generators);\n execute(table, targets).each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n cellSelection.clear(table);\n });\n });\n });\n });\n };\n each$3({\n mceTableSplitCells: function () {\n actOnSelection(actions.unmergeCells);\n },\n mceTableMergeCells: function () {\n actOnSelection(actions.mergeCells);\n },\n mceTableInsertRowBefore: function () {\n actOnSelection(actions.insertRowsBefore);\n },\n mceTableInsertRowAfter: function () {\n actOnSelection(actions.insertRowsAfter);\n },\n mceTableInsertColBefore: function () {\n actOnSelection(actions.insertColumnsBefore);\n },\n mceTableInsertColAfter: function () {\n actOnSelection(actions.insertColumnsAfter);\n },\n mceTableDeleteCol: function () {\n actOnSelection(actions.deleteColumn);\n },\n mceTableDeleteRow: function () {\n actOnSelection(actions.deleteRow);\n },\n mceTableCutRow: function (grid) {\n copyRowSelection().each(function (selection) {\n clipboardRows.set(selection);\n actOnSelection(actions.deleteRow);\n });\n },\n mceTableCopyRow: function (grid) {\n copyRowSelection().each(function (selection) {\n clipboardRows.set(selection);\n });\n },\n mceTablePasteRowBefore: function (grid) {\n pasteOnSelection(actions.pasteRowsBefore);\n },\n mceTablePasteRowAfter: function (grid) {\n pasteOnSelection(actions.pasteRowsAfter);\n },\n mceTableDelete: eraseTable\n }, function (func, name) {\n editor.addCommand(name, func);\n });\n each$3({\n mceInsertTable: curry(TableDialog.open, editor, true),\n mceTableProps: curry(TableDialog.open, editor, false),\n mceTableRowProps: curry(RowDialog.open, editor),\n mceTableCellProps: curry(CellDialog.open, editor)\n }, function (func, name) {\n editor.addCommand(name, function () {\n func();\n });\n });\n };\n var Commands = { registerCommands: registerCommands };\n\n var only$1 = function (element) {\n var parent = Option.from(element.dom().documentElement).map(Element.fromDom).getOr(element);\n return {\n parent: constant(parent),\n view: constant(element),\n origin: constant(Position(0, 0))\n };\n };\n var detached = function (editable, chrome) {\n var origin = curry(absolute, chrome);\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: origin\n };\n };\n var body$1 = function (editable, chrome) {\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: constant(Position(0, 0))\n };\n };\n var ResizeWire = {\n only: only$1,\n detached: detached,\n body: body$1\n };\n\n function Event (fields) {\n var struct = Immutable.apply(null, fields);\n var handlers = [];\n var bind = function (handler) {\n if (handler === undefined) {\n throw 'Event bind error: undefined handler';\n }\n handlers.push(handler);\n };\n var unbind = function (handler) {\n handlers = filter(handlers, function (h) {\n return h !== handler;\n });\n };\n var trigger = function () {\n var event = struct.apply(null, arguments);\n each(handlers, function (handler) {\n handler(event);\n });\n };\n return {\n bind: bind,\n unbind: unbind,\n trigger: trigger\n };\n }\n\n var create = function (typeDefs) {\n var registry = map$1(typeDefs, function (event) {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n var trigger = map$1(typeDefs, function (event) {\n return event.trigger;\n });\n return {\n registry: registry,\n trigger: trigger\n };\n };\n var Events = { create: create };\n\n var mode = exactly([\n 'compare',\n 'extract',\n 'mutate',\n 'sink'\n ]);\n var sink = exactly([\n 'element',\n 'start',\n 'stop',\n 'destroy'\n ]);\n var api$3 = exactly([\n 'forceDrop',\n 'drop',\n 'move',\n 'delayDrop'\n ]);\n var DragApis = {\n mode: mode,\n sink: sink,\n api: api$3\n };\n\n var styles$1 = css('ephox-dragster');\n var Styles$2 = { resolve: styles$1.resolve };\n\n function Blocker (options) {\n var settings = merge({ 'layerClass': Styles$2.resolve('blocker') }, options);\n var div = Element.fromTag('div');\n set(div, 'role', 'presentation');\n setAll$1(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add$2(div, Styles$2.resolve('blocker'));\n add$2(div, settings.layerClass);\n var element = function () {\n return div;\n };\n var destroy = function () {\n remove$2(div);\n };\n return {\n element: element,\n destroy: destroy\n };\n }\n\n var mkEvent = function (target, x, y, stop, prevent, kill, raw) {\n return {\n target: constant(target),\n x: constant(x),\n y: constant(y),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(raw)\n };\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (!filter(rawEvent)) {\n return;\n }\n var target = Element.fromDom(rawEvent.target);\n var stop = function () {\n rawEvent.stopPropagation();\n };\n var prevent = function () {\n rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n var evt = mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n handler(evt);\n };\n };\n var binder = function (element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom().addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n var bind$1 = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n var unbind = function (element, event, handler, useCapture) {\n element.dom().removeEventListener(event, handler, useCapture);\n };\n\n var filter$1 = constant(true);\n var bind$2 = function (element, event, handler) {\n return bind$1(element, event, filter$1, handler);\n };\n\n var compare = function (old, nu) {\n return Position(nu.left() - old.left(), nu.top() - old.top());\n };\n var extract$1 = function (event) {\n return Option.some(Position(event.x(), event.y()));\n };\n var mutate = function (mutation, info) {\n mutation.mutate(info.left(), info.top());\n };\n var sink$1 = function (dragApi, settings) {\n var blocker = Blocker(settings);\n var mdown = bind$2(blocker.element(), 'mousedown', dragApi.forceDrop);\n var mup = bind$2(blocker.element(), 'mouseup', dragApi.drop);\n var mmove = bind$2(blocker.element(), 'mousemove', dragApi.move);\n var mout = bind$2(blocker.element(), 'mouseout', dragApi.delayDrop);\n var destroy = function () {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n var start = function (parent) {\n append(parent, blocker.element());\n };\n var stop = function () {\n remove$2(blocker.element());\n };\n return DragApis.sink({\n element: blocker.element,\n start: start,\n stop: stop,\n destroy: destroy\n });\n };\n var MouseDrag = DragApis.mode({\n compare: compare,\n extract: extract$1,\n sink: sink$1,\n mutate: mutate\n });\n\n function InDrag () {\n var previous = Option.none();\n var reset = function () {\n previous = Option.none();\n };\n var update = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.compare(old, nu);\n });\n previous = Option.some(nu);\n return result;\n };\n var onEvent = function (event, mode) {\n var dataOption = mode.extract(event);\n dataOption.each(function (data) {\n var offset = update(mode, data);\n offset.each(function (d) {\n events.trigger.move(d);\n });\n });\n };\n var events = Events.create({ move: Event(['info']) });\n return {\n onEvent: onEvent,\n reset: reset,\n events: events.registry\n };\n }\n\n function NoDrag (anchor) {\n var onEvent = function (event, mode) {\n };\n return {\n onEvent: onEvent,\n reset: noop\n };\n }\n\n function Movement () {\n var noDragState = NoDrag();\n var inDragState = InDrag();\n var dragState = noDragState;\n var on = function () {\n dragState.reset();\n dragState = inDragState;\n };\n var off = function () {\n dragState.reset();\n dragState = noDragState;\n };\n var onEvent = function (event, mode) {\n dragState.onEvent(event, mode);\n };\n var isOn = function () {\n return dragState === inDragState;\n };\n return {\n on: on,\n off: off,\n isOn: isOn,\n onEvent: onEvent,\n events: inDragState.events\n };\n }\n\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null)\n domGlobals.clearTimeout(timer);\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var setup = function (mutation, mode, settings) {\n var active = false;\n var events = Events.create({\n start: Event([]),\n stop: Event([])\n });\n var movement = Movement();\n var drop = function () {\n sink.stop();\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n var throttledDrop = last$2(drop, 200);\n var go = function (parent) {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n var mousemove = function (event, ui) {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n movement.events.move.bind(function (event) {\n mode.mutate(mutation, event.info());\n });\n var on = function () {\n active = true;\n };\n var off = function () {\n active = false;\n };\n var runIfActive = function (f) {\n return function () {\n var args = Array.prototype.slice.call(arguments, 0);\n if (active) {\n return f.apply(null, args);\n }\n };\n };\n var sink = mode.sink(DragApis.api({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n var destroy = function () {\n sink.destroy();\n };\n return {\n element: sink.element,\n go: go,\n on: on,\n off: off,\n destroy: destroy,\n events: events.registry\n };\n };\n var Dragging = { setup: setup };\n\n var transform$1 = function (mutation, options) {\n var settings = options !== undefined ? options : {};\n var mode = settings.mode !== undefined ? settings.mode : MouseDrag;\n return Dragging.setup(mutation, mode, options);\n };\n var Dragger = { transform: transform$1 };\n\n var closest$2 = function (scope, selector, isRoot) {\n return closest$1(scope, selector, isRoot).isSome();\n };\n\n function Mutation () {\n var events = Events.create({\n drag: Event([\n 'xDelta',\n 'yDelta'\n ])\n });\n var mutate = function (x, y) {\n events.trigger.drag(x, y);\n };\n return {\n mutate: mutate,\n events: events.registry\n };\n }\n\n function BarMutation () {\n var events = Events.create({\n drag: Event([\n 'xDelta',\n 'yDelta',\n 'target'\n ])\n });\n var target = Option.none();\n var delegate = Mutation();\n delegate.events.drag.bind(function (event) {\n target.each(function (t) {\n events.trigger.drag(event.xDelta(), event.yDelta(), t);\n });\n });\n var assign = function (t) {\n target = Option.some(t);\n };\n var get = function () {\n return target;\n };\n return {\n assign: assign,\n get: get,\n mutate: delegate.mutate,\n events: events.registry\n };\n }\n\n var resizeBarDragging = Styles.resolve('resizer-bar-dragging');\n function BarManager (wire, direction, hdirection) {\n var mutation = BarMutation();\n var resizing = Dragger.transform(mutation, {});\n var hoverTable = Option.none();\n var getResizer = function (element, type) {\n return Option.from(get$1(element, type));\n };\n mutation.events.drag.bind(function (event) {\n getResizer(event.target(), 'data-row').each(function (_dataRow) {\n var currentRow = CellUtils.getInt(event.target(), 'top');\n set$1(event.target(), 'top', currentRow + event.yDelta() + 'px');\n });\n getResizer(event.target(), 'data-column').each(function (_dataCol) {\n var currentCol = CellUtils.getInt(event.target(), 'left');\n set$1(event.target(), 'left', currentCol + event.xDelta() + 'px');\n });\n });\n var getDelta = function (target, dir) {\n var newX = CellUtils.getInt(target, dir);\n var oldX = parseInt(get$1(target, 'data-initial-' + dir), 10);\n return newX - oldX;\n };\n resizing.events.stop.bind(function () {\n mutation.get().each(function (target) {\n hoverTable.each(function (table) {\n getResizer(target, 'data-row').each(function (row) {\n var delta = getDelta(target, 'top');\n remove(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(function (column) {\n var delta = getDelta(target, 'left');\n remove(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n Bars.refresh(wire, table, hdirection, direction);\n });\n });\n });\n var handler = function (target, dir) {\n events.trigger.startAdjust();\n mutation.assign(target);\n set(target, 'data-initial-' + dir, parseInt(get$2(target, dir), 10));\n add$2(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.parent());\n };\n var mousedown = bind$2(wire.parent(), 'mousedown', function (event) {\n if (Bars.isRowBar(event.target())) {\n handler(event.target(), 'top');\n }\n if (Bars.isColBar(event.target())) {\n handler(event.target(), 'left');\n }\n });\n var isRoot = function (e) {\n return eq(e, wire.view());\n };\n var mouseover = bind$2(wire.view(), 'mouseover', function (event) {\n if (name(event.target()) === 'table' || closest$2(event.target(), 'table', isRoot)) {\n hoverTable = name(event.target()) === 'table' ? Option.some(event.target()) : ancestor$1(event.target(), 'table', isRoot);\n hoverTable.each(function (ht) {\n Bars.refresh(wire, ht, hdirection, direction);\n });\n } else if (inBody(event.target())) {\n Bars.destroy(wire);\n }\n });\n var destroy = function () {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n Bars.destroy(wire);\n };\n var refresh = function (tbl) {\n Bars.refresh(wire, tbl, hdirection, direction);\n };\n var events = Events.create({\n adjustHeight: Event([\n 'table',\n 'delta',\n 'row'\n ]),\n adjustWidth: Event([\n 'table',\n 'delta',\n 'column'\n ]),\n startAdjust: Event([])\n });\n return {\n destroy: destroy,\n refresh: refresh,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(Bars.hide, wire),\n showBars: curry(Bars.show, wire),\n events: events.registry\n };\n }\n\n function TableResize (wire, vdirection) {\n var hdirection = BarPositions.height;\n var manager = BarManager(wire, vdirection, hdirection);\n var events = Events.create({\n beforeResize: Event(['table']),\n afterResize: Event(['table']),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(function (event) {\n events.trigger.beforeResize(event.table());\n var delta = hdirection.delta(event.delta());\n Adjustments.adjustHeight(event.table(), delta, event.row(), hdirection);\n events.trigger.afterResize(event.table());\n });\n manager.events.startAdjust.bind(function (event) {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(function (event) {\n events.trigger.beforeResize(event.table());\n var delta = vdirection.delta(event.delta(), event.table());\n Adjustments.adjustWidth(event.table(), delta, event.column(), vdirection);\n events.trigger.afterResize(event.table());\n });\n return {\n on: manager.on,\n off: manager.off,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n }\n\n var createContainer = function () {\n var container = Element.fromTag('div');\n setAll$1(container, {\n position: 'static',\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n append(body(), container);\n return container;\n };\n var get$9 = function (editor, container) {\n return editor.inline ? ResizeWire.body(getBody$1(editor), createContainer()) : ResizeWire.only(Element.fromDom(editor.getDoc()));\n };\n var remove$6 = function (editor, wire) {\n if (editor.inline) {\n remove$2(wire.parent());\n }\n };\n var TableWire = {\n get: get$9,\n remove: remove$6\n };\n\n var ResizeHandler = function (editor) {\n var selectionRng = Option.none();\n var resize = Option.none();\n var wire = Option.none();\n var percentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n var startW, startRawW;\n var isTable = function (elm) {\n return elm.nodeName === 'TABLE';\n };\n var getRawWidth = function (elm) {\n return editor.dom.getStyle(elm, 'width') || editor.dom.getAttrib(elm, 'width');\n };\n var lazyResize = function () {\n return resize;\n };\n var lazyWire = function () {\n return wire.getOr(ResizeWire.only(Element.fromDom(editor.getBody())));\n };\n var destroy = function () {\n resize.each(function (sz) {\n sz.destroy();\n });\n wire.each(function (w) {\n TableWire.remove(editor, w);\n });\n };\n editor.on('init', function () {\n var direction = TableDirection(Direction.directionAt);\n var rawWire = TableWire.get(editor);\n wire = Option.some(rawWire);\n if (hasObjectResizing(editor) && hasTableResizeBars(editor)) {\n var sz = TableResize(rawWire, direction);\n sz.on();\n sz.events.startDrag.bind(function (event) {\n selectionRng = Option.some(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(function (event) {\n var rawTable = event.table().dom();\n fireObjectResizeStart(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));\n });\n sz.events.afterResize.bind(function (event) {\n var table = event.table();\n var rawTable = table.dom();\n removeDataStyle(table);\n selectionRng.each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));\n editor.undoManager.add();\n });\n resize = Option.some(sz);\n }\n });\n editor.on('ObjectResizeStart', function (e) {\n var targetElm = e.target;\n if (isTable(targetElm)) {\n startW = e.width;\n startRawW = getRawWidth(targetElm);\n }\n });\n editor.on('ObjectResized', function (e) {\n var targetElm = e.target;\n if (isTable(targetElm)) {\n var table = targetElm;\n if (percentageBasedSizeRegex.test(startRawW)) {\n var percentW = parseFloat(percentageBasedSizeRegex.exec(startRawW)[1]);\n var targetPercentW = e.width * percentW / startW;\n editor.dom.setStyle(table, 'width', targetPercentW + '%');\n } else {\n var newCellSizes_1 = [];\n global$1.each(table.rows, function (row) {\n global$1.each(row.cells, function (cell) {\n var width = editor.dom.getStyle(cell, 'width', true);\n newCellSizes_1.push({\n cell: cell,\n width: width\n });\n });\n });\n global$1.each(newCellSizes_1, function (newCellSize) {\n editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);\n editor.dom.setAttrib(newCellSize.cell, 'width', null);\n });\n }\n }\n });\n return {\n lazyResize: lazyResize,\n lazyWire: lazyWire,\n destroy: destroy\n };\n };\n\n var folder$1 = function (fold) {\n return { fold: fold };\n };\n var none$2 = function (current) {\n return folder$1(function (n, f, m, l) {\n return n(current);\n });\n };\n var first$2 = function (current) {\n return folder$1(function (n, f, m, l) {\n return f(current);\n });\n };\n var middle$1 = function (current, target) {\n return folder$1(function (n, f, m, l) {\n return m(current, target);\n });\n };\n var last$3 = function (current) {\n return folder$1(function (n, f, m, l) {\n return l(current);\n });\n };\n var CellLocation = {\n none: none$2,\n first: first$2,\n middle: middle$1,\n last: last$3\n };\n\n var detect$4 = function (current, isRoot) {\n return TableLookup.table(current, isRoot).bind(function (table) {\n var all = TableLookup.cells(table);\n var index = findIndex(all, function (x) {\n return eq(current, x);\n });\n return index.map(function (ind) {\n return {\n index: constant(ind),\n all: constant(all)\n };\n });\n });\n };\n var next = function (current, isRoot) {\n var detection = detect$4(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none(current);\n }, function (info) {\n return info.index() + 1 < info.all().length ? CellLocation.middle(current, info.all()[info.index() + 1]) : CellLocation.last(current);\n });\n };\n var prev = function (current, isRoot) {\n var detection = detect$4(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none();\n }, function (info) {\n return info.index() - 1 >= 0 ? CellLocation.middle(current, info.all()[info.index() - 1]) : CellLocation.first(current);\n });\n };\n var CellNavigation = {\n next: next,\n prev: prev\n };\n\n var adt = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata$1 = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart = function (situ) {\n return situ.fold(identity, identity, identity);\n };\n var before$2 = adt.before;\n var on = adt.on;\n var after$2 = adt.after;\n var Situ = {\n before: before$2,\n on: on,\n after: after$2,\n cata: cata$1,\n getStart: getStart\n };\n\n var type$2 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var range$2 = Immutable('start', 'soffset', 'finish', 'foffset');\n var getStart$1 = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return Element.fromDom(rng.startContainer);\n },\n relative: function (startSitu, finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function (start, soffset, finish, foffset) {\n return start;\n }\n });\n };\n var getWin = function (selection) {\n var start = getStart$1(selection);\n return defaultView(start);\n };\n var relative = type$2.relative;\n var exact = type$2.exact;\n\n var makeRange = function (start, soffset, finish, foffset) {\n var doc = owner(start);\n var rng = doc.dom().createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var after$3 = function (start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var selectNodeContents = function (win, element) {\n var rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n var selectNodeContentsUsing = function (rng, element) {\n rng.selectNodeContents(element.dom());\n };\n var setStart = function (rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom());\n }, function (e, o) {\n rng.setStart(e.dom(), o);\n }, function (e) {\n rng.setStartAfter(e.dom());\n });\n };\n var setFinish = function (rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom());\n }, function (e, o) {\n rng.setEnd(e.dom(), o);\n }, function (e) {\n rng.setEndAfter(e.dom());\n });\n };\n var relativeToNative = function (win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n var exactToNative = function (win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n };\n var toRect = function (rect) {\n return {\n left: constant(rect.left),\n top: constant(rect.top),\n right: constant(rect.right),\n bottom: constant(rect.bottom),\n width: constant(rect.width),\n height: constant(rect.height)\n };\n };\n var getFirstRect = function (rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();\n };\n\n var adt$1 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var fromRange = function (win, type, range) {\n return type(Element.fromDom(range.startContainer), range.startOffset, Element.fromDom(range.endContainer), range.endOffset);\n };\n var getRanges = function (win, selection) {\n return selection.match({\n domRange: function (rng) {\n return {\n ltr: constant(rng),\n rtl: Option.none\n };\n },\n relative: function (startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Option.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function (start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Option.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n var doDiagnose = function (win, ranges) {\n var rng = ranges.ltr();\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$1.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$1.ltr, rng);\n });\n } else {\n return fromRange(win, adt$1.ltr, rng);\n }\n };\n var diagnose = function (win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n var asLtrRange = function (win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom(), soffset);\n rng.setEnd(finish.dom(), foffset);\n return rng;\n },\n rtl: function (start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom(), foffset);\n rng.setEnd(start.dom(), soffset);\n return rng;\n }\n });\n };\n\n var searchForPoint = function (rectForOffset, x, y, maxX, length) {\n if (length === 0) {\n return 0;\n } else if (x === maxX) {\n return length - 1;\n }\n var xDelta = maxX;\n for (var i = 1; i < length; i++) {\n var rect = rectForOffset(i);\n var curDeltaX = Math.abs(x - rect.left);\n if (y <= rect.bottom) {\n if (y < rect.top || curDeltaX > xDelta) {\n return i - 1;\n } else {\n xDelta = curDeltaX;\n }\n }\n }\n return 0;\n };\n var inRect = function (rect, x, y) {\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n };\n\n var locateOffset = function (doc, textnode, x, y, rect) {\n var rangeForOffset = function (o) {\n var r = doc.dom().createRange();\n r.setStart(textnode.dom(), o);\n r.collapse(true);\n return r;\n };\n var rectForOffset = function (o) {\n var r = rangeForOffset(o);\n return r.getBoundingClientRect();\n };\n var length = get$3(textnode).length;\n var offset = searchForPoint(rectForOffset, x, y, rect.right, length);\n return rangeForOffset(offset);\n };\n var locate = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rects = r.getClientRects();\n var foundRect = findMap(rects, function (rect) {\n return inRect(rect, x, y) ? Option.some(rect) : Option.none();\n });\n return foundRect.map(function (rect) {\n return locateOffset(doc, node, x, y, rect);\n });\n };\n\n var TextPoint = /*#__PURE__*/Object.freeze({\n locate: locate\n });\n\n var searchInChildren = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n var nodes = children(node);\n return findMap(nodes, function (n) {\n r.selectNode(n.dom());\n return inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();\n });\n };\n var locateNode = function (doc, node, x, y) {\n var locator = isText(node) ? locate : searchInChildren;\n return locator(doc, node, x, y);\n };\n var locate$1 = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locateNode(doc, node, boundedX, boundedY);\n };\n\n var COLLAPSE_TO_LEFT = true;\n var COLLAPSE_TO_RIGHT = false;\n var getCollapseDirection = function (rect, x) {\n return x - rect.left < rect.right - x ? COLLAPSE_TO_LEFT : COLLAPSE_TO_RIGHT;\n };\n var createCollapsedNode = function (doc, target, collapseDirection) {\n var r = doc.dom().createRange();\n r.selectNode(target.dom());\n r.collapse(collapseDirection);\n return r;\n };\n var locateInElement = function (doc, node, x) {\n var cursorRange = doc.dom().createRange();\n cursorRange.selectNode(node.dom());\n var rect = cursorRange.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n var f = collapseDirection === COLLAPSE_TO_LEFT ? first$1 : last$1;\n return f(node).map(function (target) {\n return createCollapsedNode(doc, target, collapseDirection);\n });\n };\n var locateInEmpty = function (doc, node, x) {\n var rect = node.dom().getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n return Option.some(createCollapsedNode(doc, node, collapseDirection));\n };\n var search = function (doc, node, x) {\n var f = children(node).length === 0 ? locateInEmpty : locateInElement;\n return f(doc, node, x);\n };\n\n var caretPositionFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {\n if (pos.offsetNode === null) {\n return Option.none();\n }\n var r = doc.dom().createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Option.some(r);\n });\n };\n var caretRangeFromPoint = function (doc, x, y) {\n return Option.from(doc.dom().caretRangeFromPoint(x, y));\n };\n var searchTextNodes = function (doc, node, x, y) {\n var r = doc.dom().createRange();\n r.selectNode(node.dom());\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locate$1(doc, node, boundedX, boundedY);\n };\n var searchFromPoint = function (doc, x, y) {\n return Element.fromPoint(doc, x, y).bind(function (elem) {\n var fallback = function () {\n return search(doc, elem, x);\n };\n return children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);\n });\n };\n var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;\n var fromPoint$1 = function (win, x, y) {\n var doc = Element.fromDom(win.document);\n return availableSearch(doc, x, y).map(function (rng) {\n return range$2(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);\n });\n };\n\n var beforeSpecial = function (element, offset) {\n var name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n var preprocessRelative = function (startSitu, finishSitu) {\n var start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n var finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return relative(start, finish);\n };\n var preprocessExact = function (start, soffset, finish, foffset) {\n var startSitu = beforeSpecial(start, soffset);\n var finishSitu = beforeSpecial(finish, foffset);\n return relative(startSitu, finishSitu);\n };\n var preprocess = function (selection) {\n return selection.match({\n domRange: function (rng) {\n var start = Element.fromDom(rng.startContainer);\n var finish = Element.fromDom(rng.endContainer);\n return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n },\n relative: preprocessRelative,\n exact: preprocessExact\n });\n };\n\n var doSetNativeRange = function (win, rng) {\n Option.from(win.getSelection()).each(function (selection) {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n var doSetRange = function (win, start, soffset, finish, foffset) {\n var rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n var setLegacyRtlRange = function (win, selection, start, soffset, finish, foffset) {\n selection.collapse(start.dom(), soffset);\n selection.extend(finish.dom(), foffset);\n };\n var setRangeFromRelative = function (win, relative) {\n return diagnose(win, relative).match({\n ltr: function (start, soffset, finish, foffset) {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: function (start, soffset, finish, foffset) {\n var selection = win.getSelection();\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom(), soffset, finish.dom(), foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (e) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n }\n });\n };\n var setExact = function (win, start, soffset, finish, foffset) {\n var relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n var setRelative = function (win, startSitu, finishSitu) {\n var relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n var toNative = function (selection) {\n var win = getWin(selection).dom();\n var getDomRange = function (start, soffset, finish, foffset) {\n return exactToNative(win, start, soffset, finish, foffset);\n };\n var filtered = preprocess(selection);\n return diagnose(win, filtered).match({\n ltr: getDomRange,\n rtl: getDomRange\n });\n };\n var readRange = function (selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Option.some(range$2(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Option.none();\n }\n };\n var doGetExact = function (selection) {\n var anchor = Element.fromDom(selection.anchorNode);\n var focus = Element.fromDom(selection.focusNode);\n return after$3(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(range$2(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n };\n var setToElement = function (win, element) {\n var rng = selectNodeContents(win, element);\n doSetNativeRange(win, rng);\n };\n var getExact = function (win) {\n return Option.from(win.getSelection()).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var get$a = function (win) {\n return getExact(win).map(function (range) {\n return exact(range.start(), range.soffset(), range.finish(), range.foffset());\n });\n };\n var getFirstRect$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect(rng);\n };\n var getAtPoint = function (win, x, y) {\n return fromPoint$1(win, x, y);\n };\n var clear$1 = function (win) {\n var selection = win.getSelection();\n selection.removeAllRanges();\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var forward = function (editor, isRoot, cell, lazyWire) {\n return go(editor, isRoot, CellNavigation.next(cell), lazyWire);\n };\n var backward = function (editor, isRoot, cell, lazyWire) {\n return go(editor, isRoot, CellNavigation.prev(cell), lazyWire);\n };\n var getCellFirstCursorPosition = function (editor, cell) {\n var selection = exact(cell, 0, cell, 0);\n return toNative(selection);\n };\n var getNewRowCursorPosition = function (editor, table) {\n var rows = descendants$1(table, 'tr');\n return last(rows).bind(function (last) {\n return descendant$1(last, 'td,th').map(function (first) {\n return getCellFirstCursorPosition(editor, first);\n });\n });\n };\n var go = function (editor, isRoot, cell, actions, lazyWire) {\n return cell.fold(Option.none, Option.none, function (current, next) {\n return first$1(next).map(function (cell) {\n return getCellFirstCursorPosition(editor, cell);\n });\n }, function (current) {\n return TableLookup.table(current, isRoot).bind(function (table) {\n var targets = TableTargets.noMenu(current);\n editor.undoManager.transact(function () {\n actions.insertRowsAfter(table, targets);\n });\n return getNewRowCursorPosition(editor, table);\n });\n });\n };\n var rootElements = [\n 'table',\n 'li',\n 'dl'\n ];\n var handle$1 = function (event, editor, actions, lazyWire) {\n if (event.keyCode === global$3.TAB) {\n var body_1 = getBody$1(editor);\n var isRoot_1 = function (element) {\n var name$1 = name(element);\n return eq(element, body_1) || contains(rootElements, name$1);\n };\n var rng = editor.selection.getRng();\n if (rng.collapsed) {\n var start = Element.fromDom(rng.startContainer);\n TableLookup.cell(start, isRoot_1).each(function (cell) {\n event.preventDefault();\n var navigation = event.shiftKey ? backward : forward;\n var rng = navigation(editor, isRoot_1, cell, actions, lazyWire);\n rng.each(function (range) {\n editor.selection.setRng(range);\n });\n });\n }\n }\n };\n var TabContext = { handle: handle$1 };\n\n var response = Immutable('selection', 'kill');\n var Responses = { response: response };\n\n var isKey = function (key) {\n return function (keycode) {\n return keycode === key;\n };\n };\n var isUp = isKey(38);\n var isDown = isKey(40);\n var isNavigation = function (keycode) {\n return keycode >= 37 && keycode <= 40;\n };\n var SelectionKeys = {\n ltr: {\n isBackward: isKey(37),\n isForward: isKey(39)\n },\n rtl: {\n isBackward: isKey(39),\n isForward: isKey(37)\n },\n isUp: isUp,\n isDown: isDown,\n isNavigation: isNavigation\n };\n\n var convertToRange = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return {\n start: constant(Element.fromDom(rng.startContainer)),\n soffset: constant(rng.startOffset),\n finish: constant(Element.fromDom(rng.endContainer)),\n foffset: constant(rng.endOffset)\n };\n };\n var makeSitus = function (start, soffset, finish, foffset) {\n return {\n start: constant(Situ.on(start, soffset)),\n finish: constant(Situ.on(finish, foffset))\n };\n };\n var Util$1 = {\n convertToRange: convertToRange,\n makeSitus: makeSitus\n };\n\n var isSafari = PlatformDetection$1.detect().browser.isSafari();\n var get$b = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return Position(x, y);\n };\n var by = function (x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n var win = doc.defaultView;\n win.scrollBy(x, y);\n };\n\n function WindowBridge (win) {\n var elementFromPoint = function (x, y) {\n return Element.fromPoint(Element.fromDom(win.document), x, y);\n };\n var getRect = function (element) {\n return element.dom().getBoundingClientRect();\n };\n var getRangedRect = function (start, soffset, finish, foffset) {\n var sel = exact(start, soffset, finish, foffset);\n return getFirstRect$1(win, sel).map(function (structRect) {\n return map$1(structRect, apply);\n });\n };\n var getSelection = function () {\n return get$a(win).map(function (exactAdt) {\n return Util$1.convertToRange(win, exactAdt);\n });\n };\n var fromSitus = function (situs) {\n var relative$1 = relative(situs.start(), situs.finish());\n return Util$1.convertToRange(win, relative$1);\n };\n var situsFromPoint = function (x, y) {\n return getAtPoint(win, x, y).map(function (exact) {\n return {\n start: constant(Situ.on(exact.start(), exact.soffset())),\n finish: constant(Situ.on(exact.finish(), exact.foffset()))\n };\n });\n };\n var clearSelection = function () {\n clear$1(win);\n };\n var selectContents = function (element) {\n setToElement(win, element);\n };\n var setSelection = function (sel) {\n setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());\n };\n var setRelativeSelection = function (start, finish) {\n setRelative(win, start, finish);\n };\n var getInnerHeight = function () {\n return win.innerHeight;\n };\n var getScrollY = function () {\n var pos = get$b(Element.fromDom(win.document));\n return pos.top();\n };\n var scrollBy = function (x, y) {\n by(x, y, Element.fromDom(win.document));\n };\n return {\n elementFromPoint: elementFromPoint,\n getRect: getRect,\n getRangedRect: getRangedRect,\n getSelection: getSelection,\n fromSitus: fromSitus,\n situsFromPoint: situsFromPoint,\n clearSelection: clearSelection,\n setSelection: setSelection,\n setRelativeSelection: setRelativeSelection,\n selectContents: selectContents,\n getInnerHeight: getInnerHeight,\n getScrollY: getScrollY,\n scrollBy: scrollBy\n };\n }\n\n var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {\n if (!(eq(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(function (s) {\n return closest$1(finish, 'td,th', isRoot).bind(function (f) {\n return detect$5(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Option.none();\n }\n };\n var detect$5 = function (container, isRoot, start, finish, selectRange) {\n if (!eq(start, finish)) {\n return CellSelection.identify(start, finish, isRoot).bind(function (cellSel) {\n var boxes = cellSel.boxes().getOr([]);\n if (boxes.length > 0) {\n selectRange(container, boxes, cellSel.start(), cellSel.finish());\n return Option.some(Responses.response(Option.some(Util$1.makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Option.none();\n }\n });\n } else {\n return Option.none();\n }\n };\n var update = function (rows, columns, container, selected, annotations) {\n var updateSelection = function (newSels) {\n annotations.clear(container);\n annotations.selectRange(container, newSels.boxes(), newSels.start(), newSels.finish());\n return newSels.boxes();\n };\n return CellSelection.shiftSelection(selected, rows, columns, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(updateSelection);\n };\n var KeySelection = {\n sync: sync,\n detect: detect$5,\n update: update\n };\n\n var nu$3 = MixedBag([\n 'left',\n 'top',\n 'right',\n 'bottom'\n ], []);\n var moveDown = function (caret, amount) {\n return nu$3({\n left: caret.left(),\n top: caret.top() + amount,\n right: caret.right(),\n bottom: caret.bottom() + amount\n });\n };\n var moveUp = function (caret, amount) {\n return nu$3({\n left: caret.left(),\n top: caret.top() - amount,\n right: caret.right(),\n bottom: caret.bottom() - amount\n });\n };\n var moveBottomTo = function (caret, bottom) {\n var height = caret.bottom() - caret.top();\n return nu$3({\n left: caret.left(),\n top: bottom - height,\n right: caret.right(),\n bottom: bottom\n });\n };\n var moveTopTo = function (caret, top) {\n var height = caret.bottom() - caret.top();\n return nu$3({\n left: caret.left(),\n top: top,\n right: caret.right(),\n bottom: top + height\n });\n };\n var translate = function (caret, xDelta, yDelta) {\n return nu$3({\n left: caret.left() + xDelta,\n top: caret.top() + yDelta,\n right: caret.right() + xDelta,\n bottom: caret.bottom() + yDelta\n });\n };\n var getTop$1 = function (caret) {\n return caret.top();\n };\n var getBottom = function (caret) {\n return caret.bottom();\n };\n var toString = function (caret) {\n return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';\n };\n var Carets = {\n nu: nu$3,\n moveUp: moveUp,\n moveDown: moveDown,\n moveBottomTo: moveBottomTo,\n moveTopTo: moveTopTo,\n getTop: getTop$1,\n getBottom: getBottom,\n translate: translate,\n toString: toString\n };\n\n var getPartialBox = function (bridge, element, offset) {\n if (offset >= 0 && offset < getEnd(element))\n return bridge.getRangedRect(element, offset, element, offset + 1);\n else if (offset > 0)\n return bridge.getRangedRect(element, offset - 1, element, offset);\n return Option.none();\n };\n var toCaret = function (rect) {\n return Carets.nu({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n });\n };\n var getElemBox = function (bridge, element) {\n return Option.some(bridge.getRect(element));\n };\n var getBoxAt = function (bridge, element, offset) {\n if (isElement(element))\n return getElemBox(bridge, element).map(toCaret);\n else if (isText(element))\n return getPartialBox(bridge, element, offset).map(toCaret);\n else\n return Option.none();\n };\n var getEntireBox = function (bridge, element) {\n if (isElement(element))\n return getElemBox(bridge, element).map(toCaret);\n else if (isText(element))\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n else\n return Option.none();\n };\n var Rectangles = {\n getBoxAt: getBoxAt,\n getEntireBox: getEntireBox\n };\n\n var traverse = Immutable('item', 'mode');\n var backtrack = function (universe, item, _direction, transition) {\n if (transition === void 0) {\n transition = sidestep;\n }\n return universe.property().parent(item).map(function (p) {\n return traverse(p, transition);\n });\n };\n var sidestep = function (universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n return direction.sibling(universe, item).map(function (p) {\n return traverse(p, transition);\n });\n };\n var advance = function (universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n var children = universe.property().children(item);\n var result = direction.first(children);\n return result.map(function (r) {\n return traverse(r, transition);\n });\n };\n var successors = [\n {\n current: backtrack,\n next: sidestep,\n fallback: Option.none()\n },\n {\n current: sidestep,\n next: advance,\n fallback: Option.some(backtrack)\n },\n {\n current: advance,\n next: advance,\n fallback: Option.some(sidestep)\n }\n ];\n var go$1 = function (universe, item, mode, direction, rules) {\n if (rules === void 0) {\n rules = successors;\n }\n var ruleOpt = find(rules, function (succ) {\n return succ.current === mode;\n });\n return ruleOpt.bind(function (rule) {\n return rule.current(universe, item, direction, rule.next).orThunk(function () {\n return rule.fallback.bind(function (fb) {\n return go$1(universe, item, fb, direction);\n });\n });\n });\n };\n\n var left$1 = function () {\n var sibling = function (universe, item) {\n return universe.query().prevSibling(item);\n };\n var first = function (children) {\n return children.length > 0 ? Option.some(children[children.length - 1]) : Option.none();\n };\n return {\n sibling: sibling,\n first: first\n };\n };\n var right$1 = function () {\n var sibling = function (universe, item) {\n return universe.query().nextSibling(item);\n };\n var first = function (children) {\n return children.length > 0 ? Option.some(children[0]) : Option.none();\n };\n return {\n sibling: sibling,\n first: first\n };\n };\n var Walkers = {\n left: left$1,\n right: right$1\n };\n\n var hone = function (universe, item, predicate, mode, direction, isRoot) {\n var next = go$1(universe, item, mode, direction);\n return next.bind(function (n) {\n if (isRoot(n.item()))\n return Option.none();\n else\n return predicate(n.item()) ? Option.some(n.item()) : hone(universe, n.item(), predicate, n.mode(), direction, isRoot);\n });\n };\n var left$2 = function (universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n var right$2 = function (universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n var Seeker = /*#__PURE__*/Object.freeze({\n left: left$2,\n right: right$2\n });\n\n var isLeaf = function (universe) {\n return function (element) {\n return universe.property().children(element).length === 0;\n };\n };\n var before$3 = function (universe, item, isRoot) {\n return seekLeft(universe, item, isLeaf(universe), isRoot);\n };\n var after$4 = function (universe, item, isRoot) {\n return seekRight(universe, item, isLeaf(universe), isRoot);\n };\n var seekLeft = left$2;\n var seekRight = right$2;\n\n var universe$2 = DomUniverse();\n var before$4 = function (element, isRoot) {\n return before$3(universe$2, element, isRoot);\n };\n var after$5 = function (element, isRoot) {\n return after$4(universe$2, element, isRoot);\n };\n var seekLeft$1 = function (element, predicate, isRoot) {\n return seekLeft(universe$2, element, predicate, isRoot);\n };\n var seekRight$1 = function (element, predicate, isRoot) {\n return seekRight(universe$2, element, predicate, isRoot);\n };\n\n var JUMP_SIZE = 5;\n var NUM_RETRIES = 100;\n var adt$2 = Adt.generate([\n { 'none': [] },\n { 'retry': ['caret'] }\n ]);\n var isOutside = function (caret, box) {\n return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();\n };\n var inOutsideBlock = function (bridge, element, caret) {\n return closest(element, DomStructure.isBlock).fold(constant(false), function (cell) {\n return Rectangles.getEntireBox(bridge, cell).exists(function (box) {\n return isOutside(caret, box);\n });\n });\n };\n var adjustDown = function (bridge, element, guessBox, original, caret) {\n var lowerCaret = Carets.moveDown(caret, JUMP_SIZE);\n if (Math.abs(guessBox.bottom() - original.bottom()) < 1)\n return adt$2.retry(lowerCaret);\n else if (guessBox.top() > caret.bottom())\n return adt$2.retry(lowerCaret);\n else if (guessBox.top() === caret.bottom())\n return adt$2.retry(Carets.moveDown(caret, 1));\n else\n return inOutsideBlock(bridge, element, caret) ? adt$2.retry(Carets.translate(lowerCaret, JUMP_SIZE, 0)) : adt$2.none();\n };\n var adjustUp = function (bridge, element, guessBox, original, caret) {\n var higherCaret = Carets.moveUp(caret, JUMP_SIZE);\n if (Math.abs(guessBox.top() - original.top()) < 1)\n return adt$2.retry(higherCaret);\n else if (guessBox.bottom() < caret.top())\n return adt$2.retry(higherCaret);\n else if (guessBox.bottom() === caret.top())\n return adt$2.retry(Carets.moveUp(caret, 1));\n else\n return inOutsideBlock(bridge, element, caret) ? adt$2.retry(Carets.translate(higherCaret, JUMP_SIZE, 0)) : adt$2.none();\n };\n var upMovement = {\n point: Carets.getTop,\n adjuster: adjustUp,\n move: Carets.moveUp,\n gather: before$4\n };\n var downMovement = {\n point: Carets.getBottom,\n adjuster: adjustDown,\n move: Carets.moveDown,\n gather: after$5\n };\n var isAtTable = function (bridge, x, y) {\n return bridge.elementFromPoint(x, y).filter(function (elm) {\n return name(elm) === 'table';\n }).isSome();\n };\n var adjustForTable = function (bridge, movement, original, caret, numRetries) {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n var adjustTil = function (bridge, movement, original, caret, numRetries) {\n if (numRetries === 0)\n return Option.some(caret);\n if (isAtTable(bridge, caret.left(), movement.point(caret)))\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {\n return guess.start().fold(Option.none, function (element, offset) {\n return Rectangles.getEntireBox(bridge, element, offset).bind(function (guessBox) {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(function () {\n return Option.some(caret);\n });\n }, Option.none);\n });\n };\n var ieTryDown = function (bridge, caret) {\n return bridge.situsFromPoint(caret.left(), caret.bottom() + JUMP_SIZE);\n };\n var ieTryUp = function (bridge, caret) {\n return bridge.situsFromPoint(caret.left(), caret.top() - JUMP_SIZE);\n };\n var checkScroll = function (movement, adjusted, bridge) {\n if (movement.point(adjusted) > bridge.getInnerHeight())\n return Option.some(movement.point(adjusted) - bridge.getInnerHeight());\n else if (movement.point(adjusted) < 0)\n return Option.some(-movement.point(adjusted));\n else\n return Option.none();\n };\n var retry = function (movement, bridge, caret) {\n var moved = movement.move(caret, JUMP_SIZE);\n var adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(function () {\n return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted));\n }, function (delta) {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted) - delta);\n });\n };\n var Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n ieTryUp: ieTryUp,\n ieTryDown: ieTryDown,\n getJumpSize: constant(JUMP_SIZE)\n };\n\n var adt$3 = Adt.generate([\n { 'none': ['message'] },\n { 'success': [] },\n { 'failedUp': ['cell'] },\n { 'failedDown': ['cell'] }\n ]);\n var isOverlapping = function (bridge, before, after) {\n var beforeBounds = bridge.getRect(before);\n var afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {\n return closest$1(after, 'td,th', isRoot).bind(function (afterCell) {\n return closest$1(before, 'td,th', isRoot).map(function (beforeCell) {\n if (!eq(afterCell, beforeCell)) {\n return DomParent.sharedOne(isRow, [\n afterCell,\n beforeCell\n ]).fold(function () {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$3.success() : failure(beforeCell);\n }, function (sharedRow) {\n return failure(beforeCell);\n });\n } else {\n return eq(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$3.none('in same cell');\n }\n });\n }).getOr(adt$3.none('default'));\n };\n var isRow = function (elem) {\n return closest$1(elem, 'tr');\n };\n var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n var BeforeAfter = {\n verify: verify,\n cata: cata$2,\n adt: adt$3\n };\n\n var point = Immutable('element', 'offset');\n var delta = Immutable('element', 'deltaOffset');\n var range$3 = Immutable('element', 'start', 'finish');\n var points = Immutable('begin', 'end');\n var text = Immutable('element', 'text');\n\n var inAncestor = Immutable('ancestor', 'descendants', 'element', 'index');\n var inParent = Immutable('parent', 'children', 'element', 'index');\n var indexInParent = function (element) {\n return parent(element).bind(function (parent) {\n var children$1 = children(parent);\n return indexOf$1(children$1, element).map(function (index) {\n return inParent(parent, children$1, element, index);\n });\n });\n };\n var indexOf$1 = function (elements, element) {\n return findIndex(elements, curry(eq, element));\n };\n\n var isBr = function (elem) {\n return name(elem) === 'br';\n };\n var gatherer = function (cand, gather, isRoot) {\n return gather(cand, isRoot).bind(function (target) {\n return isText(target) && get$3(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);\n });\n };\n var handleBr = function (isRoot, element, direction) {\n return direction.traverse(element).orThunk(function () {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n var findBr = function (element, offset) {\n return child(element, offset).filter(isBr).orThunk(function () {\n return child(element, offset - 1).filter(isBr);\n });\n };\n var handleParent = function (isRoot, element, offset, direction) {\n return findBr(element, offset).bind(function (br) {\n return direction.traverse(br).fold(function () {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, function (adjacent) {\n return indexInParent(adjacent).map(function (info) {\n return Situ.on(info.parent(), info.index());\n });\n });\n });\n };\n var tryBr = function (isRoot, element, offset, direction) {\n var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(function (tgt) {\n return {\n start: constant(tgt),\n finish: constant(tgt)\n };\n });\n };\n var process = function (analysis) {\n return BeforeAfter.cata(analysis, function (message) {\n return Option.none();\n }, function () {\n return Option.none();\n }, function (cell) {\n return Option.some(point(cell, 0));\n }, function (cell) {\n return Option.some(point(cell, getEnd(cell)));\n });\n };\n var BrTags = {\n tryBr: tryBr,\n process: process\n };\n\n var MAX_RETRIES = 20;\n var platform$1 = PlatformDetection$1.detect();\n var findSpot = function (bridge, isRoot, direction) {\n return bridge.getSelection().bind(function (sel) {\n return BrTags.tryBr(isRoot, sel.finish(), sel.foffset(), direction).fold(function () {\n return Option.some(point(sel.finish(), sel.foffset()));\n }, function (brNeighbour) {\n var range = bridge.fromSitus(brNeighbour);\n var analysis = BeforeAfter.verify(bridge, sel.finish(), sel.foffset(), range.finish(), range.foffset(), direction.failure, isRoot);\n return BrTags.process(analysis);\n });\n });\n };\n var scan = function (bridge, isRoot, element, offset, direction, numRetries) {\n if (numRetries === 0)\n return Option.none();\n return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {\n var range = bridge.fromSitus(situs);\n var analysis = BeforeAfter.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);\n return BeforeAfter.cata(analysis, function () {\n return Option.none();\n }, function () {\n return Option.some(situs);\n }, function (cell) {\n if (eq(element, cell) && offset === 0)\n return tryAgain(bridge, element, offset, Carets.moveUp, direction);\n else\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }, function (cell) {\n if (eq(element, cell) && offset === getEnd(cell))\n return tryAgain(bridge, element, offset, Carets.moveDown, direction);\n else\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n });\n });\n };\n var tryAgain = function (bridge, element, offset, move, direction) {\n return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n var tryAt = function (bridge, direction, box) {\n if (platform$1.browser.isChrome() || platform$1.browser.isSafari() || platform$1.browser.isFirefox() || platform$1.browser.isEdge())\n return direction.otherRetry(bridge, box);\n else if (platform$1.browser.isIE())\n return direction.ieRetry(bridge, box);\n else\n return Option.none();\n };\n var tryCursor = function (bridge, isRoot, element, offset, direction) {\n return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, box);\n });\n };\n var handle$2 = function (bridge, isRoot, direction) {\n return findSpot(bridge, isRoot, direction).bind(function (spot) {\n return scan(bridge, isRoot, spot.element(), spot.offset(), direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n var TableKeys = { handle: handle$2 };\n\n var ancestor$2 = function (scope, predicate, isRoot) {\n return ancestor(scope, predicate, isRoot).isSome();\n };\n\n var detection = PlatformDetection$1.detect();\n var inSameTable = function (elem, table) {\n return ancestor$2(elem, function (e) {\n return parent(e).exists(function (p) {\n return eq(p, table);\n });\n });\n };\n var simulate = function (bridge, isRoot, direction, initial, anchor) {\n return closest$1(initial, 'td,th', isRoot).bind(function (start) {\n return closest$1(start, 'table', isRoot).bind(function (table) {\n if (!inSameTable(anchor, table))\n return Option.none();\n return TableKeys.handle(bridge, isRoot, direction).bind(function (range) {\n return closest$1(range.finish(), 'td,th', isRoot).map(function (finish) {\n return {\n start: constant(start),\n finish: constant(finish),\n range: constant(range)\n };\n });\n });\n });\n });\n };\n var navigate = function (bridge, isRoot, direction, initial, anchor, precheck) {\n if (detection.browser.isIE()) {\n return Option.none();\n } else {\n return precheck(initial, isRoot).orThunk(function () {\n return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {\n var range = info.range();\n return Responses.response(Option.some(Util$1.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);\n });\n });\n }\n };\n var firstUpCheck = function (initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants$1(table, 'tr');\n if (eq(startRow, rows[0])) {\n return seekLeft$1(table, function (element) {\n return last$1(element).isSome();\n }, isRoot).map(function (last) {\n var lastOffset = getEnd(last);\n return Responses.response(Option.some(Util$1.makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Option.none();\n }\n });\n });\n };\n var lastDownCheck = function (initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants$1(table, 'tr');\n if (eq(startRow, rows[rows.length - 1])) {\n return seekRight$1(table, function (element) {\n return first$1(element).isSome();\n }, isRoot).map(function (first) {\n return Responses.response(Option.some(Util$1.makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Option.none();\n }\n });\n });\n };\n var select = function (bridge, container, isRoot, direction, initial, anchor, selectRange) {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(function (info) {\n return KeySelection.detect(container, isRoot, info.start(), info.finish(), selectRange);\n });\n };\n var VerticalMovement = {\n navigate: navigate,\n select: select,\n firstUpCheck: firstUpCheck,\n lastDownCheck: lastDownCheck\n };\n\n var findCell = function (target, isRoot) {\n return closest$1(target, 'td,th', isRoot);\n };\n function MouseSelection (bridge, container, isRoot, annotations) {\n var cursor = Option.none();\n var clearState = function () {\n cursor = Option.none();\n };\n var mousedown = function (event) {\n annotations.clear(container);\n cursor = findCell(event.target(), isRoot);\n };\n var mouseover = function (event) {\n cursor.each(function (start) {\n annotations.clear(container);\n findCell(event.target(), isRoot).each(function (finish) {\n CellSelection.identify(start, finish, isRoot).each(function (cellSel) {\n var boxes = cellSel.boxes().getOr([]);\n if (boxes.length > 1 || boxes.length === 1 && !eq(start, finish)) {\n annotations.selectRange(container, boxes, cellSel.start(), cellSel.finish());\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n var mouseup = function () {\n cursor.each(clearState);\n };\n return {\n mousedown: mousedown,\n mouseover: mouseover,\n mouseup: mouseup\n };\n }\n\n var KeyDirection = {\n down: {\n traverse: nextSibling,\n gather: after$5,\n relative: Situ.before,\n otherRetry: Retries.tryDown,\n ieRetry: Retries.ieTryDown,\n failure: BeforeAfter.adt.failedDown\n },\n up: {\n traverse: prevSibling,\n gather: before$4,\n relative: Situ.before,\n otherRetry: Retries.tryUp,\n ieRetry: Retries.ieTryUp,\n failure: BeforeAfter.adt.failedUp\n }\n };\n\n var rc = Immutable('rows', 'cols');\n var mouse = function (win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n var handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n var keyboard = function (win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n var clearToNavigate = function () {\n annotations.clear(container);\n return Option.none();\n };\n var keydown = function (event, start, soffset, finish, foffset, direction) {\n var keycode = event.raw().which;\n var shiftKey = event.raw().shiftKey === true;\n var handler = CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {\n if (SelectionKeys.isDown(keycode) && shiftKey) {\n return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.down, finish, start, annotations.selectRange);\n } else if (SelectionKeys.isUp(keycode) && shiftKey) {\n return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.up, finish, start, annotations.selectRange);\n } else if (SelectionKeys.isDown(keycode)) {\n return curry(VerticalMovement.navigate, bridge, isRoot, KeyDirection.down, finish, start, VerticalMovement.lastDownCheck);\n } else if (SelectionKeys.isUp(keycode)) {\n return curry(VerticalMovement.navigate, bridge, isRoot, KeyDirection.up, finish, start, VerticalMovement.firstUpCheck);\n } else {\n return Option.none;\n }\n }, function (selected) {\n var update = function (attempts) {\n return function () {\n var navigation = findMap(attempts, function (delta) {\n return KeySelection.update(delta.rows(), delta.cols(), container, selected, annotations);\n });\n return navigation.fold(function () {\n return CellSelection.getEdges(container, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(function (edges) {\n var relative = SelectionKeys.isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first(), 0), relative(edges.table()));\n annotations.clear(container);\n return Responses.response(Option.none(), true);\n });\n }, function (_) {\n return Option.some(Responses.response(Option.none(), true));\n });\n };\n };\n if (SelectionKeys.isDown(keycode) && shiftKey)\n return update([rc(+1, 0)]);\n else if (SelectionKeys.isUp(keycode) && shiftKey)\n return update([rc(-1, 0)]);\n else if (direction.isBackward(keycode) && shiftKey)\n return update([\n rc(0, -1),\n rc(-1, 0)\n ]);\n else if (direction.isForward(keycode) && shiftKey)\n return update([\n rc(0, +1),\n rc(+1, 0)\n ]);\n else if (SelectionKeys.isNavigation(keycode) && shiftKey === false)\n return clearToNavigate;\n else\n return Option.none;\n });\n return handler();\n };\n var keyup = function (event, start, soffset, finish, foffset) {\n return CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {\n var keycode = event.raw().which;\n var shiftKey = event.raw().shiftKey === true;\n if (shiftKey === false)\n return Option.none();\n if (SelectionKeys.isNavigation(keycode))\n return KeySelection.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n else\n return Option.none();\n }, Option.none);\n };\n return {\n keydown: keydown,\n keyup: keyup\n };\n };\n var InputHandlers = {\n mouse: mouse,\n keyboard: keyboard\n };\n\n var remove$7 = function (element, classes) {\n each(classes, function (x) {\n remove$5(element, x);\n });\n };\n\n var addClass = function (clazz) {\n return function (element) {\n add$2(element, clazz);\n };\n };\n var removeClasses = function (classes) {\n return function (element) {\n remove$7(element, classes);\n };\n };\n\n var byClass = function (ephemera) {\n var addSelectionClass = addClass(ephemera.selected());\n var removeSelectionClasses = removeClasses([\n ephemera.selected(),\n ephemera.lastSelected(),\n ephemera.firstSelected()\n ]);\n var clear = function (container) {\n var sels = descendants$1(container, ephemera.selectedSelector());\n each(sels, removeSelectionClasses);\n };\n var selectRange = function (container, cells, start, finish) {\n clear(container);\n each(cells, addSelectionClass);\n add$2(start, ephemera.firstSelected());\n add$2(finish, ephemera.lastSelected());\n };\n return {\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n var byAttr = function (ephemera) {\n var removeSelectionAttributes = function (element) {\n remove(element, ephemera.selected());\n remove(element, ephemera.firstSelected());\n remove(element, ephemera.lastSelected());\n };\n var addSelectionAttribute = function (element) {\n set(element, ephemera.selected(), '1');\n };\n var clear = function (container) {\n var sels = descendants$1(container, ephemera.selectedSelector());\n each(sels, removeSelectionAttributes);\n };\n var selectRange = function (container, cells, start, finish) {\n clear(container);\n each(cells, addSelectionAttribute);\n set(start, ephemera.firstSelected(), '1');\n set(finish, ephemera.lastSelected(), '1');\n };\n return {\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n var SelectionAnnotation = {\n byClass: byClass,\n byAttr: byAttr\n };\n\n var hasInternalTarget = function (e) {\n return has$2(Element.fromDom(e.target), 'ephox-snooker-resizer-bar') === false;\n };\n function CellSelection$1 (editor, lazyResize) {\n var handlerStruct = MixedBag([\n 'mousedown',\n 'mouseover',\n 'mouseup',\n 'keyup',\n 'keydown'\n ], []);\n var handlers = Option.none();\n var annotations = SelectionAnnotation.byAttr(Ephemera);\n editor.on('init', function (e) {\n var win = editor.getWin();\n var body = getBody$1(editor);\n var isRoot = getIsRoot(editor);\n var syncSelection = function () {\n var sel = editor.selection;\n var start = Element.fromDom(sel.getStart());\n var end = Element.fromDom(sel.getEnd());\n var shared = DomParent.sharedOne(TableLookup.table, [\n start,\n end\n ]);\n shared.fold(function () {\n annotations.clear(body);\n }, noop);\n };\n var mouseHandlers = InputHandlers.mouse(win, body, isRoot, annotations);\n var keyHandlers = InputHandlers.keyboard(win, body, isRoot, annotations);\n var hasShiftKey = function (event) {\n return event.raw().shiftKey === true;\n };\n var handleResponse = function (event, response) {\n if (!hasShiftKey(event)) {\n return;\n }\n if (response.kill()) {\n event.kill();\n }\n response.selection().each(function (ns) {\n var relative$1 = relative(ns.start(), ns.finish());\n var rng = asLtrRange(win, relative$1);\n editor.selection.setRng(rng);\n });\n };\n var keyup = function (event) {\n var wrappedEvent = wrapEvent(event);\n if (wrappedEvent.raw().shiftKey && SelectionKeys.isNavigation(wrappedEvent.raw().which)) {\n var rng = editor.selection.getRng();\n var start = Element.fromDom(rng.startContainer);\n var end = Element.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n var keydown = function (event) {\n var wrappedEvent = wrapEvent(event);\n lazyResize().each(function (resize) {\n resize.hideBars();\n });\n var rng = editor.selection.getRng();\n var startContainer = Element.fromDom(editor.selection.getStart());\n var start = Element.fromDom(rng.startContainer);\n var end = Element.fromDom(rng.endContainer);\n var direction = Direction.directionAt(startContainer).isRtl() ? SelectionKeys.rtl : SelectionKeys.ltr;\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n lazyResize().each(function (resize) {\n resize.showBars();\n });\n };\n var isMouseEvent = function (event) {\n return event.hasOwnProperty('x') && event.hasOwnProperty('y');\n };\n var wrapEvent = function (event) {\n var target = Element.fromDom(event.target);\n var stop = function () {\n event.stopPropagation();\n };\n var prevent = function () {\n event.preventDefault();\n };\n var kill = compose(prevent, stop);\n return {\n target: constant(target),\n x: constant(isMouseEvent(event) ? event.x : null),\n y: constant(isMouseEvent(event) ? event.y : null),\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: constant(event)\n };\n };\n var isLeftMouse = function (raw) {\n return raw.button === 0;\n };\n var isLeftButtonPressed = function (raw) {\n if (raw.buttons === undefined) {\n return true;\n }\n return (raw.buttons & 1) !== 0;\n };\n var mouseDown = function (e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(wrapEvent(e));\n }\n };\n var mouseOver = function (e) {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(wrapEvent(e));\n }\n };\n var mouseUp = function (e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(wrapEvent(e));\n }\n };\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n handlers = Option.some(handlerStruct({\n mousedown: mouseDown,\n mouseover: mouseOver,\n mouseup: mouseUp,\n keyup: keyup,\n keydown: keydown\n }));\n });\n var destroy = function () {\n handlers.each(function (handlers) {\n });\n };\n return {\n clear: annotations.clear,\n destroy: destroy\n };\n }\n\n var Selections = function (editor) {\n var get = function () {\n var body = getBody$1(editor);\n return TableSelection.retrieve(body, Ephemera.selectedSelector()).fold(function () {\n if (editor.selection.getStart() === undefined) {\n return SelectionTypes.none();\n } else {\n return SelectionTypes.single(editor.selection);\n }\n }, function (cells) {\n return SelectionTypes.multiple(cells);\n });\n };\n return { get: get };\n };\n\n var SelectionTargets = function (editor, selections) {\n var targets = Cell(Option.none());\n var changeHandlers = Cell([]);\n var findTargets = function () {\n return getSelectionStartCellOrCaption(editor).bind(function (cellOrCaption) {\n var table = TableLookup.table(cellOrCaption);\n return table.map(function (table) {\n if (name(cellOrCaption) === 'caption') {\n return TableTargets.notCell(cellOrCaption);\n } else {\n return TableTargets.forMenu(selections, table, cellOrCaption);\n }\n });\n });\n };\n var resetTargets = function () {\n targets.set(cached(findTargets)());\n each(changeHandlers.get(), function (handler) {\n return handler();\n });\n };\n var onSetup = function (api, isDisabled) {\n var handler = function () {\n return targets.get().fold(function () {\n api.setDisabled(true);\n }, function (targets) {\n api.setDisabled(isDisabled(targets));\n });\n };\n handler();\n changeHandlers.set(changeHandlers.get().concat([handler]));\n return function () {\n changeHandlers.set(filter(changeHandlers.get(), function (h) {\n return h !== handler;\n }));\n };\n };\n var onSetupTable = function (api) {\n return onSetup(api, function (_) {\n return false;\n });\n };\n var onSetupCellOrRow = function (api) {\n return onSetup(api, function (targets) {\n return name(targets.element()) === 'caption';\n });\n };\n var onSetupMergeable = function (api) {\n return onSetup(api, function (targets) {\n return targets.mergable().isNone();\n });\n };\n var onSetupUnmergeable = function (api) {\n return onSetup(api, function (targets) {\n return targets.unmergable().isNone();\n });\n };\n editor.on('NodeChange', resetTargets);\n return {\n onSetupTable: onSetupTable,\n onSetupCellOrRow: onSetupCellOrRow,\n onSetupMergeable: onSetupMergeable,\n onSetupUnmergeable: onSetupUnmergeable,\n resetTargets: resetTargets,\n targets: function () {\n return targets.get();\n }\n };\n };\n\n var addButtons = function (editor, selectionTargets) {\n editor.ui.registry.addMenuButton('table', {\n tooltip: 'Table',\n icon: 'table',\n fetch: function (callback) {\n return callback('inserttable tableprops deletetable | cell row column');\n }\n });\n var cmd = function (command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n editor.ui.registry.addButton('tableprops', {\n tooltip: 'Table properties',\n onAction: cmd('mceTableProps'),\n icon: 'table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tabledelete', {\n tooltip: 'Delete table',\n onAction: cmd('mceTableDelete'),\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tablecellprops', {\n tooltip: 'Cell properties',\n onAction: cmd('mceTableCellProps'),\n icon: 'table-cell-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablemergecells', {\n tooltip: 'Merge cells',\n onAction: cmd('mceTableMergeCells'),\n icon: 'table-merge-cells',\n onSetup: selectionTargets.onSetupMergeable\n });\n editor.ui.registry.addButton('tablesplitcells', {\n tooltip: 'Split cell',\n onAction: cmd('mceTableSplitCells'),\n icon: 'table-split-cells',\n onSetup: selectionTargets.onSetupUnmergeable\n });\n editor.ui.registry.addButton('tableinsertrowbefore', {\n tooltip: 'Insert row before',\n onAction: cmd('mceTableInsertRowBefore'),\n icon: 'table-insert-row-above',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertrowafter', {\n tooltip: 'Insert row after',\n onAction: cmd('mceTableInsertRowAfter'),\n icon: 'table-insert-row-after',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tabledeleterow', {\n tooltip: 'Delete row',\n onAction: cmd('mceTableDeleteRow'),\n icon: 'table-delete-row',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablerowprops', {\n tooltip: 'Row properties',\n onAction: cmd('mceTableRowProps'),\n icon: 'table-row-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertcolbefore', {\n tooltip: 'Insert column before',\n onAction: cmd('mceTableInsertColBefore'),\n icon: 'table-insert-column-before',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertcolafter', {\n tooltip: 'Insert column after',\n onAction: cmd('mceTableInsertColAfter'),\n icon: 'table-insert-column-after',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tabledeletecol', {\n tooltip: 'Delete column',\n onAction: cmd('mceTableDeleteCol'),\n icon: 'table-delete-column',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablecutrow', {\n tooltip: 'Cut row',\n onAction: cmd('mceTableCutRow'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablecopyrow', {\n tooltip: 'Copy row',\n onAction: cmd('mceTableCopyRow'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablepasterowbefore', {\n tooltip: 'Paste row before',\n onAction: cmd('mceTablePasteRowBefore'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablepasterowafter', {\n tooltip: 'Paste row after',\n onAction: cmd('mceTablePasteRowAfter'),\n icon: 'temporary-placeholder',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n };\n var addToolbars = function (editor) {\n var isTable = function (table) {\n return editor.dom.is(table, 'table') && editor.getBody().contains(table);\n };\n var toolbar = getToolbar(editor);\n if (toolbar.length > 0) {\n editor.ui.registry.addContextToolbar('table', {\n predicate: isTable,\n items: toolbar,\n scope: 'node',\n position: 'node'\n });\n }\n };\n var Buttons = {\n addButtons: addButtons,\n addToolbars: addToolbars\n };\n\n var addMenuItems = function (editor, selectionTargets) {\n var cmd = function (command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n var insertTableAction = function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n editor.undoManager.transact(function () {\n InsertTable.insert(editor, numColumns, numRows);\n });\n editor.addVisual();\n };\n var tableProperties = {\n text: 'Table properties',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableProps')\n };\n var deleteTable = {\n text: 'Delete table',\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableDelete')\n };\n var row = {\n type: 'nestedmenuitem',\n text: 'Row',\n getSubmenuItems: function () {\n return [\n {\n type: 'menuitem',\n text: 'Insert row before',\n icon: 'table-insert-row-above',\n onAction: cmd('mceTableInsertRowBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Insert row after',\n icon: 'table-insert-row-after',\n onAction: cmd('mceTableInsertRowAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Delete row',\n icon: 'table-delete-row',\n onAction: cmd('mceTableDeleteRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Row properties',\n icon: 'table-row-properties',\n onAction: cmd('mceTableRowProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n { type: 'separator' },\n {\n type: 'menuitem',\n text: 'Cut row',\n onAction: cmd('mceTableCutRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Copy row',\n onAction: cmd('mceTableCopyRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Paste row before',\n onAction: cmd('mceTablePasteRowBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Paste row after',\n onAction: cmd('mceTablePasteRowAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n }\n ];\n }\n };\n var column = {\n type: 'nestedmenuitem',\n text: 'Column',\n getSubmenuItems: function () {\n return [\n {\n type: 'menuitem',\n text: 'Insert column before',\n icon: 'table-insert-column-before',\n onAction: cmd('mceTableInsertColBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Insert column after',\n icon: 'table-insert-column-after',\n onAction: cmd('mceTableInsertColAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Delete column',\n icon: 'table-delete-column',\n onAction: cmd('mceTableDeleteCol'),\n onSetup: selectionTargets.onSetupCellOrRow\n }\n ];\n }\n };\n var cell = {\n type: 'nestedmenuitem',\n text: 'Cell',\n getSubmenuItems: function () {\n return [\n {\n type: 'menuitem',\n text: 'Cell properties',\n icon: 'table-cell-properties',\n onAction: cmd('mceTableCellProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n },\n {\n type: 'menuitem',\n text: 'Merge cells',\n icon: 'table-merge-cells',\n onAction: cmd('mceTableMergeCells'),\n onSetup: selectionTargets.onSetupMergeable\n },\n {\n type: 'menuitem',\n text: 'Split cell',\n icon: 'table-split-cells',\n onAction: cmd('mceTableSplitCells'),\n onSetup: selectionTargets.onSetupUnmergeable\n }\n ];\n }\n };\n if (hasTableGrid(editor) === false) {\n editor.ui.registry.addMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n onAction: cmd('mceInsertTable')\n });\n } else {\n editor.ui.registry.addNestedMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n getSubmenuItems: function () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'inserttable',\n onAction: insertTableAction\n }];\n }\n });\n }\n editor.ui.registry.addMenuItem('tableprops', tableProperties);\n editor.ui.registry.addMenuItem('deletetable', deleteTable);\n editor.ui.registry.addNestedMenuItem('row', row);\n editor.ui.registry.addNestedMenuItem('column', column);\n editor.ui.registry.addNestedMenuItem('cell', cell);\n editor.ui.registry.addContextMenu('table', {\n update: function () {\n selectionTargets.resetTargets();\n return selectionTargets.targets().fold(function () {\n return '';\n }, function (targets) {\n if (name(targets.element()) === 'caption') {\n return 'tableprops deletetable';\n } else {\n return 'cell row column | tableprops deletetable';\n }\n });\n }\n });\n };\n var MenuItems = { addMenuItems: addMenuItems };\n\n var getClipboardRows = function (clipboardRows) {\n return clipboardRows.get().fold(function () {\n return;\n }, function (rows) {\n return map(rows, function (row) {\n return row.dom();\n });\n });\n };\n var setClipboardRows = function (rows, clipboardRows) {\n var sugarRows = map(rows, Element.fromDom);\n clipboardRows.set(Option.from(sugarRows));\n };\n var getApi = function (editor, clipboardRows) {\n return {\n insertTable: function (columns, rows) {\n return InsertTable.insert(editor, columns, rows);\n },\n setClipboardRows: function (rows) {\n return setClipboardRows(rows, clipboardRows);\n },\n getClipboardRows: function () {\n return getClipboardRows(clipboardRows);\n }\n };\n };\n\n function Plugin(editor) {\n var resizeHandler = ResizeHandler(editor);\n var cellSelection = CellSelection$1(editor, resizeHandler.lazyResize);\n var actions = TableActions(editor, resizeHandler.lazyWire);\n var selections = Selections(editor);\n var selectionTargets = SelectionTargets(editor, selections);\n var clipboardRows = Cell(Option.none());\n Commands.registerCommands(editor, actions, cellSelection, selections, clipboardRows);\n Clipboard.registerEvents(editor, selections, actions, cellSelection);\n MenuItems.addMenuItems(editor, selectionTargets);\n Buttons.addButtons(editor, selectionTargets);\n Buttons.addToolbars(editor);\n editor.on('PreInit', function () {\n editor.serializer.addTempAttr(Ephemera.firstSelected());\n editor.serializer.addTempAttr(Ephemera.lastSelected());\n });\n if (hasTabNavigation(editor)) {\n editor.on('keydown', function (e) {\n TabContext.handle(e, editor, actions, resizeHandler.lazyWire);\n });\n }\n editor.on('remove', function () {\n resizeHandler.destroy();\n cellSelection.destroy();\n });\n return getApi(editor, clipboardRows);\n }\n global.add('table', Plugin);\n function Plugin$1 () {\n }\n\n return Plugin$1;\n\n}(window));\n})();\n","// Exports the \"linktools\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/linktools')\n// ES2015:\n// import 'tinymce/plugins/linktools'\nrequire('./plugin.js');\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar insertdatetime = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var getDateFormat = function (editor) {\n return editor.getParam('insertdatetime_dateformat', editor.translate('%Y-%m-%d'));\n };\n var getTimeFormat = function (editor) {\n return editor.getParam('insertdatetime_timeformat', editor.translate('%H:%M:%S'));\n };\n var getFormats = function (editor) {\n return editor.getParam('insertdatetime_formats', [\n '%H:%M:%S',\n '%Y-%m-%d',\n '%I:%M:%S %p',\n '%D'\n ]);\n };\n var getDefaultDateTime = function (editor) {\n var formats = getFormats(editor);\n return formats.length > 0 ? formats[0] : getTimeFormat(editor);\n };\n var shouldInsertTimeElement = function (editor) {\n return editor.getParam('insertdatetime_element', false);\n };\n var Settings = {\n getDateFormat: getDateFormat,\n getTimeFormat: getTimeFormat,\n getFormats: getFormats,\n getDefaultDateTime: getDefaultDateTime,\n shouldInsertTimeElement: shouldInsertTimeElement\n };\n\n var daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' ');\n var daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' ');\n var monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');\n var monthsLong = 'January February March April May June July August September October November December'.split(' ');\n var addZeros = function (value, len) {\n value = '' + value;\n if (value.length < len) {\n for (var i = 0; i < len - value.length; i++) {\n value = '0' + value;\n }\n }\n return value;\n };\n var getDateTime = function (editor, fmt, date) {\n date = date || new Date();\n fmt = fmt.replace('%D', '%m/%d/%Y');\n fmt = fmt.replace('%r', '%I:%M:%S %p');\n fmt = fmt.replace('%Y', '' + date.getFullYear());\n fmt = fmt.replace('%y', '' + date.getYear());\n fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2));\n fmt = fmt.replace('%d', addZeros(date.getDate(), 2));\n fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2));\n fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2));\n fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2));\n fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1));\n fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM'));\n fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()]));\n fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()]));\n fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()]));\n fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()]));\n fmt = fmt.replace('%%', '%');\n return fmt;\n };\n var updateElement = function (editor, timeElm, computerTime, userTime) {\n var newTimeElm = editor.dom.create('time', { datetime: computerTime }, userTime);\n timeElm.parentNode.insertBefore(newTimeElm, timeElm);\n editor.dom.remove(timeElm);\n editor.selection.select(newTimeElm, true);\n editor.selection.collapse(false);\n };\n var insertDateTime = function (editor, format) {\n if (Settings.shouldInsertTimeElement(editor)) {\n var userTime = getDateTime(editor, format);\n var computerTime = void 0;\n if (/%[HMSIp]/.test(format)) {\n computerTime = getDateTime(editor, '%Y-%m-%dT%H:%M');\n } else {\n computerTime = getDateTime(editor, '%Y-%m-%d');\n }\n var timeElm = editor.dom.getParent(editor.selection.getStart(), 'time');\n if (timeElm) {\n updateElement(editor, timeElm, computerTime, userTime);\n } else {\n editor.insertContent('');\n }\n } else {\n editor.insertContent(getDateTime(editor, format));\n }\n };\n var Actions = {\n insertDateTime: insertDateTime,\n getDateTime: getDateTime\n };\n\n var register = function (editor) {\n editor.addCommand('mceInsertDate', function () {\n Actions.insertDateTime(editor, Settings.getDateFormat(editor));\n });\n editor.addCommand('mceInsertTime', function () {\n Actions.insertDateTime(editor, Settings.getTimeFormat(editor));\n });\n };\n var Commands = { register: register };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var register$1 = function (editor) {\n var formats = Settings.getFormats(editor);\n var defaultFormat = Cell(Settings.getDefaultDateTime(editor));\n editor.ui.registry.addSplitButton('insertdatetime', {\n icon: 'insert-time',\n tooltip: 'Insert date/time',\n select: function (value) {\n return value === defaultFormat.get();\n },\n fetch: function (done) {\n done(global$1.map(formats, function (format) {\n return {\n type: 'choiceitem',\n text: Actions.getDateTime(editor, format),\n value: format\n };\n }));\n },\n onAction: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n Actions.insertDateTime(editor, defaultFormat.get());\n },\n onItemAction: function (_, value) {\n defaultFormat.set(value);\n Actions.insertDateTime(editor, value);\n }\n });\n var makeMenuItemHandler = function (format) {\n return function () {\n defaultFormat.set(format);\n Actions.insertDateTime(editor, format);\n };\n };\n editor.ui.registry.addNestedMenuItem('insertdatetime', {\n icon: 'insert-time',\n text: 'Date/time',\n getSubmenuItems: function () {\n return global$1.map(formats, function (format) {\n return {\n type: 'menuitem',\n text: Actions.getDateTime(editor, format),\n onAction: makeMenuItemHandler(format)\n };\n });\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('insertdatetime', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar autoresize = (function () {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var getAutoResizeMinHeight = function (editor) {\n return editor.getParam('min_height', editor.getElement().offsetHeight, 'number');\n };\n var getAutoResizeMaxHeight = function (editor) {\n return editor.getParam('max_height', 0, 'number');\n };\n var getAutoResizeOverflowPadding = function (editor) {\n return editor.getParam('autoresize_overflow_padding', 1, 'number');\n };\n var getAutoResizeBottomMargin = function (editor) {\n return editor.getParam('autoresize_bottom_margin', 50, 'number');\n };\n var shouldAutoResizeOnInit = function (editor) {\n return editor.getParam('autoresize_on_init', true, 'boolean');\n };\n var Settings = {\n getAutoResizeMinHeight: getAutoResizeMinHeight,\n getAutoResizeMaxHeight: getAutoResizeMaxHeight,\n getAutoResizeOverflowPadding: getAutoResizeOverflowPadding,\n getAutoResizeBottomMargin: getAutoResizeBottomMargin,\n shouldAutoResizeOnInit: shouldAutoResizeOnInit\n };\n\n var isFullscreen = function (editor) {\n return editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();\n };\n var wait = function (editor, oldSize, times, interval, callback) {\n global$2.setEditorTimeout(editor, function () {\n resize(editor, oldSize);\n if (times--) {\n wait(editor, oldSize, times, interval, callback);\n } else if (callback) {\n callback();\n }\n }, interval);\n };\n var toggleScrolling = function (editor, state) {\n var body = editor.getBody();\n if (body) {\n body.style.overflowY = state ? '' : 'hidden';\n if (!state) {\n body.scrollTop = 0;\n }\n }\n };\n var parseCssValueToInt = function (dom, elm, name, computed) {\n var value = parseInt(dom.getStyle(elm, name, computed), 10);\n return isNaN(value) ? 0 : value;\n };\n var resize = function (editor, oldSize) {\n var deltaSize, resizeHeight, contentHeight;\n var dom = editor.dom;\n var doc = editor.getDoc();\n if (!doc) {\n return;\n }\n if (isFullscreen(editor)) {\n toggleScrolling(editor, true);\n return;\n }\n var body = doc.body;\n resizeHeight = Settings.getAutoResizeMinHeight(editor);\n var marginTop = parseCssValueToInt(dom, body, 'margin-top', true);\n var marginBottom = parseCssValueToInt(dom, body, 'margin-bottom', true);\n contentHeight = body.offsetHeight + marginTop + marginBottom;\n if (contentHeight < 0) {\n contentHeight = 0;\n }\n var containerHeight = editor.getContainer().offsetHeight;\n var contentAreaHeight = editor.getContentAreaContainer().offsetHeight;\n var chromeHeight = containerHeight - contentAreaHeight;\n if (contentHeight + chromeHeight > Settings.getAutoResizeMinHeight(editor)) {\n resizeHeight = contentHeight + chromeHeight;\n }\n var maxHeight = Settings.getAutoResizeMaxHeight(editor);\n if (maxHeight && resizeHeight > maxHeight) {\n resizeHeight = maxHeight;\n toggleScrolling(editor, true);\n } else {\n toggleScrolling(editor, false);\n }\n if (resizeHeight !== oldSize.get()) {\n deltaSize = resizeHeight - oldSize.get();\n dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px');\n oldSize.set(resizeHeight);\n if (global$1.webkit && deltaSize < 0) {\n resize(editor, oldSize);\n }\n }\n };\n var setup = function (editor, oldSize) {\n editor.on('init', function () {\n var overflowPadding = Settings.getAutoResizeOverflowPadding(editor);\n var bottomMargin = Settings.getAutoResizeBottomMargin(editor);\n var dom = editor.dom;\n dom.setStyles(editor.getBody(), {\n 'paddingLeft': overflowPadding,\n 'paddingRight': overflowPadding,\n 'paddingBottom': bottomMargin,\n 'min-height': 0\n });\n });\n editor.on('NodeChange SetContent keyup FullscreenStateChanged', function (e) {\n resize(editor, oldSize);\n });\n if (Settings.shouldAutoResizeOnInit(editor)) {\n editor.on('init', function () {\n wait(editor, oldSize, 20, 100, function () {\n wait(editor, oldSize, 5, 1000);\n });\n });\n }\n };\n var Resize = {\n setup: setup,\n resize: resize\n };\n\n var register = function (editor, oldSize) {\n editor.addCommand('mceAutoResize', function () {\n Resize.resize(editor, oldSize);\n });\n };\n var Commands = { register: register };\n\n global.add('autoresize', function (editor) {\n if (!editor.settings.hasOwnProperty('resize')) {\n editor.settings.resize = false;\n }\n if (!editor.inline) {\n var oldSize = Cell(0);\n Commands.register(editor, oldSize);\n Resize.setup(editor, oldSize);\n }\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=style&index=0&lang=css&\"","// Exports the \"paste\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/paste')\n// ES2015:\n// import 'tinymce/plugins/paste'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar link = (function (domGlobals) {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var assumeExternalTargets = function (editorSettings) {\n return typeof editorSettings.link_assume_external_targets === 'boolean' ? editorSettings.link_assume_external_targets : false;\n };\n var hasContextToolbar = function (editorSettings) {\n return typeof editorSettings.link_context_toolbar === 'boolean' ? editorSettings.link_context_toolbar : false;\n };\n var getLinkList = function (editorSettings) {\n return editorSettings.link_list;\n };\n var hasDefaultLinkTarget = function (editorSettings) {\n return typeof editorSettings.default_link_target === 'string';\n };\n var useQuickLink = function (editorSettings) {\n return editorSettings.link_quicklink === true;\n };\n var getDefaultLinkTarget = function (editorSettings) {\n return editorSettings.default_link_target;\n };\n var getTargetList = function (editorSettings) {\n return editorSettings.target_list;\n };\n var setTargetList = function (editor, list) {\n editor.settings.target_list = list;\n };\n var shouldShowTargetList = function (editorSettings) {\n return getTargetList(editorSettings) !== false;\n };\n var getRelList = function (editorSettings) {\n return editorSettings.rel_list;\n };\n var hasRelList = function (editorSettings) {\n return getRelList(editorSettings) !== undefined;\n };\n var getLinkClassList = function (editorSettings) {\n return editorSettings.link_class_list;\n };\n var hasLinkClassList = function (editorSettings) {\n return getLinkClassList(editorSettings) !== undefined;\n };\n var shouldShowLinkTitle = function (editorSettings) {\n return editorSettings.link_title !== false;\n };\n var allowUnsafeLinkTarget = function (editorSettings) {\n return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false;\n };\n var Settings = {\n assumeExternalTargets: assumeExternalTargets,\n hasContextToolbar: hasContextToolbar,\n getLinkList: getLinkList,\n hasDefaultLinkTarget: hasDefaultLinkTarget,\n getDefaultLinkTarget: getDefaultLinkTarget,\n getTargetList: getTargetList,\n setTargetList: setTargetList,\n shouldShowTargetList: shouldShowTargetList,\n getRelList: getRelList,\n hasRelList: hasRelList,\n getLinkClassList: getLinkClassList,\n hasLinkClassList: hasLinkClassList,\n shouldShowLinkTitle: shouldShowLinkTitle,\n allowUnsafeLinkTarget: allowUnsafeLinkTarget,\n useQuickLink: useQuickLink\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var appendClickRemove = function (link, evt) {\n domGlobals.document.body.appendChild(link);\n link.dispatchEvent(evt);\n domGlobals.document.body.removeChild(link);\n };\n var open = function (url) {\n if (!global$3.ie || global$3.ie > 10) {\n var link = domGlobals.document.createElement('a');\n link.target = '_blank';\n link.href = url;\n link.rel = 'noreferrer noopener';\n var evt = domGlobals.document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, domGlobals.window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n appendClickRemove(link, evt);\n } else {\n var win = domGlobals.window.open('', '_blank');\n if (win) {\n win.opener = null;\n var doc = win.document;\n doc.open();\n doc.write('');\n doc.close();\n }\n }\n };\n var OpenUrl = { open: open };\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isFunction = isType('function');\n\n var rawIndexOf = function () {\n var pIndexOf = Array.prototype.indexOf;\n var fastIndex = function (xs, x) {\n return pIndexOf.call(xs, x);\n };\n var slowIndex = function (xs, x) {\n return slowIndexOf(xs, x);\n };\n return pIndexOf === undefined ? slowIndex : fastIndex;\n }();\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var slowIndexOf = function (xs, x) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (xs[i] === x) {\n return i;\n }\n }\n return -1;\n };\n var push = Array.prototype.push;\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!Array.prototype.isPrototypeOf(xs[i]))\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n push.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getHref = function (elm) {\n var href = elm.getAttribute('data-mce-href');\n return href ? href : elm.getAttribute('href');\n };\n var applyRelTargetRules = function (rel, isUnsafe) {\n var rules = ['noopener'];\n var rels = rel ? rel.split(/\\s+/) : [];\n var toString = function (rels) {\n return global$4.trim(rels.sort().join(' '));\n };\n var addTargetRules = function (rels) {\n rels = removeTargetRules(rels);\n return rels.length > 0 ? rels.concat(rules) : rules;\n };\n var removeTargetRules = function (rels) {\n return rels.filter(function (val) {\n return global$4.inArray(rules, val) === -1;\n });\n };\n var newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels);\n return newRels.length > 0 ? toString(newRels) : '';\n };\n var trimCaretContainers = function (text) {\n return text.replace(/\\uFEFF/g, '');\n };\n var getAnchorElement = function (editor, selectedElm) {\n selectedElm = selectedElm || editor.selection.getNode();\n if (isImageFigure(selectedElm)) {\n return editor.dom.select('a[href]', selectedElm)[0];\n } else {\n return editor.dom.getParent(selectedElm, 'a[href]');\n }\n };\n var getAnchorText = function (selection, anchorElm) {\n var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' });\n return trimCaretContainers(text);\n };\n var isLink = function (elm) {\n return elm && elm.nodeName === 'A' && !!elm.href;\n };\n var hasLinks = function (elements) {\n return global$4.grep(elements, isLink).length > 0;\n };\n var isOnlyTextSelected = function (html) {\n if (/]+>[^<]+<\\/a>$/.test(html) || html.indexOf('href=') === -1)) {\n return false;\n }\n return true;\n };\n var isImageFigure = function (elm) {\n return elm && elm.nodeName === 'FIGURE' && /\\bimage\\b/i.test(elm.className);\n };\n var getLinkAttrs = function (data) {\n return foldl([\n 'title',\n 'rel',\n 'class',\n 'target'\n ], function (acc, key) {\n data[key].each(function (value) {\n acc[key] = value.length > 0 ? value : null;\n });\n return acc;\n }, { href: data.href });\n };\n var updateLink = function (editor, anchorElm, text, linkAttrs) {\n text.each(function (text) {\n if (anchorElm.hasOwnProperty('innerText')) {\n anchorElm.innerText = text;\n } else {\n anchorElm.textContent = text;\n }\n });\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n };\n var createLink = function (editor, selectedElm, text, linkAttrs) {\n if (isImageFigure(selectedElm)) {\n linkImageFigure(editor, selectedElm, linkAttrs);\n } else {\n text.fold(function () {\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }, function (text) {\n editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text)));\n });\n }\n };\n var link = function (editor, attachState, data) {\n editor.undoManager.transact(function () {\n var selectedElm = editor.selection.getNode();\n var anchorElm = getAnchorElement(editor, selectedElm);\n var linkAttrs = getLinkAttrs(data);\n if (!Settings.hasRelList(editor.settings) && Settings.allowUnsafeLinkTarget(editor.settings) === false) {\n var newRel = applyRelTargetRules(linkAttrs.rel, linkAttrs.target === '_blank');\n linkAttrs.rel = newRel ? newRel : null;\n }\n if (data.href === attachState.href) {\n attachState.attach();\n }\n if (anchorElm) {\n editor.focus();\n updateLink(editor, anchorElm, data.text, linkAttrs);\n } else {\n createLink(editor, selectedElm, data.text, linkAttrs);\n }\n });\n };\n var unlink = function (editor) {\n editor.undoManager.transact(function () {\n var node = editor.selection.getNode();\n if (isImageFigure(node)) {\n unlinkImageFigure(editor, node);\n } else {\n var anchorElm = editor.dom.getParent(node, 'a[href]', editor.getBody());\n if (anchorElm) {\n editor.dom.remove(anchorElm, true);\n }\n }\n editor.focus();\n });\n };\n var unlinkImageFigure = function (editor, fig) {\n var img = editor.dom.select('img', fig)[0];\n if (img) {\n var a = editor.dom.getParents(img, 'a[href]', fig)[0];\n if (a) {\n a.parentNode.insertBefore(img, a);\n editor.dom.remove(a);\n }\n }\n };\n var linkImageFigure = function (editor, fig, attrs) {\n var img = editor.dom.select('img', fig)[0];\n if (img) {\n var a = editor.dom.create('a', attrs);\n img.parentNode.insertBefore(a, img);\n a.appendChild(img);\n }\n };\n var Utils = {\n link: link,\n unlink: unlink,\n isLink: isLink,\n hasLinks: hasLinks,\n getHref: getHref,\n isOnlyTextSelected: isOnlyTextSelected,\n getAnchorElement: getAnchorElement,\n getAnchorText: getAnchorText,\n applyRelTargetRules: applyRelTargetRules\n };\n\n var cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n\n var getValue = function (item) {\n return isString(item.value) ? item.value : '';\n };\n var sanitizeList = function (list, extractValue) {\n var out = [];\n global$4.each(list, function (item) {\n var text = isString(item.text) ? item.text : isString(item.title) ? item.title : '';\n if (item.menu !== undefined) ; else {\n var value = extractValue(item);\n out.push({\n text: text,\n value: value\n });\n }\n });\n return out;\n };\n var sanitizeWith = function (extracter) {\n if (extracter === void 0) {\n extracter = getValue;\n }\n return function (list) {\n return Option.from(list).map(function (list) {\n return sanitizeList(list, extracter);\n });\n };\n };\n var sanitize = function (list) {\n return sanitizeWith(getValue)(list);\n };\n var createUi = function (name, label) {\n return function (items) {\n return {\n name: name,\n type: 'selectbox',\n label: label,\n items: items\n };\n };\n };\n var ListOptions = {\n sanitize: sanitize,\n sanitizeWith: sanitizeWith,\n createUi: createUi,\n getValue: getValue\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var findTextByValue = function (value, catalog) {\n return findMap(catalog, function (item) {\n return Option.some(item).filter(function (i) {\n return i.value === value;\n });\n });\n };\n var getDelta = function (persistentText, fieldName, catalog, data) {\n var value = data[fieldName];\n var hasPersistentText = persistentText.length > 0;\n return value !== undefined ? findTextByValue(value, catalog).map(function (i) {\n return {\n url: {\n value: i.value,\n meta: {\n text: hasPersistentText ? persistentText : i.text,\n attach: noop\n }\n },\n text: hasPersistentText ? persistentText : i.text\n };\n }) : Option.none();\n };\n var findCatalog = function (settings, fieldName) {\n if (fieldName === 'link') {\n return settings.catalogs.link;\n } else if (fieldName === 'anchor') {\n return settings.catalogs.anchor;\n } else {\n return Option.none();\n }\n };\n var init = function (initialData, linkSettings) {\n var persistentText = Cell(initialData.text);\n var onUrlChange = function (data) {\n if (persistentText.get().length <= 0) {\n var urlText = data.url.meta.text !== undefined ? data.url.meta.text : data.url.value;\n return Option.some({ text: urlText });\n } else {\n return Option.none();\n }\n };\n var onCatalogChange = function (data, change) {\n var catalog = findCatalog(linkSettings, change.name).getOr([]);\n return getDelta(persistentText.get(), change.name, catalog, data);\n };\n var onChange = function (getData, change) {\n if (change.name === 'url') {\n return onUrlChange(getData());\n } else if (contains([\n 'anchor',\n 'link'\n ], change.name)) {\n return onCatalogChange(getData(), change);\n } else if (change.name === 'text') {\n persistentText.set(getData().text);\n return Option.none();\n } else {\n return Option.none();\n }\n };\n return { onChange: onChange };\n };\n var DialogChanges = {\n init: init,\n getDelta: getDelta\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var nu = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady())\n call(nCallback);\n else\n callbacks.push(nCallback);\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu,\n pure: pure\n };\n\n var bounce = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var me = this;\n domGlobals.setTimeout(function () {\n f.apply(me, args);\n }, 0);\n };\n };\n\n var nu$1 = function (baseFn) {\n var get = function (callback) {\n baseFn(bounce(callback));\n };\n var map = function (fab) {\n return nu$1(function (callback) {\n get(function (a) {\n var value = fab(a);\n callback(value);\n });\n });\n };\n var bind = function (aFutureB) {\n return nu$1(function (callback) {\n get(function (a) {\n aFutureB(a).get(callback);\n });\n });\n };\n var anonBind = function (futureB) {\n return nu$1(function (callback) {\n get(function (a) {\n futureB.get(callback);\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return nu$1(function (callback) {\n if (cache === null) {\n cache = toLazy();\n }\n cache.get(callback);\n });\n };\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n get: get\n };\n };\n var pure$1 = function (a) {\n return nu$1(function (callback) {\n callback(a);\n });\n };\n var Future = {\n nu: nu$1,\n pure: pure$1\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var delayedConfirm = function (editor, message, callback) {\n var rng = editor.selection.getRng();\n global$5.setEditorTimeout(editor, function () {\n editor.windowManager.confirm(message, function (state) {\n editor.selection.setRng(rng);\n callback(state);\n });\n });\n };\n var tryEmailTransform = function (data) {\n var url = data.href;\n var suggestMailTo = url.indexOf('@') > 0 && url.indexOf('//') === -1 && url.indexOf('mailto:') === -1;\n return suggestMailTo ? Option.some({\n message: 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?',\n preprocess: function (oldData) {\n return __assign({}, oldData, { href: 'mailto:' + url });\n }\n }) : Option.none();\n };\n var tryProtocolTransform = function (assumeExternalTargets) {\n return function (data) {\n var url = data.href;\n var suggestProtocol = assumeExternalTargets === true && !/^\\w+:/i.test(url) || assumeExternalTargets === false && /^\\s*www[\\.|\\d\\.]/i.test(url);\n return suggestProtocol ? Option.some({\n message: 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?',\n preprocess: function (oldData) {\n return __assign({}, oldData, { href: 'http://' + url });\n }\n }) : Option.none();\n };\n };\n var preprocess = function (editor, assumeExternalTargets, data) {\n return findMap([\n tryEmailTransform,\n tryProtocolTransform(assumeExternalTargets)\n ], function (f) {\n return f(data);\n }).fold(function () {\n return Future.pure(data);\n }, function (transform) {\n return Future.nu(function (callback) {\n delayedConfirm(editor, transform.message, function (state) {\n domGlobals.console.log('state', state);\n callback(state ? transform.preprocess(data) : data);\n });\n });\n });\n };\n var DialogConfirms = { preprocess: preprocess };\n\n var getAnchors = function (editor) {\n var anchorNodes = editor.dom.select('a:not([href])');\n var anchors = bind(anchorNodes, function (anchor) {\n var id = anchor.name || anchor.id;\n return id ? [{\n text: id,\n value: '#' + id\n }] : [];\n });\n return anchors.length > 0 ? Option.some([{\n text: 'None',\n value: ''\n }].concat(anchors)) : Option.none();\n };\n var AnchorListOptions = { getAnchors: getAnchors };\n\n var getClasses = function (editor) {\n if (Settings.hasLinkClassList(editor.settings)) {\n var list = Settings.getLinkClassList(editor.settings);\n return ListOptions.sanitize(list);\n }\n return Option.none();\n };\n var ClassListOptions = { getClasses: getClasses };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.util.XHR');\n\n var parseJson = function (text) {\n try {\n return Option.some(JSON.parse(text));\n } catch (err) {\n return Option.none();\n }\n };\n var getLinks = function (editor) {\n var extractor = function (item) {\n return editor.convertURL(item.value || item.url, 'href');\n };\n var linkList = Settings.getLinkList(editor.settings);\n return Future.nu(function (callback) {\n if (typeof linkList === 'string') {\n global$6.send({\n url: linkList,\n success: function (text) {\n return callback(parseJson(text));\n },\n error: function (_) {\n return callback(Option.none());\n }\n });\n } else if (typeof linkList === 'function') {\n linkList(function (output) {\n return callback(Option.some(output));\n });\n } else {\n callback(Option.from(linkList));\n }\n }).map(function (opt) {\n return opt.bind(ListOptions.sanitizeWith(extractor));\n });\n };\n var LinkListOptions = { getLinks: getLinks };\n\n var getRels = function (editor, initialTarget) {\n if (Settings.hasRelList(editor.settings)) {\n var list = Settings.getRelList(editor.settings);\n var isTargetBlank_1 = initialTarget.is('_blank');\n var enforceSafe = Settings.allowUnsafeLinkTarget(editor.settings) === false;\n var safeRelExtractor = function (item) {\n return Utils.applyRelTargetRules(ListOptions.getValue(item), isTargetBlank_1);\n };\n var sanitizer = enforceSafe ? ListOptions.sanitizeWith(safeRelExtractor) : ListOptions.sanitize;\n return sanitizer(list);\n }\n return Option.none();\n };\n var RelOptions = { getRels: getRels };\n\n var fallbacks = [\n {\n text: 'Current window',\n value: ''\n },\n {\n text: 'New window',\n value: '_blank'\n }\n ];\n var getTargets = function (editor) {\n if (Settings.shouldShowTargetList(editor.settings)) {\n var list = Settings.getTargetList(editor.settings);\n return ListOptions.sanitize(list).orThunk(function () {\n return Option.some(fallbacks);\n });\n }\n return Option.none();\n };\n var TargetOptions = { getTargets: getTargets };\n\n var nonEmptyAttr = function (dom, elem, name) {\n var val = dom.getAttrib(elem, name);\n return val !== null && val.length > 0 ? Option.some(val) : Option.none();\n };\n var extractFromAnchor = function (editor, settings, anchor, selection) {\n var dom = editor.dom;\n var onlyText = Utils.isOnlyTextSelected(selection.getContent());\n var text = onlyText ? Option.some(Utils.getAnchorText(selection, anchor)) : Option.none();\n var url = anchor ? Option.some(dom.getAttrib(anchor, 'href')) : Option.none();\n var target = anchor ? Option.from(dom.getAttrib(anchor, 'target')) : Option.none();\n var rel = nonEmptyAttr(dom, anchor, 'rel');\n var linkClass = nonEmptyAttr(dom, anchor, 'class');\n var title = nonEmptyAttr(dom, anchor, 'title');\n return {\n url: url,\n text: text,\n title: title,\n target: target,\n rel: rel,\n linkClass: linkClass\n };\n };\n var collect = function (editor, settings, linkNode) {\n return LinkListOptions.getLinks(editor).map(function (links) {\n var anchor = extractFromAnchor(editor, settings, linkNode, editor.selection);\n return {\n anchor: anchor,\n catalogs: {\n targets: TargetOptions.getTargets(editor),\n rels: RelOptions.getRels(editor, anchor.target),\n classes: ClassListOptions.getClasses(editor),\n anchor: AnchorListOptions.getAnchors(editor),\n link: links\n },\n optNode: Option.from(linkNode),\n flags: { titleEnabled: Settings.shouldShowLinkTitle(settings) }\n };\n });\n };\n var DialogInfo = { collect: collect };\n\n var handleSubmit = function (editor, info, assumeExternalTargets) {\n return function (api) {\n var data = api.getData();\n if (!data.url.value) {\n Utils.unlink(editor);\n api.close();\n return;\n }\n var getChangedValue = function (key) {\n return Option.from(data[key]).filter(function (value) {\n return !info.anchor[key].is(value);\n });\n };\n var changedData = {\n href: data.url.value,\n text: getChangedValue('text'),\n target: getChangedValue('target'),\n rel: getChangedValue('rel'),\n class: getChangedValue('linkClass'),\n title: getChangedValue('title')\n };\n var attachState = {\n href: data.url.value,\n attach: data.url.meta !== undefined && data.url.meta.attach ? data.url.meta.attach : function () {\n }\n };\n DialogConfirms.preprocess(editor, assumeExternalTargets, changedData).get(function (pData) {\n Utils.link(editor, attachState, pData);\n });\n api.close();\n };\n };\n var collectData = function (editor) {\n var settings = editor.settings;\n var anchorNode = Utils.getAnchorElement(editor);\n return DialogInfo.collect(editor, settings, anchorNode);\n };\n var getInitialData = function (info, defaultTarget) {\n return {\n url: {\n value: info.anchor.url.getOr(''),\n meta: {\n attach: function () {\n },\n text: info.anchor.url.fold(function () {\n return '';\n }, function () {\n return info.anchor.text.getOr('');\n }),\n original: { value: info.anchor.url.getOr('') }\n }\n },\n text: info.anchor.text.getOr(''),\n title: info.anchor.title.getOr(''),\n anchor: info.anchor.url.getOr(''),\n link: info.anchor.url.getOr(''),\n rel: info.anchor.rel.getOr(''),\n target: info.anchor.target.or(defaultTarget).getOr(''),\n linkClass: info.anchor.linkClass.getOr('')\n };\n };\n var makeDialog = function (settings, onSubmit, editorSettings) {\n var urlInput = [{\n name: 'url',\n type: 'urlinput',\n filetype: 'file',\n label: 'URL'\n }];\n var displayText = settings.anchor.text.map(function () {\n return {\n name: 'text',\n type: 'input',\n label: 'Text to display'\n };\n }).toArray();\n var titleText = settings.flags.titleEnabled ? [{\n name: 'title',\n type: 'input',\n label: 'Title'\n }] : [];\n var defaultTarget = Settings.hasDefaultLinkTarget(editorSettings) ? Option.some(Settings.getDefaultLinkTarget(editorSettings)) : Option.none();\n var initialData = getInitialData(settings, defaultTarget);\n var dialogDelta = DialogChanges.init(initialData, settings);\n var catalogs = settings.catalogs;\n var body = {\n type: 'panel',\n items: flatten([\n urlInput,\n displayText,\n titleText,\n cat([\n catalogs.anchor.map(ListOptions.createUi('anchor', 'Anchors')),\n catalogs.rels.map(ListOptions.createUi('rel', 'Rel')),\n catalogs.targets.map(ListOptions.createUi('target', 'Open link in...')),\n catalogs.link.map(ListOptions.createUi('link', 'Link list')),\n catalogs.classes.map(ListOptions.createUi('linkClass', 'Class'))\n ])\n ])\n };\n return {\n title: 'Insert/Edit Link',\n size: 'normal',\n body: body,\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: initialData,\n onChange: function (api, _a) {\n var name = _a.name;\n dialogDelta.onChange(api.getData, { name: name }).each(function (newData) {\n api.setData(newData);\n });\n },\n onSubmit: onSubmit\n };\n };\n var open$1 = function (editor) {\n var data = collectData(editor);\n data.map(function (info) {\n var onSubmit = handleSubmit(editor, info, Settings.assumeExternalTargets(editor.settings));\n return makeDialog(info, onSubmit, editor.settings);\n }).get(function (spec) {\n editor.windowManager.open(spec);\n });\n };\n var Dialog = { open: open$1 };\n\n var getLink = function (editor, elm) {\n return editor.dom.getParent(elm, 'a[href]');\n };\n var getSelectedLink = function (editor) {\n return getLink(editor, editor.selection.getStart());\n };\n var hasOnlyAltModifier = function (e) {\n return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false;\n };\n var gotoLink = function (editor, a) {\n if (a) {\n var href = Utils.getHref(a);\n if (/^#/.test(href)) {\n var targetEl = editor.$(href);\n if (targetEl.length) {\n editor.selection.scrollIntoView(targetEl[0], true);\n }\n } else {\n OpenUrl.open(a.href);\n }\n }\n };\n var openDialog = function (editor) {\n return function () {\n Dialog.open(editor);\n };\n };\n var gotoSelectedLink = function (editor) {\n return function () {\n gotoLink(editor, getSelectedLink(editor));\n };\n };\n var leftClickedOnAHref = function (editor) {\n return function (elm) {\n var sel, rng, node;\n if (Settings.hasContextToolbar(editor.settings) && Utils.isLink(elm)) {\n sel = editor.selection;\n rng = sel.getRng();\n node = rng.startContainer;\n if (node.nodeType === 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) {\n return true;\n }\n }\n return false;\n };\n };\n var setupGotoLinks = function (editor) {\n editor.on('click', function (e) {\n var link = getLink(editor, e.target);\n if (link && global$1.metaKeyPressed(e)) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n });\n editor.on('keydown', function (e) {\n var link = getSelectedLink(editor);\n if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n });\n };\n var toggleActiveState = function (editor) {\n return function (api) {\n var nodeChangeHandler = function (e) {\n return api.setActive(!editor.readonly && !!Utils.getAnchorElement(editor, e.element));\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n };\n var toggleEnabledState = function (editor) {\n return function (api) {\n api.setDisabled(!Utils.hasLinks(editor.dom.getParents(editor.selection.getStart())));\n var nodeChangeHandler = function (e) {\n return api.setDisabled(!Utils.hasLinks(e.parents));\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n };\n var Actions = {\n openDialog: openDialog,\n gotoSelectedLink: gotoSelectedLink,\n leftClickedOnAHref: leftClickedOnAHref,\n setupGotoLinks: setupGotoLinks,\n toggleActiveState: toggleActiveState,\n toggleEnabledState: toggleEnabledState\n };\n\n var register = function (editor) {\n editor.addCommand('mceLink', function () {\n if (Settings.useQuickLink(editor.settings)) {\n editor.fire('contexttoolbar-show', { toolbarKey: 'quicklink' });\n } else {\n Actions.openDialog(editor)();\n }\n });\n };\n var Commands = { register: register };\n\n var setup = function (editor) {\n editor.addShortcut('Meta+K', '', function () {\n editor.execCommand('mceLink');\n });\n };\n var Keyboard = { setup: setup };\n\n var setupButtons = function (editor) {\n editor.ui.registry.addToggleButton('link', {\n icon: 'link',\n tooltip: 'Insert/edit link',\n onAction: Actions.openDialog(editor),\n onSetup: Actions.toggleActiveState(editor)\n });\n editor.ui.registry.addButton('unlink', {\n icon: 'unlink',\n tooltip: 'Remove link',\n onAction: function () {\n return Utils.unlink(editor);\n },\n onSetup: Actions.toggleEnabledState(editor)\n });\n };\n var setupMenuItems = function (editor) {\n editor.ui.registry.addMenuItem('openlink', {\n text: 'Open link',\n icon: 'new-tab',\n onAction: Actions.gotoSelectedLink(editor),\n onSetup: Actions.toggleEnabledState(editor)\n });\n editor.ui.registry.addMenuItem('link', {\n icon: 'link',\n text: 'Link...',\n shortcut: 'Meta+K',\n onAction: Actions.openDialog(editor)\n });\n editor.ui.registry.addMenuItem('unlink', {\n icon: 'unlink',\n text: 'Remove link',\n onAction: function () {\n return Utils.unlink(editor);\n },\n onSetup: Actions.toggleEnabledState(editor)\n });\n };\n var setupContextMenu = function (editor) {\n var noLink = 'link';\n var inLink = 'link unlink openlink';\n editor.ui.registry.addContextMenu('link', {\n update: function (element) {\n return Utils.hasLinks(editor.dom.getParents(element, 'a')) ? inLink : noLink;\n }\n });\n };\n var setupContextToolbars = function (editor) {\n var collapseSelectionToEnd = function (editor) {\n editor.selection.collapse(false);\n };\n var onSetupLink = function (buttonApi) {\n var node = editor.selection.getNode();\n buttonApi.setDisabled(!Utils.getAnchorElement(editor, node));\n return function () {\n };\n };\n editor.ui.registry.addContextForm('quicklink', {\n launch: {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n onSetup: Actions.toggleActiveState(editor)\n },\n label: 'Link',\n predicate: function (node) {\n return !!Utils.getAnchorElement(editor, node) && Settings.hasContextToolbar(editor.settings);\n },\n initValue: function () {\n var elm = Utils.getAnchorElement(editor);\n return !!elm ? Utils.getHref(elm) : '';\n },\n commands: [\n {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n primary: true,\n onSetup: function (buttonApi) {\n var node = editor.selection.getNode();\n buttonApi.setActive(!!Utils.getAnchorElement(editor, node));\n return Actions.toggleActiveState(editor)(buttonApi);\n },\n onAction: function (formApi) {\n var anchor = Utils.getAnchorElement(editor);\n var value = formApi.getValue();\n if (!anchor) {\n var attachState = {\n href: value,\n attach: function () {\n }\n };\n var onlyText = Utils.isOnlyTextSelected(editor.selection.getContent());\n var text = onlyText ? Option.some(Utils.getAnchorText(editor.selection, anchor)).filter(function (t) {\n return t.length > 0;\n }).or(Option.from(value)) : Option.none();\n Utils.link(editor, attachState, {\n href: value,\n text: text,\n title: Option.none(),\n rel: Option.none(),\n target: Option.none(),\n class: Option.none()\n });\n formApi.hide();\n } else {\n editor.dom.setAttrib(anchor, 'href', value);\n collapseSelectionToEnd(editor);\n formApi.hide();\n }\n }\n },\n {\n type: 'contextformbutton',\n icon: 'unlink',\n tooltip: 'Remove link',\n onSetup: onSetupLink,\n onAction: function (formApi) {\n Utils.unlink(editor);\n formApi.hide();\n }\n },\n {\n type: 'contextformbutton',\n icon: 'new-tab',\n tooltip: 'Open link',\n onSetup: onSetupLink,\n onAction: function (formApi) {\n Actions.gotoSelectedLink(editor)();\n formApi.hide();\n }\n }\n ]\n });\n };\n var Controls = {\n setupButtons: setupButtons,\n setupMenuItems: setupMenuItems,\n setupContextMenu: setupContextMenu,\n setupContextToolbars: setupContextToolbars\n };\n\n global.add('link', function (editor) {\n Controls.setupButtons(editor);\n Controls.setupMenuItems(editor);\n Controls.setupContextMenu(editor);\n Controls.setupContextToolbars(editor);\n Actions.setupGotoLinks(editor);\n Commands.register(editor);\n Keyboard.setup(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar nonbreaking = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var stringRepeat = function (string, repeats) {\n var str = '';\n for (var index = 0; index < repeats; index++) {\n str += string;\n }\n return str;\n };\n var isVisualCharsEnabled = function (editor) {\n return editor.plugins.visualchars ? editor.plugins.visualchars.isEnabled() : false;\n };\n var insertNbsp = function (editor, times) {\n var nbsp = isVisualCharsEnabled(editor) ? ' ' : ' ';\n editor.insertContent(stringRepeat(nbsp, times));\n editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');\n };\n var Actions = { insertNbsp: insertNbsp };\n\n var register = function (editor) {\n editor.addCommand('mceNonBreaking', function () {\n Actions.insertNbsp(editor, 1);\n });\n };\n var Commands = { register: register };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var getKeyboardSpaces = function (editor) {\n var spaces = editor.getParam('nonbreaking_force_tab', 0);\n if (typeof spaces === 'boolean') {\n return spaces === true ? 3 : 0;\n } else {\n return spaces;\n }\n };\n var Settings = { getKeyboardSpaces: getKeyboardSpaces };\n\n var setup = function (editor) {\n var spaces = Settings.getKeyboardSpaces(editor);\n if (spaces > 0) {\n editor.on('keydown', function (e) {\n if (e.keyCode === global$1.TAB && !e.isDefaultPrevented()) {\n if (e.shiftKey) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n Actions.insertNbsp(editor, spaces);\n }\n });\n }\n };\n var Keyboard = { setup: setup };\n\n var register$1 = function (editor) {\n editor.ui.registry.addButton('nonbreaking', {\n icon: 'non-breaking',\n tooltip: 'Nonbreaking space',\n onAction: function () {\n return editor.execCommand('mceNonBreaking');\n }\n });\n editor.ui.registry.addMenuItem('nonbreaking', {\n icon: 'non-breaking',\n text: 'Nonbreaking space',\n onAction: function () {\n return editor.execCommand('mceNonBreaking');\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('nonbreaking', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n Keyboard.setup(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","// Exports the \"charmap\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/charmap')\n// ES2015:\n// import 'tinymce/plugins/charmap'\nrequire('./plugin.js');","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar image = (function (domGlobals) {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var push = Array.prototype.push;\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!Array.prototype.isPrototypeOf(xs[i]))\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n push.apply(r, xs[i]);\n }\n return r;\n };\n var slice = Array.prototype.slice;\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var nu = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady())\n call(nCallback);\n else\n callbacks.push(nCallback);\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu,\n pure: pure\n };\n\n var bounce = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var me = this;\n domGlobals.setTimeout(function () {\n f.apply(me, args);\n }, 0);\n };\n };\n\n var nu$1 = function (baseFn) {\n var get = function (callback) {\n baseFn(bounce(callback));\n };\n var map = function (fab) {\n return nu$1(function (callback) {\n get(function (a) {\n var value = fab(a);\n callback(value);\n });\n });\n };\n var bind = function (aFutureB) {\n return nu$1(function (callback) {\n get(function (a) {\n aFutureB(a).get(callback);\n });\n });\n };\n var anonBind = function (futureB) {\n return nu$1(function (callback) {\n get(function (a) {\n futureB.get(callback);\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return nu$1(function (callback) {\n if (cache === null) {\n cache = toLazy();\n }\n cache.get(callback);\n });\n };\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n get: get\n };\n };\n var pure$1 = function (a) {\n return nu$1(function (callback) {\n callback(a);\n });\n };\n var Future = {\n nu: nu$1,\n pure: pure$1\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value,\n error: error\n };\n\n var wrap = function (delegate) {\n var toCached = function () {\n return wrap(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n var bindResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap(Future.nu(function (callback) {\n var timedOut = false;\n var timer = domGlobals.setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n domGlobals.clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign({}, delegate, {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n var nu$2 = function (worker) {\n return wrap(Future.nu(worker));\n };\n var value$1 = function (value) {\n return wrap(Future.pure(Result.value(value)));\n };\n var error$1 = function (error) {\n return wrap(Future.pure(Result.error(error)));\n };\n var fromResult = function (result) {\n return wrap(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$2(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$2,\n wrap: wrap,\n pure: value$1,\n value: value$1,\n error: error$1,\n fromResult: fromResult,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var deep = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++)\n objects[i] = arguments[i];\n if (objects.length === 0)\n throw new Error('Can\\'t merge zero objects');\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject)\n if (hasOwnProperty.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge = baseMerge(shallow);\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var path = function (parts, scope) {\n var o = scope !== undefined && scope !== null ? scope : Global;\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\n o = o[parts[i]];\n return o;\n };\n var resolve = function (p, scope) {\n var parts = p.split('.');\n return path(parts, scope);\n };\n\n var unsafe = function (name, scope) {\n return resolve(name, scope);\n };\n var getOrDie = function (name, scope) {\n var actual = unsafe(name, scope);\n if (actual === undefined || actual === null)\n throw name + ' not available on this browser';\n return actual;\n };\n var Global$1 = { getOrDie: getOrDie };\n\n var url = function () {\n return Global$1.getOrDie('URL');\n };\n var createObjectURL = function (blob) {\n return url().createObjectURL(blob);\n };\n var revokeObjectURL = function (u) {\n url().revokeObjectURL(u);\n };\n var URL = {\n createObjectURL: createObjectURL,\n revokeObjectURL: revokeObjectURL\n };\n\n var makeItems = function (info) {\n var imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source'\n };\n var imageList = info.imageList.map(function (items) {\n return {\n name: 'images',\n type: 'selectbox',\n label: 'Image list',\n items: items\n };\n });\n var imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Image description'\n };\n var imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n var imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n var classList = info.classList.map(function (items) {\n return {\n name: 'classes',\n type: 'selectbox',\n label: 'Class',\n items: items\n };\n });\n var caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n type: 'grid',\n columns: 2,\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n var makeTab = function (info) {\n return {\n title: 'General',\n items: makeItems(info)\n };\n };\n var MainTab = {\n makeTab: makeTab,\n makeItems: makeItems\n };\n\n function FileReader () {\n var f = Global$1.getOrDie('FileReader');\n return new f();\n }\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');\n\n var hasDimensions = function (editor) {\n return editor.settings.image_dimensions === false ? false : true;\n };\n var hasAdvTab = function (editor) {\n return editor.settings.image_advtab === true ? true : false;\n };\n var getPrependUrl = function (editor) {\n return editor.getParam('image_prepend_url', '');\n };\n var getClassList = function (editor) {\n return editor.getParam('image_class_list');\n };\n var hasDescription = function (editor) {\n return editor.settings.image_description === false ? false : true;\n };\n var hasImageTitle = function (editor) {\n return editor.settings.image_title === true ? true : false;\n };\n var hasImageCaption = function (editor) {\n return editor.settings.image_caption === true ? true : false;\n };\n var getImageList = function (editor) {\n return editor.getParam('image_list', false);\n };\n var hasUploadUrl = function (editor) {\n return !!editor.getParam('images_upload_url', false);\n };\n var hasUploadHandler = function (editor) {\n return !!editor.getParam('images_upload_handler', false);\n };\n var getUploadUrl = function (editor) {\n return editor.getParam('images_upload_url');\n };\n var getUploadHandler = function (editor) {\n return editor.getParam('images_upload_handler');\n };\n var getUploadBasePath = function (editor) {\n return editor.getParam('images_upload_base_path');\n };\n var getUploadCredentials = function (editor) {\n return editor.getParam('images_upload_credentials');\n };\n var Settings = {\n hasDimensions: hasDimensions,\n hasAdvTab: hasAdvTab,\n getPrependUrl: getPrependUrl,\n getClassList: getClassList,\n hasDescription: hasDescription,\n hasImageTitle: hasImageTitle,\n hasImageCaption: hasImageCaption,\n getImageList: getImageList,\n hasUploadUrl: hasUploadUrl,\n hasUploadHandler: hasUploadHandler,\n getUploadUrl: getUploadUrl,\n getUploadHandler: getUploadHandler,\n getUploadBasePath: getUploadBasePath,\n getUploadCredentials: getUploadCredentials\n };\n\n var parseIntAndGetMax = function (val1, val2) {\n return Math.max(parseInt(val1, 10), parseInt(val2, 10));\n };\n var getImageSize = function (url, callback) {\n var img = domGlobals.document.createElement('img');\n function done(dimensions) {\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n }\n img.onload = function () {\n var width = parseIntAndGetMax(img.width, img.clientWidth);\n var height = parseIntAndGetMax(img.height, img.clientHeight);\n var dimensions = {\n width: width,\n height: height\n };\n done(Result.value(dimensions));\n };\n img.onerror = function () {\n done(Result.error(undefined));\n };\n var style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n domGlobals.document.body.appendChild(img);\n img.src = url;\n };\n var buildListItems = function (inputList, itemCallback, startItems) {\n function appendItems(values, output) {\n output = output || [];\n global$2.each(values, function (item) {\n var menuItem = { text: item.text || item.title };\n if (item.menu) {\n menuItem.menu = appendItems(item.menu);\n } else {\n menuItem.value = item.value;\n itemCallback(menuItem);\n }\n output.push(menuItem);\n });\n return output;\n }\n return appendItems(inputList, startItems || []);\n };\n var removePixelSuffix = function (value) {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n var addPixelSuffix = function (value) {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n var mergeMargins = function (css) {\n if (css.margin) {\n var splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n var createImageList = function (editor, callback) {\n var imageList = Settings.getImageList(editor);\n if (typeof imageList === 'string') {\n global$3.send({\n url: imageList,\n success: function (text) {\n callback(JSON.parse(text));\n }\n });\n } else if (typeof imageList === 'function') {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n var waitLoadImage = function (editor, data, imgElm) {\n function selectImage() {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n }\n imgElm.onload = function () {\n if (!data.width && !data.height && Settings.hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: imgElm.clientWidth,\n height: imgElm.clientHeight\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n var blobToDataUri = function (blob) {\n return new global$1(function (resolve, reject) {\n var reader = FileReader();\n reader.onload = function () {\n resolve(reader.result);\n };\n reader.onerror = function () {\n reject(reader.error.message);\n };\n reader.readAsDataURL(blob);\n });\n };\n var isPlaceholderImage = function (imgElm) {\n return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n };\n var Utils = {\n getImageSize: getImageSize,\n buildListItems: buildListItems,\n removePixelSuffix: removePixelSuffix,\n addPixelSuffix: addPixelSuffix,\n mergeMargins: mergeMargins,\n createImageList: createImageList,\n waitLoadImage: waitLoadImage,\n blobToDataUri: blobToDataUri,\n isPlaceholderImage: isPlaceholderImage\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var DOM = global$4.DOM;\n var getHspace = function (image) {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return Utils.removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n var getVspace = function (image) {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return Utils.removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n var getBorder = function (image) {\n if (image.style.borderWidth) {\n return Utils.removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n var getAttrib = function (image, name) {\n if (image.hasAttribute(name)) {\n return image.getAttribute(name);\n } else {\n return '';\n }\n };\n var getStyle = function (image, name) {\n return image.style[name] ? image.style[name] : '';\n };\n var hasCaption = function (image) {\n return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n };\n var setAttrib = function (image, name, value) {\n image.setAttribute(name, value);\n };\n var wrapInFigure = function (image) {\n var figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n var removeFigure = function (image) {\n var figureElm = image.parentNode;\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n };\n var toggleCaption = function (image) {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n var normalizeStyle = function (image, normalizeCss) {\n var attrValue = image.getAttribute('style');\n var value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n var setSize = function (name, normalizeCss) {\n return function (image, name, value) {\n if (image.style[name]) {\n image.style[name] = Utils.addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n setAttrib(image, name, value);\n }\n };\n };\n var getSize = function (image, name) {\n if (image.style[name]) {\n return Utils.removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n var setHspace = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n var setVspace = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n var setBorder = function (image, value) {\n var pxValue = Utils.addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n var setBorderStyle = function (image, value) {\n image.style.borderStyle = value;\n };\n var getBorderStyle = function (image) {\n return getStyle(image, 'borderStyle');\n };\n var isFigure = function (elm) {\n return elm.nodeName === 'FIGURE';\n };\n var isImage = function (elm) {\n return elm.nodeName === 'IMG';\n };\n var defaultData = function () {\n return {\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: ''\n };\n };\n var getStyleValue = function (normalizeCss, data) {\n var image = domGlobals.document.createElement('img');\n setAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss(image.getAttribute('style'));\n };\n var create = function (normalizeCss, data) {\n var image = domGlobals.document.createElement('img');\n write(normalizeCss, merge(data, { caption: false }), image);\n setAttrib(image, 'alt', data.alt);\n if (data.caption) {\n var figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n var read = function (normalizeCss, image) {\n return {\n src: getAttrib(image, 'src'),\n alt: getAttrib(image, 'alt'),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getStyle(image, 'borderStyle')\n };\n };\n var updateProp = function (image, oldData, newData, name, set) {\n if (newData[name] !== oldData[name]) {\n set(image, name, newData[name]);\n }\n };\n var normalized = function (set, normalizeCss) {\n return function (image, name, value) {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n };\n var write = function (normalizeCss, newData, image) {\n var oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {\n return toggleCaption(image);\n });\n updateProp(image, oldData, newData, 'src', setAttrib);\n updateProp(image, oldData, newData, 'alt', setAttrib);\n updateProp(image, oldData, newData, 'title', setAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', setAttrib);\n updateProp(image, oldData, newData, 'style', normalized(function (image, value) {\n return setAttrib(image, 'style', value);\n }, normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n };\n\n var normalizeCss = function (editor, cssText) {\n var css = editor.dom.styles.parse(cssText);\n var mergedCss = Utils.mergeMargins(css);\n var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n var getSelectedImage = function (editor) {\n var imgElm = editor.selection.getNode();\n var figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || Utils.isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n var splitTextBlock = function (editor, figure) {\n var dom = editor.dom;\n var textBlock = dom.getParent(figure.parentNode, function (node) {\n return editor.schema.getTextBlockElements()[node.nodeName];\n }, editor.getBody());\n if (textBlock) {\n return dom.split(textBlock, figure);\n } else {\n return figure;\n }\n };\n var readImageDataFromSelection = function (editor) {\n var image = getSelectedImage(editor);\n return image ? read(function (css) {\n return normalizeCss(editor, css);\n }, image) : defaultData();\n };\n var insertImageAtCaret = function (editor, data) {\n var elm = create(function (css) {\n return normalizeCss(editor, css);\n }, data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n var insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n var figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n var syncSrcAttr = function (editor, image) {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n var deleteImage = function (editor, image) {\n if (image) {\n var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n var writeImageDataToSelection = function (editor, data) {\n var image = getSelectedImage(editor);\n write(function (css) {\n return normalizeCss(editor, css);\n }, data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n var figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n Utils.waitLoadImage(editor, data, image);\n }\n };\n var insertOrUpdateImage = function (editor, data) {\n var image = getSelectedImage(editor);\n if (image) {\n if (data.src) {\n writeImageDataToSelection(editor, data);\n } else {\n deleteImage(editor, image);\n }\n } else if (data.src) {\n insertImageAtCaret(editor, data);\n }\n };\n\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Option.none();\n };\n\n var getValue = function (item) {\n return isString(item.value) ? item.value : '';\n };\n var sanitizeList = function (list, extractValue) {\n var out = [];\n global$2.each(list, function (item) {\n var text = isString(item.text) ? item.text : isString(item.title) ? item.title : '';\n if (item.menu !== undefined) {\n var items = sanitizeList(item.menu, extractValue);\n out.push({\n text: text,\n items: items\n });\n } else {\n var value = extractValue(item);\n out.push({\n text: text,\n value: value\n });\n }\n });\n return out;\n };\n var sanitizer = function (extracter) {\n if (extracter === void 0) {\n extracter = getValue;\n }\n return function (list) {\n if (list) {\n return Option.from(list).map(function (list) {\n return sanitizeList(list, extracter);\n });\n } else {\n return Option.none();\n }\n };\n };\n var sanitize = function (list) {\n return sanitizer(getValue)(list);\n };\n var isGroup = function (item) {\n return Object.prototype.hasOwnProperty.call(item, 'items');\n };\n var findEntryDelegate = function (list, value) {\n return findMap(list, function (item) {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Option.some(item);\n } else {\n return Option.none();\n }\n });\n };\n var findEntry = function (optList, value) {\n return optList.bind(function (list) {\n return findEntryDelegate(list, value);\n });\n };\n var ListUtils = {\n sanitizer: sanitizer,\n sanitize: sanitize,\n findEntry: findEntry\n };\n\n function XMLHttpRequest () {\n var f = Global$1.getOrDie('XMLHttpRequest');\n return new f();\n }\n\n var noop$1 = function () {\n };\n var pathJoin = function (path1, path2) {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n function Uploader (settings) {\n var defaultHandler = function (blobInfo, success, failure, progress) {\n var xhr, formData;\n xhr = XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = function (e) {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = function () {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = function () {\n var json;\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n json = JSON.parse(xhr.responseText);\n if (!json || typeof json.location !== 'string') {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n formData = new domGlobals.FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n };\n var uploadBlob = function (blobInfo, handler) {\n return new global$1(function (resolve, reject) {\n try {\n handler(blobInfo, resolve, reject, noop$1);\n } catch (ex) {\n reject(ex.message);\n }\n });\n };\n var isDefaultHandler = function (handler) {\n return handler === defaultHandler;\n };\n var upload = function (blobInfo) {\n return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);\n };\n settings = global$2.extend({\n credentials: false,\n handler: defaultHandler\n }, settings);\n return { upload: upload };\n }\n\n var makeTab$1 = function (info) {\n return {\n title: 'Advanced',\n items: [\n {\n type: 'input',\n label: 'Style',\n name: 'style'\n },\n {\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border'\n },\n {\n type: 'selectbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }\n ]\n };\n };\n var AdvTab = { makeTab: makeTab$1 };\n\n var collect = function (editor) {\n var urlListSanitizer = ListUtils.sanitizer(function (item) {\n return editor.convertURL(item.value || item.url, 'src');\n });\n var futureImageList = Future.nu(function (completer) {\n Utils.createImageList(editor, function (imageList) {\n completer(urlListSanitizer(imageList).map(function (items) {\n return flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ]);\n }));\n });\n });\n var classList = ListUtils.sanitize(Settings.getClassList(editor));\n var hasAdvTab = Settings.hasAdvTab(editor);\n var hasUploadUrl = Settings.hasUploadUrl(editor);\n var hasUploadHandler = Settings.hasUploadHandler(editor);\n var image = readImageDataFromSelection(editor);\n var hasDescription = Settings.hasDescription(editor);\n var hasImageTitle = Settings.hasImageTitle(editor);\n var hasDimensions = Settings.hasDimensions(editor);\n var hasImageCaption = Settings.hasImageCaption(editor);\n var url = Settings.getUploadUrl(editor);\n var basePath = Settings.getUploadBasePath(editor);\n var credentials = Settings.getUploadCredentials(editor);\n var handler = Settings.getUploadHandler(editor);\n var prependURL = Option.some(Settings.getPrependUrl(editor)).filter(function (preUrl) {\n return isString(preUrl) && preUrl.length > 0;\n });\n return futureImageList.map(function (imageList) {\n return {\n image: image,\n imageList: imageList,\n classList: classList,\n hasAdvTab: hasAdvTab,\n hasUploadUrl: hasUploadUrl,\n hasUploadHandler: hasUploadHandler,\n hasDescription: hasDescription,\n hasImageTitle: hasImageTitle,\n hasDimensions: hasDimensions,\n hasImageCaption: hasImageCaption,\n url: url,\n basePath: basePath,\n credentials: credentials,\n handler: handler,\n prependURL: prependURL\n };\n });\n };\n\n var makeTab$2 = function (info) {\n var items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n items: items\n };\n };\n var UploadTab = { makeTab: makeTab$2 };\n\n var createState = function (info) {\n return {\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n };\n };\n var fromImageData = function (image) {\n return {\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: []\n };\n };\n var toImageData = function (data) {\n return {\n src: data.src.value,\n alt: data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle\n };\n };\n var addPrependUrl2 = function (info, srcURL) {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(function (prependUrl) {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Option.some(prependUrl + srcURL);\n }\n return Option.none();\n });\n }\n return Option.none();\n };\n var addPrependUrl = function (info, api) {\n var data = api.getData();\n addPrependUrl2(info, data.src.value).each(function (srcURL) {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n var formFillFromMeta2 = function (info, data) {\n var meta = data.src.meta;\n if (meta !== undefined) {\n var dataCopy_1 = deepMerge({}, data);\n if (info.hasDescription && isString(meta.alt)) {\n dataCopy_1.alt = meta.alt;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n dataCopy_1.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n dataCopy_1.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n dataCopy_1.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(function (entry) {\n dataCopy_1.classes = entry.value;\n });\n }\n if (info.hasAdvTab) {\n if (isString(meta.vspace)) {\n dataCopy_1.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n dataCopy_1.border = meta.border;\n }\n if (isString(meta.hspace)) {\n dataCopy_1.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n dataCopy_1.borderstyle = meta.borderstyle;\n }\n }\n return Option.some(dataCopy_1);\n }\n return Option.none();\n };\n var formFillFromMeta = function (info, api) {\n formFillFromMeta2(info, api.getData()).each(function (data) {\n return api.setData(data);\n });\n };\n var calculateImageSize = function (helpers, info, state, api) {\n var data = api.getData();\n var url = data.src.value;\n var meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n helpers.imageSize(url).get(function (result) {\n result.each(function (size) {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n });\n });\n }\n };\n var updateImagesDropdown = function (info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({\n images: image.map(function (entry) {\n return entry.value;\n }).getOr('')\n });\n };\n var changeSrc = function (helpers, info, state, api) {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n var changeImages = function (helpers, info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.images);\n image.each(function (img) {\n var updateAlt = data.alt === '' || state.prevImage.map(function (image) {\n return image.text === data.alt;\n }).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n var calcVSpace = function (css) {\n var matchingTopBottom = css['margin-top'] && css['margin-bottom'] && css['margin-top'] === css['margin-bottom'];\n return matchingTopBottom ? Utils.removePixelSuffix(String(css['margin-top'])) : '';\n };\n var calcHSpace = function (css) {\n var matchingLeftRight = css['margin-right'] && css['margin-left'] && css['margin-right'] === css['margin-left'];\n return matchingLeftRight ? Utils.removePixelSuffix(String(css['margin-right'])) : '';\n };\n var calcBorderWidth = function (css) {\n return css['border-width'] ? Utils.removePixelSuffix(String(css['border-width'])) : '';\n };\n var calcBorderStyle = function (css) {\n return css['border-style'] ? String(css['border-style']) : '';\n };\n var calcStyle = function (parseStyle, serializeStyle, css) {\n return serializeStyle(parseStyle(serializeStyle(css)));\n };\n var changeStyle2 = function (parseStyle, serializeStyle, data) {\n var css = Utils.mergeMargins(parseStyle(data.style));\n var dataCopy = deepMerge({}, data);\n dataCopy.vspace = calcVSpace(css);\n dataCopy.hspace = calcHSpace(css);\n dataCopy.border = calcBorderWidth(css);\n dataCopy.borderstyle = calcBorderStyle(css);\n dataCopy.style = calcStyle(parseStyle, serializeStyle, css);\n return dataCopy;\n };\n var changeStyle = function (helpers, api) {\n var data = api.getData();\n var newData = changeStyle2(helpers.parseStyle, helpers.serializeStyle, data);\n api.setData(newData);\n };\n var changeAStyle = function (helpers, info, api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n var style = getStyleValue(helpers.normalizeCss, toImageData(data));\n api.setData({ style: style });\n };\n var changeFileInput = function (helpers, info, state, api) {\n var data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(function () {\n api.unblock();\n }, function (file) {\n var blobUri = URL.createObjectURL(file);\n var uploader = Uploader({\n url: info.url,\n basePath: info.basePath,\n credentials: info.credentials,\n handler: info.handler\n });\n var finalize = function () {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n Utils.blobToDataUri(file).then(function (dataUrl) {\n var blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n uploader.upload(blobInfo).then(function (url) {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('General');\n changeSrc(helpers, info, state, api);\n finalize();\n }).catch(function (err) {\n finalize();\n helpers.alertErr(api, err);\n });\n });\n });\n };\n var changeHandler = function (helpers, info, state) {\n return function (api, evt) {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'style') {\n changeStyle(helpers, api);\n } else if (evt.name === 'vspace' || evt.name === 'hspace' || evt.name === 'border' || evt.name === 'borderstyle') {\n changeAStyle(helpers, info, api);\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n }\n };\n };\n var closeHandler = function (state) {\n return function () {\n state.open = false;\n };\n };\n var makeDialogBody = function (info) {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n var tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadUrl || info.hasUploadHandler ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n var panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n var makeDialog = function (helpers) {\n return function (info) {\n var state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: helpers.onSubmit(info),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n };\n };\n var submitHandler = function (editor) {\n return function (info) {\n return function (api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n editor.undoManager.transact(function () {\n insertOrUpdateImage(editor, toImageData(data));\n });\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n };\n };\n var imageSize = function (editor) {\n return function (url) {\n return FutureResult.nu(function (completer) {\n Utils.getImageSize(editor.documentBaseURI.toAbsolute(url), function (data) {\n var result = data.bind(function (dimensions) {\n return (isString(dimensions.width) || isNumber(dimensions.width)) && (isString(dimensions.height) || isNumber(dimensions.height)) ? Result.value({\n width: String(dimensions.width),\n height: String(dimensions.height)\n }) : Result.error(undefined);\n });\n completer(result);\n });\n });\n };\n };\n var createBlobCache = function (editor) {\n return function (file, blobUri, dataUrl) {\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri: blobUri,\n name: file.name ? file.name.replace(/\\.[^\\.]+$/, '') : null,\n base64: dataUrl.split(',')[1]\n });\n };\n };\n var alertErr = function (editor) {\n return function (api, message) {\n editor.windowManager.alert(message, api.close);\n };\n };\n var normalizeCss$1 = function (editor) {\n return function (cssText) {\n return normalizeCss(editor, cssText);\n };\n };\n var parseStyle = function (editor) {\n return function (cssText) {\n return editor.dom.parseStyle(cssText);\n };\n };\n var serializeStyle = function (editor) {\n return function (stylesArg, name) {\n return editor.dom.serializeStyle(stylesArg, name);\n };\n };\n var Dialog = function (editor) {\n var helpers = {\n onSubmit: submitHandler(editor),\n imageSize: imageSize(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss$1(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor)\n };\n var open = function () {\n return collect(editor).map(makeDialog(helpers)).get(function (spec) {\n editor.windowManager.open(spec);\n });\n };\n return { open: open };\n };\n\n var register = function (editor) {\n editor.addCommand('mceImage', Dialog(editor).open);\n };\n var Commands = { register: register };\n\n var hasImageClass = function (node) {\n var className = node.attr('class');\n return className && /\\bimage\\b/.test(className);\n };\n var toggleContentEditableState = function (state) {\n return function (nodes) {\n var i = nodes.length, node;\n var toggleContentEditable = function (node) {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global$2.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n };\n var setup = function (editor) {\n editor.on('PreInit', function () {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n var FilterContent = { setup: setup };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var node = function () {\n var f = Global$1.getOrDie('Node');\n return f;\n };\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s))\n return x;\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r)\n return {\n major: 0,\n minor: 0\n };\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$3(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0)\n return unknown();\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu$3(0, 0);\n };\n var nu$3 = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu$3,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$4({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$4 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie, current),\n isOpera: isBrowser(opera, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$4,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$5({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$5 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$5,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\n var isTouch = os.isiOS() || os.isAndroid();\n var isPhone = isTouch && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var contains = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n var monstrosity = contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n return monstrosity;\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var detect$3 = cached(function () {\n var userAgent = domGlobals.navigator.userAgent;\n return PlatformDetection.detect(userAgent);\n });\n var PlatformDetection$1 = { detect: detect$3 };\n\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = PlatformDetection$1.detect().browser;\n var contains$1 = browser.isIE() ? ieContains : regularContains;\n\n var parent = function (element) {\n var dom = element.dom();\n return Option.from(dom.parentNode).map(Element.fromDom);\n };\n var spot = Immutable('element', 'offset');\n\n var getRootElement = function (elm) {\n return parent(elm).filter(function (parentElm) {\n return name(parentElm) === 'figure';\n }).getOr(elm);\n };\n var register$1 = function (editor) {\n var makeContextMenuItem = function (node) {\n return {\n text: 'Image',\n icon: 'image',\n onAction: function () {\n var rootElm = getRootElement(Element.fromDom(node));\n editor.selection.select(rootElm.dom());\n Dialog(editor).open();\n }\n };\n };\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: function (buttonApi) {\n return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open\n });\n editor.ui.registry.addContextMenu('image', {\n update: function (element) {\n return isFigure(element) || isImage(element) && !Utils.isPlaceholderImage(element) ? [makeContextMenuItem(element)] : [];\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('image', function (editor) {\n FilterContent.setup(editor);\n Buttons.register(editor);\n Commands.register(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editor\"},[_c('div',{attrs:{\"id\":_vm.id}}),(_vm.modal)?_c('div',{staticClass:\"filemanager-modal\"},[_c('filemanager',{attrs:{\"modal\":true,\"media\":_vm.media}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import _Object$defineProperty from \"../../core-js/object/define-property\";\nexport default function _defineProperty(obj, key, value) {\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import _Object$getOwnPropertyDescriptor from \"../../core-js/object/get-own-property-descriptor\";\nimport _Object$getOwnPropertySymbols from \"../../core-js/object/get-own-property-symbols\";\nimport _Object$keys from \"../../core-js/object/keys\";\nimport defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n var ownKeys = _Object$keys(source);\n\n if (typeof _Object$getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(_Object$getOwnPropertySymbols(source).filter(function (sym) {\n return _Object$getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","\n\n\n\n\n\n\n\n\n\n\n/* eslint @typescript-eslint/camelcase: 0 */\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\n// Import TinyMCE\nimport head from 'lodash/head';\nimport tinymce from 'tinymce/tinymce';\n\n// Any plugins you want to use has to be imported\nimport 'tinymce/plugins/advlist';\nimport 'tinymce/plugins/wordcount';\nimport 'tinymce/plugins/autolink';\nimport 'tinymce/plugins/autosave';\nimport 'tinymce/plugins/charmap';\nimport 'tinymce/plugins/emoticons';\n// import 'tinymce/plugins/codesample';\n// import 'tinymce/plugins/fullscreen';\nimport 'tinymce/plugins/hr';\n// import 'tinymce/plugins/imagetools';\nimport 'tinymce/plugins/insertdatetime';\nimport 'tinymce/plugins/link';\nimport 'tinymce/plugins/media';\n// import 'tinymce/plugins/noneditable';\nimport 'tinymce/plugins/paste';\n// import 'tinymce/plugins/print';\nimport 'tinymce/plugins/searchreplace';\n// import 'tinymce/plugins/tabfocus';\nimport 'tinymce/plugins/template';\nimport 'tinymce/plugins/textpattern';\nimport 'tinymce/plugins/visualblocks';\nimport 'tinymce/plugins/anchor';\nimport 'tinymce/plugins/autoresize';\n// import 'tinymce/plugins/bbcode';\nimport 'tinymce/plugins/code';\nimport 'tinymce/plugins/directionality';\n// import 'tinymce/plugins/fullpage';\n// import 'tinymce/plugins/help';\nimport 'tinymce/plugins/image';\n// import 'tinymce/plugins/importcss';\n// import 'tinymce/plugins/legacyoutput';\nimport 'tinymce/plugins/lists';\nimport 'tinymce/plugins/nonbreaking';\n// import 'tinymce/plugins/pagebreak';\n// import 'tinymce/plugins/preview';\nimport 'tinymce/plugins/save';\n// import 'tinymce/plugins/spellchecker';\nimport 'tinymce/plugins/table';\n// import 'tinymce/plugins/toc';\nimport 'tinymce/plugins/visualchars';\n\n// Custom plugins\nimport './tinymce/plugins/linktools';\n\n// Language\nimport './tinymce/langs/pl';\n\n// A theme is also required\nimport 'tinymce/themes/silver/theme';\n\n@Component({\n name: 'editor',\n components: {\n // 'tinymce': TinyMCE\n }\n})\nexport default class Editor extends Vue\n{\n @Prop() private id!: string;\n @Prop({default: ''}) value: string;\n @Prop({default: () => [\n 'advlist autolink autosave lists link image charmap hr anchor autoresize',\n 'searchreplace wordcount visualblocks visualchars code template',\n 'insertdatetime media nonbreaking save table directionality',\n 'paste textpattern linktools'\n // 'gallery filemanager mention localautosave'\n ]}) plugins: string[];\n @Prop({\n default: 'undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link gallery_insert filemanager_insert | forecolor backcolor | template code'\n }) toolbar1: string;\n @Prop({default: ''}) toolbar2: string;\n @Prop({default: () => {}}) otherOptions: object;\n\n private editor: any = null;\n private content: string = '';\n private modal: boolean = false;\n private media: string = \"files\";\n private filemanager: any = {\n callback: null,\n value: null,\n meta: null\n };\n\n mounted()\n {\n this.$events.$on('filemanager::modal::close', this.closeModal);\n this.$events.$on('filemanager::callback::value', this.callbackValue);\n\n tinymce.init(this.settings(this));\n }\n\n destroyed()\n {\n tinymce.remove(this.editor);\n\n this.$events.$off('filemanager::modal::close');\n this.$events.$off('filemanager::callback::value');\n }\n\n settings(ctx: any)\n {\n return {\n selector: '#' + this.id,\n language: ctx.$i18n.shortLocale(),\n skin_url: '/static/skins/oxide',\n content_css: '/static/skins/oxide/content.min.css',\n toolbar1: this.toolbar1,\n toolbar2: this.toolbar2,\n plugins: this.plugins,\n templates: this.templates(),\n relative_urls: false,\n paste_data_images: false,\n browser_spellcheck: true,\n entity_encoding: \"raw\",\n min_height: 450,\n autoresize_bottom_margin: 50,\n autoresize_on_init: true,\n nowrap: false,\n resize: false,\n linktools_toolbar: 'link | unlink',\n table_style_by_css: true,\n // las_seconds: 15,\n // extended_valid_elements : \"edito[class|data*],edito-gallery[class|data*],edito-files[class|data*],div[class|data*]\",\n // custom_elements: \"edito,edito-gallery,edito-files\",\n file_picker_callback: function(callback: any, value: any, meta: any)\n {\n ctx.modal = true;\n ctx.filemanager.callback = callback;\n ctx.filemanager.value = value;\n ctx.filemanager.meta = meta;\n\n switch (meta.filetype)\n {\n case \"image\":\n ctx.media = \"images\";\n break;\n case \"media\":\n ctx.media = \"media\";\n break;\n case \"file\":\n ctx.media = \"files\";\n break;\n default:\n ctx.media = \"files\";\n break;\n }\n },\n setup: (editor: any) =>\n {\n ctx.editor = editor;\n editor.on('init', (e: Event) =>\n {\n ctx.content = this.value;\n editor.setContent(ctx.content);\n });\n editor.on('change keyup undo redo', () =>\n {\n ctx.content = editor.getContent();\n ctx.$emit('input', ctx.content);\n });\n },\n ...this.otherOptions\n };\n }\n\n @Watch('value')\n onValueChanged(value: string, old: string)\n {\n if (this.editor && value !== this.content && value !== old)\n {\n this.editor.setContent(value);\n this.content = value;\n }\n }\n\n templates()\n {\n return [\n {\n title: '1/2',\n description: this.$t('[[[Wstaw dwie równe kolumny]]]'),\n content: `\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n

\n `\n },\n {\n title: '2/3 - 1/3',\n description: this.$t('[[[Wstaw dwie kolumny 2/3 oraz 1/3]]]'),\n content: `\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n

\n `\n },\n {\n title: '1/3',\n description: this.$t('[[[Wstaw trzy kolumny 1/3]]]'),\n content: `\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n

\n `\n },\n {\n title: '1/4',\n description: this.$t('[[[Wstaw cztery kolumny 1/4]]]'),\n content: `\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n

\n `\n },\n {\n title: '1/3 - 2/3',\n description: this.$t('[[[Wstaw dwie kolumny 1/3 oraz 2/3]]]'),\n content: `\n
\n
\n  Lorem ipsum...\n
\n
\n  Lorem ipsum...\n
\n
\n

\n `\n },\n {\n title: this.$t('[[[Ważne informacje]]]'),\n description: this.$t('[[[Wstaw szablon informacyjny ze zdjęciem]]]'),\n content: `\n
\n
\n \n
\n
\n  Treść komunikatu\n
\n
\n

\n `\n }\n ];\n }\n\n callbackValue(files: any[])\n {\n if (this.modal === true)\n {\n let file = head(files);\n let params = this.filemanager;\n\n if (file)\n {\n let url = this.$options.filters.baseurl(file.url);\n let size = this.$options.filters.filesize(file.contentLength);\n let text = `${file.name} [${size}]`;\n\n if (params.meta.filetype === 'file')\n {\n params.callback(url, { text: params.meta.text || text, title: file.name });\n }\n if (params.meta.filetype === 'image')\n {\n params.callback(url, { alt: file.name, width: file.meta.width, height: file.meta.height });\n }\n if (params.meta.filetype === 'media')\n {\n params.callback(url, { width: 480, height: 270 });\n }\n }\n\n this.closeModal();\n }\n }\n\n closeModal()\n {\n this.modal = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=502359d9&\"\nimport script from \"./Editor.vue?vue&type=script&lang=ts&\"\nexport * from \"./Editor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar visualchars = (function (domGlobals) {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var get = function (toggleState) {\n var isEnabled = function () {\n return toggleState.get();\n };\n return { isEnabled: isEnabled };\n };\n var Api = { get: get };\n\n var fireVisualChars = function (editor, state) {\n return editor.fire('VisualChars', { state: state });\n };\n var Events = { fireVisualChars: fireVisualChars };\n\n var charMap = {\n '\\xA0': 'nbsp',\n '\\xAD': 'shy'\n };\n var charMapToRegExp = function (charMap, global) {\n var key, regExp = '';\n for (key in charMap) {\n regExp += key;\n }\n return new RegExp('[' + regExp + ']', global ? 'g' : '');\n };\n var charMapToSelector = function (charMap) {\n var key, selector = '';\n for (key in charMap) {\n if (selector) {\n selector += ',';\n }\n selector += 'span.mce-' + charMap[key];\n }\n return selector;\n };\n var Data = {\n charMap: charMap,\n regExp: charMapToRegExp(charMap),\n regExpGlobal: charMapToRegExp(charMap, true),\n selector: charMapToSelector(charMap),\n charMapToRegExp: charMapToRegExp,\n charMapToSelector: charMapToSelector\n };\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var type = function (element) {\n return element.dom().nodeType;\n };\n var value = function (element) {\n return element.dom().nodeValue;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isText = isType$1(TEXT);\n\n var wrapCharWithSpan = function (value) {\n return '' + value + '';\n };\n var Html = { wrapCharWithSpan: wrapCharWithSpan };\n\n var isMatch = function (n) {\n return isText(n) && value(n) !== undefined && Data.regExp.test(value(n));\n };\n var filterDescendants = function (scope, predicate) {\n var result = [];\n var dom = scope.dom();\n var children = map(dom.childNodes, Element.fromDom);\n each(children, function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(filterDescendants(x, predicate));\n });\n return result;\n };\n var findParentElm = function (elm, rootElm) {\n while (elm.parentNode) {\n if (elm.parentNode === rootElm) {\n return elm;\n }\n elm = elm.parentNode;\n }\n };\n var replaceWithSpans = function (html) {\n return html.replace(Data.regExpGlobal, Html.wrapCharWithSpan);\n };\n var Nodes = {\n isMatch: isMatch,\n filterDescendants: filterDescendants,\n findParentElm: findParentElm,\n replaceWithSpans: replaceWithSpans\n };\n\n var show = function (editor, rootElm) {\n var node, div;\n var nodeList = Nodes.filterDescendants(Element.fromDom(rootElm), Nodes.isMatch);\n each(nodeList, function (n) {\n var withSpans = Nodes.replaceWithSpans(value(n));\n div = editor.dom.create('div', null, withSpans);\n while (node = div.lastChild) {\n editor.dom.insertAfter(node, n.dom());\n }\n editor.dom.remove(n.dom());\n });\n };\n var hide = function (editor, body) {\n var nodeList = editor.dom.select(Data.selector, body);\n each(nodeList, function (node) {\n editor.dom.remove(node, 1);\n });\n };\n var toggle = function (editor) {\n var body = editor.getBody();\n var bookmark = editor.selection.getBookmark();\n var parentNode = Nodes.findParentElm(editor.selection.getNode(), body);\n parentNode = parentNode !== undefined ? parentNode : body;\n hide(editor, parentNode);\n show(editor, parentNode);\n editor.selection.moveToBookmark(bookmark);\n };\n var VisualChars = {\n show: show,\n hide: hide,\n toggle: toggle\n };\n\n var toggleVisualChars = function (editor, toggleState) {\n var body = editor.getBody();\n var selection = editor.selection;\n var bookmark;\n toggleState.set(!toggleState.get());\n Events.fireVisualChars(editor, toggleState.get());\n bookmark = selection.getBookmark();\n if (toggleState.get() === true) {\n VisualChars.show(editor, body);\n } else {\n VisualChars.hide(editor, body);\n }\n selection.moveToBookmark(bookmark);\n };\n var Actions = { toggleVisualChars: toggleVisualChars };\n\n var register = function (editor, toggleState) {\n editor.addCommand('mceVisualChars', function () {\n Actions.toggleVisualChars(editor, toggleState);\n });\n };\n var Commands = { register: register };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var setup = function (editor, toggleState) {\n var debouncedToggle = global$1.debounce(function () {\n VisualChars.toggle(editor);\n }, 300);\n if (editor.settings.forced_root_block !== false) {\n editor.on('keydown', function (e) {\n if (toggleState.get() === true) {\n e.keyCode === 13 ? VisualChars.toggle(editor) : debouncedToggle();\n }\n });\n }\n };\n var Keyboard = { setup: setup };\n\n var isEnabledByDefault = function (editor) {\n return editor.getParam('visualchars_default_state', false);\n };\n var Settings = { isEnabledByDefault: isEnabledByDefault };\n\n var setup$1 = function (editor, toggleState) {\n editor.on('init', function () {\n var valueForToggling = !Settings.isEnabledByDefault(editor);\n toggleState.set(valueForToggling);\n Actions.toggleVisualChars(editor, toggleState);\n });\n };\n var Bindings = { setup: setup$1 };\n\n var toggleActiveState = function (editor, enabledStated) {\n return function (api) {\n api.setActive(enabledStated.get());\n var editorEventCallback = function (e) {\n return api.setActive(e.state);\n };\n editor.on('VisualChars', editorEventCallback);\n return function () {\n return editor.off('VisualChars', editorEventCallback);\n };\n };\n };\n var register$1 = function (editor, toggleState) {\n editor.ui.registry.addToggleButton('visualchars', {\n tooltip: 'Show invisible characters',\n icon: 'paragraph',\n onAction: function () {\n return editor.execCommand('mceVisualChars');\n },\n onSetup: toggleActiveState(editor, toggleState)\n });\n editor.ui.registry.addToggleMenuItem('visualchars', {\n text: 'Show invisible characters',\n onAction: function () {\n return editor.execCommand('mceVisualChars');\n },\n onSetup: toggleActiveState(editor, toggleState)\n });\n };\n\n global.add('visualchars', function (editor) {\n var toggleState = Cell(false);\n Commands.register(editor, toggleState);\n register$1(editor, toggleState);\n Keyboard.setup(editor, toggleState);\n Bindings.setup(editor, toggleState);\n return Api.get(toggleState);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar emoticons = (function (domGlobals) {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var exists = function (xs, pred) {\n return findIndex(xs, pred).isSome();\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var contains = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var emojiMatches = function (emoji, lowerCasePattern) {\n return contains(emoji.title.toLowerCase(), lowerCasePattern) || exists(emoji.keywords, function (k) {\n return contains(k.toLowerCase(), lowerCasePattern);\n });\n };\n var emojisFrom = function (list, pattern, maxResults) {\n var matches = [];\n var lowerCasePattern = pattern.toLowerCase();\n var reachedLimit = maxResults.fold(function () {\n return never;\n }, function (max) {\n return function (size) {\n return size >= max;\n };\n });\n for (var i = 0; i < list.length; i++) {\n if (pattern.length === 0 || emojiMatches(list[i], lowerCasePattern)) {\n matches.push({\n value: list[i].char,\n text: list[i].title,\n icon: list[i].char\n });\n if (reachedLimit(matches.length)) {\n break;\n }\n }\n }\n return matches;\n };\n\n var init = function (editor, database) {\n editor.ui.registry.addAutocompleter('emoticons', {\n ch: ':',\n columns: 'auto',\n minChars: 2,\n fetch: function (pattern, maxResults) {\n return database.waitForLoad().then(function () {\n var candidates = database.listAll();\n return emojisFrom(candidates, pattern, Option.some(maxResults));\n });\n },\n onAction: function (autocompleteApi, rng, value) {\n editor.selection.setRng(rng);\n editor.insertContent(value);\n autocompleteApi.hide();\n }\n });\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var last = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null)\n domGlobals.clearTimeout(timer);\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i, obj);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i, obj) {\n return {\n k: i,\n v: f(x, i, obj)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each(obj, function (x, i) {\n var tuple = f(x, i, obj);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value,\n error: error\n };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++)\n objects[i] = arguments[i];\n if (objects.length === 0)\n throw new Error('Can\\'t merge zero objects');\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject)\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n return ret;\n };\n };\n var merge = baseMerge(shallow);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.ScriptLoader');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var getEmoticonDatabaseUrl = function (editor, pluginUrl) {\n return editor.getParam('emoticons_database_url', pluginUrl + '/js/emojis' + editor.suffix + '.js');\n };\n var getAppendedEmoticons = function (editor) {\n return editor.getParam('emoticons_append', {}, 'object');\n };\n var Settings = {\n getEmoticonDatabaseUrl: getEmoticonDatabaseUrl,\n getAppendedEmoticons: getAppendedEmoticons\n };\n\n var ALL_CATEGORY = 'All';\n var categoryNameMap = {\n symbols: 'Symbols',\n people: 'People',\n animals_and_nature: 'Animals and Nature',\n food_and_drink: 'Food and Drink',\n activity: 'Activity',\n travel_and_places: 'Travel and Places',\n objects: 'Objects',\n flags: 'Flags',\n user: 'User Defined'\n };\n var GLOBAL_NAME = 'emoticons_plugin_database';\n var extractGlobal = function (url) {\n if (Global.tinymce[GLOBAL_NAME]) {\n var result = Result.value(Global.tinymce[GLOBAL_NAME]);\n delete Global.tinymce[GLOBAL_NAME];\n return result;\n } else {\n return Result.error('URL ' + url + ' did not contain the expected format for emoticons');\n }\n };\n var translateCategory = function (categories, name) {\n return has(categories, name) ? categories[name] : name;\n };\n var getUserDefinedEmoticons = function (editor) {\n var userDefinedEmoticons = Settings.getAppendedEmoticons(editor);\n return map$1(userDefinedEmoticons, function (value) {\n return merge({\n keywords: [],\n category: 'user'\n }, value);\n });\n };\n var initDatabase = function (editor, databaseUrl) {\n var categories = Cell(Option.none());\n var all = Cell(Option.none());\n var processEmojis = function (emojis) {\n var cats = {};\n var everything = [];\n each(emojis, function (lib, title) {\n var entry = {\n title: title,\n keywords: lib.keywords,\n char: lib.char,\n category: translateCategory(categoryNameMap, lib.category)\n };\n var current = cats[entry.category] !== undefined ? cats[entry.category] : [];\n cats[entry.category] = current.concat([entry]);\n everything.push(entry);\n });\n categories.set(Option.some(cats));\n all.set(Option.some(everything));\n };\n editor.on('init', function () {\n global$1.ScriptLoader.loadScript(databaseUrl, function () {\n extractGlobal(databaseUrl).fold(function (err) {\n domGlobals.console.log(err);\n categories.set(Option.some({}));\n all.set(Option.some([]));\n }, function (emojis) {\n var userEmojis = getUserDefinedEmoticons(editor);\n processEmojis(merge(emojis, userEmojis));\n });\n }, function () {\n });\n });\n var listCategory = function (category) {\n if (category === ALL_CATEGORY) {\n return listAll();\n }\n return categories.get().bind(function (cats) {\n return Option.from(cats[category]);\n }).getOr([]);\n };\n var listAll = function () {\n return all.get().getOr([]);\n };\n var listCategories = function () {\n return [ALL_CATEGORY].concat(keys(categories.get().getOr({})));\n };\n var waitForLoad = function () {\n if (hasLoaded()) {\n return global$2.resolve(true);\n } else {\n return new global$2(function (resolve, reject) {\n var numRetries = 3;\n var interval = global$3.setInterval(function () {\n if (hasLoaded()) {\n global$3.clearInterval(interval);\n resolve(true);\n } else {\n numRetries--;\n if (numRetries < 0) {\n domGlobals.console.log('Could not load emojis from url: ' + databaseUrl);\n global$3.clearInterval(interval);\n reject(false);\n }\n }\n }, 500);\n });\n }\n };\n var hasLoaded = function () {\n return categories.get().isSome() && all.get().isSome();\n };\n return {\n listCategories: listCategories,\n hasLoaded: hasLoaded,\n waitForLoad: waitForLoad,\n listAll: listAll,\n listCategory: listCategory\n };\n };\n\n var insertEmoticon = function (editor, ch) {\n editor.insertContent(ch);\n };\n\n var patternName = 'pattern';\n var open = function (editor, database) {\n var initialState = {\n pattern: '',\n results: emojisFrom(database.listAll(), '', Option.some(300))\n };\n var scan = function (dialogApi, category) {\n var dialogData = dialogApi.getData();\n var candidates = database.listCategory(category);\n var results = emojisFrom(candidates, dialogData[patternName], category === ALL_CATEGORY ? Option.some(300) : Option.none());\n dialogApi.setData({ results: results });\n };\n var updateFilter = last(function (dialogApi) {\n var category = currentTab.get();\n scan(dialogApi, category);\n }, 200);\n var currentTab = Cell(ALL_CATEGORY);\n var searchField = {\n label: 'Search',\n type: 'input',\n name: patternName\n };\n var resultsField = {\n type: 'collection',\n name: 'results'\n };\n var getInitialState = function () {\n var body = {\n type: 'tabpanel',\n tabs: map(database.listCategories(), function (cat) {\n return {\n title: cat,\n items: [\n searchField,\n resultsField\n ]\n };\n })\n };\n return {\n title: 'Emoticons',\n size: 'normal',\n body: body,\n initialData: initialState,\n onTabChange: function (dialogApi, title) {\n currentTab.set(title);\n updateFilter.throttle(dialogApi);\n },\n onChange: updateFilter.throttle,\n onAction: function (dialogApi, actionData) {\n if (actionData.name === 'results') {\n insertEmoticon(editor, actionData.value);\n dialogApi.close();\n }\n },\n buttons: [{\n type: 'cancel',\n text: 'Close',\n primary: true\n }]\n };\n };\n var dialogApi = editor.windowManager.open(getInitialState());\n dialogApi.focus(patternName);\n if (!database.hasLoaded()) {\n dialogApi.block('Loading emoticons...');\n database.waitForLoad().then(function () {\n dialogApi.redial(getInitialState());\n updateFilter.throttle(dialogApi);\n dialogApi.focus(patternName);\n dialogApi.unblock();\n }).catch(function (err) {\n dialogApi.redial({\n title: 'Emoticons',\n body: {\n type: 'panel',\n items: [{\n type: 'alertbanner',\n level: 'error',\n icon: 'warning',\n text: '

Could not load emoticons

'\n }]\n },\n buttons: [{\n type: 'cancel',\n text: 'Close',\n primary: true\n }],\n initialData: {\n pattern: '',\n results: []\n }\n });\n dialogApi.focus(patternName);\n dialogApi.unblock();\n });\n }\n };\n var Dialog = { open: open };\n\n var register = function (editor, database) {\n var onAction = function () {\n return Dialog.open(editor, database);\n };\n editor.ui.registry.addButton('emoticons', {\n tooltip: 'Emoticons',\n icon: 'emoji',\n onAction: onAction\n });\n editor.ui.registry.addMenuItem('emoticons', {\n text: 'Emoticons...',\n icon: 'emoji',\n onAction: onAction\n });\n };\n var Buttons = { register: register };\n\n global.add('emoticons', function (editor, pluginUrl) {\n var databaseUrl = Settings.getEmoticonDatabaseUrl(editor, pluginUrl);\n var database = initDatabase(editor, databaseUrl);\n Buttons.register(editor, database);\n init(editor, database);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","// Exports the \"anchor\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/anchor')\n// ES2015:\n// import 'tinymce/plugins/anchor'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar hr = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var register = function (editor) {\n editor.addCommand('InsertHorizontalRule', function () {\n editor.execCommand('mceInsertContent', false, '
');\n });\n };\n var Commands = { register: register };\n\n var register$1 = function (editor) {\n editor.ui.registry.addButton('hr', {\n icon: 'horizontal-rule',\n tooltip: 'Horizontal line',\n onAction: function () {\n return editor.execCommand('InsertHorizontalRule');\n }\n });\n editor.ui.registry.addMenuItem('hr', {\n icon: 'horizontal-rule',\n text: 'Horizontal line',\n onAction: function () {\n return editor.execCommand('InsertHorizontalRule');\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('hr', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","module.exports = require(\"core-js/library/fn/object/get-own-property-symbols\");","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar directionality = (function (domGlobals) {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var setDir = function (editor, dir) {\n var dom = editor.dom;\n var curDir;\n var blocks = editor.selection.getSelectedBlocks();\n if (blocks.length) {\n curDir = dom.getAttrib(blocks[0], 'dir');\n global$1.each(blocks, function (block) {\n if (!dom.getParent(block.parentNode, '*[dir=\"' + dir + '\"]', dom.getRoot())) {\n dom.setAttrib(block, 'dir', curDir !== dir ? dir : null);\n }\n });\n editor.nodeChanged();\n }\n };\n var Direction = { setDir: setDir };\n\n var register = function (editor) {\n editor.addCommand('mceDirectionLTR', function () {\n Direction.setDir(editor, 'ltr');\n });\n editor.addCommand('mceDirectionRTL', function () {\n Direction.setDir(editor, 'rtl');\n });\n };\n var Commands = { register: register };\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var slice = Array.prototype.slice;\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var keys = Object.keys;\n var each$1 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i, obj);\n }\n };\n\n var trim = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined;\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var get = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove = function (element, key) {\n element.dom().removeAttribute(key);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$1 = function (element, property, value) {\n var dom = element.dom();\n internalSet(dom, property, value);\n };\n var setAll = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom();\n each$1(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n var get$1 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n var getAllRaw = function (element) {\n var css = {};\n var dom = element.dom();\n if (isSupported(dom)) {\n for (var i = 0; i < dom.style.length; i++) {\n var ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n var isValidValue = function (tag, property, value) {\n var element = Element.fromTag(tag);\n set$1(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n var remove$1 = function (element, property) {\n var dom = element.dom();\n internalRemove(dom, property);\n if (has(element, 'style') && trim(get(element, 'style')) === '') {\n remove(element, 'style');\n }\n };\n var preserve = function (element, f) {\n var oldStyles = get(element, 'style');\n var result = f(element);\n var restore = oldStyles === undefined ? remove : set;\n restore(element, 'style', oldStyles);\n return result;\n };\n var copy = function (source, target) {\n var sourceDom = source.dom();\n var targetDom = target.dom();\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n var reflow = function (e) {\n return e.dom().offsetWidth;\n };\n var transferOne = function (source, destination, style) {\n getRaw(source, style).each(function (value) {\n if (getRaw(destination, style).isNone()) {\n set$1(destination, style, value);\n }\n });\n };\n var transfer = function (source, destination, styles) {\n if (!isElement(source) || !isElement(destination)) {\n return;\n }\n each(styles, function (style) {\n transferOne(source, destination, style);\n });\n };\n\n var Css = /*#__PURE__*/Object.freeze({\n copy: copy,\n set: set$1,\n preserve: preserve,\n setAll: setAll,\n setOptions: setOptions,\n remove: remove$1,\n get: get$1,\n getRaw: getRaw,\n getAllRaw: getAllRaw,\n isValidValue: isValidValue,\n reflow: reflow,\n transfer: transfer\n });\n\n var getDirection = function (element) {\n return get$1(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var getNodeChangeHandler = function (editor, dir) {\n return function (api) {\n var nodeChangeHandler = function (e) {\n var element = Element.fromDom(e.element);\n api.setActive(getDirection(element) === dir);\n };\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n };\n var register$1 = function (editor) {\n editor.ui.registry.addToggleButton('ltr', {\n tooltip: 'Left to right',\n icon: 'ltr',\n onAction: function () {\n return editor.execCommand('mceDirectionLTR');\n },\n onSetup: getNodeChangeHandler(editor, 'ltr')\n });\n editor.ui.registry.addToggleButton('rtl', {\n tooltip: 'Right to left',\n icon: 'rtl',\n onAction: function () {\n return editor.execCommand('mceDirectionRTL');\n },\n onSetup: getNodeChangeHandler(editor, 'rtl')\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('directionality', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}(window));\n})();\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\n(function (domGlobals) {\n 'use strict';\n\n var noop = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n };\n var noarg = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f();\n };\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var tripleEquals = function (a, b) {\n return a === b;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !f.apply(null, args);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var apply = function (f) {\n return f();\n };\n var call = function (f) {\n f();\n };\n var never = constant(false);\n var always = constant(true);\n\n var Fun = /*#__PURE__*/Object.freeze({\n noop: noop,\n noarg: noarg,\n compose: compose,\n constant: constant,\n identity: identity,\n tripleEquals: tripleEquals,\n curry: curry,\n not: not,\n die: die,\n apply: apply,\n call: call,\n never: never,\n always: always\n });\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n var some = function (a) {\n var constant_a = function () {\n return a;\n };\n var self = function () {\n return me;\n };\n var map = function (f) {\n return some(f(a));\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\n },\n isSome: always$1,\n isNone: never$1,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: map,\n ap: function (optfab) {\n return optfab.fold(none, function (fab) {\n return some(fab(a));\n });\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n flatten: constant_a,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never$1, function (b) {\n return elementEq(a, b);\n });\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Option = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isNull = isType('null');\n var isBoolean = isType('boolean');\n var isFunction = isType('function');\n var isNumber = isType('number');\n\n var rawIndexOf = function () {\n var pIndexOf = Array.prototype.indexOf;\n var fastIndex = function (xs, x) {\n return pIndexOf.call(xs, x);\n };\n var slowIndex = function (xs, x) {\n return slowIndexOf(xs, x);\n };\n return pIndexOf === undefined ? slowIndex : fastIndex;\n }();\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Option.none() : Option.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n return findIndex(xs, pred).isSome();\n };\n var range = function (num, f) {\n var r = [];\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n var chunk = function (array, size) {\n var r = [];\n for (var i = 0; i < array.length; i += size) {\n var s = array.slice(i, i + size);\n r.push(s);\n }\n return r;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var each = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i, xs);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i, xs) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n r.push(x);\n }\n }\n return r;\n };\n var groupBy = function (xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var find = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(x);\n }\n }\n return Option.none();\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i, xs)) {\n return Option.some(i);\n }\n }\n return Option.none();\n };\n var slowIndexOf = function (xs, x) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (xs[i] === x) {\n return i;\n }\n }\n return -1;\n };\n var push = Array.prototype.push;\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!Array.prototype.isPrototypeOf(xs[i]))\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n push.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n var output = map(xs, f);\n return flatten(output);\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i, xs) !== true) {\n return false;\n }\n }\n return true;\n };\n var equal = function (a1, a2) {\n return a1.length === a2.length && forall(a1, function (x, i) {\n return x === a2[i];\n });\n };\n var slice = Array.prototype.slice;\n var reverse = function (xs) {\n var r = slice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var mapToObject = function (xs, f) {\n var r = {};\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n var pure = function (x) {\n return [x];\n };\n var sort = function (xs, comparator) {\n var copy = slice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var head = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\n };\n var last = function (xs) {\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var Arr = /*#__PURE__*/Object.freeze({\n indexOf: indexOf,\n contains: contains,\n exists: exists,\n range: range,\n chunk: chunk,\n map: map,\n each: each,\n eachr: eachr,\n partition: partition,\n filter: filter,\n groupBy: groupBy,\n foldr: foldr,\n foldl: foldl,\n find: find,\n findIndex: findIndex,\n flatten: flatten,\n bind: bind,\n forall: forall,\n equal: equal,\n reverse: reverse,\n difference: difference,\n mapToObject: mapToObject,\n pure: pure,\n sort: sort,\n head: head,\n last: last,\n from: from$1\n });\n\n var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();\n\n var path = function (parts, scope) {\n var o = scope !== undefined && scope !== null ? scope : Global;\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\n o = o[parts[i]];\n return o;\n };\n var resolve = function (p, scope) {\n var parts = p.split('.');\n return path(parts, scope);\n };\n\n var unsafe = function (name, scope) {\n return resolve(name, scope);\n };\n var getOrDie = function (name, scope) {\n var actual = unsafe(name, scope);\n if (actual === undefined || actual === null)\n throw name + ' not available on this browser';\n return actual;\n };\n var Global$1 = { getOrDie: getOrDie };\n\n var url = function () {\n return Global$1.getOrDie('URL');\n };\n var createObjectURL = function (blob) {\n return url().createObjectURL(blob);\n };\n var revokeObjectURL = function (u) {\n url().revokeObjectURL(u);\n };\n var URL = {\n createObjectURL: createObjectURL,\n revokeObjectURL: revokeObjectURL\n };\n\n var nav = domGlobals.navigator, userAgent = nav.userAgent;\n var opera, webkit, ie, ie11, ie12, gecko, mac, iDevice, android, fileApi, phone, tablet, windowsPhone;\n var matchMediaQuery = function (query) {\n return 'matchMedia' in domGlobals.window ? domGlobals.matchMedia(query).matches : false;\n };\n opera = false;\n android = /Android/.test(userAgent);\n webkit = /WebKit/.test(userAgent);\n ie = !webkit && !opera && /MSIE/gi.test(userAgent) && /Explorer/gi.test(nav.appName);\n ie = ie && /MSIE (\\w+)\\./.exec(userAgent)[1];\n ie11 = userAgent.indexOf('Trident/') !== -1 && (userAgent.indexOf('rv:') !== -1 || nav.appName.indexOf('Netscape') !== -1) ? 11 : false;\n ie12 = userAgent.indexOf('Edge/') !== -1 && !ie && !ie11 ? 12 : false;\n ie = ie || ie11 || ie12;\n gecko = !webkit && !ie11 && /Gecko/.test(userAgent);\n mac = userAgent.indexOf('Mac') !== -1;\n iDevice = /(iPad|iPhone)/.test(userAgent);\n fileApi = 'FormData' in domGlobals.window && 'FileReader' in domGlobals.window && 'URL' in domGlobals.window && !!URL.createObjectURL;\n phone = matchMediaQuery('only screen and (max-device-width: 480px)') && (android || iDevice);\n tablet = matchMediaQuery('only screen and (min-width: 800px)') && (android || iDevice);\n windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\n if (ie12) {\n webkit = false;\n }\n var contentEditable = !iDevice || fileApi || parseInt(userAgent.match(/AppleWebKit\\/(\\d*)/)[1], 10) >= 534;\n var Env = {\n opera: opera,\n webkit: webkit,\n ie: ie,\n gecko: gecko,\n mac: mac,\n iOS: iDevice,\n android: android,\n contentEditable: contentEditable,\n transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n caretAfter: ie !== 8,\n range: domGlobals.window.getSelection && 'Range' in domGlobals.window,\n documentMode: ie && !ie12 ? domGlobals.document.documentMode || 7 : 10,\n fileApi: fileApi,\n ceFalse: ie === false || ie > 8,\n cacheSuffix: null,\n container: null,\n overrideViewPort: null,\n experimentalShadowDom: false,\n canHaveCSP: ie === false || ie > 11,\n desktop: !phone && !tablet,\n windowsPhone: windowsPhone\n };\n\n var promise = function () {\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n var isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n };\n var Promise = function (fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('not a function');\n }\n this._state = null;\n this._value = null;\n this._deferreds = [];\n doResolve(fn, bind(resolve, this), bind(reject, this));\n };\n var asap = Promise.immediateFn || typeof domGlobals.setImmediate === 'function' && domGlobals.setImmediate || function (fn) {\n domGlobals.setTimeout(fn, 1);\n };\n function handle(deferred) {\n var me = this;\n if (this._state === null) {\n this._deferreds.push(deferred);\n return;\n }\n asap(function () {\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (me._state ? deferred.resolve : deferred.reject)(me._value);\n return;\n }\n var ret;\n try {\n ret = cb(me._value);\n } catch (e) {\n deferred.reject(e);\n return;\n }\n deferred.resolve(ret);\n });\n }\n function resolve(newValue) {\n try {\n if (newValue === this) {\n throw new TypeError('A promise cannot be resolved with itself.');\n }\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (typeof then === 'function') {\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n return;\n }\n }\n this._state = true;\n this._value = newValue;\n finale.call(this);\n } catch (e) {\n reject.call(this, e);\n }\n }\n function reject(newValue) {\n this._state = false;\n this._value = newValue;\n finale.call(this);\n }\n function finale() {\n for (var i = 0, len = this._deferreds.length; i < len; i++) {\n handle.call(this, this._deferreds[i]);\n }\n this._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, resolve, reject) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n }\n function doResolve(fn, onFulfilled, onRejected) {\n var done = false;\n try {\n fn(function (value) {\n if (done) {\n return;\n }\n done = true;\n onFulfilled(value);\n }, function (reason) {\n if (done) {\n return;\n }\n done = true;\n onRejected(reason);\n });\n } catch (ex) {\n if (done) {\n return;\n }\n done = true;\n onRejected(ex);\n }\n }\n Promise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var me = this;\n return new Promise(function (resolve, reject) {\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n });\n };\n Promise.all = function () {\n var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) {\n return resolve([]);\n }\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n return Promise;\n };\n var promiseObj = window.Promise ? window.Promise : promise();\n\n var requestAnimationFramePromise;\n var requestAnimationFrame = function (callback, element) {\n var i, requestAnimationFrameFunc = domGlobals.window.requestAnimationFrame;\n var vendors = [\n 'ms',\n 'moz',\n 'webkit'\n ];\n var featurefill = function (callback) {\n domGlobals.window.setTimeout(callback, 0);\n };\n for (i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) {\n requestAnimationFrameFunc = domGlobals.window[vendors[i] + 'RequestAnimationFrame'];\n }\n if (!requestAnimationFrameFunc) {\n requestAnimationFrameFunc = featurefill;\n }\n requestAnimationFrameFunc(callback, element);\n };\n var wrappedSetTimeout = function (callback, time) {\n if (typeof time !== 'number') {\n time = 0;\n }\n return domGlobals.setTimeout(callback, time);\n };\n var wrappedSetInterval = function (callback, time) {\n if (typeof time !== 'number') {\n time = 1;\n }\n return domGlobals.setInterval(callback, time);\n };\n var wrappedClearTimeout = function (id) {\n return domGlobals.clearTimeout(id);\n };\n var wrappedClearInterval = function (id) {\n return domGlobals.clearInterval(id);\n };\n var debounce = function (callback, time) {\n var timer, func;\n func = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n domGlobals.clearTimeout(timer);\n timer = wrappedSetTimeout(function () {\n callback.apply(this, args);\n }, time);\n };\n func.stop = function () {\n domGlobals.clearTimeout(timer);\n };\n return func;\n };\n var Delay = {\n requestAnimationFrame: function (callback, element) {\n if (requestAnimationFramePromise) {\n requestAnimationFramePromise.then(callback);\n return;\n }\n requestAnimationFramePromise = new promiseObj(function (resolve) {\n if (!element) {\n element = domGlobals.document.body;\n }\n requestAnimationFrame(resolve, element);\n }).then(callback);\n },\n setTimeout: wrappedSetTimeout,\n setInterval: wrappedSetInterval,\n setEditorTimeout: function (editor, callback, time) {\n return wrappedSetTimeout(function () {\n if (!editor.removed) {\n callback();\n }\n }, time);\n },\n setEditorInterval: function (editor, callback, time) {\n var timer;\n timer = wrappedSetInterval(function () {\n if (!editor.removed) {\n callback();\n } else {\n domGlobals.clearInterval(timer);\n }\n }, time);\n return timer;\n },\n debounce: debounce,\n throttle: debounce,\n clearInterval: wrappedClearInterval,\n clearTimeout: wrappedClearTimeout\n };\n\n var eventExpandoPrefix = 'mce-data-';\n var mouseEventRe = /^(?:mouse|contextmenu)|click/;\n var deprecated = {\n keyLocation: 1,\n layerX: 1,\n layerY: 1,\n returnValue: 1,\n webkitMovementX: 1,\n webkitMovementY: 1,\n keyIdentifier: 1\n };\n var hasIsDefaultPrevented = function (event) {\n return event.isDefaultPrevented === returnTrue || event.isDefaultPrevented === returnFalse;\n };\n var returnFalse = function () {\n return false;\n };\n var returnTrue = function () {\n return true;\n };\n var addEvent = function (target, name, callback, capture) {\n if (target.addEventListener) {\n target.addEventListener(name, callback, capture || false);\n } else if (target.attachEvent) {\n target.attachEvent('on' + name, callback);\n }\n };\n var removeEvent = function (target, name, callback, capture) {\n if (target.removeEventListener) {\n target.removeEventListener(name, callback, capture || false);\n } else if (target.detachEvent) {\n target.detachEvent('on' + name, callback);\n }\n };\n var getTargetFromShadowDom = function (event, defaultTarget) {\n if (event.composedPath) {\n var composedPath = event.composedPath();\n if (composedPath && composedPath.length > 0) {\n return composedPath[0];\n }\n }\n return defaultTarget;\n };\n var fix = function (originalEvent, data) {\n var name;\n var event = data || {};\n for (name in originalEvent) {\n if (!deprecated[name]) {\n event[name] = originalEvent[name];\n }\n }\n if (!event.target) {\n event.target = event.srcElement || domGlobals.document;\n }\n if (Env.experimentalShadowDom) {\n event.target = getTargetFromShadowDom(originalEvent, event.target);\n }\n if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undefined && originalEvent.clientX !== undefined) {\n var eventDoc = event.target.ownerDocument || domGlobals.document;\n var doc = eventDoc.documentElement;\n var body = eventDoc.body;\n event.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n event.preventDefault = function () {\n event.isDefaultPrevented = returnTrue;\n if (originalEvent) {\n if (originalEvent.preventDefault) {\n originalEvent.preventDefault();\n } else {\n originalEvent.returnValue = false;\n }\n }\n };\n event.stopPropagation = function () {\n event.isPropagationStopped = returnTrue;\n if (originalEvent) {\n if (originalEvent.stopPropagation) {\n originalEvent.stopPropagation();\n } else {\n originalEvent.cancelBubble = true;\n }\n }\n };\n event.stopImmediatePropagation = function () {\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n if (hasIsDefaultPrevented(event) === false) {\n event.isDefaultPrevented = returnFalse;\n event.isPropagationStopped = returnFalse;\n event.isImmediatePropagationStopped = returnFalse;\n }\n if (typeof event.metaKey === 'undefined') {\n event.metaKey = false;\n }\n return event;\n };\n var bindOnReady = function (win, callback, eventUtils) {\n var doc = win.document, event = { type: 'ready' };\n if (eventUtils.domLoaded) {\n callback(event);\n return;\n }\n var isDocReady = function () {\n return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\n };\n var readyHandler = function () {\n removeEvent(win, 'DOMContentLoaded', readyHandler);\n removeEvent(win, 'load', readyHandler);\n if (!eventUtils.domLoaded) {\n eventUtils.domLoaded = true;\n callback(event);\n }\n };\n var waitForDomLoaded = function () {\n if (isDocReady()) {\n removeEvent(doc, 'readystatechange', waitForDomLoaded);\n readyHandler();\n }\n };\n var tryScroll = function () {\n try {\n doc.documentElement.doScroll('left');\n } catch (ex) {\n Delay.setTimeout(tryScroll);\n return;\n }\n readyHandler();\n };\n if (doc.addEventListener && !(Env.ie && Env.ie < 11)) {\n if (isDocReady()) {\n readyHandler();\n } else {\n addEvent(win, 'DOMContentLoaded', readyHandler);\n }\n } else {\n addEvent(doc, 'readystatechange', waitForDomLoaded);\n if (doc.documentElement.doScroll && win.self === win.top) {\n tryScroll();\n }\n }\n addEvent(win, 'load', readyHandler);\n };\n var EventUtils = function () {\n function EventUtils() {\n this.domLoaded = false;\n this.events = {};\n this.count = 1;\n this.expando = eventExpandoPrefix + (+new Date()).toString(32);\n this.hasMouseEnterLeave = 'onmouseenter' in domGlobals.document.documentElement;\n this.hasFocusIn = 'onfocusin' in domGlobals.document.documentElement;\n this.count = 1;\n }\n EventUtils.prototype.bind = function (target, names, callback, scope) {\n var self = this;\n var id, callbackList, i, name, fakeName, nativeHandler, capture;\n var win = domGlobals.window;\n var defaultNativeHandler = function (evt) {\n self.executeHandlers(fix(evt || win.event), id);\n };\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return;\n }\n if (!target[self.expando]) {\n id = self.count++;\n target[self.expando] = id;\n self.events[id] = {};\n } else {\n id = target[self.expando];\n }\n scope = scope || target;\n var namesList = names.split(' ');\n i = namesList.length;\n while (i--) {\n name = namesList[i];\n nativeHandler = defaultNativeHandler;\n fakeName = capture = false;\n if (name === 'DOMContentLoaded') {\n name = 'ready';\n }\n if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {\n callback.call(scope, fix({ type: name }));\n continue;\n }\n if (!self.hasMouseEnterLeave) {\n fakeName = self.mouseEnterLeave[name];\n if (fakeName) {\n nativeHandler = function (evt) {\n var current, related;\n current = evt.currentTarget;\n related = evt.relatedTarget;\n if (related && current.contains) {\n related = current.contains(related);\n } else {\n while (related && related !== current) {\n related = related.parentNode;\n }\n }\n if (!related) {\n evt = fix(evt || win.event);\n evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter';\n evt.target = current;\n self.executeHandlers(evt, id);\n }\n };\n }\n }\n if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) {\n capture = true;\n fakeName = name === 'focusin' ? 'focus' : 'blur';\n nativeHandler = function (evt) {\n evt = fix(evt || win.event);\n evt.type = evt.type === 'focus' ? 'focusin' : 'focusout';\n self.executeHandlers(evt, id);\n };\n }\n callbackList = self.events[id][name];\n if (!callbackList) {\n self.events[id][name] = callbackList = [{\n func: callback,\n scope: scope\n }];\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n callbackList.nativeHandler = nativeHandler;\n if (name === 'ready') {\n bindOnReady(target, nativeHandler, self);\n } else {\n addEvent(target, fakeName || name, nativeHandler, capture);\n }\n } else {\n if (name === 'ready' && self.domLoaded) {\n callback(fix({ type: name }));\n } else {\n callbackList.push({\n func: callback,\n scope: scope\n });\n }\n }\n }\n target = callbackList = 0;\n return callback;\n };\n EventUtils.prototype.unbind = function (target, names, callback) {\n var id, callbackList, i, ci, name, eventMap;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n id = target[this.expando];\n if (id) {\n eventMap = this.events[id];\n if (names) {\n var namesList = names.split(' ');\n i = namesList.length;\n while (i--) {\n name = namesList[i];\n callbackList = eventMap[name];\n if (callbackList) {\n if (callback) {\n ci = callbackList.length;\n while (ci--) {\n if (callbackList[ci].func === callback) {\n var nativeHandler = callbackList.nativeHandler;\n var fakeName = callbackList.fakeName, capture = callbackList.capture;\n callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\n callbackList.nativeHandler = nativeHandler;\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n eventMap[name] = callbackList;\n }\n }\n }\n if (!callback || callbackList.length === 0) {\n delete eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n }\n }\n } else {\n for (name in eventMap) {\n callbackList = eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n eventMap = {};\n }\n for (name in eventMap) {\n return this;\n }\n delete this.events[id];\n try {\n delete target[this.expando];\n } catch (ex) {\n target[this.expando] = null;\n }\n }\n return this;\n };\n EventUtils.prototype.fire = function (target, name, args) {\n var id;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n var event = fix(null, args);\n event.type = name;\n event.target = target;\n do {\n id = target[this.expando];\n if (id) {\n this.executeHandlers(event, id);\n }\n target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\n } while (target && !event.isPropagationStopped());\n return this;\n };\n EventUtils.prototype.clean = function (target) {\n var i, children;\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\n return this;\n }\n if (target[this.expando]) {\n this.unbind(target);\n }\n if (!target.getElementsByTagName) {\n target = target.document;\n }\n if (target && target.getElementsByTagName) {\n this.unbind(target);\n children = target.getElementsByTagName('*');\n i = children.length;\n while (i--) {\n target = children[i];\n if (target[this.expando]) {\n this.unbind(target);\n }\n }\n }\n return this;\n };\n EventUtils.prototype.destroy = function () {\n this.events = {};\n };\n EventUtils.prototype.cancel = function (e) {\n if (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n return false;\n };\n EventUtils.prototype.executeHandlers = function (evt, id) {\n var callbackList, i, l, callback;\n var container = this.events[id];\n callbackList = container && container[evt.type];\n if (callbackList) {\n for (i = 0, l = callbackList.length; i < l; i++) {\n callback = callbackList[i];\n if (callback && callback.func.call(callback.scope, evt) === false) {\n evt.preventDefault();\n }\n if (evt.isImmediatePropagationStopped()) {\n return;\n }\n }\n }\n };\n EventUtils.Event = new EventUtils();\n return EventUtils;\n }();\n\n var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains$1, expando = 'sizzle' + -new Date(), preferredDoc = domGlobals.window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n }, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push$1 = arr.push, slice$1 = arr.slice, indexOf$1 = arr.indexOf || function (elem) {\n var i = 0, len = this.length;\n for (; i < len; i++) {\n if (this[i] === elem) {\n return i;\n }\n }\n return -1;\n }, booleans = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', whitespace = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', identifier = '(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+', attributes = '\\\\[' + whitespace + '*(' + identifier + ')(?:' + whitespace + '*([*^$|!~]?=)' + whitespace + '*(?:\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\"|(' + identifier + '))|)' + whitespace + '*\\\\]', pseudos = ':(' + identifier + ')(?:\\\\((' + '(\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\")|' + '((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|' + attributes + ')*)|' + '.*' + ')\\\\)|)', rtrim = new RegExp('^' + whitespace + '+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)' + whitespace + '+$', 'g'), rcomma = new RegExp('^' + whitespace + '*,' + whitespace + '*'), rcombinators = new RegExp('^' + whitespace + '*([>+~]|' + whitespace + ')' + whitespace + '*'), rattributeQuotes = new RegExp('=' + whitespace + '*([^\\\\]\\'\"]*?)' + whitespace + '*\\\\]', 'g'), rpseudo = new RegExp(pseudos), ridentifier = new RegExp('^' + identifier + '$'), matchExpr = {\n ID: new RegExp('^#(' + identifier + ')'),\n CLASS: new RegExp('^\\\\.(' + identifier + ')'),\n TAG: new RegExp('^(' + identifier + '|[*])'),\n ATTR: new RegExp('^' + attributes),\n PSEUDO: new RegExp('^' + pseudos),\n CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(' + whitespace + '*(even|odd|(([+-]|)(\\\\d*)n|)' + whitespace + '*(?:([+-]|)' + whitespace + '*(\\\\d+)|))' + whitespace + '*\\\\)|)', 'i'),\n bool: new RegExp('^(?:' + booleans + ')$', 'i'),\n needsContext: new RegExp('^' + whitespace + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(' + whitespace + '*((?:-\\\\d)?\\\\d*)' + whitespace + '*\\\\)|)(?=[^-]|$)', 'i')\n }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\\d$/i, rnative = /^[^{]+\\{\\s*\\[native \\w/, rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/, rsibling = /[+~]/, rescape = /'|\\\\/g, runescape = new RegExp('\\\\\\\\([\\\\da-f]{1,6}' + whitespace + '?|(' + whitespace + ')|.)', 'ig'), funescape = function (_, escaped, escapedWhitespace) {\n var high = '0x' + escaped - 65536;\n return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);\n };\n try {\n push$1.apply(arr = slice$1.call(preferredDoc.childNodes), preferredDoc.childNodes);\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push$1 = {\n apply: arr.length ? function (target, els) {\n push_native.apply(target, slice$1.call(els));\n } : function (target, els) {\n var j = target.length, i = 0;\n while (target[j++] = els[i++]) {\n }\n target.length = j - 1;\n }\n };\n }\n var Sizzle = function (selector, context, results, seed) {\n var match, elem, m, nodeType, i, groups, old, nid, newContext, newSelector;\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n context = context || document;\n results = results || [];\n if (!selector || typeof selector !== 'string') {\n return results;\n }\n if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) {\n return [];\n }\n if (documentIsHTML && !seed) {\n if (match = rquickExpr.exec(selector)) {\n if (m = match[1]) {\n if (nodeType === 9) {\n elem = context.getElementById(m);\n if (elem && elem.parentNode) {\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n } else {\n if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains$1(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n } else if (match[2]) {\n push$1.apply(results, context.getElementsByTagName(selector));\n return results;\n } else if ((m = match[3]) && support.getElementsByClassName) {\n push$1.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n nid = old = expando;\n newContext = context;\n newSelector = nodeType === 9 && selector;\n if (nodeType === 1 && context.nodeName.toLowerCase() !== 'object') {\n groups = tokenize(selector);\n if (old = context.getAttribute('id')) {\n nid = old.replace(rescape, '\\\\$&');\n } else {\n context.setAttribute('id', nid);\n }\n nid = '[id=\\'' + nid + '\\'] ';\n i = groups.length;\n while (i--) {\n groups[i] = nid + toSelector(groups[i]);\n }\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n newSelector = groups.join(',');\n }\n if (newSelector) {\n try {\n push$1.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n } finally {\n if (!old) {\n context.removeAttribute('id');\n }\n }\n }\n }\n }\n return select(selector.replace(rtrim, '$1'), context, results, seed);\n };\n function createCache() {\n var keys = [];\n function cache(key, value) {\n if (keys.push(key + ' ') > Expr.cacheLength) {\n delete cache[keys.shift()];\n }\n return cache[key + ' '] = value;\n }\n return cache;\n }\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n function siblingCheck(a, b) {\n var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE);\n if (diff) {\n return diff;\n }\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n return a ? 1 : -1;\n }\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === 'input' && elem.type === type;\n };\n }\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === 'input' || name === 'button') && elem.type === type;\n };\n }\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j, matchIndexes = fn([], seed.length, argument), i = matchIndexes.length;\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== strundefined && context;\n }\n support = Sizzle.support = {};\n isXML = Sizzle.isXML = function (elem) {\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== 'HTML' : false;\n };\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent = doc.defaultView;\n function getTop(win) {\n try {\n return win.top;\n } catch (ex) {\n }\n return null;\n }\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n document = doc;\n docElem = doc.documentElement;\n documentIsHTML = !isXML(doc);\n if (parent && parent !== getTop(parent)) {\n if (parent.addEventListener) {\n parent.addEventListener('unload', function () {\n setDocument();\n }, false);\n } else if (parent.attachEvent) {\n parent.attachEvent('onunload', function () {\n setDocument();\n });\n }\n }\n support.attributes = true;\n support.getElementsByTagName = true;\n support.getElementsByClassName = rnative.test(doc.getElementsByClassName);\n support.getById = true;\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== strundefined && documentIsHTML) {\n var m = context.getElementById(id);\n return m && m.parentNode ? [m] : [];\n }\n };\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute('id') === attrId;\n };\n };\n Expr.find.TAG = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== strundefined) {\n return context.getElementsByTagName(tag);\n }\n } : function (tag, context) {\n var elem, tmp = [], i = 0, results = context.getElementsByTagName(tag);\n if (tag === '*') {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n return tmp;\n }\n return results;\n };\n Expr.find.CLASS = support.getElementsByClassName && function (className, context) {\n if (documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n rbuggyMatches = [];\n rbuggyQSA = [];\n support.disconnectedMatch = true;\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join('|'));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join('|'));\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n contains$1 = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n return false;\n };\n sortOrder = hasCompare ? function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1;\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n if (a === doc || a.ownerDocument === preferredDoc && contains$1(preferredDoc, a)) {\n return -1;\n }\n if (b === doc || b.ownerDocument === preferredDoc && contains$1(preferredDoc, b)) {\n return 1;\n }\n return sortInput ? indexOf$1.call(sortInput, a) - indexOf$1.call(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [a], bp = [b];\n if (!aup || !bup) {\n return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf$1.call(sortInput, a) - indexOf$1.call(sortInput, b) : 0;\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n cur = a;\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n cur = b;\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n }\n while (ap[i] === bp[i]) {\n i++;\n }\n return i ? siblingCheck(ap[i], bp[i]) : ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return doc;\n };\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n Sizzle.matchesSelector = function (elem, expr) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n expr = expr.replace(rattributeQuotes, '=\\'$1\\']');\n if (support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n }\n }\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n Sizzle.contains = function (context, elem) {\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n return contains$1(context, elem);\n };\n Sizzle.attr = function (elem, name) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n Sizzle.error = function (msg) {\n throw new Error('Syntax error, unrecognized expression: ' + msg);\n };\n Sizzle.uniqueSort = function (results) {\n var elem, duplicates = [], j = 0, i = 0;\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n sortInput = null;\n return results;\n };\n getText = Sizzle.getText = function (elem) {\n var node, ret = '', i = 0, nodeType = elem.nodeType;\n if (!nodeType) {\n while (node = elem[i++]) {\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n if (typeof elem.textContent === 'string') {\n return elem.textContent;\n } else {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n return ret;\n };\n Expr = Sizzle.selectors = {\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n '>': {\n dir: 'parentNode',\n first: true\n },\n ' ': { dir: 'parentNode' },\n '+': {\n dir: 'previousSibling',\n first: true\n },\n '~': { dir: 'previousSibling' }\n },\n preFilter: {\n ATTR: function (match) {\n match[1] = match[1].replace(runescape, funescape);\n match[3] = (match[3] || match[4] || match[5] || '').replace(runescape, funescape);\n if (match[2] === '~=') {\n match[3] = ' ' + match[3] + ' ';\n }\n return match.slice(0, 4);\n },\n CHILD: function (match) {\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === 'nth') {\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === 'even' || match[3] === 'odd'));\n match[5] = +(match[7] + match[8] || match[3] === 'odd');\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n return match;\n },\n PSEUDO: function (match) {\n var excess, unquoted = !match[6] && match[2];\n if (matchExpr.CHILD.test(match[0])) {\n return null;\n }\n if (match[3]) {\n match[2] = match[4] || match[5] || '';\n } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(')', unquoted.length - excess) - unquoted.length)) {\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === '*' ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n CLASS: function (className) {\n var pattern = classCache[className + ' '];\n return pattern || (pattern = new RegExp('(^|' + whitespace + ')' + className + '(' + whitespace + '|$)')) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === 'string' && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute('class') || '');\n });\n },\n ATTR: function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n if (result == null) {\n return operator === '!=';\n }\n if (!operator) {\n return true;\n }\n result += '';\n return operator === '=' ? result === check : operator === '!=' ? result !== check : operator === '^=' ? check && result.indexOf(check) === 0 : operator === '*=' ? check && result.indexOf(check) > -1 : operator === '$=' ? check && result.slice(-check.length) === check : operator === '~=' ? (' ' + result + ' ').indexOf(check) > -1 : operator === '|=' ? result === check || result.slice(0, check.length + 1) === check + '-' : false;\n };\n },\n CHILD: function (type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== 'nth', forward = type.slice(-4) !== 'last', ofType = what === 'of-type';\n return first === 1 && last === 0 ? function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType;\n if (parent) {\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n start = dir = type === 'only' && !start && 'nextSibling';\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n if (forward && useCache) {\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = cache[0] === dirruns && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [\n dirruns,\n nodeIndex,\n diff\n ];\n break;\n }\n }\n } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) {\n diff = cache[1];\n } else {\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n if (useCache) {\n (node[expando] || (node[expando] = {}))[type] = [\n dirruns,\n diff\n ];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function (pseudo, argument) {\n var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error('unsupported pseudo: ' + pseudo);\n if (fn[expando]) {\n return fn(argument);\n }\n if (fn.length > 1) {\n args = [\n pseudo,\n pseudo,\n '',\n argument\n ];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx, matched = fn(seed, argument), i = matched.length;\n while (i--) {\n idx = indexOf$1.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n not: markFunction(function (selector) {\n var input = [], results = [], matcher = compile(selector.replace(rtrim, '$1'));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem, unmatched = matcher(seed, null, xml, []), i = seed.length;\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n lang: markFunction(function (lang) {\n if (!ridentifier.test(lang || '')) {\n Sizzle.error('unsupported lang: ' + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute('xml:lang') || elem.getAttribute('lang')) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + '-') === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n target: function (elem) {\n var hash = domGlobals.window.location && domGlobals.window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function (elem) {\n return elem === docElem;\n },\n focus: function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n enabled: function (elem) {\n return elem.disabled === false;\n },\n disabled: function (elem) {\n return elem.disabled === true;\n },\n checked: function (elem) {\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === 'input' && !!elem.checked || nodeName === 'option' && !!elem.selected;\n },\n selected: function (elem) {\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n empty: function (elem) {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n parent: function (elem) {\n return !Expr.pseudos.empty(elem);\n },\n header: function (elem) {\n return rheader.test(elem.nodeName);\n },\n input: function (elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === 'input' && elem.type === 'button' || name === 'button';\n },\n text: function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === 'input' && elem.type === 'text' && ((attr = elem.getAttribute('type')) == null || attr.toLowerCase() === 'text');\n },\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos.nth = Expr.pseudos.eq;\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n function setFilters() {\n }\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + ' '];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: match[0].replace(rtrim, ' ')\n });\n soFar = soFar.slice(matched.length);\n }\n for (type in Expr.filter) {\n if (!Expr.filter.hasOwnProperty(type))\n continue;\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0);\n };\n function toSelector(tokens) {\n var i = 0, len = tokens.length, selector = '';\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir, checkNonElements = base && dir === 'parentNode', doneName = done++;\n return combinator.first ? function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : function (elem, context, xml) {\n var oldCache, outerCache, newCache = [\n dirruns,\n doneName\n ];\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if ((oldCache = outerCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n return newCache[2] = oldCache[2];\n } else {\n outerCache[dir] = newCache;\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0, len = contexts.length;\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector || '*', context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn;\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf$1.call(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push$1.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[' '], i = leadingRelative ? 1 : 0, matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true), matchAnyContext = addCombinator(function (elem) {\n return indexOf$1.call(checkContext, elem) > -1;\n }, implicitRelative, true), matchers = [function (elem, context, xml) {\n return !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n if (matcher[expando]) {\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === ' ' ? '*' : '' })).replace(rtrim, '$1'), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function (seed, context, xml, results, outermost) {\n var elem, j, matcher, matchedCount = 0, i = '0', unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG('*', outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length;\n if (outermost) {\n outermostContext = context !== document && context;\n }\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context, xml)) {\n results.push(elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n if (bySet) {\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n matchedCount += i;\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n setMatched = condense(setMatched);\n }\n push$1.apply(results, setMatched);\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n compile = Sizzle.compile = function (selector, match) {\n var i, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + ' '];\n if (!cached) {\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n cached.selector = selector;\n }\n return cached;\n };\n select = Sizzle.select = function (selector, context, results, seed) {\n var i, tokens, token, type, find, compiled = typeof selector === 'function' && selector, match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n if (match.length === 1) {\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === 'ID' && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push$1.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n };\n support.sortStable = expando.split('').sort(sortOrder).join('') === expando;\n support.detectDuplicates = !!hasDuplicate;\n setDocument();\n support.sortDetached = true;\n\n var isArray$1 = Array.isArray;\n var toArray = function (obj) {\n var array = obj, i, l;\n if (!isArray$1(obj)) {\n array = [];\n for (i = 0, l = obj.length; i < l; i++) {\n array[i] = obj[i];\n }\n }\n return array;\n };\n var each$1 = function (o, cb, s) {\n var n, l;\n if (!o) {\n return 0;\n }\n s = s || o;\n if (o.length !== undefined) {\n for (n = 0, l = o.length; n < l; n++) {\n if (cb.call(s, o[n], n, o) === false) {\n return 0;\n }\n }\n } else {\n for (n in o) {\n if (o.hasOwnProperty(n)) {\n if (cb.call(s, o[n], n, o) === false) {\n return 0;\n }\n }\n }\n }\n return 1;\n };\n var map$1 = function (array, callback) {\n var out = [];\n each$1(array, function (item, index) {\n out.push(callback(item, index, array));\n });\n return out;\n };\n var filter$1 = function (a, f) {\n var o = [];\n each$1(a, function (v, index) {\n if (!f || f(v, index, a)) {\n o.push(v);\n }\n });\n return o;\n };\n var indexOf$2 = function (a, v) {\n var i, l;\n if (a) {\n for (i = 0, l = a.length; i < l; i++) {\n if (a[i] === v) {\n return i;\n }\n }\n }\n return -1;\n };\n var reduce = function (collection, iteratee, accumulator, thisArg) {\n var i = 0;\n if (arguments.length < 3) {\n accumulator = collection[0];\n }\n for (; i < collection.length; i++) {\n accumulator = iteratee.call(thisArg, accumulator, collection[i], i);\n }\n return accumulator;\n };\n var findIndex$1 = function (array, predicate, thisArg) {\n var i, l;\n for (i = 0, l = array.length; i < l; i++) {\n if (predicate.call(thisArg, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n var find$1 = function (array, predicate, thisArg) {\n var idx = findIndex$1(array, predicate, thisArg);\n if (idx !== -1) {\n return array[idx];\n }\n return undefined;\n };\n var last$1 = function (collection) {\n return collection[collection.length - 1];\n };\n var ArrUtils = {\n isArray: isArray$1,\n toArray: toArray,\n each: each$1,\n map: map$1,\n filter: filter$1,\n indexOf: indexOf$2,\n reduce: reduce,\n findIndex: findIndex$1,\n find: find$1,\n last: last$1\n };\n\n var whiteSpaceRegExp = /^\\s*|\\s*$/g;\n var trim = function (str) {\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp, '');\n };\n var is = function (obj, type) {\n if (!type) {\n return obj !== undefined;\n }\n if (type === 'array' && ArrUtils.isArray(obj)) {\n return true;\n }\n return typeof obj === type;\n };\n var makeMap = function (items, delim, map) {\n var i;\n items = items || [];\n delim = delim || ',';\n if (typeof items === 'string') {\n items = items.split(delim);\n }\n map = map || {};\n i = items.length;\n while (i--) {\n map[items[i]] = {};\n }\n return map;\n };\n var hasOwnProperty = function (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n var create = function (s, p, root) {\n var self = this;\n var sp, ns, cn, scn, c, de = 0;\n s = /^((static) )?([\\w.]+)(:([\\w.]+))?/.exec(s);\n cn = s[3].match(/(^|\\.)(\\w+)$/i)[2];\n ns = self.createNS(s[3].replace(/\\.\\w+$/, ''), root);\n if (ns[cn]) {\n return;\n }\n if (s[2] === 'static') {\n ns[cn] = p;\n if (this.onCreate) {\n this.onCreate(s[2], s[3], ns[cn]);\n }\n return;\n }\n if (!p[cn]) {\n p[cn] = function () {\n };\n de = 1;\n }\n ns[cn] = p[cn];\n self.extend(ns[cn].prototype, p);\n if (s[5]) {\n sp = self.resolve(s[5]).prototype;\n scn = s[5].match(/\\.(\\w+)$/i)[1];\n c = ns[cn];\n if (de) {\n ns[cn] = function () {\n return sp[scn].apply(this, arguments);\n };\n } else {\n ns[cn] = function () {\n this.parent = sp[scn];\n return c.apply(this, arguments);\n };\n }\n ns[cn].prototype[cn] = ns[cn];\n self.each(sp, function (f, n) {\n ns[cn].prototype[n] = sp[n];\n });\n self.each(p, function (f, n) {\n if (sp[n]) {\n ns[cn].prototype[n] = function () {\n this.parent = sp[n];\n return f.apply(this, arguments);\n };\n } else {\n if (n !== cn) {\n ns[cn].prototype[n] = f;\n }\n }\n });\n }\n self.each(p.static, function (f, n) {\n ns[cn][n] = f;\n });\n };\n var extend = function (obj, ext) {\n var x = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n x[_i - 2] = arguments[_i];\n }\n var i, l, name;\n var args = arguments;\n var value;\n for (i = 1, l = args.length; i < l; i++) {\n ext = args[i];\n for (name in ext) {\n if (ext.hasOwnProperty(name)) {\n value = ext[name];\n if (value !== undefined) {\n obj[name] = value;\n }\n }\n }\n }\n return obj;\n };\n var walk = function (o, f, n, s) {\n s = s || this;\n if (o) {\n if (n) {\n o = o[n];\n }\n ArrUtils.each(o, function (o, i) {\n if (f.call(s, o, i, n) === false) {\n return false;\n }\n walk(o, f, n, s);\n });\n }\n };\n var createNS = function (n, o) {\n var i, v;\n o = o || domGlobals.window;\n n = n.split('.');\n for (i = 0; i < n.length; i++) {\n v = n[i];\n if (!o[v]) {\n o[v] = {};\n }\n o = o[v];\n }\n return o;\n };\n var resolve$1 = function (n, o) {\n var i, l;\n o = o || domGlobals.window;\n n = n.split('.');\n for (i = 0, l = n.length; i < l; i++) {\n o = o[n[i]];\n if (!o) {\n break;\n }\n }\n return o;\n };\n var explode = function (s, d) {\n if (!s || is(s, 'array')) {\n return s;\n }\n return ArrUtils.map(s.split(d || ','), trim);\n };\n var _addCacheSuffix = function (url) {\n var cacheSuffix = Env.cacheSuffix;\n if (cacheSuffix) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\n }\n return url;\n };\n var Tools = {\n trim: trim,\n isArray: ArrUtils.isArray,\n is: is,\n toArray: ArrUtils.toArray,\n makeMap: makeMap,\n each: ArrUtils.each,\n map: ArrUtils.map,\n grep: ArrUtils.filter,\n inArray: ArrUtils.indexOf,\n hasOwn: hasOwnProperty,\n extend: extend,\n create: create,\n walk: walk,\n createNS: createNS,\n resolve: resolve$1,\n explode: explode,\n _addCacheSuffix: _addCacheSuffix\n };\n\n var doc = domGlobals.document, push$2 = Array.prototype.push, slice$2 = Array.prototype.slice;\n var rquickExpr$1 = /^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/;\n var Event = EventUtils.Event;\n var skipUniques = Tools.makeMap('children,contents,next,prev');\n var isDefined = function (obj) {\n return typeof obj !== 'undefined';\n };\n var isString$1 = function (obj) {\n return typeof obj === 'string';\n };\n var isWindow = function (obj) {\n return obj && obj === obj.window;\n };\n var createFragment = function (html, fragDoc) {\n var frag, node, container;\n fragDoc = fragDoc || doc;\n container = fragDoc.createElement('div');\n frag = fragDoc.createDocumentFragment();\n container.innerHTML = html;\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var domManipulate = function (targetNodes, sourceItem, callback, reverse) {\n var i;\n if (isString$1(sourceItem)) {\n sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0]));\n } else if (sourceItem.length && !sourceItem.nodeType) {\n sourceItem = DomQuery.makeArray(sourceItem);\n if (reverse) {\n for (i = sourceItem.length - 1; i >= 0; i--) {\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\n }\n } else {\n for (i = 0; i < sourceItem.length; i++) {\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\n }\n }\n return targetNodes;\n }\n if (sourceItem.nodeType) {\n i = targetNodes.length;\n while (i--) {\n callback.call(targetNodes[i], sourceItem);\n }\n }\n return targetNodes;\n };\n var hasClass = function (node, className) {\n return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1;\n };\n var wrap = function (elements, wrapper, all) {\n var lastParent, newWrapper;\n wrapper = DomQuery(wrapper)[0];\n elements.each(function () {\n var self = this;\n if (!all || lastParent !== self.parentNode) {\n lastParent = self.parentNode;\n newWrapper = wrapper.cloneNode(false);\n self.parentNode.insertBefore(newWrapper, self);\n newWrapper.appendChild(self);\n } else {\n newWrapper.appendChild(self);\n }\n });\n return elements;\n };\n var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');\n var booleanMap = Tools.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' ');\n var propFix = {\n for: 'htmlFor',\n class: 'className',\n readonly: 'readOnly'\n };\n var cssFix = { float: 'cssFloat' };\n var attrHooks = {}, cssHooks = {};\n var DomQueryConstructor = function (selector, context) {\n return new DomQuery.fn.init(selector, context);\n };\n var inArray = function (item, array) {\n var i;\n if (array.indexOf) {\n return array.indexOf(item);\n }\n i = array.length;\n while (i--) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n };\n var whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\n var trim$1 = function (str) {\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\n };\n var each$2 = function (obj, callback) {\n var length, key, i, value;\n if (obj) {\n length = obj.length;\n if (length === undefined) {\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n if (callback.call(value, key, value) === false) {\n break;\n }\n }\n }\n } else {\n for (i = 0; i < length; i++) {\n value = obj[i];\n if (callback.call(value, i, value) === false) {\n break;\n }\n }\n }\n }\n return obj;\n };\n var grep = function (array, callback) {\n var out = [];\n each$2(array, function (i, item) {\n if (callback(item, i)) {\n out.push(item);\n }\n });\n return out;\n };\n var getElementDocument = function (element) {\n if (!element) {\n return doc;\n }\n if (element.nodeType === 9) {\n return element;\n }\n return element.ownerDocument;\n };\n DomQueryConstructor.fn = DomQueryConstructor.prototype = {\n constructor: DomQueryConstructor,\n selector: '',\n context: null,\n length: 0,\n init: function (selector, context) {\n var self = this;\n var match, node;\n if (!selector) {\n return self;\n }\n if (selector.nodeType) {\n self.context = self[0] = selector;\n self.length = 1;\n return self;\n }\n if (context && context.nodeType) {\n self.context = context;\n } else {\n if (context) {\n return DomQuery(selector).attr(context);\n }\n self.context = context = domGlobals.document;\n }\n if (isString$1(selector)) {\n self.selector = selector;\n if (selector.charAt(0) === '<' && selector.charAt(selector.length - 1) === '>' && selector.length >= 3) {\n match = [\n null,\n selector,\n null\n ];\n } else {\n match = rquickExpr$1.exec(selector);\n }\n if (match) {\n if (match[1]) {\n node = createFragment(selector, getElementDocument(context)).firstChild;\n while (node) {\n push$2.call(self, node);\n node = node.nextSibling;\n }\n } else {\n node = getElementDocument(context).getElementById(match[2]);\n if (!node) {\n return self;\n }\n if (node.id !== match[2]) {\n return self.find(selector);\n }\n self.length = 1;\n self[0] = node;\n }\n } else {\n return DomQuery(context).find(selector);\n }\n } else {\n this.add(selector, false);\n }\n return self;\n },\n toArray: function () {\n return Tools.toArray(this);\n },\n add: function (items, sort) {\n var self = this;\n var nodes, i;\n if (isString$1(items)) {\n return self.add(DomQuery(items));\n }\n if (sort !== false) {\n nodes = DomQuery.unique(self.toArray().concat(DomQuery.makeArray(items)));\n self.length = nodes.length;\n for (i = 0; i < nodes.length; i++) {\n self[i] = nodes[i];\n }\n } else {\n push$2.apply(self, DomQuery.makeArray(items));\n }\n return self;\n },\n attr: function (name, value) {\n var self = this;\n var hook;\n if (typeof name === 'object') {\n each$2(name, function (name, value) {\n self.attr(name, value);\n });\n } else if (isDefined(value)) {\n this.each(function () {\n var hook;\n if (this.nodeType === 1) {\n hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set(this, value);\n return;\n }\n if (value === null) {\n this.removeAttribute(name, 2);\n } else {\n this.setAttribute(name, value, 2);\n }\n }\n });\n } else {\n if (self[0] && self[0].nodeType === 1) {\n hook = attrHooks[name];\n if (hook && hook.get) {\n return hook.get(self[0], name);\n }\n if (booleanMap[name]) {\n return self.prop(name) ? name : undefined;\n }\n value = self[0].getAttribute(name, 2);\n if (value === null) {\n value = undefined;\n }\n }\n return value;\n }\n return self;\n },\n removeAttr: function (name) {\n return this.attr(name, null);\n },\n prop: function (name, value) {\n var self = this;\n name = propFix[name] || name;\n if (typeof name === 'object') {\n each$2(name, function (name, value) {\n self.prop(name, value);\n });\n } else if (isDefined(value)) {\n this.each(function () {\n if (this.nodeType === 1) {\n this[name] = value;\n }\n });\n } else {\n if (self[0] && self[0].nodeType && name in self[0]) {\n return self[0][name];\n }\n return value;\n }\n return self;\n },\n css: function (name, value) {\n var self = this;\n var elm, hook;\n var camel = function (name) {\n return name.replace(/-(\\D)/g, function (a, b) {\n return b.toUpperCase();\n });\n };\n var dashed = function (name) {\n return name.replace(/[A-Z]/g, function (a) {\n return '-' + a;\n });\n };\n if (typeof name === 'object') {\n each$2(name, function (name, value) {\n self.css(name, value);\n });\n } else {\n if (isDefined(value)) {\n name = camel(name);\n if (typeof value === 'number' && !numericCssMap[name]) {\n value = value.toString() + 'px';\n }\n self.each(function () {\n var style = this.style;\n hook = cssHooks[name];\n if (hook && hook.set) {\n hook.set(this, value);\n return;\n }\n try {\n this.style[cssFix[name] || name] = value;\n } catch (ex) {\n }\n if (value === null || value === '') {\n if (style.removeProperty) {\n style.removeProperty(dashed(name));\n } else {\n style.removeAttribute(name);\n }\n }\n });\n } else {\n elm = self[0];\n hook = cssHooks[name];\n if (hook && hook.get) {\n return hook.get(elm);\n }\n if (elm.ownerDocument.defaultView) {\n try {\n return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name));\n } catch (ex) {\n return undefined;\n }\n } else if (elm.currentStyle) {\n return elm.currentStyle[camel(name)];\n } else {\n return '';\n }\n }\n }\n return self;\n },\n remove: function () {\n var self = this;\n var node, i = this.length;\n while (i--) {\n node = self[i];\n Event.clean(node);\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n return this;\n },\n empty: function () {\n var self = this;\n var node, i = this.length;\n while (i--) {\n node = self[i];\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n }\n return this;\n },\n html: function (value) {\n var self = this;\n var i;\n if (isDefined(value)) {\n i = self.length;\n try {\n while (i--) {\n self[i].innerHTML = value;\n }\n } catch (ex) {\n DomQuery(self[i]).empty().append(value);\n }\n return self;\n }\n return self[0] ? self[0].innerHTML : '';\n },\n text: function (value) {\n var self = this;\n var i;\n if (isDefined(value)) {\n i = self.length;\n while (i--) {\n if ('innerText' in self[i]) {\n self[i].innerText = value;\n } else {\n self[0].textContent = value;\n }\n }\n return self;\n }\n return self[0] ? self[0].innerText || self[0].textContent : '';\n },\n append: function () {\n return domManipulate(this, arguments, function (node) {\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\n this.appendChild(node);\n }\n });\n },\n prepend: function () {\n return domManipulate(this, arguments, function (node) {\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\n this.insertBefore(node, this.firstChild);\n }\n }, true);\n },\n before: function () {\n var self = this;\n if (self[0] && self[0].parentNode) {\n return domManipulate(self, arguments, function (node) {\n this.parentNode.insertBefore(node, this);\n });\n }\n return self;\n },\n after: function () {\n var self = this;\n if (self[0] && self[0].parentNode) {\n return domManipulate(self, arguments, function (node) {\n this.parentNode.insertBefore(node, this.nextSibling);\n }, true);\n }\n return self;\n },\n appendTo: function (val) {\n DomQuery(val).append(this);\n return this;\n },\n prependTo: function (val) {\n DomQuery(val).prepend(this);\n return this;\n },\n replaceWith: function (content) {\n return this.before(content).remove();\n },\n wrap: function (content) {\n return wrap(this, content);\n },\n wrapAll: function (content) {\n return wrap(this, content, true);\n },\n wrapInner: function (content) {\n this.each(function () {\n DomQuery(this).contents().wrapAll(content);\n });\n return this;\n },\n unwrap: function () {\n return this.parent().each(function () {\n DomQuery(this).replaceWith(this.childNodes);\n });\n },\n clone: function () {\n var result = [];\n this.each(function () {\n result.push(this.cloneNode(true));\n });\n return DomQuery(result);\n },\n addClass: function (className) {\n return this.toggleClass(className, true);\n },\n removeClass: function (className) {\n return this.toggleClass(className, false);\n },\n toggleClass: function (className, state) {\n var self = this;\n if (typeof className !== 'string') {\n return self;\n }\n if (className.indexOf(' ') !== -1) {\n each$2(className.split(' '), function () {\n self.toggleClass(this, state);\n });\n } else {\n self.each(function (index, node) {\n var existingClassName, classState;\n classState = hasClass(node, className);\n if (classState !== state) {\n existingClassName = node.className;\n if (classState) {\n node.className = trim$1((' ' + existingClassName + ' ').replace(' ' + className + ' ', ' '));\n } else {\n node.className += existingClassName ? ' ' + className : className;\n }\n }\n });\n }\n return self;\n },\n hasClass: function (className) {\n return hasClass(this[0], className);\n },\n each: function (callback) {\n return each$2(this, callback);\n },\n on: function (name, callback) {\n return this.each(function () {\n Event.bind(this, name, callback);\n });\n },\n off: function (name, callback) {\n return this.each(function () {\n Event.unbind(this, name, callback);\n });\n },\n trigger: function (name) {\n return this.each(function () {\n if (typeof name === 'object') {\n Event.fire(this, name.type, name);\n } else {\n Event.fire(this, name);\n }\n });\n },\n show: function () {\n return this.css('display', '');\n },\n hide: function () {\n return this.css('display', 'none');\n },\n slice: function () {\n return new DomQuery(slice$2.apply(this, arguments));\n },\n eq: function (index) {\n return index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n find: function (selector) {\n var i, l;\n var ret = [];\n for (i = 0, l = this.length; i < l; i++) {\n DomQuery.find(selector, this[i], ret);\n }\n return DomQuery(ret);\n },\n filter: function (selector) {\n if (typeof selector === 'function') {\n return DomQuery(grep(this.toArray(), function (item, i) {\n return selector(i, item);\n }));\n }\n return DomQuery(DomQuery.filter(selector, this.toArray()));\n },\n closest: function (selector) {\n var result = [];\n if (selector instanceof DomQuery) {\n selector = selector[0];\n }\n this.each(function (i, node) {\n while (node) {\n if (typeof selector === 'string' && DomQuery(node).is(selector)) {\n result.push(node);\n break;\n } else if (node === selector) {\n result.push(node);\n break;\n }\n node = node.parentNode;\n }\n });\n return DomQuery(result);\n },\n offset: function (offset) {\n var elm, doc, docElm;\n var x = 0, y = 0, pos;\n if (!offset) {\n elm = this[0];\n if (elm) {\n doc = elm.ownerDocument;\n docElm = doc.documentElement;\n if (elm.getBoundingClientRect) {\n pos = elm.getBoundingClientRect();\n x = pos.left + (docElm.scrollLeft || doc.body.scrollLeft) - docElm.clientLeft;\n y = pos.top + (docElm.scrollTop || doc.body.scrollTop) - docElm.clientTop;\n }\n }\n return {\n left: x,\n top: y\n };\n }\n return this.css(offset);\n },\n push: push$2,\n sort: Array.prototype.sort,\n splice: Array.prototype.splice\n };\n Tools.extend(DomQueryConstructor, {\n extend: Tools.extend,\n makeArray: function (object) {\n if (isWindow(object) || object.nodeType) {\n return [object];\n }\n return Tools.toArray(object);\n },\n inArray: inArray,\n isArray: Tools.isArray,\n each: each$2,\n trim: trim$1,\n grep: grep,\n find: Sizzle,\n expr: Sizzle.selectors,\n unique: Sizzle.uniqueSort,\n text: Sizzle.getText,\n contains: Sizzle.contains,\n filter: function (expr, elems, not) {\n var i = elems.length;\n if (not) {\n expr = ':not(' + expr + ')';\n }\n while (i--) {\n if (elems[i].nodeType !== 1) {\n elems.splice(i, 1);\n }\n }\n if (elems.length === 1) {\n elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [];\n } else {\n elems = DomQuery.find.matches(expr, elems);\n }\n return elems;\n }\n });\n var dir = function (el, prop, until) {\n var matched = [];\n var cur = el[prop];\n if (typeof until !== 'string' && until instanceof DomQuery) {\n until = until[0];\n }\n while (cur && cur.nodeType !== 9) {\n if (until !== undefined) {\n if (cur === until) {\n break;\n }\n if (typeof until === 'string' && DomQuery(cur).is(until)) {\n break;\n }\n }\n if (cur.nodeType === 1) {\n matched.push(cur);\n }\n cur = cur[prop];\n }\n return matched;\n };\n var sibling = function (node, siblingName, nodeType, until) {\n var result = [];\n if (until instanceof DomQuery) {\n until = until[0];\n }\n for (; node; node = node[siblingName]) {\n if (nodeType && node.nodeType !== nodeType) {\n continue;\n }\n if (until !== undefined) {\n if (node === until) {\n break;\n }\n if (typeof until === 'string' && DomQuery(node).is(until)) {\n break;\n }\n }\n result.push(node);\n }\n return result;\n };\n var firstSibling = function (node, siblingName, nodeType) {\n for (node = node[siblingName]; node; node = node[siblingName]) {\n if (node.nodeType === nodeType) {\n return node;\n }\n }\n return null;\n };\n each$2({\n parent: function (node) {\n var parent = node.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (node) {\n return dir(node, 'parentNode');\n },\n next: function (node) {\n return firstSibling(node, 'nextSibling', 1);\n },\n prev: function (node) {\n return firstSibling(node, 'previousSibling', 1);\n },\n children: function (node) {\n return sibling(node.firstChild, 'nextSibling', 1);\n },\n contents: function (node) {\n return Tools.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);\n }\n }, function (name, fn) {\n DomQueryConstructor.fn[name] = function (selector) {\n var self = this;\n var result = [];\n self.each(function () {\n var nodes = fn.call(result, this, selector, result);\n if (nodes) {\n if (DomQuery.isArray(nodes)) {\n result.push.apply(result, nodes);\n } else {\n result.push(nodes);\n }\n }\n });\n if (this.length > 1) {\n if (!skipUniques[name]) {\n result = DomQuery.unique(result);\n }\n if (name.indexOf('parents') === 0) {\n result = result.reverse();\n }\n }\n var wrappedResult = DomQuery(result);\n if (selector) {\n return wrappedResult.filter(selector);\n }\n return wrappedResult;\n };\n });\n each$2({\n parentsUntil: function (node, until) {\n return dir(node, 'parentNode', until);\n },\n nextUntil: function (node, until) {\n return sibling(node, 'nextSibling', 1, until).slice(1);\n },\n prevUntil: function (node, until) {\n return sibling(node, 'previousSibling', 1, until).slice(1);\n }\n }, function (name, fn) {\n DomQueryConstructor.fn[name] = function (selector, filter) {\n var self = this;\n var result = [];\n self.each(function () {\n var nodes = fn.call(result, this, selector, result);\n if (nodes) {\n if (DomQuery.isArray(nodes)) {\n result.push.apply(result, nodes);\n } else {\n result.push(nodes);\n }\n }\n });\n if (this.length > 1) {\n result = DomQuery.unique(result);\n if (name.indexOf('parents') === 0 || name === 'prevUntil') {\n result = result.reverse();\n }\n }\n var wrappedResult = DomQuery(result);\n if (filter) {\n return wrappedResult.filter(filter);\n }\n return wrappedResult;\n };\n });\n DomQueryConstructor.fn.is = function (selector) {\n return !!selector && this.filter(selector).length > 0;\n };\n DomQueryConstructor.fn.init.prototype = DomQueryConstructor.fn;\n DomQueryConstructor.overrideDefaults = function (callback) {\n var defaults;\n var sub = function (selector, context) {\n defaults = defaults || callback();\n if (arguments.length === 0) {\n selector = defaults.element;\n }\n if (!context) {\n context = defaults.context;\n }\n return new sub.fn.init(selector, context);\n };\n DomQuery.extend(sub, this);\n return sub;\n };\n var appendHooks = function (targetHooks, prop, hooks) {\n each$2(hooks, function (name, func) {\n targetHooks[name] = targetHooks[name] || {};\n targetHooks[name][prop] = func;\n });\n };\n if (Env.ie && Env.ie < 8) {\n appendHooks(attrHooks, 'get', {\n maxlength: function (elm) {\n var value = elm.maxLength;\n if (value === 2147483647) {\n return undefined;\n }\n return value;\n },\n size: function (elm) {\n var value = elm.size;\n if (value === 20) {\n return undefined;\n }\n return value;\n },\n class: function (elm) {\n return elm.className;\n },\n style: function (elm) {\n var value = elm.style.cssText;\n if (value.length === 0) {\n return undefined;\n }\n return value;\n }\n });\n appendHooks(attrHooks, 'set', {\n class: function (elm, value) {\n elm.className = value;\n },\n style: function (elm, value) {\n elm.style.cssText = value;\n }\n });\n }\n if (Env.ie && Env.ie < 9) {\n cssFix.float = 'styleFloat';\n appendHooks(cssHooks, 'set', {\n opacity: function (elm, value) {\n var style = elm.style;\n if (value === null || value === '') {\n style.removeAttribute('filter');\n } else {\n style.zoom = 1;\n style.filter = 'alpha(opacity=' + value * 100 + ')';\n }\n }\n });\n }\n DomQueryConstructor.attrHooks = attrHooks;\n DomQueryConstructor.cssHooks = cssHooks;\n var DomQuery = DomQueryConstructor;\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var firstMatch = function (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s))\n return x;\n }\n return undefined;\n };\n var find$2 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r)\n return {\n major: 0,\n minor: 0\n };\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0)\n return unknown();\n return find$2(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie$1 = 'IE';\n var opera$1 = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n var isBrowser = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge, current),\n isChrome: isBrowser(chrome, current),\n isIE: isBrowser(ie$1, current),\n isOpera: isBrowser(opera$1, current),\n isFirefox: isBrowser(firefox, current),\n isSafari: isBrowser(safari, current)\n };\n };\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie$1),\n opera: constant(opera$1),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n var windows = 'Windows';\n var ios = 'iOS';\n var android$1 = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var isOS = function (name, current) {\n return function () {\n return current === name;\n };\n };\n var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n return {\n current: current,\n version: version,\n isWindows: isOS(windows, current),\n isiOS: isOS(ios, current),\n isAndroid: isOS(android$1, current),\n isOSX: isOS(osx, current),\n isLinux: isOS(linux, current),\n isSolaris: isOS(solaris, current),\n isFreeBSD: isOS(freebsd, current)\n };\n };\n var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android$1),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd)\n };\n\n var DeviceType = function (os, browser, userAgent) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\n var isTouch = os.isiOS() || os.isAndroid();\n var isPhone = isTouch && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview)\n };\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n var detectOs = function (oses, userAgent) {\n return detect$1(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var contains$2 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var trim$2 = function (str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n };\n var lTrim = function (str) {\n return str.replace(/^\\s+/g, '');\n };\n var rTrim = function (str) {\n return str.replace(/\\s+$/g, '');\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$2(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n var monstrosity = contains$2(uastring, 'edge/') && contains$2(uastring, 'chrome') && contains$2(uastring, 'safari') && contains$2(uastring, 'applewebkit');\n return monstrosity;\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$2(uastring, 'chrome') && !contains$2(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$2(uastring, 'msie') || contains$2(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$2(uastring, 'safari') || contains$2(uastring, 'mobile/')) && contains$2(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$2(uastring, 'iphone') || contains$2(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('os x'),\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n var detect$2 = function (userAgent) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var detect$3 = cached(function () {\n var userAgent = domGlobals.navigator.userAgent;\n return PlatformDetection.detect(userAgent);\n });\n var PlatformDetection$1 = { detect: detect$3 };\n\n var fromHtml = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n domGlobals.console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || domGlobals.document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: constant(node) };\n };\n var fromPoint = function (docElm, x, y) {\n var doc = docElm.dom();\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\n };\n var Element = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE;\n var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE;\n var COMMENT = domGlobals.Node.COMMENT_NODE;\n var DOCUMENT = domGlobals.Node.DOCUMENT_NODE;\n var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE;\n var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE;\n var ELEMENT = domGlobals.Node.ELEMENT_NODE;\n var TEXT = domGlobals.Node.TEXT_NODE;\n var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE;\n var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE;\n var ENTITY = domGlobals.Node.ENTITY_NODE;\n var NOTATION = domGlobals.Node.NOTATION_NODE;\n\n var name = function (element) {\n var r = element.dom().nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom().nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n\n var keys = Object.keys;\n var hasOwnProperty$1 = Object.hasOwnProperty;\n var each$3 = function (obj, f) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i, obj);\n }\n };\n var map$2 = function (obj, f) {\n return tupleMap(obj, function (x, i, obj) {\n return {\n k: i,\n v: f(x, i, obj)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each$3(obj, function (x, i) {\n var tuple = f(x, i, obj);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var bifilter = function (obj, pred) {\n var t = {};\n var f = {};\n each$3(obj, function (x, i) {\n var branch = pred(x, i) ? t : f;\n branch[i] = x;\n });\n return {\n t: t,\n f: f\n };\n };\n var get = function (obj, key) {\n return has(obj, key) ? Option.from(obj[key]) : Option.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty$1.call(obj, key);\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined;\n };\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom().parentNode : element.dom();\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\n };\n\n var rawSet = function (dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set = function (element, key, value) {\n rawSet(element.dom(), key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom();\n each$3(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$1 = function (element, key) {\n var v = element.dom().getAttribute(key);\n return v === null ? undefined : v;\n };\n var has$1 = function (element, key) {\n var dom = element.dom();\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove = function (element, key) {\n element.dom().removeAttribute(key);\n };\n\n var get$2 = function (element, property) {\n var dom = element.dom();\n var styles = domGlobals.window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n var v = r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n return v === null ? undefined : v;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (element, property) {\n var dom = element.dom();\n var raw = getUnsafeProperty(dom, property);\n return Option.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n\n var Immutable = function () {\n var fields = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fields[_i] = arguments[_i];\n }\n return function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n if (fields.length !== values.length) {\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\n }\n var struct = {};\n each(fields, function (name, i) {\n struct[name] = constant(values[i]);\n });\n return struct;\n };\n };\n\n var toArray$1 = function (target, f) {\n var r = [];\n var recurse = function (e) {\n r.push(e);\n return f(e);\n };\n var cur = f(target);\n do {\n cur = cur.bind(recurse);\n } while (cur.isSome());\n return r;\n };\n var Recurse = { toArray: toArray$1 };\n\n var node = function () {\n var f = Global$1.getOrDie('Node');\n return f;\n };\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionPreceding = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\n };\n var Node = {\n documentPositionPreceding: documentPositionPreceding,\n documentPositionContainedBy: documentPositionContainedBy\n };\n\n var ELEMENT$1 = ELEMENT;\n var DOCUMENT$1 = DOCUMENT;\n var is$1 = function (element, selector) {\n var elem = element.dom();\n if (elem.nodeType !== ELEMENT$1) {\n return false;\n } else if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT$1 && dom.nodeType !== DOCUMENT$1 || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? domGlobals.document : scope.dom();\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element.fromDom);\n };\n\n var eq = function (e1, e2) {\n return e1.dom() === e2.dom();\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom();\n var d2 = e2.dom();\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return Node.documentPositionContainedBy(e1.dom(), e2.dom());\n };\n var browser = PlatformDetection$1.detect().browser;\n var contains$3 = browser.isIE() ? ieContains : regularContains;\n\n var owner = function (element) {\n return Element.fromDom(element.dom().ownerDocument);\n };\n var documentElement = function (element) {\n return Element.fromDom(element.dom().ownerDocument.documentElement);\n };\n var defaultView = function (element) {\n var el = element.dom();\n var defView = el.ownerDocument.defaultView;\n return Element.fromDom(defView);\n };\n var parent = function (element) {\n var dom = element.dom();\n return Option.from(dom.parentNode).map(Element.fromDom);\n };\n var parents = function (element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n var dom = element.dom();\n var ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = Element.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n var siblings = function (element) {\n var filterSelf = function (elements) {\n return filter(elements, function (x) {\n return !eq(element, x);\n });\n };\n return parent(element).map(children).map(filterSelf).getOr([]);\n };\n var prevSibling = function (element) {\n var dom = element.dom();\n return Option.from(dom.previousSibling).map(Element.fromDom);\n };\n var nextSibling = function (element) {\n var dom = element.dom();\n return Option.from(dom.nextSibling).map(Element.fromDom);\n };\n var prevSiblings = function (element) {\n return reverse(Recurse.toArray(element, prevSibling));\n };\n var nextSiblings = function (element) {\n return Recurse.toArray(element, nextSibling);\n };\n var children = function (element) {\n var dom = element.dom();\n return map(dom.childNodes, Element.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom().childNodes;\n return Option.from(cs[index]).map(Element.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var lastChild = function (element) {\n return child(element, element.dom().childNodes.length - 1);\n };\n var childNodesCount = function (element) {\n return element.dom().childNodes.length;\n };\n var spot = Immutable('element', 'offset');\n\n var browser$1 = PlatformDetection$1.detect().browser;\n var firstElement = function (nodes) {\n return find(nodes, isElement);\n };\n var getTableCaptionDeltaY = function (elm) {\n if (browser$1.isFirefox() && name(elm) === 'table') {\n return firstElement(children(elm)).filter(function (elm) {\n return name(elm) === 'caption';\n }).bind(function (caption) {\n return firstElement(nextSiblings(caption)).map(function (body) {\n var bodyTop = body.dom().offsetTop;\n var captionTop = caption.dom().offsetTop;\n var captionHeight = caption.dom().offsetHeight;\n return bodyTop <= captionTop ? -captionHeight : 0;\n });\n }).getOr(0);\n } else {\n return 0;\n }\n };\n var getPos = function (body, elm, rootElm) {\n var x = 0, y = 0, offsetParent;\n var doc = body.ownerDocument;\n var pos;\n rootElm = rootElm ? rootElm : body;\n if (elm) {\n if (rootElm === body && elm.getBoundingClientRect && get$2(Element.fromDom(body), 'position') === 'static') {\n pos = elm.getBoundingClientRect();\n x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\n y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\n return {\n x: x,\n y: y\n };\n }\n offsetParent = elm;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType) {\n x += offsetParent.offsetLeft || 0;\n y += offsetParent.offsetTop || 0;\n offsetParent = offsetParent.offsetParent;\n }\n offsetParent = elm.parentNode;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType) {\n x -= offsetParent.scrollLeft || 0;\n y -= offsetParent.scrollTop || 0;\n offsetParent = offsetParent.parentNode;\n }\n y += getTableCaptionDeltaY(Element.fromDom(elm));\n }\n return {\n x: x,\n y: y\n };\n };\n var Position = { getPos: getPos };\n\n var nu$3 = function (baseFn) {\n var data = Option.none();\n var callbacks = [];\n var map = function (f) {\n return nu$3(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady())\n call(nCallback);\n else\n callbacks.push(nCallback);\n };\n var set = function (x) {\n data = Option.some(x);\n run(callbacks);\n callbacks = [];\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n domGlobals.setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure$1 = function (a) {\n return nu$3(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n\n var bounce = function (f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var me = this;\n domGlobals.setTimeout(function () {\n f.apply(me, args);\n }, 0);\n };\n };\n\n var nu$4 = function (baseFn) {\n var get = function (callback) {\n baseFn(bounce(callback));\n };\n var map = function (fab) {\n return nu$4(function (callback) {\n get(function (a) {\n var value = fab(a);\n callback(value);\n });\n });\n };\n var bind = function (aFutureB) {\n return nu$4(function (callback) {\n get(function (a) {\n aFutureB(a).get(callback);\n });\n });\n };\n var anonBind = function (futureB) {\n return nu$4(function (callback) {\n get(function (a) {\n futureB.get(callback);\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return nu$4(function (callback) {\n if (cache === null) {\n cache = toLazy();\n }\n cache.get(callback);\n });\n };\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n get: get\n };\n };\n var pure$2 = function (a) {\n return nu$4(function (callback) {\n callback(a);\n });\n };\n var Future = {\n nu: nu$4,\n pure: pure$2\n };\n\n var par = function (asyncValues, nu) {\n return nu(function (callback) {\n var r = [];\n var count = 0;\n var cb = function (i) {\n return function (value) {\n r[i] = value;\n count++;\n if (count >= asyncValues.length) {\n callback(r);\n }\n };\n };\n if (asyncValues.length === 0) {\n callback([]);\n } else {\n each(asyncValues, function (asyncValue, i) {\n asyncValue.get(cb(i));\n });\n }\n });\n };\n\n var par$1 = function (futures) {\n return par(futures, Future.nu);\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (opt) {\n return value(o);\n };\n var orThunk = function (f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOption = function () {\n return Option.some(o);\n };\n return {\n is: is,\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOption: toOption\n };\n };\n var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOption: Option.none\n };\n };\n var Result = {\n value: value,\n error: error\n };\n\n function StyleSheetLoader(document, settings) {\n if (settings === void 0) {\n settings = {};\n }\n var idCount = 0;\n var loadedStates = {};\n var maxLoadTime;\n maxLoadTime = settings.maxLoadTime || 5000;\n var appendToHead = function (node) {\n document.getElementsByTagName('head')[0].appendChild(node);\n };\n var load = function (url, loadedCallback, errorCallback) {\n var link, style, startTime, state;\n var resolve = function (status) {\n state.status = status;\n state.passed = [];\n state.failed = [];\n if (link) {\n link.onload = null;\n link.onerror = null;\n link = null;\n }\n };\n var passed = function () {\n var callbacks = state.passed;\n var i = callbacks.length;\n while (i--) {\n callbacks[i]();\n }\n resolve(2);\n };\n var failed = function () {\n var callbacks = state.failed;\n var i = callbacks.length;\n while (i--) {\n callbacks[i]();\n }\n resolve(3);\n };\n var isOldWebKit = function () {\n var webKitChunks = domGlobals.navigator.userAgent.match(/WebKit\\/(\\d*)/);\n return !!(webKitChunks && parseInt(webKitChunks[1], 10) < 536);\n };\n var wait = function (testCallback, waitCallback) {\n if (!testCallback()) {\n if (new Date().getTime() - startTime < maxLoadTime) {\n Delay.setTimeout(waitCallback);\n } else {\n failed();\n }\n }\n };\n var waitForWebKitLinkLoaded = function () {\n wait(function () {\n var styleSheets = document.styleSheets;\n var styleSheet, i = styleSheets.length, owner;\n while (i--) {\n styleSheet = styleSheets[i];\n owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement;\n if (owner && owner.id === link.id) {\n passed();\n return true;\n }\n }\n }, waitForWebKitLinkLoaded);\n };\n var waitForGeckoLinkLoaded = function () {\n wait(function () {\n try {\n var cssRules = style.sheet.cssRules;\n passed();\n return !!cssRules;\n } catch (ex) {\n }\n }, waitForGeckoLinkLoaded);\n };\n url = Tools._addCacheSuffix(url);\n if (!loadedStates[url]) {\n state = {\n passed: [],\n failed: []\n };\n loadedStates[url] = state;\n } else {\n state = loadedStates[url];\n }\n if (loadedCallback) {\n state.passed.push(loadedCallback);\n }\n if (errorCallback) {\n state.failed.push(errorCallback);\n }\n if (state.status === 1) {\n return;\n }\n if (state.status === 2) {\n passed();\n return;\n }\n if (state.status === 3) {\n failed();\n return;\n }\n state.status = 1;\n link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.id = 'u' + idCount++;\n link.async = false;\n link.defer = false;\n startTime = new Date().getTime();\n if (settings.contentCssCors) {\n link.crossOrigin = 'anonymous';\n }\n if ('onload' in link && !isOldWebKit()) {\n link.onload = waitForWebKitLinkLoaded;\n link.onerror = failed;\n } else {\n if (domGlobals.navigator.userAgent.indexOf('Firefox') > 0) {\n style = document.createElement('style');\n style.textContent = '@import \"' + url + '\"';\n waitForGeckoLinkLoaded();\n appendToHead(style);\n return;\n }\n waitForWebKitLinkLoaded();\n }\n appendToHead(link);\n link.href = url;\n };\n var loadF = function (url) {\n return Future.nu(function (resolve) {\n load(url, compose(resolve, constant(Result.value(url))), compose(resolve, constant(Result.error(url))));\n });\n };\n var unbox = function (result) {\n return result.fold(identity, identity);\n };\n var loadAll = function (urls, success, failure) {\n par$1(map(urls, loadF)).get(function (result) {\n var parts = partition(result, function (r) {\n return r.isValue();\n });\n if (parts.fail.length > 0) {\n failure(parts.fail.map(unbox));\n } else {\n success(parts.pass.map(unbox));\n }\n });\n };\n return {\n load: load,\n loadAll: loadAll\n };\n }\n\n var isNodeType = function (type) {\n return function (node) {\n return !!node && node.nodeType === type;\n };\n };\n var isElement$1 = isNodeType(1);\n var matchNodeNames = function (names) {\n var items = names.toLowerCase().split(' ');\n return function (node) {\n var i, name;\n if (node && node.nodeType) {\n name = node.nodeName.toLowerCase();\n for (i = 0; i < items.length; i++) {\n if (name === items[i]) {\n return true;\n }\n }\n }\n return false;\n };\n };\n var matchStyleValues = function (name, values) {\n var items = values.toLowerCase().split(' ');\n return function (node) {\n var i, cssValue;\n if (isElement$1(node)) {\n for (i = 0; i < items.length; i++) {\n var computed = node.ownerDocument.defaultView.getComputedStyle(node, null);\n cssValue = computed ? computed.getPropertyValue(name) : null;\n if (cssValue === items[i]) {\n return true;\n }\n }\n }\n return false;\n };\n };\n var hasPropValue = function (propName, propValue) {\n return function (node) {\n return isElement$1(node) && node[propName] === propValue;\n };\n };\n var hasAttribute = function (attrName, attrValue) {\n return function (node) {\n return isElement$1(node) && node.hasAttribute(attrName);\n };\n };\n var hasAttributeValue = function (attrName, attrValue) {\n return function (node) {\n return isElement$1(node) && node.getAttribute(attrName) === attrValue;\n };\n };\n var isBogus = function (node) {\n return isElement$1(node) && node.hasAttribute('data-mce-bogus');\n };\n var isBogusAll = function (node) {\n return isElement$1(node) && node.getAttribute('data-mce-bogus') === 'all';\n };\n var isTable = function (node) {\n return isElement$1(node) && node.tagName === 'TABLE';\n };\n var hasContentEditableState = function (value) {\n return function (node) {\n if (isElement$1(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isText$1 = isNodeType(3);\n var isComment = isNodeType(8);\n var isDocument = isNodeType(9);\n var isDocumentFragment = isNodeType(11);\n var isBr = matchNodeNames('br');\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var NodeType = {\n isText: isText$1,\n isElement: isElement$1,\n isComment: isComment,\n isDocument: isDocument,\n isDocumentFragment: isDocumentFragment,\n isBr: isBr,\n isContentEditableTrue: isContentEditableTrue,\n isContentEditableFalse: isContentEditableFalse,\n matchNodeNames: matchNodeNames,\n hasPropValue: hasPropValue,\n hasAttribute: hasAttribute,\n hasAttributeValue: hasAttributeValue,\n matchStyleValues: matchStyleValues,\n isBogus: isBogus,\n isBogusAll: isBogusAll,\n isTable: isTable\n };\n\n var TreeWalker = function () {\n function TreeWalker(startNode, rootNode) {\n this.node = startNode;\n this.rootNode = rootNode;\n this.current = this.current.bind(this);\n this.next = this.next.bind(this);\n this.prev = this.prev.bind(this);\n this.prev2 = this.prev2.bind(this);\n }\n TreeWalker.prototype.current = function () {\n return this.node;\n };\n TreeWalker.prototype.next = function (shallow) {\n this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.prev = function (shallow) {\n this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.prev2 = function (shallow) {\n this.node = this.findPreviousNode(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n };\n TreeWalker.prototype.findSibling = function (node, startName, siblingName, shallow) {\n var sibling, parent;\n if (node) {\n if (!shallow && node[startName]) {\n return node[startName];\n }\n if (node !== this.rootNode) {\n sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n }\n };\n TreeWalker.prototype.findPreviousNode = function (node, startName, siblingName, shallow) {\n var sibling, parent, child;\n if (node) {\n sibling = node[siblingName];\n if (this.rootNode && sibling === this.rootNode) {\n return;\n }\n if (sibling) {\n if (!shallow) {\n for (child = sibling[startName]; child; child = child[startName]) {\n if (!child[startName]) {\n return child;\n }\n }\n }\n return sibling;\n }\n parent = node.parentNode;\n if (parent && parent !== this.rootNode) {\n return parent;\n }\n }\n };\n return TreeWalker;\n }();\n\n var blocks = [\n 'article',\n 'aside',\n 'details',\n 'div',\n 'dt',\n 'figcaption',\n 'footer',\n 'form',\n 'fieldset',\n 'header',\n 'hgroup',\n 'html',\n 'main',\n 'nav',\n 'section',\n 'summary',\n 'body',\n 'p',\n 'dl',\n 'multicol',\n 'dd',\n 'figure',\n 'address',\n 'center',\n 'blockquote',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'listing',\n 'xmp',\n 'pre',\n 'plaintext',\n 'menu',\n 'dir',\n 'ul',\n 'ol',\n 'li',\n 'hr',\n 'table',\n 'tbody',\n 'thead',\n 'tfoot',\n 'th',\n 'tr',\n 'td',\n 'caption'\n ];\n var voids = [\n 'area',\n 'base',\n 'basefont',\n 'br',\n 'col',\n 'frame',\n 'hr',\n 'img',\n 'input',\n 'isindex',\n 'link',\n 'meta',\n 'param',\n 'embed',\n 'source',\n 'wbr',\n 'track'\n ];\n var tableCells = [\n 'td',\n 'th'\n ];\n var tableSections = [\n 'thead',\n 'tbody',\n 'tfoot'\n ];\n var textBlocks = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div',\n 'address',\n 'pre',\n 'form',\n 'blockquote',\n 'center',\n 'dir',\n 'fieldset',\n 'header',\n 'footer',\n 'article',\n 'section',\n 'hgroup',\n 'aside',\n 'nav',\n 'figure'\n ];\n var headings = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ];\n var listItems = [\n 'li',\n 'dd',\n 'dt'\n ];\n var lists = [\n 'ul',\n 'ol',\n 'dl'\n ];\n var wsElements = [\n 'pre',\n 'script',\n 'textarea',\n 'style'\n ];\n var lazyLookup = function (items) {\n var lookup;\n return function (node) {\n lookup = lookup ? lookup : mapToObject(items, constant(true));\n return lookup.hasOwnProperty(name(node));\n };\n };\n var isHeading = lazyLookup(headings);\n var isBlock = lazyLookup(blocks);\n var isTable$1 = function (node) {\n return name(node) === 'table';\n };\n var isInline = function (node) {\n return isElement(node) && !isBlock(node);\n };\n var isBr$1 = function (node) {\n return isElement(node) && name(node) === 'br';\n };\n var isTextBlock = lazyLookup(textBlocks);\n var isList = lazyLookup(lists);\n var isListItem = lazyLookup(listItems);\n var isVoid = lazyLookup(voids);\n var isTableSection = lazyLookup(tableSections);\n var isTableCell = lazyLookup(tableCells);\n var isWsPreserveElement = lazyLookup(wsElements);\n\n var surroundedBySpans = function (node) {\n var previousIsSpan = node.previousSibling && node.previousSibling.nodeName === 'SPAN';\n var nextIsSpan = node.nextSibling && node.nextSibling.nodeName === 'SPAN';\n return previousIsSpan && nextIsSpan;\n };\n var isBookmarkNode = function (node) {\n return node && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n var trimNode = function (dom, node) {\n var i, children = node.childNodes;\n if (NodeType.isElement(node) && isBookmarkNode(node)) {\n return;\n }\n for (i = children.length - 1; i >= 0; i--) {\n trimNode(dom, children[i]);\n }\n if (NodeType.isDocument(node) === false) {\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n var trimmedLength = Tools.trim(node.nodeValue).length;\n if (dom.isBlock(node.parentNode) || trimmedLength > 0) {\n return;\n }\n if (trimmedLength === 0 && surroundedBySpans(node)) {\n return;\n }\n } else if (NodeType.isElement(node)) {\n children = node.childNodes;\n if (children.length === 1 && isBookmarkNode(children[0])) {\n node.parentNode.insertBefore(children[0], node);\n }\n if (children.length || isVoid(Element.fromDom(node))) {\n return;\n }\n }\n dom.remove(node);\n }\n return node;\n };\n var TrimNode = { trimNode: trimNode };\n\n var makeMap$1 = Tools.makeMap;\n var namedEntities, baseEntities, reverseEntities;\n var attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var rawCharsRegExp = /[<>&\\\"\\']/g;\n var entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\n var asciiMap = {\n 128: '\\u20AC',\n 130: '\\u201A',\n 131: '\\u0192',\n 132: '\\u201E',\n 133: '\\u2026',\n 134: '\\u2020',\n 135: '\\u2021',\n 136: '\\u02c6',\n 137: '\\u2030',\n 138: '\\u0160',\n 139: '\\u2039',\n 140: '\\u0152',\n 142: '\\u017d',\n 145: '\\u2018',\n 146: '\\u2019',\n 147: '\\u201C',\n 148: '\\u201D',\n 149: '\\u2022',\n 150: '\\u2013',\n 151: '\\u2014',\n 152: '\\u02DC',\n 153: '\\u2122',\n 154: '\\u0161',\n 155: '\\u203A',\n 156: '\\u0153',\n 158: '\\u017e',\n 159: '\\u0178'\n };\n baseEntities = {\n '\"': '"',\n '\\'': ''',\n '<': '<',\n '>': '>',\n '&': '&',\n '`': '`'\n };\n reverseEntities = {\n '<': '<',\n '>': '>',\n '&': '&',\n '"': '\"',\n ''': '\\''\n };\n var nativeDecode = function (text) {\n var elm;\n elm = Element.fromTag('div').dom();\n elm.innerHTML = text;\n return elm.textContent || elm.innerText || text;\n };\n var buildEntitiesLookup = function (items, radix) {\n var i, chr, entity;\n var lookup = {};\n if (items) {\n items = items.split(',');\n radix = radix || 10;\n for (i = 0; i < items.length; i += 2) {\n chr = String.fromCharCode(parseInt(items[i], radix));\n if (!baseEntities[chr]) {\n entity = '&' + items[i + 1] + ';';\n lookup[chr] = entity;\n lookup[entity] = chr;\n }\n }\n return lookup;\n }\n };\n namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\n var encodeRaw = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n return baseEntities[chr] || chr;\n });\n };\n var encodeAllRaw = function (text) {\n return ('' + text).replace(rawCharsRegExp, function (chr) {\n return baseEntities[chr] || chr;\n });\n };\n var encodeNumeric = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\n });\n };\n var encodeNamed = function (text, attr, entities) {\n entities = entities || namedEntities;\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n return baseEntities[chr] || entities[chr] || chr;\n });\n };\n var getEncodeFunc = function (name, entities) {\n var entitiesMap = buildEntitiesLookup(entities) || namedEntities;\n var encodeNamedAndNumeric = function (text, attr) {\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\n if (baseEntities[chr] !== undefined) {\n return baseEntities[chr];\n }\n if (entitiesMap[chr] !== undefined) {\n return entitiesMap[chr];\n }\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return '&#' + chr.charCodeAt(0) + ';';\n });\n };\n var encodeCustomNamed = function (text, attr) {\n return encodeNamed(text, attr, entitiesMap);\n };\n var nameMap = makeMap$1(name.replace(/\\+/g, ','));\n if (nameMap.named && nameMap.numeric) {\n return encodeNamedAndNumeric;\n }\n if (nameMap.named) {\n if (entities) {\n return encodeCustomNamed;\n }\n return encodeNamed;\n }\n if (nameMap.numeric) {\n return encodeNumeric;\n }\n return encodeRaw;\n };\n var decode = function (text) {\n return text.replace(entityRegExp, function (all, numeric) {\n if (numeric) {\n if (numeric.charAt(0).toLowerCase() === 'x') {\n numeric = parseInt(numeric.substr(1), 16);\n } else {\n numeric = parseInt(numeric, 10);\n }\n if (numeric > 65535) {\n numeric -= 65536;\n return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\n }\n return asciiMap[numeric] || String.fromCharCode(numeric);\n }\n return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\n });\n };\n var Entities = {\n encodeRaw: encodeRaw,\n encodeAllRaw: encodeAllRaw,\n encodeNumeric: encodeNumeric,\n encodeNamed: encodeNamed,\n getEncodeFunc: getEncodeFunc,\n decode: decode\n };\n\n var mapCache = {}, dummyObj = {};\n var makeMap$2 = Tools.makeMap, each$4 = Tools.each, extend$1 = Tools.extend, explode$1 = Tools.explode, inArray$1 = Tools.inArray;\n var split = function (items, delim) {\n items = Tools.trim(items);\n return items ? items.split(delim || ' ') : [];\n };\n var compileSchema = function (type) {\n var schema = {};\n var globalAttributes, blockContent;\n var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent;\n var add = function (name, attributes, children) {\n var ni, attributesOrder, element;\n var arrayToMap = function (array, obj) {\n var map = {};\n var i, l;\n for (i = 0, l = array.length; i < l; i++) {\n map[array[i]] = obj || {};\n }\n return map;\n };\n children = children || [];\n attributes = attributes || '';\n if (typeof children === 'string') {\n children = split(children);\n }\n name = split(name);\n ni = name.length;\n while (ni--) {\n attributesOrder = split([\n globalAttributes,\n attributes\n ].join(' '));\n element = {\n attributes: arrayToMap(attributesOrder),\n attributesOrder: attributesOrder,\n children: arrayToMap(children, dummyObj)\n };\n schema[name[ni]] = element;\n }\n };\n var addAttrs = function (name, attributes) {\n var ni, schemaItem, i, l;\n name = split(name);\n ni = name.length;\n attributes = split(attributes);\n while (ni--) {\n schemaItem = schema[name[ni]];\n for (i = 0, l = attributes.length; i < l; i++) {\n schemaItem.attributes[attributes[i]] = {};\n schemaItem.attributesOrder.push(attributes[i]);\n }\n }\n };\n if (mapCache[type]) {\n return mapCache[type];\n }\n globalAttributes = 'id accesskey class dir lang style tabindex title role';\n blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\n phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\n if (type !== 'html4') {\n globalAttributes += ' contenteditable contextmenu draggable dropzone ' + 'hidden spellcheck translate';\n blockContent += ' article aside details dialog figure main header footer hgroup section nav';\n phrasingContent += ' audio canvas command datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen';\n }\n if (type !== 'html5-strict') {\n globalAttributes += ' xml:lang';\n html4PhrasingContent = 'acronym applet basefont big font strike tt';\n phrasingContent = [\n phrasingContent,\n html4PhrasingContent\n ].join(' ');\n each$4(split(html4PhrasingContent), function (name) {\n add(name, '', phrasingContent);\n });\n html4BlockContent = 'center dir isindex noframes';\n blockContent = [\n blockContent,\n html4BlockContent\n ].join(' ');\n flowContent = [\n blockContent,\n phrasingContent\n ].join(' ');\n each$4(split(html4BlockContent), function (name) {\n add(name, '', flowContent);\n });\n }\n flowContent = flowContent || [\n blockContent,\n phrasingContent\n ].join(' ');\n add('html', 'manifest', 'head body');\n add('head', '', 'base command link meta noscript script style title');\n add('title hr noscript br');\n add('base', 'href target');\n add('link', 'href rel media hreflang type sizes hreflang');\n add('meta', 'name http-equiv content charset');\n add('style', 'media type scoped');\n add('script', 'src async defer type charset');\n add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\n add('address dt dd div caption', '', flowContent);\n add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\n add('blockquote', 'cite', flowContent);\n add('ol', 'reversed start type', 'li');\n add('ul', '', 'li');\n add('li', 'value', flowContent);\n add('dl', '', 'dt dd');\n add('a', 'href target rel media hreflang type', phrasingContent);\n add('q', 'cite', phrasingContent);\n add('ins del', 'cite datetime', flowContent);\n add('img', 'src sizes srcset alt usemap ismap width height');\n add('iframe', 'src name width height', flowContent);\n add('embed', 'src type width height');\n add('object', 'data type typemustmatch name usemap form width height', [\n flowContent,\n 'param'\n ].join(' '));\n add('param', 'name value');\n add('map', 'name', [\n flowContent,\n 'area'\n ].join(' '));\n add('area', 'alt coords shape href target rel media hreflang type');\n add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\n add('colgroup', 'span', 'col');\n add('col', 'span');\n add('tbody thead tfoot', '', 'tr');\n add('tr', '', 'td th');\n add('td', 'colspan rowspan headers', flowContent);\n add('th', 'colspan rowspan headers scope abbr', flowContent);\n add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\n add('fieldset', 'disabled form name', [\n flowContent,\n 'legend'\n ].join(' '));\n add('label', 'form for', phrasingContent);\n add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\n add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\n add('select', 'disabled form multiple name required size', 'option optgroup');\n add('optgroup', 'disabled label', 'option');\n add('option', 'disabled label selected value');\n add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\n add('menu', 'type label', [\n flowContent,\n 'li'\n ].join(' '));\n add('noscript', '', flowContent);\n if (type !== 'html4') {\n add('wbr');\n add('ruby', '', [\n phrasingContent,\n 'rt rp'\n ].join(' '));\n add('figcaption', '', flowContent);\n add('mark rt rp summary bdi', '', phrasingContent);\n add('canvas', 'width height', flowContent);\n add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\n flowContent,\n 'track source'\n ].join(' '));\n add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\n flowContent,\n 'track source'\n ].join(' '));\n add('picture', '', 'img source');\n add('source', 'src srcset type media sizes');\n add('track', 'kind src srclang label default');\n add('datalist', '', [\n phrasingContent,\n 'option'\n ].join(' '));\n add('article section nav aside main header footer', '', flowContent);\n add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\n add('figure', '', [\n flowContent,\n 'figcaption'\n ].join(' '));\n add('time', 'datetime', phrasingContent);\n add('dialog', 'open', flowContent);\n add('command', 'type label icon disabled checked radiogroup command');\n add('output', 'for form name', phrasingContent);\n add('progress', 'value max', phrasingContent);\n add('meter', 'value min max low high optimum', phrasingContent);\n add('details', 'open', [\n flowContent,\n 'summary'\n ].join(' '));\n add('keygen', 'autofocus challenge disabled form keytype name');\n }\n if (type !== 'html5-strict') {\n addAttrs('script', 'language xml:space');\n addAttrs('style', 'xml:space');\n addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\n addAttrs('embed', 'align name hspace vspace');\n addAttrs('param', 'valuetype type');\n addAttrs('a', 'charset name rev shape coords');\n addAttrs('br', 'clear');\n addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\n addAttrs('img', 'name longdesc align border hspace vspace');\n addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\n addAttrs('font basefont', 'size color face');\n addAttrs('input', 'usemap align');\n addAttrs('select', 'onchange');\n addAttrs('textarea');\n addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\n addAttrs('ul', 'type compact');\n addAttrs('li', 'type');\n addAttrs('ol dl menu dir', 'compact');\n addAttrs('pre', 'width xml:space');\n addAttrs('hr', 'align noshade size width');\n addAttrs('isindex', 'prompt');\n addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\n addAttrs('col', 'width align char charoff valign');\n addAttrs('colgroup', 'width align char charoff valign');\n addAttrs('thead', 'align char charoff valign');\n addAttrs('tr', 'align char charoff valign bgcolor');\n addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\n addAttrs('form', 'accept');\n addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\n addAttrs('tfoot', 'align char charoff valign');\n addAttrs('tbody', 'align char charoff valign');\n addAttrs('area', 'nohref');\n addAttrs('body', 'background bgcolor text link vlink alink');\n }\n if (type !== 'html4') {\n addAttrs('input button select textarea', 'autofocus');\n addAttrs('input textarea', 'placeholder');\n addAttrs('a', 'download');\n addAttrs('link script img', 'crossorigin');\n addAttrs('iframe', 'sandbox seamless allowfullscreen');\n }\n each$4(split('a form meter progress dfn'), function (name) {\n if (schema[name]) {\n delete schema[name].children[name];\n }\n });\n delete schema.caption.children.table;\n delete schema.script;\n mapCache[type] = schema;\n return schema;\n };\n var compileElementMap = function (value, mode) {\n var styles;\n if (value) {\n styles = {};\n if (typeof value === 'string') {\n value = { '*': value };\n }\n each$4(value, function (value, key) {\n styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$1(value, /[, ]/);\n });\n }\n return styles;\n };\n function Schema(settings) {\n var elements = {};\n var children = {};\n var patternElements = [];\n var validStyles;\n var invalidStyles;\n var schemaItems;\n var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, validClasses;\n var blockElementsMap, nonEmptyElementsMap, moveCaretBeforeOnEnterElementsMap, textBlockElementsMap, textInlineElementsMap;\n var customElementsMap = {}, specialElements = {};\n var createLookupTable = function (option, defaultValue, extendWith) {\n var value = settings[option];\n if (!value) {\n value = mapCache[option];\n if (!value) {\n value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\n value = extend$1(value, extendWith);\n mapCache[option] = value;\n }\n } else {\n value = makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\n }\n return value;\n };\n settings = settings || {};\n schemaItems = compileSchema(settings.schema);\n if (settings.verify_html === false) {\n settings.valid_elements = '*[*]';\n }\n validStyles = compileElementMap(settings.valid_styles);\n invalidStyles = compileElementMap(settings.invalid_styles, 'map');\n validClasses = compileElementMap(settings.valid_classes, 'map');\n whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\n selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\n shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\n boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls');\n nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object ' + 'script pre code', shortEndedElementsMap);\n moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', 'table', nonEmptyElementsMap);\n textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');\n blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);\n textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp');\n each$4((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) {\n specialElements[name] = new RegExp(']*>', 'gi');\n });\n var patternToRegExp = function (str) {\n return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\n };\n var addValidElements = function (validElements) {\n var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, prefix, outputName, globalAttributes, globalAttributesOrder, key, value;\n var elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)\\])?$/, attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=:<]+)?(?:([=:<])(.*))?$/, hasPatternsRegExp = /[*?+]/;\n if (validElements) {\n validElements = split(validElements, ',');\n if (elements['@']) {\n globalAttributes = elements['@'].attributes;\n globalAttributesOrder = elements['@'].attributesOrder;\n }\n for (ei = 0, el = validElements.length; ei < el; ei++) {\n matches = elementRuleRegExp.exec(validElements[ei]);\n if (matches) {\n prefix = matches[1];\n elementName = matches[2];\n outputName = matches[3];\n attrData = matches[5];\n attributes = {};\n attributesOrder = [];\n element = {\n attributes: attributes,\n attributesOrder: attributesOrder\n };\n if (prefix === '#') {\n element.paddEmpty = true;\n }\n if (prefix === '-') {\n element.removeEmpty = true;\n }\n if (matches[4] === '!') {\n element.removeEmptyAttrs = true;\n }\n if (globalAttributes) {\n for (key in globalAttributes) {\n attributes[key] = globalAttributes[key];\n }\n attributesOrder.push.apply(attributesOrder, globalAttributesOrder);\n }\n if (attrData) {\n attrData = split(attrData, '|');\n for (ai = 0, al = attrData.length; ai < al; ai++) {\n matches = attrRuleRegExp.exec(attrData[ai]);\n if (matches) {\n attr = {};\n attrType = matches[1];\n attrName = matches[2].replace(/[\\\\:]:/g, ':');\n prefix = matches[3];\n value = matches[4];\n if (attrType === '!') {\n element.attributesRequired = element.attributesRequired || [];\n element.attributesRequired.push(attrName);\n attr.required = true;\n }\n if (attrType === '-') {\n delete attributes[attrName];\n attributesOrder.splice(inArray$1(attributesOrder, attrName), 1);\n continue;\n }\n if (prefix) {\n if (prefix === '=') {\n element.attributesDefault = element.attributesDefault || [];\n element.attributesDefault.push({\n name: attrName,\n value: value\n });\n attr.defaultValue = value;\n }\n if (prefix === ':') {\n element.attributesForced = element.attributesForced || [];\n element.attributesForced.push({\n name: attrName,\n value: value\n });\n attr.forcedValue = value;\n }\n if (prefix === '<') {\n attr.validValues = makeMap$2(value, '?');\n }\n }\n if (hasPatternsRegExp.test(attrName)) {\n element.attributePatterns = element.attributePatterns || [];\n attr.pattern = patternToRegExp(attrName);\n element.attributePatterns.push(attr);\n } else {\n if (!attributes[attrName]) {\n attributesOrder.push(attrName);\n }\n attributes[attrName] = attr;\n }\n }\n }\n }\n if (!globalAttributes && elementName === '@') {\n globalAttributes = attributes;\n globalAttributesOrder = attributesOrder;\n }\n if (outputName) {\n element.outputName = elementName;\n elements[outputName] = element;\n }\n if (hasPatternsRegExp.test(elementName)) {\n element.pattern = patternToRegExp(elementName);\n patternElements.push(element);\n } else {\n elements[elementName] = element;\n }\n }\n }\n }\n };\n var setValidElements = function (validElements) {\n elements = {};\n patternElements = [];\n addValidElements(validElements);\n each$4(schemaItems, function (element, name) {\n children[name] = element.children;\n });\n };\n var addCustomElements = function (customElements) {\n var customElementRegExp = /^(~)?(.+)$/;\n if (customElements) {\n mapCache.text_block_elements = mapCache.block_elements = null;\n each$4(split(customElements, ','), function (rule) {\n var matches = customElementRegExp.exec(rule), inline = matches[1] === '~', cloneName = inline ? 'span' : 'div', name = matches[2];\n children[name] = children[cloneName];\n customElementsMap[name] = cloneName;\n if (!inline) {\n blockElementsMap[name.toUpperCase()] = {};\n blockElementsMap[name] = {};\n }\n if (!elements[name]) {\n var customRule = elements[cloneName];\n customRule = extend$1({}, customRule);\n delete customRule.removeEmptyAttrs;\n delete customRule.removeEmpty;\n elements[name] = customRule;\n }\n each$4(children, function (element, elmName) {\n if (element[cloneName]) {\n children[elmName] = element = extend$1({}, children[elmName]);\n element[name] = element[cloneName];\n }\n });\n });\n }\n };\n var addValidChildren = function (validChildren) {\n var childRuleRegExp = /^([+\\-]?)(\\w+)\\[([^\\]]+)\\]$/;\n mapCache[settings.schema] = null;\n if (validChildren) {\n each$4(split(validChildren, ','), function (rule) {\n var matches = childRuleRegExp.exec(rule);\n var parent, prefix;\n if (matches) {\n prefix = matches[1];\n if (prefix) {\n parent = children[matches[2]];\n } else {\n parent = children[matches[2]] = { '#comment': {} };\n }\n parent = children[matches[2]];\n each$4(split(matches[3], '|'), function (child) {\n if (prefix === '-') {\n delete parent[child];\n } else {\n parent[child] = {};\n }\n });\n }\n });\n }\n };\n var getElementRule = function (name) {\n var element = elements[name], i;\n if (element) {\n return element;\n }\n i = patternElements.length;\n while (i--) {\n element = patternElements[i];\n if (element.pattern.test(name)) {\n return element;\n }\n }\n };\n if (!settings.valid_elements) {\n each$4(schemaItems, function (element, name) {\n elements[name] = {\n attributes: element.attributes,\n attributesOrder: element.attributesOrder\n };\n children[name] = element.children;\n });\n if (settings.schema !== 'html5') {\n each$4(split('strong/b em/i'), function (item) {\n item = split(item, '/');\n elements[item[1]].outputName = item[0];\n });\n }\n each$4(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function (name) {\n if (elements[name]) {\n elements[name].removeEmpty = true;\n }\n });\n each$4(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption li'), function (name) {\n elements[name].paddEmpty = true;\n });\n each$4(split('span'), function (name) {\n elements[name].removeEmptyAttrs = true;\n });\n } else {\n setValidElements(settings.valid_elements);\n }\n addCustomElements(settings.custom_elements);\n addValidChildren(settings.valid_children);\n addValidElements(settings.extended_valid_elements);\n addValidChildren('+ol[ul|ol],+ul[ul|ol]');\n each$4({\n dd: 'dl',\n dt: 'dl',\n li: 'ul ol',\n td: 'tr',\n th: 'tr',\n tr: 'tbody thead tfoot',\n tbody: 'table',\n thead: 'table',\n tfoot: 'table',\n legend: 'fieldset',\n area: 'map',\n param: 'video audio object'\n }, function (parents, item) {\n if (elements[item]) {\n elements[item].parentsRequired = split(parents);\n }\n });\n if (settings.invalid_elements) {\n each$4(explode$1(settings.invalid_elements), function (item) {\n if (elements[item]) {\n delete elements[item];\n }\n });\n }\n if (!getElementRule('span')) {\n addValidElements('span[!data-mce-type|*]');\n }\n var getValidStyles = function () {\n return validStyles;\n };\n var getInvalidStyles = function () {\n return invalidStyles;\n };\n var getValidClasses = function () {\n return validClasses;\n };\n var getBoolAttrs = function () {\n return boolAttrMap;\n };\n var getBlockElements = function () {\n return blockElementsMap;\n };\n var getTextBlockElements = function () {\n return textBlockElementsMap;\n };\n var getTextInlineElements = function () {\n return textInlineElementsMap;\n };\n var getShortEndedElements = function () {\n return shortEndedElementsMap;\n };\n var getSelfClosingElements = function () {\n return selfClosingElementsMap;\n };\n var getNonEmptyElements = function () {\n return nonEmptyElementsMap;\n };\n var getMoveCaretBeforeOnEnterElements = function () {\n return moveCaretBeforeOnEnterElementsMap;\n };\n var getWhiteSpaceElements = function () {\n return whiteSpaceElementsMap;\n };\n var getSpecialElements = function () {\n return specialElements;\n };\n var isValidChild = function (name, child) {\n var parent = children[name.toLowerCase()];\n return !!(parent && parent[child.toLowerCase()]);\n };\n var isValid = function (name, attr) {\n var attrPatterns, i;\n var rule = getElementRule(name);\n if (rule) {\n if (attr) {\n if (rule.attributes[attr]) {\n return true;\n }\n attrPatterns = rule.attributePatterns;\n if (attrPatterns) {\n i = attrPatterns.length;\n while (i--) {\n if (attrPatterns[i].pattern.test(name)) {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n return false;\n };\n var getCustomElements = function () {\n return customElementsMap;\n };\n return {\n children: children,\n elements: elements,\n getValidStyles: getValidStyles,\n getValidClasses: getValidClasses,\n getBlockElements: getBlockElements,\n getInvalidStyles: getInvalidStyles,\n getShortEndedElements: getShortEndedElements,\n getTextBlockElements: getTextBlockElements,\n getTextInlineElements: getTextInlineElements,\n getBoolAttrs: getBoolAttrs,\n getElementRule: getElementRule,\n getSelfClosingElements: getSelfClosingElements,\n getNonEmptyElements: getNonEmptyElements,\n getMoveCaretBeforeOnEnterElements: getMoveCaretBeforeOnEnterElements,\n getWhiteSpaceElements: getWhiteSpaceElements,\n getSpecialElements: getSpecialElements,\n isValidChild: isValidChild,\n isValid: isValid,\n getCustomElements: getCustomElements,\n addValidElements: addValidElements,\n setValidElements: setValidElements,\n addCustomElements: addCustomElements,\n addValidChildren: addValidChildren\n };\n }\n\n var toHex = function (match, r, g, b) {\n var hex = function (val) {\n val = parseInt(val, 10).toString(16);\n return val.length > 1 ? val : '0' + val;\n };\n return '#' + hex(r) + hex(g) + hex(b);\n };\n var Styles = function (settings, schema) {\n var rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\n var urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\n var styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\n var trimRightRegExp = /\\s+$/;\n var i;\n var encodingLookup = {};\n var encodingItems;\n var validStyles;\n var invalidStyles;\n var invisibleChar = '\\uFEFF';\n settings = settings || {};\n if (schema) {\n validStyles = schema.getValidStyles();\n invalidStyles = schema.getInvalidStyles();\n }\n encodingItems = ('\\\\\" \\\\\\' \\\\; \\\\: ; : ' + invisibleChar).split(' ');\n for (i = 0; i < encodingItems.length; i++) {\n encodingLookup[encodingItems[i]] = invisibleChar + i;\n encodingLookup[invisibleChar + i] = encodingItems[i];\n }\n return {\n toHex: function (color) {\n return color.replace(rgbRegExp, toHex);\n },\n parse: function (css) {\n var styles = {};\n var matches, name, value, isEncoded;\n var urlConverter = settings.url_converter;\n var urlConverterScope = settings.url_converter_scope || this;\n var compress = function (prefix, suffix, noJoin) {\n var top, right, bottom, left;\n top = styles[prefix + '-top' + suffix];\n if (!top) {\n return;\n }\n right = styles[prefix + '-right' + suffix];\n if (!right) {\n return;\n }\n bottom = styles[prefix + '-bottom' + suffix];\n if (!bottom) {\n return;\n }\n left = styles[prefix + '-left' + suffix];\n if (!left) {\n return;\n }\n var box = [\n top,\n right,\n bottom,\n left\n ];\n i = box.length - 1;\n while (i--) {\n if (box[i] !== box[i + 1]) {\n break;\n }\n }\n if (i > -1 && noJoin) {\n return;\n }\n styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\n delete styles[prefix + '-top' + suffix];\n delete styles[prefix + '-right' + suffix];\n delete styles[prefix + '-bottom' + suffix];\n delete styles[prefix + '-left' + suffix];\n };\n var canCompress = function (key) {\n var value = styles[key], i;\n if (!value) {\n return;\n }\n value = value.split(' ');\n i = value.length;\n while (i--) {\n if (value[i] !== value[0]) {\n return false;\n }\n }\n styles[key] = value[0];\n return true;\n };\n var compress2 = function (target, a, b, c) {\n if (!canCompress(a)) {\n return;\n }\n if (!canCompress(b)) {\n return;\n }\n if (!canCompress(c)) {\n return;\n }\n styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\n delete styles[a];\n delete styles[b];\n delete styles[c];\n };\n var encode = function (str) {\n isEncoded = true;\n return encodingLookup[str];\n };\n var decode = function (str, keepSlashes) {\n if (isEncoded) {\n str = str.replace(/\\uFEFF[0-9]/g, function (str) {\n return encodingLookup[str];\n });\n }\n if (!keepSlashes) {\n str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\n }\n return str;\n };\n var decodeSingleHexSequence = function (escSeq) {\n return String.fromCharCode(parseInt(escSeq.slice(1), 16));\n };\n var decodeHexSequences = function (value) {\n return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\n };\n var processUrl = function (match, url, url2, url3, str, str2) {\n str = str || str2;\n if (str) {\n str = decode(str);\n return '\\'' + str.replace(/\\'/g, '\\\\\\'') + '\\'';\n }\n url = decode(url || url2 || url3);\n if (!settings.allow_script_urls) {\n var scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\n if (/(java|vb)script:/i.test(scriptUrl)) {\n return '';\n }\n if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\n return '';\n }\n }\n if (urlConverter) {\n url = urlConverter.call(urlConverterScope, url, 'style');\n }\n return 'url(\\'' + url.replace(/\\'/g, '\\\\\\'') + '\\')';\n };\n if (css) {\n css = css.replace(/[\\u0000-\\u001F]/g, '');\n css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, function (str) {\n return str.replace(/[;:]/g, encode);\n });\n while (matches = styleRegExp.exec(css)) {\n styleRegExp.lastIndex = matches.index + matches[0].length;\n name = matches[1].replace(trimRightRegExp, '').toLowerCase();\n value = matches[2].replace(trimRightRegExp, '');\n if (name && value) {\n name = decodeHexSequences(name);\n value = decodeHexSequences(value);\n if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\n continue;\n }\n if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\n continue;\n }\n if (name === 'font-weight' && value === '700') {\n value = 'bold';\n } else if (name === 'color' || name === 'background-color') {\n value = value.toLowerCase();\n }\n value = value.replace(rgbRegExp, toHex);\n value = value.replace(urlOrStrRegExp, processUrl);\n styles[name] = isEncoded ? decode(value, true) : value;\n }\n }\n compress('border', '', true);\n compress('border', '-width');\n compress('border', '-color');\n compress('border', '-style');\n compress('padding', '');\n compress('margin', '');\n compress2('border', 'border-width', 'border-style', 'border-color');\n if (styles.border === 'medium none') {\n delete styles.border;\n }\n if (styles['border-image'] === 'none') {\n delete styles['border-image'];\n }\n }\n return styles;\n },\n serialize: function (styles, elementName) {\n var css = '', name, value;\n var serializeStyles = function (name) {\n var styleList, i, l, value;\n styleList = validStyles[name];\n if (styleList) {\n for (i = 0, l = styleList.length; i < l; i++) {\n name = styleList[i];\n value = styles[name];\n if (value) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n };\n var isValid = function (name, elementName) {\n var styleMap;\n styleMap = invalidStyles['*'];\n if (styleMap && styleMap[name]) {\n return false;\n }\n styleMap = invalidStyles[elementName];\n if (styleMap && styleMap[name]) {\n return false;\n }\n return true;\n };\n if (elementName && validStyles) {\n serializeStyles('*');\n serializeStyles(elementName);\n } else {\n for (name in styles) {\n value = styles[name];\n if (value && (!invalidStyles || isValid(name, elementName))) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n return css;\n }\n };\n };\n\n var each$5 = Tools.each;\n var grep$1 = Tools.grep;\n var isIE = Env.ie;\n var simpleSelectorRe = /^([a-z0-9],?)+$/i;\n var whiteSpaceRegExp$2 = /^[ \\t\\r\\n]*$/;\n var setupAttrHooks = function (styles, settings, getContext) {\n var keepValues = settings.keep_values;\n var keepUrlHook = {\n set: function ($elm, value, name) {\n if (settings.url_converter) {\n value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name, $elm[0]);\n }\n $elm.attr('data-mce-' + name, value).attr(name, value);\n },\n get: function ($elm, name) {\n return $elm.attr('data-mce-' + name) || $elm.attr(name);\n }\n };\n var attrHooks = {\n style: {\n set: function ($elm, value) {\n if (value !== null && typeof value === 'object') {\n $elm.css(value);\n return;\n }\n if (keepValues) {\n $elm.attr('data-mce-style', value);\n }\n $elm.attr('style', value);\n },\n get: function ($elm) {\n var value = $elm.attr('data-mce-style') || $elm.attr('style');\n value = styles.serialize(styles.parse(value), $elm[0].nodeName);\n return value;\n }\n }\n };\n if (keepValues) {\n attrHooks.href = attrHooks.src = keepUrlHook;\n }\n return attrHooks;\n };\n var updateInternalStyleAttr = function (styles, $elm) {\n var rawValue = $elm.attr('style');\n var value = styles.serialize(styles.parse(rawValue), $elm[0].nodeName);\n if (!value) {\n value = null;\n }\n $elm.attr('data-mce-style', value);\n };\n var findNodeIndex = function (node, normalized) {\n var idx = 0, lastNodeType, nodeType;\n if (node) {\n for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) {\n nodeType = node.nodeType;\n if (normalized && nodeType === 3) {\n if (nodeType === lastNodeType || !node.nodeValue.length) {\n continue;\n }\n }\n idx++;\n lastNodeType = nodeType;\n }\n }\n return idx;\n };\n function DOMUtils(doc, settings) {\n var _this = this;\n if (settings === void 0) {\n settings = {};\n }\n var attrHooks;\n var addedStyles = {};\n var win = domGlobals.window;\n var files = {};\n var counter = 0;\n var stdMode = true;\n var boxModel = true;\n var styleSheetLoader = StyleSheetLoader(doc, { contentCssCors: settings.contentCssCors });\n var boundEvents = [];\n var schema = settings.schema ? settings.schema : Schema({});\n var styles = Styles({\n url_converter: settings.url_converter,\n url_converter_scope: settings.url_converter_scope\n }, settings.schema);\n var events = settings.ownEvents ? new EventUtils() : EventUtils.Event;\n var blockElementsMap = schema.getBlockElements();\n var $ = DomQuery.overrideDefaults(function () {\n return {\n context: doc,\n element: self.getRoot()\n };\n });\n var isBlock = function (node) {\n if (typeof node === 'string') {\n return !!blockElementsMap[node];\n } else if (node) {\n var type = node.nodeType;\n if (type) {\n return !!(type === 1 && blockElementsMap[node.nodeName]);\n }\n }\n return false;\n };\n var get = function (elm) {\n if (elm && doc && typeof elm === 'string') {\n var node = doc.getElementById(elm);\n if (node && node.id !== elm) {\n return doc.getElementsByName(elm)[1];\n } else {\n return node;\n }\n }\n return elm;\n };\n var $$ = function (elm) {\n if (typeof elm === 'string') {\n elm = get(elm);\n }\n return $(elm);\n };\n var getAttrib = function (elm, name, defaultVal) {\n var hook, value;\n var $elm = $$(elm);\n if ($elm.length) {\n hook = attrHooks[name];\n if (hook && hook.get) {\n value = hook.get($elm, name);\n } else {\n value = $elm.attr(name);\n }\n }\n if (typeof value === 'undefined') {\n value = defaultVal || '';\n }\n return value;\n };\n var getAttribs = function (elm) {\n var node = get(elm);\n if (!node) {\n return [];\n }\n return node.attributes;\n };\n var setAttrib = function (elm, name, value) {\n var originalValue, hook;\n if (value === '') {\n value = null;\n }\n var $elm = $$(elm);\n originalValue = $elm.attr(name);\n if (!$elm.length) {\n return;\n }\n hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set($elm, value, name);\n } else {\n $elm.attr(name, value);\n }\n if (originalValue !== value && settings.onSetAttrib) {\n settings.onSetAttrib({\n attrElm: $elm,\n attrName: name,\n attrValue: value\n });\n }\n };\n var clone = function (node, deep) {\n if (!isIE || node.nodeType !== 1 || deep) {\n return node.cloneNode(deep);\n }\n if (!deep) {\n var clone_1 = doc.createElement(node.nodeName);\n each$5(getAttribs(node), function (attr) {\n setAttrib(clone_1, attr.nodeName, getAttrib(node, attr.nodeName));\n });\n return clone_1;\n }\n return null;\n };\n var getRoot = function () {\n return settings.root_element || doc.body;\n };\n var getViewPort = function (argWin) {\n var actWin = !argWin ? win : argWin;\n var doc = actWin.document;\n var rootElm = doc.documentElement;\n return {\n x: actWin.pageXOffset || rootElm.scrollLeft,\n y: actWin.pageYOffset || rootElm.scrollTop,\n w: actWin.innerWidth || rootElm.clientWidth,\n h: actWin.innerHeight || rootElm.clientHeight\n };\n };\n var getPos = function (elm, rootElm) {\n return Position.getPos(doc.body, get(elm), rootElm);\n };\n var setStyle = function (elm, name, value) {\n var $elm = isString(name) ? $$(elm).css(name, value) : $$(elm).css(name);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n };\n var setStyles = function (elm, stylesArg) {\n var $elm = $$(elm).css(stylesArg);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n };\n var getStyle = function (elm, name, computed) {\n var $elm = $$(elm);\n if (computed) {\n return $elm.css(name);\n }\n name = name.replace(/-(\\D)/g, function (a, b) {\n return b.toUpperCase();\n });\n if (name === 'float') {\n name = Env.ie && Env.ie < 12 ? 'styleFloat' : 'cssFloat';\n }\n return $elm[0] && $elm[0].style ? $elm[0].style[name] : undefined;\n };\n var getSize = function (elm) {\n var w, h;\n elm = get(elm);\n w = getStyle(elm, 'width');\n h = getStyle(elm, 'height');\n if (w.indexOf('px') === -1) {\n w = 0;\n }\n if (h.indexOf('px') === -1) {\n h = 0;\n }\n return {\n w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth,\n h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight\n };\n };\n var getRect = function (elm) {\n var pos, size;\n elm = get(elm);\n pos = getPos(elm);\n size = getSize(elm);\n return {\n x: pos.x,\n y: pos.y,\n w: size.w,\n h: size.h\n };\n };\n var is = function (elm, selector) {\n var i;\n if (!elm) {\n return false;\n }\n if (!Array.isArray(elm)) {\n if (selector === '*') {\n return elm.nodeType === 1;\n }\n if (simpleSelectorRe.test(selector)) {\n var selectors = selector.toLowerCase().split(/,/);\n var elmName = elm.nodeName.toLowerCase();\n for (i = selectors.length - 1; i >= 0; i--) {\n if (selectors[i] === elmName) {\n return true;\n }\n }\n return false;\n }\n if (elm.nodeType && elm.nodeType !== 1) {\n return false;\n }\n }\n var elms = !Array.isArray(elm) ? [elm] : elm;\n return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0;\n };\n var getParents = function (elm, selector, root, collect) {\n var result = [];\n var selectorVal;\n var node = get(elm);\n collect = collect === undefined;\n root = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\n if (Tools.is(selector, 'string')) {\n selectorVal = selector;\n if (selector === '*') {\n selector = function (node) {\n return node.nodeType === 1;\n };\n } else {\n selector = function (node) {\n return is(node, selectorVal);\n };\n }\n }\n while (node) {\n if (node === root || !node.nodeType || node.nodeType === 9) {\n break;\n }\n if (!selector || typeof selector === 'function' && selector(node)) {\n if (collect) {\n result.push(node);\n } else {\n return [node];\n }\n }\n node = node.parentNode;\n }\n return collect ? result : null;\n };\n var getParent = function (node, selector, root) {\n var parents = getParents(node, selector, root, false);\n return parents && parents.length > 0 ? parents[0] : null;\n };\n var _findSib = function (node, selector, name) {\n var func = selector;\n if (node) {\n if (typeof selector === 'string') {\n func = function (node) {\n return is(node, selector);\n };\n }\n for (node = node[name]; node; node = node[name]) {\n if (typeof func === 'function' && func(node)) {\n return node;\n }\n }\n }\n return null;\n };\n var getNext = function (node, selector) {\n return _findSib(node, selector, 'nextSibling');\n };\n var getPrev = function (node, selector) {\n return _findSib(node, selector, 'previousSibling');\n };\n var select = function (selector, scope) {\n return Sizzle(selector, get(scope) || settings.root_element || doc, []);\n };\n var run = function (elm, func, scope) {\n var result;\n var node = typeof elm === 'string' ? get(elm) : elm;\n if (!node) {\n return false;\n }\n if (Tools.isArray(node) && (node.length || node.length === 0)) {\n result = [];\n each$5(node, function (elm, i) {\n if (elm) {\n if (typeof elm === 'string') {\n elm = get(elm);\n }\n result.push(func.call(scope, elm, i));\n }\n });\n return result;\n }\n var context = scope ? scope : _this;\n return func.call(context, node);\n };\n var setAttribs = function (elm, attrs) {\n $$(elm).each(function (i, node) {\n each$5(attrs, function (value, name) {\n setAttrib(node, name, value);\n });\n });\n };\n var setHTML = function (elm, html) {\n var $elm = $$(elm);\n if (isIE) {\n $elm.each(function (i, target) {\n if (target.canHaveHTML === false) {\n return;\n }\n while (target.firstChild) {\n target.removeChild(target.firstChild);\n }\n try {\n target.innerHTML = '
' + html;\n target.removeChild(target.firstChild);\n } catch (ex) {\n DomQuery('
').html('
' + html).contents().slice(1).appendTo(target);\n }\n return html;\n });\n } else {\n $elm.html(html);\n }\n };\n var add = function (parentElm, name, attrs, html, create) {\n return run(parentElm, function (parentElm) {\n var newElm = typeof name === 'string' ? doc.createElement(name) : name;\n setAttribs(newElm, attrs);\n if (html) {\n if (typeof html !== 'string' && html.nodeType) {\n newElm.appendChild(html);\n } else if (typeof html === 'string') {\n setHTML(newElm, html);\n }\n }\n return !create ? parentElm.appendChild(newElm) : newElm;\n });\n };\n var create = function (name, attrs, html) {\n return add(doc.createElement(name), name, attrs, html, true);\n };\n var decode = Entities.decode;\n var encode = Entities.encodeAllRaw;\n var createHTML = function (name, attrs, html) {\n var outHtml = '', key;\n outHtml += '<' + name;\n for (key in attrs) {\n if (attrs.hasOwnProperty(key) && attrs[key] !== null && typeof attrs[key] !== 'undefined') {\n outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\n }\n }\n if (typeof html !== 'undefined') {\n return outHtml + '>' + html + '';\n }\n return outHtml + ' />';\n };\n var createFragment = function (html) {\n var node;\n var container = doc.createElement('div');\n var frag = doc.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var remove = function (node, keepChildren) {\n var $node = $$(node);\n if (keepChildren) {\n $node.each(function () {\n var child;\n while (child = this.firstChild) {\n if (child.nodeType === 3 && child.data.length === 0) {\n this.removeChild(child);\n } else {\n this.parentNode.insertBefore(child, this);\n }\n }\n }).remove();\n } else {\n $node.remove();\n }\n return $node.length > 1 ? $node.toArray() : $node[0];\n };\n var removeAllAttribs = function (e) {\n return run(e, function (e) {\n var i;\n var attrs = e.attributes;\n for (i = attrs.length - 1; i >= 0; i--) {\n e.removeAttributeNode(attrs.item(i));\n }\n });\n };\n var parseStyle = function (cssText) {\n return styles.parse(cssText);\n };\n var serializeStyle = function (stylesArg, name) {\n return styles.serialize(stylesArg, name);\n };\n var addStyle = function (cssText) {\n var head, styleElm;\n if (self !== DOMUtils.DOM && doc === domGlobals.document) {\n if (addedStyles[cssText]) {\n return;\n }\n addedStyles[cssText] = true;\n }\n styleElm = doc.getElementById('mceDefaultStyles');\n if (!styleElm) {\n styleElm = doc.createElement('style');\n styleElm.id = 'mceDefaultStyles';\n styleElm.type = 'text/css';\n head = doc.getElementsByTagName('head')[0];\n if (head.firstChild) {\n head.insertBefore(styleElm, head.firstChild);\n } else {\n head.appendChild(styleElm);\n }\n }\n if (styleElm.styleSheet) {\n styleElm.styleSheet.cssText += cssText;\n } else {\n styleElm.appendChild(doc.createTextNode(cssText));\n }\n };\n var loadCSS = function (url) {\n var head;\n if (self !== DOMUtils.DOM && doc === domGlobals.document) {\n DOMUtils.DOM.loadCSS(url);\n return;\n }\n if (!url) {\n url = '';\n }\n head = doc.getElementsByTagName('head')[0];\n each$5(url.split(','), function (url) {\n var link;\n url = Tools._addCacheSuffix(url);\n if (files[url]) {\n return;\n }\n files[url] = true;\n link = create('link', {\n rel: 'stylesheet',\n href: url\n });\n head.appendChild(link);\n });\n };\n var toggleClass = function (elm, cls, state) {\n $$(elm).toggleClass(cls, state).each(function () {\n if (this.className === '') {\n DomQuery(this).attr('class', null);\n }\n });\n };\n var addClass = function (elm, cls) {\n $$(elm).addClass(cls);\n };\n var removeClass = function (elm, cls) {\n toggleClass(elm, cls, false);\n };\n var hasClass = function (elm, cls) {\n return $$(elm).hasClass(cls);\n };\n var show = function (elm) {\n $$(elm).show();\n };\n var hide = function (elm) {\n $$(elm).hide();\n };\n var isHidden = function (elm) {\n return $$(elm).css('display') === 'none';\n };\n var uniqueId = function (prefix) {\n return (!prefix ? 'mce_' : prefix) + counter++;\n };\n var getOuterHTML = function (elm) {\n var node = typeof elm === 'string' ? get(elm) : elm;\n return NodeType.isElement(node) ? node.outerHTML : DomQuery('
').append(DomQuery(node).clone()).html();\n };\n var setOuterHTML = function (elm, html) {\n $$(elm).each(function () {\n try {\n if ('outerHTML' in this) {\n this.outerHTML = html;\n return;\n }\n } catch (ex) {\n }\n remove(DomQuery(this).html(html), true);\n });\n };\n var insertAfter = function (node, reference) {\n var referenceNode = get(reference);\n return run(node, function (node) {\n var parent, nextSibling;\n parent = referenceNode.parentNode;\n nextSibling = referenceNode.nextSibling;\n if (nextSibling) {\n parent.insertBefore(node, nextSibling);\n } else {\n parent.appendChild(node);\n }\n return node;\n });\n };\n var replace = function (newElm, oldElm, keepChildren) {\n return run(oldElm, function (oldElm) {\n if (Tools.is(oldElm, 'array')) {\n newElm = newElm.cloneNode(true);\n }\n if (keepChildren) {\n each$5(grep$1(oldElm.childNodes), function (node) {\n newElm.appendChild(node);\n });\n }\n return oldElm.parentNode.replaceChild(newElm, oldElm);\n });\n };\n var rename = function (elm, name) {\n var newElm;\n if (elm.nodeName !== name.toUpperCase()) {\n newElm = create(name);\n each$5(getAttribs(elm), function (attrNode) {\n setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\n });\n replace(newElm, elm, true);\n }\n return newElm || elm;\n };\n var findCommonAncestor = function (a, b) {\n var ps = a, pe;\n while (ps) {\n pe = b;\n while (pe && ps !== pe) {\n pe = pe.parentNode;\n }\n if (ps === pe) {\n break;\n }\n ps = ps.parentNode;\n }\n if (!ps && a.ownerDocument) {\n return a.ownerDocument.documentElement;\n }\n return ps;\n };\n var toHex = function (rgbVal) {\n return styles.toHex(Tools.trim(rgbVal));\n };\n var isEmpty = function (node, elements) {\n var i, attributes, type, name, brCount = 0;\n node = node.firstChild;\n if (node) {\n var walker = new TreeWalker(node, node.parentNode);\n var whitespace = schema ? schema.getWhiteSpaceElements() : {};\n elements = elements || (schema ? schema.getNonEmptyElements() : null);\n do {\n type = node.nodeType;\n if (NodeType.isElement(node)) {\n var bogusVal = node.getAttribute('data-mce-bogus');\n if (bogusVal) {\n node = walker.next(bogusVal === 'all');\n continue;\n }\n name = node.nodeName.toLowerCase();\n if (elements && elements[name]) {\n if (name === 'br') {\n brCount++;\n node = walker.next();\n continue;\n }\n return false;\n }\n attributes = getAttribs(node);\n i = attributes.length;\n while (i--) {\n name = attributes[i].nodeName;\n if (name === 'name' || name === 'data-mce-bookmark') {\n return false;\n }\n }\n }\n if (type === 8) {\n return false;\n }\n if (type === 3 && !whiteSpaceRegExp$2.test(node.nodeValue)) {\n return false;\n }\n if (type === 3 && node.parentNode && whitespace[node.parentNode.nodeName] && whiteSpaceRegExp$2.test(node.nodeValue)) {\n return false;\n }\n node = walker.next();\n } while (node);\n }\n return brCount <= 1;\n };\n var createRng = function () {\n return doc.createRange();\n };\n var split = function (parentElm, splitElm, replacementElm) {\n var r = createRng(), bef, aft, pa;\n if (parentElm && splitElm) {\n r.setStart(parentElm.parentNode, findNodeIndex(parentElm));\n r.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\n bef = r.extractContents();\n r = createRng();\n r.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\n r.setEnd(parentElm.parentNode, findNodeIndex(parentElm) + 1);\n aft = r.extractContents();\n pa = parentElm.parentNode;\n pa.insertBefore(TrimNode.trimNode(self, bef), parentElm);\n if (replacementElm) {\n pa.insertBefore(replacementElm, parentElm);\n } else {\n pa.insertBefore(splitElm, parentElm);\n }\n pa.insertBefore(TrimNode.trimNode(self, aft), parentElm);\n remove(parentElm);\n return replacementElm || splitElm;\n }\n };\n var bind = function (target, name, func, scope) {\n if (Tools.isArray(target)) {\n var i = target.length;\n var rv = [];\n while (i--) {\n rv[i] = bind(target[i], name, func, scope);\n }\n return rv;\n }\n if (settings.collect && (target === doc || target === win)) {\n boundEvents.push([\n target,\n name,\n func,\n scope\n ]);\n }\n return events.bind(target, name, func, scope || self);\n };\n var unbind = function (target, name, func) {\n var i;\n if (Tools.isArray(target)) {\n i = target.length;\n var rv = [];\n while (i--) {\n rv[i] = unbind(target[i], name, func);\n }\n return rv;\n }\n if (boundEvents && (target === doc || target === win)) {\n i = boundEvents.length;\n while (i--) {\n var item = boundEvents[i];\n if (target === item[0] && (!name || name === item[1]) && (!func || func === item[2])) {\n events.unbind(item[0], item[1], item[2]);\n }\n }\n }\n return events.unbind(target, name, func);\n };\n var fire = function (target, name, evt) {\n return events.fire(target, name, evt);\n };\n var getContentEditable = function (node) {\n if (node && NodeType.isElement(node)) {\n var contentEditable = node.getAttribute('data-mce-contenteditable');\n if (contentEditable && contentEditable !== 'inherit') {\n return contentEditable;\n }\n return node.contentEditable !== 'inherit' ? node.contentEditable : null;\n } else {\n return null;\n }\n };\n var getContentEditableParent = function (node) {\n var root = getRoot();\n var state = null;\n for (; node && node !== root; node = node.parentNode) {\n state = getContentEditable(node);\n if (state !== null) {\n break;\n }\n }\n return state;\n };\n var destroy = function () {\n if (boundEvents) {\n var i = boundEvents.length;\n while (i--) {\n var item = boundEvents[i];\n events.unbind(item[0], item[1], item[2]);\n }\n }\n if (Sizzle.setDocument) {\n Sizzle.setDocument();\n }\n };\n var isChildOf = function (node, parent) {\n while (node) {\n if (parent === node) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n var dumpRng = function (r) {\n return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\n };\n var self = {\n doc: doc,\n settings: settings,\n win: win,\n files: files,\n stdMode: stdMode,\n boxModel: boxModel,\n styleSheetLoader: styleSheetLoader,\n boundEvents: boundEvents,\n styles: styles,\n schema: schema,\n events: events,\n isBlock: isBlock,\n $: $,\n $$: $$,\n root: null,\n clone: clone,\n getRoot: getRoot,\n getViewPort: getViewPort,\n getRect: getRect,\n getSize: getSize,\n getParent: getParent,\n getParents: getParents,\n get: get,\n getNext: getNext,\n getPrev: getPrev,\n select: select,\n is: is,\n add: add,\n create: create,\n createHTML: createHTML,\n createFragment: createFragment,\n remove: remove,\n setStyle: setStyle,\n getStyle: getStyle,\n setStyles: setStyles,\n removeAllAttribs: removeAllAttribs,\n setAttrib: setAttrib,\n setAttribs: setAttribs,\n getAttrib: getAttrib,\n getPos: getPos,\n parseStyle: parseStyle,\n serializeStyle: serializeStyle,\n addStyle: addStyle,\n loadCSS: loadCSS,\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n show: show,\n hide: hide,\n isHidden: isHidden,\n uniqueId: uniqueId,\n setHTML: setHTML,\n getOuterHTML: getOuterHTML,\n setOuterHTML: setOuterHTML,\n decode: decode,\n encode: encode,\n insertAfter: insertAfter,\n replace: replace,\n rename: rename,\n findCommonAncestor: findCommonAncestor,\n toHex: toHex,\n run: run,\n getAttribs: getAttribs,\n isEmpty: isEmpty,\n createRng: createRng,\n nodeIndex: findNodeIndex,\n split: split,\n bind: bind,\n unbind: unbind,\n fire: fire,\n getContentEditable: getContentEditable,\n getContentEditableParent: getContentEditableParent,\n destroy: destroy,\n isChildOf: isChildOf,\n dumpRng: dumpRng\n };\n attrHooks = setupAttrHooks(styles, settings, function () {\n return self;\n });\n return self;\n }\n (function (DOMUtils) {\n DOMUtils.DOM = DOMUtils(domGlobals.document);\n DOMUtils.nodeIndex = findNodeIndex;\n }(DOMUtils || (DOMUtils = {})));\n var DOMUtils$1 = DOMUtils;\n\n var DOM = DOMUtils$1.DOM;\n var each$6 = Tools.each, grep$2 = Tools.grep;\n var QUEUED = 0;\n var LOADING = 1;\n var LOADED = 2;\n var FAILED = 3;\n var ScriptLoader = function () {\n function ScriptLoader() {\n this.states = {};\n this.queue = [];\n this.scriptLoadedCallbacks = {};\n this.queueLoadedCallbacks = [];\n this.loading = 0;\n }\n ScriptLoader.prototype.loadScript = function (url, success, failure) {\n var dom = DOM;\n var elm, id;\n var done = function () {\n dom.remove(id);\n if (elm) {\n elm.onreadystatechange = elm.onload = elm = null;\n }\n success();\n };\n var error = function () {\n if (isFunction(failure)) {\n failure();\n } else {\n if (typeof domGlobals.console !== 'undefined' && domGlobals.console.log) {\n domGlobals.console.log('Failed to load script: ' + url);\n }\n }\n };\n id = dom.uniqueId();\n elm = domGlobals.document.createElement('script');\n elm.id = id;\n elm.type = 'text/javascript';\n elm.src = Tools._addCacheSuffix(url);\n elm.onload = done;\n elm.onerror = error;\n (domGlobals.document.getElementsByTagName('head')[0] || domGlobals.document.body).appendChild(elm);\n };\n ScriptLoader.prototype.isDone = function (url) {\n return this.states[url] === LOADED;\n };\n ScriptLoader.prototype.markDone = function (url) {\n this.states[url] = LOADED;\n };\n ScriptLoader.prototype.add = function (url, success, scope, failure) {\n var state = this.states[url];\n if (state === undefined) {\n this.queue.push(url);\n this.states[url] = QUEUED;\n }\n if (success) {\n if (!this.scriptLoadedCallbacks[url]) {\n this.scriptLoadedCallbacks[url] = [];\n }\n this.scriptLoadedCallbacks[url].push({\n success: success,\n failure: failure,\n scope: scope || this\n });\n }\n };\n ScriptLoader.prototype.load = function (url, success, scope, failure) {\n return this.add(url, success, scope, failure);\n };\n ScriptLoader.prototype.remove = function (url) {\n delete this.states[url];\n delete this.scriptLoadedCallbacks[url];\n };\n ScriptLoader.prototype.loadQueue = function (success, scope, failure) {\n this.loadScripts(this.queue, success, scope, failure);\n };\n ScriptLoader.prototype.loadScripts = function (scripts, success, scope, failure) {\n var self = this;\n var loadScripts;\n var failures = [];\n var execCallbacks = function (name, url) {\n each$6(self.scriptLoadedCallbacks[url], function (callback) {\n if (isFunction(callback[name])) {\n callback[name].call(callback.scope);\n }\n });\n self.scriptLoadedCallbacks[url] = undefined;\n };\n self.queueLoadedCallbacks.push({\n success: success,\n failure: failure,\n scope: scope || this\n });\n loadScripts = function () {\n var loadingScripts = grep$2(scripts);\n scripts.length = 0;\n each$6(loadingScripts, function (url) {\n if (self.states[url] === LOADED) {\n execCallbacks('success', url);\n return;\n }\n if (self.states[url] === FAILED) {\n execCallbacks('failure', url);\n return;\n }\n if (self.states[url] !== LOADING) {\n self.states[url] = LOADING;\n self.loading++;\n self.loadScript(url, function () {\n self.states[url] = LOADED;\n self.loading--;\n execCallbacks('success', url);\n loadScripts();\n }, function () {\n self.states[url] = FAILED;\n self.loading--;\n failures.push(url);\n execCallbacks('failure', url);\n loadScripts();\n });\n }\n });\n if (!self.loading) {\n var notifyCallbacks = self.queueLoadedCallbacks.slice(0);\n self.queueLoadedCallbacks.length = 0;\n each$6(notifyCallbacks, function (callback) {\n if (failures.length === 0) {\n if (isFunction(callback.success)) {\n callback.success.call(callback.scope);\n }\n } else {\n if (isFunction(callback.failure)) {\n callback.failure.call(callback.scope, failures);\n }\n }\n });\n }\n };\n loadScripts();\n };\n ScriptLoader.ScriptLoader = new ScriptLoader();\n return ScriptLoader;\n }();\n\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b)\n if (b.hasOwnProperty(p))\n d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n function __extends(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)\n if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n }\n function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if (d = decorators[i])\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n }\n function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n }\n function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')\n return Reflect.metadata(metadataKey, metadataValue);\n }\n function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator['throw'](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1)\n throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, f, y, t, g;\n return g = {\n next: verb(0),\n 'throw': verb(1),\n 'return': verb(2)\n }, typeof Symbol === 'function' && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f)\n throw new TypeError('Generator is already executing.');\n while (_)\n try {\n if (f = 1, y && (t = op[0] & 2 ? y['return'] : op[0] ? y['throw'] || ((t = y['return']) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)\n return t;\n if (y = 0, t)\n op = [\n op[0] & 2,\n t.value\n ];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2])\n _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5)\n throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n }\n function __exportStar(m, exports) {\n for (var p in m)\n if (!exports.hasOwnProperty(p))\n exports[p] = m[p];\n }\n function __values(o) {\n var m = typeof Symbol === 'function' && o[Symbol.iterator], i = 0;\n if (m)\n return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length)\n o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n }\n function __read(o, n) {\n var m = typeof Symbol === 'function' && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i['return']))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n }\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n }\n function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator)\n throw new TypeError('Symbol.asyncIterator is not defined.');\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n])\n i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([\n n,\n v,\n a,\n b\n ]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume('next', value);\n }\n function reject(value) {\n resume('throw', value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length)\n resume(q[0][0], q[0][1]);\n }\n }\n function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb('next'), verb('throw', function (e) {\n throw e;\n }), verb('return'), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === 'return'\n } : f ? f(v) : v;\n } : f;\n }\n }\n function __asyncValues(o) {\n if (!Symbol.asyncIterator)\n throw new TypeError('Symbol.asyncIterator is not defined.');\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === 'function' ? __values(o) : o[Symbol.iterator](), i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n }\n function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, 'raw', { value: raw });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n }\n function __importStar(mod) {\n if (mod && mod.__esModule)\n return mod;\n var result = {};\n if (mod != null)\n for (var k in mod)\n if (Object.hasOwnProperty.call(mod, k))\n result[k] = mod[k];\n result.default = mod;\n return result;\n }\n function __importDefault(mod) {\n return mod && mod.__esModule ? mod : { default: mod };\n }\n\n var tslib_1 = /*#__PURE__*/Object.freeze({\n __extends: __extends,\n get __assign () { return __assign; },\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault\n });\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n var clone = function () {\n return Cell(get());\n };\n return {\n get: get,\n set: set,\n clone: clone\n };\n };\n\n var isRaw = function (str) {\n return isObject(str) && has(str, 'raw');\n };\n var isTokenised = function (str) {\n return isArray(str) && str.length > 1;\n };\n var data = {};\n var currentCode = Cell('en');\n var getData = function () {\n return map$2(data, function (value) {\n return __assign({}, value);\n });\n };\n var setCode = function (newCode) {\n if (newCode) {\n currentCode.set(newCode);\n }\n };\n var getCode = function () {\n return currentCode.get();\n };\n var add = function (code, items) {\n var langData = data[code];\n if (!langData) {\n data[code] = langData = {};\n }\n for (var name in items) {\n langData[name.toLowerCase()] = items[name];\n }\n };\n var translate = function (text) {\n var langData = data[currentCode.get()] || {};\n var toString = function (obj) {\n if (isFunction(obj)) {\n return Object.prototype.toString.call(obj);\n }\n return !isEmpty(obj) ? '' + obj : '';\n };\n var isEmpty = function (text) {\n return text === '' || text === null || text === undefined;\n };\n var getLangData = function (text) {\n var textstr = toString(text);\n var lowercaseTextstr = textstr.toLowerCase();\n return has(langData, lowercaseTextstr) ? toString(langData[lowercaseTextstr]) : textstr;\n };\n var removeContext = function (str) {\n return str.replace(/{context:\\w+}$/, '');\n };\n var translated = function (text) {\n return text;\n };\n if (isEmpty(text)) {\n return translated('');\n }\n if (isRaw(text)) {\n return translated(toString(text.raw));\n }\n if (isTokenised(text)) {\n var values_1 = text.slice(1);\n var substitued = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, function ($1, $2) {\n return has(values_1, $2) ? toString(values_1[$2]) : $1;\n });\n return translated(removeContext(substitued));\n }\n return translated(removeContext(getLangData(text)));\n };\n var isRtl = function () {\n return get(data, currentCode.get()).bind(function (items) {\n return get(items, '_dir');\n }).exists(function (dir) {\n return dir === 'rtl';\n });\n };\n var hasCode = function (code) {\n return has(data, code);\n };\n var I18n = {\n getData: getData,\n setCode: setCode,\n getCode: getCode,\n add: add,\n translate: translate,\n isRtl: isRtl,\n hasCode: hasCode\n };\n\n var each$7 = Tools.each;\n function AddOnManager() {\n var _this = this;\n var items = [];\n var urls = {};\n var lookup = {};\n var _listeners = [];\n var get = function (name) {\n if (lookup[name]) {\n return lookup[name].instance;\n }\n return undefined;\n };\n var dependencies = function (name) {\n var result;\n if (lookup[name]) {\n result = lookup[name].dependencies;\n }\n return result || [];\n };\n var requireLangPack = function (name, languages) {\n var language = I18n.getCode();\n if (language && AddOnManager.languageLoad !== false) {\n if (languages) {\n languages = ',' + languages + ',';\n if (languages.indexOf(',' + language.substr(0, 2) + ',') !== -1) {\n language = language.substr(0, 2);\n } else if (languages.indexOf(',' + language + ',') === -1) {\n return;\n }\n }\n ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\n }\n };\n var add = function (id, addOn, dependencies) {\n items.push(addOn);\n lookup[id] = {\n instance: addOn,\n dependencies: dependencies\n };\n var result = partition(_listeners, function (listener) {\n return listener.name === id;\n });\n _listeners = result.fail;\n each$7(result.pass, function (listener) {\n listener.callback();\n });\n return addOn;\n };\n var remove = function (name) {\n delete urls[name];\n delete lookup[name];\n };\n var createUrl = function (baseUrl, dep) {\n if (typeof dep === 'object') {\n return dep;\n }\n return typeof baseUrl === 'string' ? {\n prefix: '',\n resource: dep,\n suffix: ''\n } : {\n prefix: baseUrl.prefix,\n resource: dep,\n suffix: baseUrl.suffix\n };\n };\n var addComponents = function (pluginName, scripts) {\n var pluginUrl = _this.urls[pluginName];\n each$7(scripts, function (script) {\n ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script);\n });\n };\n var loadDependencies = function (name, addOnUrl, success, scope) {\n var deps = dependencies(name);\n each$7(deps, function (dep) {\n var newUrl = createUrl(addOnUrl, dep);\n load(newUrl.resource, newUrl, undefined, undefined);\n });\n if (success) {\n if (scope) {\n success.call(scope);\n } else {\n success.call(ScriptLoader);\n }\n }\n };\n var load = function (name, addOnUrl, success, scope, failure) {\n if (urls[name]) {\n return;\n }\n var urlString = typeof addOnUrl === 'string' ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\n if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\n urlString = AddOnManager.baseURL + '/' + urlString;\n }\n urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\n if (lookup[name]) {\n loadDependencies(name, addOnUrl, success, scope);\n } else {\n ScriptLoader.ScriptLoader.add(urlString, function () {\n return loadDependencies(name, addOnUrl, success, scope);\n }, scope, failure);\n }\n };\n var waitFor = function (name, callback) {\n if (lookup.hasOwnProperty(name)) {\n callback();\n } else {\n _listeners.push({\n name: name,\n callback: callback\n });\n }\n };\n return {\n items: items,\n urls: urls,\n lookup: lookup,\n _listeners: _listeners,\n get: get,\n dependencies: dependencies,\n requireLangPack: requireLangPack,\n add: add,\n remove: remove,\n createUrl: createUrl,\n addComponents: addComponents,\n load: load,\n waitFor: waitFor\n };\n }\n (function (AddOnManager) {\n AddOnManager.PluginManager = AddOnManager();\n AddOnManager.ThemeManager = AddOnManager();\n }(AddOnManager || (AddOnManager = {})));\n var AddOnManager$1 = AddOnManager;\n\n var before = function (marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom().insertBefore(element.dom(), marker.dom());\n });\n };\n var after = function (marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom().insertBefore(element.dom(), v.dom());\n });\n };\n var append = function (parent, element) {\n parent.dom().appendChild(element.dom());\n };\n var wrap$1 = function (element, wrapper) {\n before(element, wrapper);\n append(wrapper, element);\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom().textContent = '';\n each(children(element), function (rogue) {\n remove$1(rogue);\n });\n };\n var remove$1 = function (element) {\n var dom = element.dom();\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove$1(wrapper);\n };\n\n var first = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer === null) {\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n domGlobals.clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null)\n domGlobals.clearTimeout(timer);\n timer = domGlobals.setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var read = function (element, attr) {\n var value = get$1(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add$1 = function (element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set(element, attr, nu.join(' '));\n return true;\n };\n var remove$2 = function (element, attr, id) {\n var nu = filter(read(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set(element, attr, nu.join(' '));\n } else {\n remove(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom().classList !== undefined;\n };\n var get$3 = function (element) {\n return read(element, 'class');\n };\n var add$2 = function (element, clazz) {\n return add$1(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$2(element, 'class', clazz);\n };\n var toggle = function (element, clazz) {\n if (contains(get$3(element), clazz)) {\n return remove$3(element, clazz);\n } else {\n return add$2(element, clazz);\n }\n };\n\n var ClassList = /*#__PURE__*/Object.freeze({\n get: get$3,\n add: add$2,\n remove: remove$3,\n toggle: toggle,\n supports: supports\n });\n\n var add$3 = function (element, clazz) {\n if (supports(element)) {\n element.dom().classList.add(clazz);\n } else {\n add$2(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom().classList : get$3(element);\n if (classList.length === 0) {\n remove(element, 'class');\n }\n };\n var remove$4 = function (element, clazz) {\n if (supports(element)) {\n var classList = element.dom().classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom().classList.contains(clazz);\n };\n\n var ancestors = function (scope, predicate, isRoot) {\n return filter(parents(scope, isRoot), predicate);\n };\n var siblings$1 = function (scope, predicate) {\n return filter(siblings(scope), predicate);\n };\n var children$1 = function (scope, predicate) {\n return filter(children(scope), predicate);\n };\n var descendants = function (scope, predicate) {\n var result = [];\n each(children(scope), function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants(x, predicate));\n });\n return result;\n };\n\n var all$1 = function (selector) {\n return all(selector);\n };\n var ancestors$1 = function (scope, selector, isRoot) {\n return ancestors(scope, function (e) {\n return is$1(e, selector);\n }, isRoot);\n };\n var siblings$2 = function (scope, selector) {\n return siblings$1(scope, function (e) {\n return is$1(e, selector);\n });\n };\n var children$2 = function (scope, selector) {\n return children$1(scope, function (e) {\n return is$1(e, selector);\n });\n };\n var descendants$1 = function (scope, selector) {\n return all(selector, scope);\n };\n\n var SelectorFilter = /*#__PURE__*/Object.freeze({\n all: all$1,\n ancestors: ancestors$1,\n siblings: siblings$2,\n children: children$2,\n descendants: descendants$1\n });\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\n }\n\n var ancestor = function (scope, predicate, isRoot) {\n var element = scope.dom();\n var stop = isFunction(isRoot) ? isRoot : constant(false);\n while (element.parentNode) {\n element = element.parentNode;\n var el = Element.fromDom(element);\n if (predicate(el)) {\n return Option.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Option.none();\n };\n var closest = function (scope, predicate, isRoot) {\n var is = function (s) {\n return predicate(s);\n };\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\n };\n\n var ancestor$1 = function (scope, selector, isRoot) {\n return ancestor(scope, function (e) {\n return is$1(e, selector);\n }, isRoot);\n };\n var descendant = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$1 = function (scope, selector, isRoot) {\n return ClosestOrAncestor(is$1, ancestor$1, scope, selector, isRoot);\n };\n\n var annotation = constant('mce-annotation');\n var dataAnnotation = constant('data-mce-annotation');\n var dataAnnotationId = constant('data-mce-annotation-uid');\n\n var identify = function (editor, annotationName) {\n var rng = editor.selection.getRng();\n var start = Element.fromDom(rng.startContainer);\n var root = Element.fromDom(editor.getBody());\n var selector = annotationName.fold(function () {\n return '.' + annotation();\n }, function (an) {\n return '[' + dataAnnotation() + '=\"' + an + '\"]';\n });\n var newStart = child(start, rng.startOffset).getOr(start);\n var closest = closest$1(newStart, selector, function (n) {\n return eq(n, root);\n });\n var getAttr = function (c, property) {\n if (has$1(c, property)) {\n return Option.some(get$1(c, property));\n } else {\n return Option.none();\n }\n };\n return closest.bind(function (c) {\n return getAttr(c, '' + dataAnnotationId()).bind(function (uid) {\n return getAttr(c, '' + dataAnnotation()).map(function (name) {\n var elements = findMarkers(editor, uid);\n return {\n uid: uid,\n name: name,\n elements: elements\n };\n });\n });\n });\n };\n var isAnnotation = function (elem) {\n return isElement(elem) && has$2(elem, annotation());\n };\n var findMarkers = function (editor, uid) {\n var body = Element.fromDom(editor.getBody());\n return descendants$1(body, '[' + dataAnnotationId() + '=\"' + uid + '\"]');\n };\n var findAll = function (editor, name) {\n var body = Element.fromDom(editor.getBody());\n var markers = descendants$1(body, '[' + dataAnnotation() + '=\"' + name + '\"]');\n var directory = {};\n each(markers, function (m) {\n var uid = get$1(m, dataAnnotationId());\n var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : [];\n directory[uid] = nodesAlready.concat([m]);\n });\n return directory;\n };\n\n var setup = function (editor, registry) {\n var changeCallbacks = Cell({});\n var initData = function () {\n return {\n listeners: [],\n previous: Cell(Option.none())\n };\n };\n var withCallbacks = function (name, f) {\n updateCallbacks(name, function (data) {\n f(data);\n return data;\n });\n };\n var updateCallbacks = function (name, f) {\n var callbackMap = changeCallbacks.get();\n var data = callbackMap.hasOwnProperty(name) ? callbackMap[name] : initData();\n var outputData = f(data);\n callbackMap[name] = outputData;\n changeCallbacks.set(callbackMap);\n };\n var fireCallbacks = function (name, uid, elements) {\n withCallbacks(name, function (data) {\n each(data.listeners, function (f) {\n return f(true, name, {\n uid: uid,\n nodes: map(elements, function (elem) {\n return elem.dom();\n })\n });\n });\n });\n };\n var fireNoAnnotation = function (name) {\n withCallbacks(name, function (data) {\n each(data.listeners, function (f) {\n return f(false, name);\n });\n });\n };\n var onNodeChange = last$2(function () {\n var callbackMap = changeCallbacks.get();\n var annotations = sort(keys(callbackMap));\n each(annotations, function (name) {\n updateCallbacks(name, function (data) {\n var prev = data.previous.get();\n identify(editor, Option.some(name)).fold(function () {\n if (prev.isSome()) {\n fireNoAnnotation(name);\n data.previous.set(Option.none());\n }\n }, function (_a) {\n var uid = _a.uid, name = _a.name, elements = _a.elements;\n if (!prev.is(uid)) {\n fireCallbacks(name, uid, elements);\n data.previous.set(Option.some(uid));\n }\n });\n return {\n previous: data.previous,\n listeners: data.listeners\n };\n });\n });\n }, 30);\n editor.on('remove', function () {\n onNodeChange.cancel();\n });\n editor.on('NodeChange', function () {\n onNodeChange.throttle();\n });\n var addListener = function (name, f) {\n updateCallbacks(name, function (data) {\n return {\n previous: data.previous,\n listeners: data.listeners.concat([f])\n };\n });\n };\n return { addListener: addListener };\n };\n\n var setup$1 = function (editor, registry) {\n var identifyParserNode = function (span) {\n return Option.from(span.attr(dataAnnotation())).bind(registry.lookup);\n };\n editor.on('init', function () {\n editor.serializer.addNodeFilter('span', function (spans) {\n each(spans, function (span) {\n identifyParserNode(span).each(function (settings) {\n if (settings.persistent === false) {\n span.unwrap();\n }\n });\n });\n });\n });\n };\n\n var create$1 = function () {\n var annotations = {};\n var register = function (name, settings) {\n annotations[name] = {\n name: name,\n settings: settings\n };\n };\n var lookup = function (name) {\n return annotations.hasOwnProperty(name) ? Option.from(annotations[name]).map(function (a) {\n return a.settings;\n }) : Option.none();\n };\n return {\n register: register,\n lookup: lookup\n };\n };\n\n var unique = 0;\n var generate = function (prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var add$4 = function (element, classes) {\n each(classes, function (x) {\n add$3(element, x);\n });\n };\n\n var clone = function (original, isDeep) {\n return Element.fromDom(original.dom().cloneNode(isDeep));\n };\n var shallow = function (original) {\n return clone(original, false);\n };\n var deep = function (original) {\n return clone(original, true);\n };\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || domGlobals.document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(Element.fromDom(div));\n };\n\n var get$4 = function (element) {\n return element.dom().innerHTML;\n };\n var set$1 = function (element, content) {\n var owner$1 = owner(element);\n var docDom = owner$1.dom();\n var fragment = Element.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append(element, fragment);\n };\n\n var ZWSP = '\\uFEFF';\n var isZwsp = function (chr) {\n return chr === ZWSP;\n };\n var trim$3 = function (text) {\n return text.replace(new RegExp(ZWSP, 'g'), '');\n };\n var Zwsp = {\n isZwsp: isZwsp,\n ZWSP: ZWSP,\n trim: trim$3\n };\n\n var isElement$2 = NodeType.isElement;\n var isText$2 = NodeType.isText;\n var isCaretContainerBlock = function (node) {\n if (isText$2(node)) {\n node = node.parentNode;\n }\n return isElement$2(node) && node.hasAttribute('data-mce-caret');\n };\n var isCaretContainerInline = function (node) {\n return isText$2(node) && Zwsp.isZwsp(node.data);\n };\n var isCaretContainer = function (node) {\n return isCaretContainerBlock(node) || isCaretContainerInline(node);\n };\n var hasContent = function (node) {\n return node.firstChild !== node.lastChild || !NodeType.isBr(node.firstChild);\n };\n var insertInline = function (node, before) {\n var doc, sibling, textNode, parentNode;\n doc = node.ownerDocument;\n textNode = doc.createTextNode(Zwsp.ZWSP);\n parentNode = node.parentNode;\n if (!before) {\n sibling = node.nextSibling;\n if (isText$2(sibling)) {\n if (isCaretContainer(sibling)) {\n return sibling;\n }\n if (startsWithCaretContainer(sibling)) {\n sibling.splitText(1);\n return sibling;\n }\n }\n if (node.nextSibling) {\n parentNode.insertBefore(textNode, node.nextSibling);\n } else {\n parentNode.appendChild(textNode);\n }\n } else {\n sibling = node.previousSibling;\n if (isText$2(sibling)) {\n if (isCaretContainer(sibling)) {\n return sibling;\n }\n if (endsWithCaretContainer(sibling)) {\n return sibling.splitText(sibling.data.length - 1);\n }\n }\n parentNode.insertBefore(textNode, node);\n }\n return textNode;\n };\n var prependInline = function (node) {\n if (NodeType.isText(node)) {\n var data = node.data;\n if (data.length > 0 && data.charAt(0) !== Zwsp.ZWSP) {\n node.insertData(0, Zwsp.ZWSP);\n }\n return node;\n } else {\n return null;\n }\n };\n var appendInline = function (node) {\n if (NodeType.isText(node)) {\n var data = node.data;\n if (data.length > 0 && data.charAt(data.length - 1) !== Zwsp.ZWSP) {\n node.insertData(data.length, Zwsp.ZWSP);\n }\n return node;\n } else {\n return null;\n }\n };\n var isBeforeInline = function (pos) {\n var container = pos.container();\n if (!pos || !NodeType.isText(container)) {\n return false;\n }\n return container.data.charAt(pos.offset()) === Zwsp.ZWSP || pos.isAtStart() && isCaretContainerInline(container.previousSibling);\n };\n var isAfterInline = function (pos) {\n var container = pos.container();\n if (!pos || !NodeType.isText(container)) {\n return false;\n }\n return container.data.charAt(pos.offset() - 1) === Zwsp.ZWSP || pos.isAtEnd() && isCaretContainerInline(container.nextSibling);\n };\n var createBogusBr = function () {\n var br = domGlobals.document.createElement('br');\n br.setAttribute('data-mce-bogus', '1');\n return br;\n };\n var insertBlock = function (blockName, node, before) {\n var doc, blockNode, parentNode;\n doc = node.ownerDocument;\n blockNode = doc.createElement(blockName);\n blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\n blockNode.setAttribute('data-mce-bogus', 'all');\n blockNode.appendChild(createBogusBr());\n parentNode = node.parentNode;\n if (!before) {\n if (node.nextSibling) {\n parentNode.insertBefore(blockNode, node.nextSibling);\n } else {\n parentNode.appendChild(blockNode);\n }\n } else {\n parentNode.insertBefore(blockNode, node);\n }\n return blockNode;\n };\n var startsWithCaretContainer = function (node) {\n return isText$2(node) && node.data[0] === Zwsp.ZWSP;\n };\n var endsWithCaretContainer = function (node) {\n return isText$2(node) && node.data[node.data.length - 1] === Zwsp.ZWSP;\n };\n var trimBogusBr = function (elm) {\n var brs = elm.getElementsByTagName('br');\n var lastBr = brs[brs.length - 1];\n if (NodeType.isBogus(lastBr)) {\n lastBr.parentNode.removeChild(lastBr);\n }\n };\n var showCaretContainerBlock = function (caretContainer) {\n if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\n trimBogusBr(caretContainer);\n caretContainer.removeAttribute('data-mce-caret');\n caretContainer.removeAttribute('data-mce-bogus');\n caretContainer.removeAttribute('style');\n caretContainer.removeAttribute('_moz_abspos');\n return caretContainer;\n }\n return null;\n };\n var isRangeInCaretContainerBlock = function (range) {\n return isCaretContainerBlock(range.startContainer);\n };\n\n var CaretContainer = /*#__PURE__*/Object.freeze({\n isCaretContainer: isCaretContainer,\n isCaretContainerBlock: isCaretContainerBlock,\n isCaretContainerInline: isCaretContainerInline,\n showCaretContainerBlock: showCaretContainerBlock,\n insertInline: insertInline,\n prependInline: prependInline,\n appendInline: appendInline,\n isBeforeInline: isBeforeInline,\n isAfterInline: isAfterInline,\n insertBlock: insertBlock,\n hasContent: hasContent,\n startsWithCaretContainer: startsWithCaretContainer,\n endsWithCaretContainer: endsWithCaretContainer,\n isRangeInCaretContainerBlock: isRangeInCaretContainerBlock\n });\n\n var isContentEditableTrue$1 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$1 = NodeType.isContentEditableFalse;\n var isBr$2 = NodeType.isBr;\n var isText$3 = NodeType.isText;\n var isInvalidTextElement = NodeType.matchNodeNames('script style textarea');\n var isAtomicInline = NodeType.matchNodeNames('img input textarea hr iframe video audio object');\n var isTable$2 = NodeType.matchNodeNames('table');\n var isCaretContainer$1 = isCaretContainer;\n var isCaretCandidate = function (node) {\n if (isCaretContainer$1(node)) {\n return false;\n }\n if (isText$3(node)) {\n if (isInvalidTextElement(node.parentNode)) {\n return false;\n }\n return true;\n }\n return isAtomicInline(node) || isBr$2(node) || isTable$2(node) || isNonUiContentEditableFalse(node);\n };\n var isUnselectable = function (node) {\n return NodeType.isElement(node) && node.getAttribute('unselectable') === 'true';\n };\n var isNonUiContentEditableFalse = function (node) {\n return isUnselectable(node) === false && isContentEditableFalse$1(node);\n };\n var isInEditable = function (node, root) {\n for (node = node.parentNode; node && node !== root; node = node.parentNode) {\n if (isNonUiContentEditableFalse(node)) {\n return false;\n }\n if (isContentEditableTrue$1(node)) {\n return true;\n }\n }\n return true;\n };\n var isAtomicContentEditableFalse = function (node) {\n if (!isNonUiContentEditableFalse(node)) {\n return false;\n }\n return foldl(from$1(node.getElementsByTagName('*')), function (result, elm) {\n return result || isContentEditableTrue$1(elm);\n }, false) !== true;\n };\n var isAtomic = function (node) {\n return isAtomicInline(node) || isAtomicContentEditableFalse(node);\n };\n var isEditableCaretCandidate = function (node, root) {\n return isCaretCandidate(node) && isInEditable(node, root);\n };\n\n var round = Math.round;\n var clone$1 = function (rect) {\n if (!rect) {\n return {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n return {\n left: round(rect.left),\n top: round(rect.top),\n bottom: round(rect.bottom),\n right: round(rect.right),\n width: round(rect.width),\n height: round(rect.height)\n };\n };\n var collapse = function (rect, toStart) {\n rect = clone$1(rect);\n if (toStart) {\n rect.right = rect.left;\n } else {\n rect.left = rect.left + rect.width;\n rect.right = rect.left;\n }\n rect.width = 0;\n return rect;\n };\n var isEqual = function (rect1, rect2) {\n return rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\n };\n var isValidOverflow = function (overflowY, rect1, rect2) {\n return overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\n };\n var isAbove = function (rect1, rect2) {\n if (rect1.bottom - rect1.height / 2 < rect2.top) {\n return true;\n }\n if (rect1.top > rect2.bottom) {\n return false;\n }\n return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\n };\n var isBelow = function (rect1, rect2) {\n if (rect1.top > rect2.bottom) {\n return true;\n }\n if (rect1.bottom < rect2.top) {\n return false;\n }\n return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\n };\n var containsXY = function (rect, clientX, clientY) {\n return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n };\n var overflowX = function (outer, inner) {\n if (inner.left > outer.left && inner.right < outer.right) {\n return 0;\n } else {\n return inner.left < outer.left ? inner.left - outer.left : inner.right - outer.right;\n }\n };\n var overflowY = function (outer, inner) {\n if (inner.top > outer.top && inner.bottom < outer.bottom) {\n return 0;\n } else {\n return inner.top < outer.top ? inner.top - outer.top : inner.bottom - outer.bottom;\n }\n };\n var getOverflow = function (outer, inner) {\n return {\n x: overflowX(outer, inner),\n y: overflowY(outer, inner)\n };\n };\n\n var getSelectedNode = function (range) {\n var startContainer = range.startContainer, startOffset = range.startOffset;\n if (startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\n return startContainer.childNodes[startOffset];\n }\n return null;\n };\n var getNode = function (container, offset) {\n if (container.nodeType === 1 && container.hasChildNodes()) {\n if (offset >= container.childNodes.length) {\n offset = container.childNodes.length - 1;\n }\n container = container.childNodes[offset];\n }\n return container;\n };\n\n var extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u061a' + '\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0' + '\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08E3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\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\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\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\\u0f8d-\\u0f97' + '\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039-\\u103a\\u103d-\\u103e\\u1058-\\u1059\\u105e-\\u1060\\u1071-\\u1074' + '\\u1082\\u1085-\\u1086\\u108d\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b4-\\u17b5' + '\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80-\\u1b81\\u1ba2-\\u1ba5\\u1ba8-\\u1ba9\\u1bab-\\u1bad\\u1be6\\u1be8-\\u1be9' + '\\u1bed\\u1bef-\\u1bf1\\u1c2c-\\u1c33\\u1c36-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1cf4\\u1cf8-\\u1cf9' + '\\u1dc0-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\uA69E-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\ua9e5\\uaa29-\\uaa2e\\uaa31-\\uaa32\\uaa35-\\uaa36\\uaa43\\uaa4c\\uaa7c\\uaab0\\uaab2-\\uaab4\\uaab7-\\uaab8\\uaabe-\\uaabf\\uaac1' + '\\uaaec-\\uaaed\\uaaf6\\uabe5\\uabe8\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\uFE2F\\uff9e-\\uff9f]');\n var isExtendingChar = function (ch) {\n return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\n };\n\n var liftN = function (arr, f) {\n var r = [];\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Option.none();\n }\n }\n return Option.some(f.apply(null, r));\n };\n\n var slice$3 = [].slice;\n var or = function () {\n var x = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n x[_i] = arguments[_i];\n }\n var args = slice$3.call(arguments);\n return function (x) {\n for (var i = 0; i < args.length; i++) {\n if (args[i](x)) {\n return true;\n }\n }\n return false;\n };\n };\n var and = function () {\n var x = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n x[_i] = arguments[_i];\n }\n var args = slice$3.call(arguments);\n return function (x) {\n for (var i = 0; i < args.length; i++) {\n if (!args[i](x)) {\n return false;\n }\n }\n return true;\n };\n };\n var Predicate = {\n and: and,\n or: or\n };\n\n var isElement$3 = NodeType.isElement;\n var isCaretCandidate$1 = isCaretCandidate;\n var isBlock$1 = NodeType.matchStyleValues('display', 'block table');\n var isFloated = NodeType.matchStyleValues('float', 'left right');\n var isValidElementCaretCandidate = Predicate.and(isElement$3, isCaretCandidate$1, not(isFloated));\n var isNotPre = not(NodeType.matchStyleValues('white-space', 'pre pre-line pre-wrap'));\n var isText$4 = NodeType.isText;\n var isBr$3 = NodeType.isBr;\n var nodeIndex = DOMUtils$1.nodeIndex;\n var resolveIndex = getNode;\n var createRange = function (doc) {\n return 'createRange' in doc ? doc.createRange() : DOMUtils$1.DOM.createRng();\n };\n var isWhiteSpace = function (chr) {\n return chr && /[\\r\\n\\t ]/.test(chr);\n };\n var isRange = function (rng) {\n return !!rng.setStart && !!rng.setEnd;\n };\n var isHiddenWhiteSpaceRange = function (range) {\n var container = range.startContainer;\n var offset = range.startOffset;\n var text;\n if (isWhiteSpace(range.toString()) && isNotPre(container.parentNode) && NodeType.isText(container)) {\n text = container.data;\n if (isWhiteSpace(text[offset - 1]) || isWhiteSpace(text[offset + 1])) {\n return true;\n }\n }\n return false;\n };\n var getBrClientRect = function (brNode) {\n var doc = brNode.ownerDocument;\n var rng = createRange(doc);\n var nbsp = doc.createTextNode('\\xA0');\n var parentNode = brNode.parentNode;\n var clientRect;\n parentNode.insertBefore(nbsp, brNode);\n rng.setStart(nbsp, 0);\n rng.setEnd(nbsp, 1);\n clientRect = clone$1(rng.getBoundingClientRect());\n parentNode.removeChild(nbsp);\n return clientRect;\n };\n var getBoundingClientRectWebKitText = function (rng) {\n var sc = rng.startContainer;\n var ec = rng.endContainer;\n var so = rng.startOffset;\n var eo = rng.endOffset;\n if (sc === ec && NodeType.isText(ec) && so === 0 && eo === 1) {\n var newRng = rng.cloneRange();\n newRng.setEndAfter(ec);\n return getBoundingClientRect(newRng);\n } else {\n return null;\n }\n };\n var isZeroRect = function (r) {\n return r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\n };\n var getBoundingClientRect = function (item) {\n var clientRect, clientRects;\n clientRects = item.getClientRects();\n if (clientRects.length > 0) {\n clientRect = clone$1(clientRects[0]);\n } else {\n clientRect = clone$1(item.getBoundingClientRect());\n }\n if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\n return getBrClientRect(item);\n }\n if (isZeroRect(clientRect) && isRange(item)) {\n return getBoundingClientRectWebKitText(item);\n }\n return clientRect;\n };\n var collapseAndInflateWidth = function (clientRect, toStart) {\n var newClientRect = collapse(clientRect, toStart);\n newClientRect.width = 1;\n newClientRect.right = newClientRect.left + 1;\n return newClientRect;\n };\n var getCaretPositionClientRects = function (caretPosition) {\n var clientRects = [];\n var beforeNode, node;\n var addUniqueAndValidRect = function (clientRect) {\n if (clientRect.height === 0) {\n return;\n }\n if (clientRects.length > 0) {\n if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\n return;\n }\n }\n clientRects.push(clientRect);\n };\n var addCharacterOffset = function (container, offset) {\n var range = createRange(container.ownerDocument);\n if (offset < container.data.length) {\n if (isExtendingChar(container.data[offset])) {\n return clientRects;\n }\n if (isExtendingChar(container.data[offset - 1])) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));\n return clientRects;\n }\n }\n }\n if (offset > 0) {\n range.setStart(container, offset - 1);\n range.setEnd(container, offset);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), false));\n }\n }\n if (offset < container.data.length) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range), true));\n }\n }\n };\n if (isText$4(caretPosition.container())) {\n addCharacterOffset(caretPosition.container(), caretPosition.offset());\n return clientRects;\n }\n if (isElement$3(caretPosition.container())) {\n if (caretPosition.isAtEnd()) {\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\n if (isText$4(node)) {\n addCharacterOffset(node, node.data.length);\n }\n if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\n }\n } else {\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\n if (isText$4(node)) {\n addCharacterOffset(node, 0);\n }\n if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\n return clientRects;\n }\n beforeNode = resolveIndex(caretPosition.container(), caretPosition.offset() - 1);\n if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\n if (isBlock$1(beforeNode) || isBlock$1(node) || !isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(beforeNode), false));\n }\n }\n if (isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), true));\n }\n }\n }\n return clientRects;\n };\n function CaretPosition(container, offset, clientRects) {\n var isAtStart = function () {\n if (isText$4(container)) {\n return offset === 0;\n }\n return offset === 0;\n };\n var isAtEnd = function () {\n if (isText$4(container)) {\n return offset >= container.data.length;\n }\n return offset >= container.childNodes.length;\n };\n var toRange = function () {\n var range;\n range = createRange(container.ownerDocument);\n range.setStart(container, offset);\n range.setEnd(container, offset);\n return range;\n };\n var getClientRects = function () {\n if (!clientRects) {\n clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\n }\n return clientRects;\n };\n var isVisible = function () {\n return getClientRects().length > 0;\n };\n var isEqual = function (caretPosition) {\n return caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\n };\n var getNode = function (before) {\n return resolveIndex(container, before ? offset - 1 : offset);\n };\n return {\n container: constant(container),\n offset: constant(offset),\n toRange: toRange,\n getClientRects: getClientRects,\n isVisible: isVisible,\n isAtStart: isAtStart,\n isAtEnd: isAtEnd,\n isEqual: isEqual,\n getNode: getNode\n };\n }\n (function (CaretPosition) {\n CaretPosition.fromRangeStart = function (range) {\n return CaretPosition(range.startContainer, range.startOffset);\n };\n CaretPosition.fromRangeEnd = function (range) {\n return CaretPosition(range.endContainer, range.endOffset);\n };\n CaretPosition.after = function (node) {\n return CaretPosition(node.parentNode, nodeIndex(node) + 1);\n };\n CaretPosition.before = function (node) {\n return CaretPosition(node.parentNode, nodeIndex(node));\n };\n CaretPosition.isAbove = function (pos1, pos2) {\n return liftN([\n head(pos2.getClientRects()),\n last(pos1.getClientRects())\n ], isAbove).getOr(false);\n };\n CaretPosition.isBelow = function (pos1, pos2) {\n return liftN([\n last(pos2.getClientRects()),\n head(pos1.getClientRects())\n ], isBelow).getOr(false);\n };\n CaretPosition.isAtStart = function (pos) {\n return pos ? pos.isAtStart() : false;\n };\n CaretPosition.isAtEnd = function (pos) {\n return pos ? pos.isAtEnd() : false;\n };\n CaretPosition.isTextPosition = function (pos) {\n return pos ? NodeType.isText(pos.container()) : false;\n };\n CaretPosition.isElementPosition = function (pos) {\n return CaretPosition.isTextPosition(pos) === false;\n };\n }(CaretPosition || (CaretPosition = {})));\n var CaretPosition$1 = CaretPosition;\n\n var isText$5 = NodeType.isText;\n var isBogus$1 = NodeType.isBogus;\n var nodeIndex$1 = DOMUtils$1.nodeIndex;\n var normalizedParent = function (node) {\n var parentNode = node.parentNode;\n if (isBogus$1(parentNode)) {\n return normalizedParent(parentNode);\n }\n return parentNode;\n };\n var getChildNodes = function (node) {\n if (!node) {\n return [];\n }\n return ArrUtils.reduce(node.childNodes, function (result, node) {\n if (isBogus$1(node) && node.nodeName !== 'BR') {\n result = result.concat(getChildNodes(node));\n } else {\n result.push(node);\n }\n return result;\n }, []);\n };\n var normalizedTextOffset = function (node, offset) {\n while (node = node.previousSibling) {\n if (!isText$5(node)) {\n break;\n }\n offset += node.data.length;\n }\n return offset;\n };\n var equal$1 = function (a) {\n return function (b) {\n return a === b;\n };\n };\n var normalizedNodeIndex = function (node) {\n var nodes, index, numTextFragments;\n nodes = getChildNodes(normalizedParent(node));\n index = ArrUtils.findIndex(nodes, equal$1(node), node);\n nodes = nodes.slice(0, index + 1);\n numTextFragments = ArrUtils.reduce(nodes, function (result, node, i) {\n if (isText$5(node) && isText$5(nodes[i - 1])) {\n result++;\n }\n return result;\n }, 0);\n nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames(node.nodeName));\n index = ArrUtils.findIndex(nodes, equal$1(node), node);\n return index - numTextFragments;\n };\n var createPathItem = function (node) {\n var name;\n if (isText$5(node)) {\n name = 'text()';\n } else {\n name = node.nodeName.toLowerCase();\n }\n return name + '[' + normalizedNodeIndex(node) + ']';\n };\n var parentsUntil = function (root, node, predicate) {\n var parents = [];\n for (node = node.parentNode; node !== root; node = node.parentNode) {\n if (predicate && predicate(node)) {\n break;\n }\n parents.push(node);\n }\n return parents;\n };\n var create$2 = function (root, caretPosition) {\n var container, offset, path = [], outputOffset, childNodes, parents;\n container = caretPosition.container();\n offset = caretPosition.offset();\n if (isText$5(container)) {\n outputOffset = normalizedTextOffset(container, offset);\n } else {\n childNodes = container.childNodes;\n if (offset >= childNodes.length) {\n outputOffset = 'after';\n offset = childNodes.length - 1;\n } else {\n outputOffset = 'before';\n }\n container = childNodes[offset];\n }\n path.push(createPathItem(container));\n parents = parentsUntil(root, container);\n parents = ArrUtils.filter(parents, not(NodeType.isBogus));\n path = path.concat(ArrUtils.map(parents, function (node) {\n return createPathItem(node);\n }));\n return path.reverse().join('/') + ',' + outputOffset;\n };\n var resolvePathItem = function (node, name, index) {\n var nodes = getChildNodes(node);\n nodes = ArrUtils.filter(nodes, function (node, index) {\n return !isText$5(node) || !isText$5(nodes[index - 1]);\n });\n nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames(name));\n return nodes[index];\n };\n var findTextPosition = function (container, offset) {\n var node = container, targetOffset = 0, dataLen;\n while (isText$5(node)) {\n dataLen = node.data.length;\n if (offset >= targetOffset && offset <= targetOffset + dataLen) {\n container = node;\n offset = offset - targetOffset;\n break;\n }\n if (!isText$5(node.nextSibling)) {\n container = node;\n offset = dataLen;\n break;\n }\n targetOffset += dataLen;\n node = node.nextSibling;\n }\n if (isText$5(container) && offset > container.data.length) {\n offset = container.data.length;\n }\n return CaretPosition$1(container, offset);\n };\n var resolve$2 = function (root, path) {\n var parts, container, offset;\n if (!path) {\n return null;\n }\n parts = path.split(',');\n path = parts[0].split('/');\n offset = parts.length > 1 ? parts[1] : 'before';\n container = ArrUtils.reduce(path, function (result, value) {\n value = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\n if (!value) {\n return null;\n }\n if (value[1] === 'text()') {\n value[1] = '#text';\n }\n return resolvePathItem(result, value[1], parseInt(value[2], 10));\n }, root);\n if (!container) {\n return null;\n }\n if (!isText$5(container)) {\n if (offset === 'after') {\n offset = nodeIndex$1(container) + 1;\n } else {\n offset = nodeIndex$1(container);\n }\n return CaretPosition$1(container.parentNode, offset);\n }\n return findTextPosition(container, parseInt(offset, 10));\n };\n\n var trimEmptyTextNode = function (dom, node) {\n if (NodeType.isText(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n var insertNode = function (dom, rng, node) {\n rng.insertNode(node);\n trimEmptyTextNode(dom, node.previousSibling);\n trimEmptyTextNode(dom, node.nextSibling);\n };\n var insertFragment = function (dom, rng, frag) {\n var firstChild = Option.from(frag.firstChild);\n var lastChild = Option.from(frag.lastChild);\n rng.insertNode(frag);\n firstChild.each(function (child) {\n return trimEmptyTextNode(dom, child.previousSibling);\n });\n lastChild.each(function (child) {\n return trimEmptyTextNode(dom, child.nextSibling);\n });\n };\n var rangeInsertNode = function (dom, rng, node) {\n if (NodeType.isDocumentFragment(node)) {\n insertFragment(dom, rng, node);\n } else {\n insertNode(dom, rng, node);\n }\n };\n\n var isContentEditableFalse$2 = NodeType.isContentEditableFalse;\n var getNormalizedTextOffset = function (trim, container, offset) {\n var node, trimmedOffset;\n trimmedOffset = trim(container.data.slice(0, offset)).length;\n for (node = container.previousSibling; node && NodeType.isText(node); node = node.previousSibling) {\n trimmedOffset += trim(node.data).length;\n }\n return trimmedOffset;\n };\n var getPoint = function (dom, trim, normalized, rng, start) {\n var container = rng[start ? 'startContainer' : 'endContainer'];\n var offset = rng[start ? 'startOffset' : 'endOffset'];\n var point = [];\n var childNodes, after = 0;\n var root = dom.getRoot();\n if (NodeType.isText(container)) {\n point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset);\n } else {\n childNodes = container.childNodes;\n if (offset >= childNodes.length && childNodes.length) {\n after = 1;\n offset = Math.max(0, childNodes.length - 1);\n }\n point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\n }\n for (; container && container !== root; container = container.parentNode) {\n point.push(dom.nodeIndex(container, normalized));\n }\n return point;\n };\n var getLocation = function (trim, selection, normalized, rng) {\n var dom = selection.dom, bookmark = {};\n bookmark.start = getPoint(dom, trim, normalized, rng, true);\n if (!selection.isCollapsed()) {\n bookmark.end = getPoint(dom, trim, normalized, rng, false);\n }\n return bookmark;\n };\n var findIndex$2 = function (dom, name, element) {\n var count = 0;\n Tools.each(dom.select(name), function (node) {\n if (node.getAttribute('data-mce-bogus') === 'all') {\n return;\n }\n if (node === element) {\n return false;\n }\n count++;\n });\n return count;\n };\n var moveEndPoint = function (rng, start) {\n var container, offset, childNodes;\n var prefix = start ? 'start' : 'end';\n container = rng[prefix + 'Container'];\n offset = rng[prefix + 'Offset'];\n if (NodeType.isElement(container) && container.nodeName === 'TR') {\n childNodes = container.childNodes;\n container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\n if (container) {\n offset = start ? 0 : container.childNodes.length;\n rng['set' + (start ? 'Start' : 'End')](container, offset);\n }\n }\n };\n var normalizeTableCellSelection = function (rng) {\n moveEndPoint(rng, true);\n moveEndPoint(rng, false);\n return rng;\n };\n var findSibling = function (node, offset) {\n var sibling;\n if (NodeType.isElement(node)) {\n node = getNode(node, offset);\n if (isContentEditableFalse$2(node)) {\n return node;\n }\n }\n if (isCaretContainer(node)) {\n if (NodeType.isText(node) && isCaretContainerBlock(node)) {\n node = node.parentNode;\n }\n sibling = node.previousSibling;\n if (isContentEditableFalse$2(sibling)) {\n return sibling;\n }\n sibling = node.nextSibling;\n if (isContentEditableFalse$2(sibling)) {\n return sibling;\n }\n }\n };\n var findAdjacentContentEditableFalseElm = function (rng) {\n return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\n };\n var getOffsetBookmark = function (trim, normalized, selection) {\n var element = selection.getNode();\n var name = element ? element.nodeName : null;\n var rng = selection.getRng();\n if (isContentEditableFalse$2(element) || name === 'IMG') {\n return {\n name: name,\n index: findIndex$2(selection.dom, name, element)\n };\n }\n var sibling = findAdjacentContentEditableFalseElm(rng);\n if (sibling) {\n name = sibling.tagName;\n return {\n name: name,\n index: findIndex$2(selection.dom, name, sibling)\n };\n }\n return getLocation(trim, selection, normalized, rng);\n };\n var getCaretBookmark = function (selection) {\n var rng = selection.getRng();\n return {\n start: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)),\n end: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng))\n };\n };\n var getRangeBookmark = function (selection) {\n return { rng: selection.getRng() };\n };\n var createBookmarkSpan = function (dom, id, filled) {\n var args = {\n 'data-mce-type': 'bookmark',\n 'id': id,\n 'style': 'overflow:hidden;line-height:0px'\n };\n return filled ? dom.create('span', args, '') : dom.create('span', args);\n };\n var getPersistentBookmark = function (selection, filled) {\n var dom = selection.dom;\n var rng = selection.getRng();\n var id = dom.uniqueId();\n var collapsed = selection.isCollapsed();\n var element = selection.getNode();\n var name = element.nodeName;\n if (name === 'IMG') {\n return {\n name: name,\n index: findIndex$2(dom, name, element)\n };\n }\n var rng2 = normalizeTableCellSelection(rng.cloneRange());\n if (!collapsed) {\n rng2.collapse(false);\n var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\n rangeInsertNode(dom, rng2, endBookmarkNode);\n }\n rng = normalizeTableCellSelection(rng);\n rng.collapse(true);\n var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\n rangeInsertNode(dom, rng, startBookmarkNode);\n selection.moveToBookmark({\n id: id,\n keep: 1\n });\n return { id: id };\n };\n var getBookmark = function (selection, type, normalized) {\n if (type === 2) {\n return getOffsetBookmark(Zwsp.trim, normalized, selection);\n } else if (type === 3) {\n return getCaretBookmark(selection);\n } else if (type) {\n return getRangeBookmark(selection);\n } else {\n return getPersistentBookmark(selection, false);\n }\n };\n var GetBookmark = {\n getBookmark: getBookmark,\n getUndoBookmark: curry(getOffsetBookmark, identity, true),\n getPersistentBookmark: getPersistentBookmark\n };\n\n var CARET_ID = '_mce_caret';\n var isCaretNode = function (node) {\n return NodeType.isElement(node) && node.id === CARET_ID;\n };\n var getParentCaretContainer = function (body, node) {\n while (node && node !== body) {\n if (node.id === CARET_ID) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n\n var isElement$4 = NodeType.isElement;\n var isText$6 = NodeType.isText;\n var removeNode = function (node) {\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.removeChild(node);\n }\n };\n var getNodeValue = function (node) {\n try {\n return node.nodeValue;\n } catch (ex) {\n return '';\n }\n };\n var setNodeValue = function (node, text) {\n if (text.length === 0) {\n removeNode(node);\n } else {\n node.nodeValue = text;\n }\n };\n var trimCount = function (text) {\n var trimmedText = Zwsp.trim(text);\n return {\n count: text.length - trimmedText.length,\n text: trimmedText\n };\n };\n var removeUnchanged = function (caretContainer, pos) {\n remove$5(caretContainer);\n return pos;\n };\n var removeTextAndReposition = function (caretContainer, pos) {\n var before = trimCount(caretContainer.data.substr(0, pos.offset()));\n var after = trimCount(caretContainer.data.substr(pos.offset()));\n var text = before.text + after.text;\n if (text.length > 0) {\n setNodeValue(caretContainer, text);\n return CaretPosition$1(caretContainer, pos.offset() - before.count);\n } else {\n return pos;\n }\n };\n var removeElementAndReposition = function (caretContainer, pos) {\n var parentNode = pos.container();\n var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) {\n return index < pos.offset() ? CaretPosition$1(parentNode, pos.offset() - 1) : pos;\n }).getOr(pos);\n remove$5(caretContainer);\n return newPosition;\n };\n var removeTextCaretContainer = function (caretContainer, pos) {\n return isText$6(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n };\n var removeElementCaretContainer = function (caretContainer, pos) {\n return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n };\n var removeAndReposition = function (container, pos) {\n return CaretPosition$1.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\n };\n var remove$5 = function (caretContainerNode) {\n if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) {\n if (hasContent(caretContainerNode)) {\n caretContainerNode.removeAttribute('data-mce-caret');\n } else {\n removeNode(caretContainerNode);\n }\n }\n if (isText$6(caretContainerNode)) {\n var text = Zwsp.trim(getNodeValue(caretContainerNode));\n setNodeValue(caretContainerNode, text);\n }\n };\n var CaretContainerRemove = {\n removeAndReposition: removeAndReposition,\n remove: remove$5\n };\n\n var browser$2 = PlatformDetection$1.detect().browser;\n var isContentEditableFalse$3 = NodeType.isContentEditableFalse;\n var isTableCell$1 = function (node) {\n return NodeType.isElement(node) && /^(TD|TH)$/i.test(node.tagName);\n };\n var getAbsoluteClientRect = function (root, element, before) {\n var clientRect = collapse(element.getBoundingClientRect(), before);\n var docElm, scrollX, scrollY, margin, rootRect;\n if (root.tagName === 'BODY') {\n docElm = root.ownerDocument.documentElement;\n scrollX = root.scrollLeft || docElm.scrollLeft;\n scrollY = root.scrollTop || docElm.scrollTop;\n } else {\n rootRect = root.getBoundingClientRect();\n scrollX = root.scrollLeft - rootRect.left;\n scrollY = root.scrollTop - rootRect.top;\n }\n clientRect.left += scrollX;\n clientRect.right += scrollX;\n clientRect.top += scrollY;\n clientRect.bottom += scrollY;\n clientRect.width = 1;\n margin = element.offsetWidth - element.clientWidth;\n if (margin > 0) {\n if (before) {\n margin *= -1;\n }\n clientRect.left += margin;\n clientRect.right += margin;\n }\n return clientRect;\n };\n var trimInlineCaretContainers = function (root) {\n var contentEditableFalseNodes, node, sibling, i, data;\n contentEditableFalseNodes = DomQuery('*[contentEditable=false]', root);\n for (i = 0; i < contentEditableFalseNodes.length; i++) {\n node = contentEditableFalseNodes[i];\n sibling = node.previousSibling;\n if (endsWithCaretContainer(sibling)) {\n data = sibling.data;\n if (data.length === 1) {\n sibling.parentNode.removeChild(sibling);\n } else {\n sibling.deleteData(data.length - 1, 1);\n }\n }\n sibling = node.nextSibling;\n if (startsWithCaretContainer(sibling)) {\n data = sibling.data;\n if (data.length === 1) {\n sibling.parentNode.removeChild(sibling);\n } else {\n sibling.deleteData(0, 1);\n }\n }\n }\n };\n var FakeCaret = function (root, isBlock, hasFocus) {\n var lastVisualCaret = Cell(Option.none());\n var cursorInterval, caretContainerNode;\n var show = function (before, element) {\n var clientRect, rng;\n hide();\n if (isTableCell$1(element)) {\n return null;\n }\n if (isBlock(element)) {\n caretContainerNode = insertBlock('p', element, before);\n clientRect = getAbsoluteClientRect(root, element, before);\n DomQuery(caretContainerNode).css('top', clientRect.top);\n var caret = DomQuery('
').css(clientRect).appendTo(root)[0];\n lastVisualCaret.set(Option.some({\n caret: caret,\n element: element,\n before: before\n }));\n lastVisualCaret.get().each(function (caretState) {\n if (before) {\n DomQuery(caretState.caret).addClass('mce-visual-caret-before');\n }\n });\n startBlink();\n rng = element.ownerDocument.createRange();\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n caretContainerNode = insertInline(element, before);\n rng = element.ownerDocument.createRange();\n if (isContentEditableFalse$3(caretContainerNode.nextSibling)) {\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n rng.setStart(caretContainerNode, 1);\n rng.setEnd(caretContainerNode, 1);\n }\n return rng;\n }\n return rng;\n };\n var hide = function () {\n trimInlineCaretContainers(root);\n if (caretContainerNode) {\n CaretContainerRemove.remove(caretContainerNode);\n caretContainerNode = null;\n }\n lastVisualCaret.get().each(function (caretState) {\n DomQuery(caretState.caret).remove();\n lastVisualCaret.set(Option.none());\n });\n Delay.clearInterval(cursorInterval);\n };\n var startBlink = function () {\n cursorInterval = Delay.setInterval(function () {\n if (hasFocus()) {\n DomQuery('div.mce-visual-caret', root).toggleClass('mce-visual-caret-hidden');\n } else {\n DomQuery('div.mce-visual-caret', root).addClass('mce-visual-caret-hidden');\n }\n }, 500);\n };\n var reposition = function () {\n lastVisualCaret.get().each(function (caretState) {\n var clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\n DomQuery(caretState.caret).css(__assign({}, clientRect));\n });\n };\n var destroy = function () {\n return Delay.clearInterval(cursorInterval);\n };\n var getCss = function () {\n return '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\n };\n return {\n show: show,\n hide: hide,\n getCss: getCss,\n reposition: reposition,\n destroy: destroy\n };\n };\n var isFakeCaretTableBrowser = function () {\n return browser$2.isIE() || browser$2.isEdge() || browser$2.isFirefox();\n };\n var isFakeCaretTarget = function (node) {\n return isContentEditableFalse$3(node) || NodeType.isTable(node) && isFakeCaretTableBrowser();\n };\n\n var isContentEditableFalse$4 = NodeType.isContentEditableFalse;\n var isBlockLike = NodeType.matchStyleValues('display', 'block table table-cell table-caption list-item');\n var isCaretContainer$2 = isCaretContainer;\n var isCaretContainerBlock$1 = isCaretContainerBlock;\n var isElement$5 = NodeType.isElement;\n var isCaretCandidate$2 = isCaretCandidate;\n var isForwards = function (direction) {\n return direction > 0;\n };\n var isBackwards = function (direction) {\n return direction < 0;\n };\n var skipCaretContainers = function (walk, shallow) {\n var node;\n while (node = walk(shallow)) {\n if (!isCaretContainerBlock$1(node)) {\n return node;\n }\n }\n return null;\n };\n var findNode = function (node, direction, predicateFn, rootNode, shallow) {\n var walker = new TreeWalker(node, rootNode);\n if (isBackwards(direction)) {\n if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {\n node = skipCaretContainers(walker.prev, true);\n if (predicateFn(node)) {\n return node;\n }\n }\n while (node = skipCaretContainers(walker.prev, shallow)) {\n if (predicateFn(node)) {\n return node;\n }\n }\n }\n if (isForwards(direction)) {\n if (isContentEditableFalse$4(node) || isCaretContainerBlock$1(node)) {\n node = skipCaretContainers(walker.next, true);\n if (predicateFn(node)) {\n return node;\n }\n }\n while (node = skipCaretContainers(walker.next, shallow)) {\n if (predicateFn(node)) {\n return node;\n }\n }\n }\n return null;\n };\n var getParentBlock = function (node, rootNode) {\n while (node && node !== rootNode) {\n if (isBlockLike(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var isInSameBlock = function (caretPosition1, caretPosition2, rootNode) {\n return getParentBlock(caretPosition1.container(), rootNode) === getParentBlock(caretPosition2.container(), rootNode);\n };\n var getChildNodeAtRelativeOffset = function (relativeOffset, caretPosition) {\n var container, offset;\n if (!caretPosition) {\n return null;\n }\n container = caretPosition.container();\n offset = caretPosition.offset();\n if (!isElement$5(container)) {\n return null;\n }\n return container.childNodes[offset + relativeOffset];\n };\n var beforeAfter = function (before, node) {\n var range = node.ownerDocument.createRange();\n if (before) {\n range.setStartBefore(node);\n range.setEndBefore(node);\n } else {\n range.setStartAfter(node);\n range.setEndAfter(node);\n }\n return range;\n };\n var isNodesInSameBlock = function (root, node1, node2) {\n return getParentBlock(node1, root) === getParentBlock(node2, root);\n };\n var lean = function (left, root, node) {\n var sibling, siblingName;\n if (left) {\n siblingName = 'previousSibling';\n } else {\n siblingName = 'nextSibling';\n }\n while (node && node !== root) {\n sibling = node[siblingName];\n if (isCaretContainer$2(sibling)) {\n sibling = sibling[siblingName];\n }\n if (isContentEditableFalse$4(sibling)) {\n if (isNodesInSameBlock(root, sibling, node)) {\n return sibling;\n }\n break;\n }\n if (isCaretCandidate$2(sibling)) {\n break;\n }\n node = node.parentNode;\n }\n return null;\n };\n var before$2 = curry(beforeAfter, true);\n var after$1 = curry(beforeAfter, false);\n var normalizeRange = function (direction, root, range) {\n var node, container, offset, location;\n var leanLeft = curry(lean, true, root);\n var leanRight = curry(lean, false, root);\n container = range.startContainer;\n offset = range.startOffset;\n if (isCaretContainerBlock(container)) {\n if (!isElement$5(container)) {\n container = container.parentNode;\n }\n location = container.getAttribute('data-mce-caret');\n if (location === 'before') {\n node = container.nextSibling;\n if (isFakeCaretTarget(node)) {\n return before$2(node);\n }\n }\n if (location === 'after') {\n node = container.previousSibling;\n if (isFakeCaretTarget(node)) {\n return after$1(node);\n }\n }\n }\n if (!range.collapsed) {\n return range;\n }\n if (NodeType.isText(container)) {\n if (isCaretContainer$2(container)) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n }\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (endsWithCaretContainer(container) && offset >= container.data.length - 1) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (startsWithCaretContainer(container) && offset <= 1) {\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n }\n return range;\n }\n if (offset === container.data.length) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n return range;\n }\n if (offset === 0) {\n node = leanLeft(container);\n if (node) {\n return after$1(node);\n }\n return range;\n }\n }\n return range;\n };\n var getRelativeCefElm = function (forward, caretPosition) {\n return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$4);\n };\n var getNormalizedRangeEndPoint = function (direction, root, range) {\n var normalizedRange = normalizeRange(direction, root, range);\n if (direction === -1) {\n return CaretPosition.fromRangeStart(normalizedRange);\n }\n return CaretPosition.fromRangeEnd(normalizedRange);\n };\n var getElementFromPosition = function (pos) {\n return Option.from(pos.getNode()).map(Element.fromDom);\n };\n var getElementFromPrevPosition = function (pos) {\n return Option.from(pos.getNode(true)).map(Element.fromDom);\n };\n var getVisualCaretPosition = function (walkFn, caretPosition) {\n while (caretPosition = walkFn(caretPosition)) {\n if (caretPosition.isVisible()) {\n return caretPosition;\n }\n }\n return caretPosition;\n };\n var isMoveInsideSameBlock = function (from, to) {\n var inSameBlock = isInSameBlock(from, to);\n if (!inSameBlock && NodeType.isBr(from.getNode())) {\n return true;\n }\n return inSameBlock;\n };\n\n var HDirection;\n (function (HDirection) {\n HDirection[HDirection['Backwards'] = -1] = 'Backwards';\n HDirection[HDirection['Forwards'] = 1] = 'Forwards';\n }(HDirection || (HDirection = {})));\n var isContentEditableFalse$5 = NodeType.isContentEditableFalse;\n var isText$7 = NodeType.isText;\n var isElement$6 = NodeType.isElement;\n var isBr$4 = NodeType.isBr;\n var isCaretCandidate$3 = isCaretCandidate;\n var isAtomic$1 = isAtomic;\n var isEditableCaretCandidate$1 = isEditableCaretCandidate;\n var getParents = function (node, root) {\n var parents = [];\n while (node && node !== root) {\n parents.push(node);\n node = node.parentNode;\n }\n return parents;\n };\n var nodeAtIndex = function (container, offset) {\n if (container.hasChildNodes() && offset < container.childNodes.length) {\n return container.childNodes[offset];\n }\n return null;\n };\n var getCaretCandidatePosition = function (direction, node) {\n if (isForwards(direction)) {\n if (isCaretCandidate$3(node.previousSibling) && !isText$7(node.previousSibling)) {\n return CaretPosition$1.before(node);\n }\n if (isText$7(node)) {\n return CaretPosition$1(node, 0);\n }\n }\n if (isBackwards(direction)) {\n if (isCaretCandidate$3(node.nextSibling) && !isText$7(node.nextSibling)) {\n return CaretPosition$1.after(node);\n }\n if (isText$7(node)) {\n return CaretPosition$1(node, node.data.length);\n }\n }\n if (isBackwards(direction)) {\n if (isBr$4(node)) {\n return CaretPosition$1.before(node);\n }\n return CaretPosition$1.after(node);\n }\n return CaretPosition$1.before(node);\n };\n var moveForwardFromBr = function (root, nextNode) {\n var nextSibling = nextNode.nextSibling;\n if (nextSibling && isCaretCandidate$3(nextSibling)) {\n if (isText$7(nextSibling)) {\n return CaretPosition$1(nextSibling, 0);\n } else {\n return CaretPosition$1.before(nextSibling);\n }\n } else {\n return findCaretPosition(HDirection.Forwards, CaretPosition$1.after(nextNode), root);\n }\n };\n var findCaretPosition = function (direction, startPos, root) {\n var node, nextNode, innerNode;\n var rootContentEditableFalseElm, caretPosition;\n if (!isElement$6(root) || !startPos) {\n return null;\n }\n if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) {\n caretPosition = CaretPosition$1.after(root.lastChild);\n if (isBackwards(direction) && isCaretCandidate$3(root.lastChild) && isElement$6(root.lastChild)) {\n return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition;\n }\n } else {\n caretPosition = startPos;\n }\n var container = caretPosition.container();\n var offset = caretPosition.offset();\n if (isText$7(container)) {\n if (isBackwards(direction) && offset > 0) {\n return CaretPosition$1(container, --offset);\n }\n if (isForwards(direction) && offset < container.length) {\n return CaretPosition$1(container, ++offset);\n }\n node = container;\n } else {\n if (isBackwards(direction) && offset > 0) {\n nextNode = nodeAtIndex(container, offset - 1);\n if (isCaretCandidate$3(nextNode)) {\n if (!isAtomic$1(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\n if (innerNode) {\n if (isText$7(innerNode)) {\n return CaretPosition$1(innerNode, innerNode.data.length);\n }\n return CaretPosition$1.after(innerNode);\n }\n }\n if (isText$7(nextNode)) {\n return CaretPosition$1(nextNode, nextNode.data.length);\n }\n return CaretPosition$1.before(nextNode);\n }\n }\n if (isForwards(direction) && offset < container.childNodes.length) {\n nextNode = nodeAtIndex(container, offset);\n if (isCaretCandidate$3(nextNode)) {\n if (isBr$4(nextNode)) {\n return moveForwardFromBr(root, nextNode);\n }\n if (!isAtomic$1(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\n if (innerNode) {\n if (isText$7(innerNode)) {\n return CaretPosition$1(innerNode, 0);\n }\n return CaretPosition$1.before(innerNode);\n }\n }\n if (isText$7(nextNode)) {\n return CaretPosition$1(nextNode, 0);\n }\n return CaretPosition$1.after(nextNode);\n }\n }\n node = nextNode ? nextNode : caretPosition.getNode();\n }\n if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) {\n node = findNode(node, direction, constant(true), root, true);\n if (isEditableCaretCandidate$1(node, root)) {\n return getCaretCandidatePosition(direction, node);\n }\n }\n nextNode = findNode(node, direction, isEditableCaretCandidate$1, root);\n rootContentEditableFalseElm = ArrUtils.last(filter(getParents(container, root), isContentEditableFalse$5));\n if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n if (isForwards(direction)) {\n caretPosition = CaretPosition$1.after(rootContentEditableFalseElm);\n } else {\n caretPosition = CaretPosition$1.before(rootContentEditableFalseElm);\n }\n return caretPosition;\n }\n if (nextNode) {\n return getCaretCandidatePosition(direction, nextNode);\n }\n return null;\n };\n var CaretWalker = function (root) {\n return {\n next: function (caretPosition) {\n return findCaretPosition(HDirection.Forwards, caretPosition, root);\n },\n prev: function (caretPosition) {\n return findCaretPosition(HDirection.Backwards, caretPosition, root);\n }\n };\n };\n\n var walkToPositionIn = function (forward, root, start) {\n var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start);\n return fromPosition(forward, root, position);\n };\n var afterElement = function (node) {\n return NodeType.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node);\n };\n var isBeforeOrStart = function (position) {\n if (CaretPosition$1.isTextPosition(position)) {\n return position.offset() === 0;\n } else {\n return isCaretCandidate(position.getNode());\n }\n };\n var isAfterOrEnd = function (position) {\n if (CaretPosition$1.isTextPosition(position)) {\n var container = position.container();\n return position.offset() === container.data.length;\n } else {\n return isCaretCandidate(position.getNode(true));\n }\n };\n var isBeforeAfterSameElement = function (from, to) {\n return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true);\n };\n var isAtBr = function (position) {\n return !CaretPosition$1.isTextPosition(position) && NodeType.isBr(position.getNode());\n };\n var shouldSkipPosition = function (forward, from, to) {\n if (forward) {\n return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\n } else {\n return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\n }\n };\n var fromPosition = function (forward, root, pos) {\n var walker = CaretWalker(root);\n return Option.from(forward ? walker.next(pos) : walker.prev(pos));\n };\n var navigate = function (forward, root, from) {\n return fromPosition(forward, root, from).bind(function (to) {\n if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\n return fromPosition(forward, root, to);\n } else {\n return Option.some(to);\n }\n });\n };\n var navigateIgnore = function (forward, root, from, ignoreFilter) {\n return navigate(forward, root, from).bind(function (pos) {\n return ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Option.some(pos);\n });\n };\n var positionIn = function (forward, element) {\n var startNode = forward ? element.firstChild : element.lastChild;\n if (NodeType.isText(startNode)) {\n return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length));\n } else if (startNode) {\n if (isCaretCandidate(startNode)) {\n return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode));\n } else {\n return walkToPositionIn(forward, element, startNode);\n }\n } else {\n return Option.none();\n }\n };\n var nextPosition = curry(fromPosition, true);\n var prevPosition = curry(fromPosition, false);\n var CaretFinder = {\n fromPosition: fromPosition,\n nextPosition: nextPosition,\n prevPosition: prevPosition,\n navigate: navigate,\n navigateIgnore: navigateIgnore,\n positionIn: positionIn,\n firstPositionIn: curry(positionIn, true),\n lastPositionIn: curry(positionIn, false)\n };\n\n var isStringPathBookmark = function (bookmark) {\n return typeof bookmark.start === 'string';\n };\n var isRangeBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('rng');\n };\n var isIdBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('id');\n };\n var isIndexBookmark = function (bookmark) {\n return bookmark.hasOwnProperty('name');\n };\n var isPathBookmark = function (bookmark) {\n return Tools.isArray(bookmark.start);\n };\n\n var addBogus = function (dom, node) {\n if (dom.isBlock(node) && !node.innerHTML && !Env.ie) {\n node.innerHTML = '
';\n }\n return node;\n };\n var resolveCaretPositionBookmark = function (dom, bookmark) {\n var rng, pos;\n rng = dom.createRng();\n pos = resolve$2(dom.getRoot(), bookmark.start);\n rng.setStart(pos.container(), pos.offset());\n pos = resolve$2(dom.getRoot(), bookmark.end);\n rng.setEnd(pos.container(), pos.offset());\n return rng;\n };\n var insertZwsp = function (node, rng) {\n var textNode = node.ownerDocument.createTextNode(Zwsp.ZWSP);\n node.appendChild(textNode);\n rng.setStart(textNode, 0);\n rng.setEnd(textNode, 0);\n };\n var isEmpty = function (node) {\n return node.hasChildNodes() === false;\n };\n var tryFindRangePosition = function (node, rng) {\n return CaretFinder.lastPositionIn(node).fold(function () {\n return false;\n }, function (pos) {\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n return true;\n });\n };\n var padEmptyCaretContainer = function (root, node, rng) {\n if (isEmpty(node) && getParentCaretContainer(root, node)) {\n insertZwsp(node, rng);\n return true;\n } else {\n return false;\n }\n };\n var setEndPoint = function (dom, start, bookmark, rng) {\n var point = bookmark[start ? 'start' : 'end'];\n var i, node, offset, children;\n var root = dom.getRoot();\n if (point) {\n offset = point[0];\n for (node = root, i = point.length - 1; i >= 1; i--) {\n children = node.childNodes;\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n if (point[i] > children.length - 1) {\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n return tryFindRangePosition(node, rng);\n }\n node = children[point[i]];\n }\n if (node.nodeType === 3) {\n offset = Math.min(point[0], node.nodeValue.length);\n }\n if (node.nodeType === 1) {\n offset = Math.min(point[0], node.childNodes.length);\n }\n if (start) {\n rng.setStart(node, offset);\n } else {\n rng.setEnd(node, offset);\n }\n }\n return true;\n };\n var isValidTextNode = function (node) {\n return NodeType.isText(node) && node.data.length > 0;\n };\n var restoreEndPoint = function (dom, suffix, bookmark) {\n var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev;\n var keep = bookmark.keep;\n var container, offset;\n if (marker) {\n node = marker.parentNode;\n if (suffix === 'start') {\n if (!keep) {\n idx = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n node = marker.firstChild;\n idx = 1;\n } else if (isValidTextNode(marker.nextSibling)) {\n node = marker.nextSibling;\n idx = 0;\n } else if (isValidTextNode(marker.previousSibling)) {\n node = marker.previousSibling;\n idx = marker.previousSibling.data.length;\n } else {\n node = marker.parentNode;\n idx = dom.nodeIndex(marker) + 1;\n }\n }\n container = node;\n offset = idx;\n } else {\n if (!keep) {\n idx = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n node = marker.firstChild;\n idx = 1;\n } else if (isValidTextNode(marker.previousSibling)) {\n node = marker.previousSibling;\n idx = marker.previousSibling.data.length;\n } else {\n node = marker.parentNode;\n idx = dom.nodeIndex(marker);\n }\n }\n container = node;\n offset = idx;\n }\n if (!keep) {\n prev = marker.previousSibling;\n next = marker.nextSibling;\n Tools.each(Tools.grep(marker.childNodes), function (node) {\n if (NodeType.isText(node)) {\n node.nodeValue = node.nodeValue.replace(/\\uFEFF/g, '');\n }\n });\n while (marker = dom.get(bookmark.id + '_' + suffix)) {\n dom.remove(marker, true);\n }\n if (prev && next && prev.nodeType === next.nodeType && NodeType.isText(prev) && !Env.opera) {\n idx = prev.nodeValue.length;\n prev.appendData(next.nodeValue);\n dom.remove(next);\n if (suffix === 'start') {\n container = prev;\n offset = idx;\n } else {\n container = prev;\n offset = idx;\n }\n }\n }\n return Option.some(CaretPosition$1(container, offset));\n } else {\n return Option.none();\n }\n };\n var alt = function (o1, o2) {\n return o1.isSome() ? o1 : o2;\n };\n var resolvePaths = function (dom, bookmark) {\n var rng = dom.createRng();\n if (setEndPoint(dom, true, bookmark, rng) && setEndPoint(dom, false, bookmark, rng)) {\n return Option.some(rng);\n } else {\n return Option.none();\n }\n };\n var resolveId = function (dom, bookmark) {\n var startPos = restoreEndPoint(dom, 'start', bookmark);\n var endPos = restoreEndPoint(dom, 'end', bookmark);\n return liftN([\n startPos,\n alt(endPos, startPos)\n ], function (spos, epos) {\n var rng = dom.createRng();\n rng.setStart(addBogus(dom, spos.container()), spos.offset());\n rng.setEnd(addBogus(dom, epos.container()), epos.offset());\n return rng;\n });\n };\n var resolveIndex$1 = function (dom, bookmark) {\n return Option.from(dom.select(bookmark.name)[bookmark.index]).map(function (elm) {\n var rng = dom.createRng();\n rng.selectNode(elm);\n return rng;\n });\n };\n var resolve$3 = function (selection, bookmark) {\n var dom = selection.dom;\n if (bookmark) {\n if (isPathBookmark(bookmark)) {\n return resolvePaths(dom, bookmark);\n } else if (isStringPathBookmark(bookmark)) {\n return Option.some(resolveCaretPositionBookmark(dom, bookmark));\n } else if (isIdBookmark(bookmark)) {\n return resolveId(dom, bookmark);\n } else if (isIndexBookmark(bookmark)) {\n return resolveIndex$1(dom, bookmark);\n } else if (isRangeBookmark(bookmark)) {\n return Option.some(bookmark.rng);\n }\n }\n return Option.none();\n };\n var ResolveBookmark = { resolve: resolve$3 };\n\n var getBookmark$1 = function (selection, type, normalized) {\n return GetBookmark.getBookmark(selection, type, normalized);\n };\n var moveToBookmark = function (selection, bookmark) {\n ResolveBookmark.resolve(selection, bookmark).each(function (rng) {\n selection.setRng(rng);\n });\n };\n var isBookmarkNode$1 = function (node) {\n return NodeType.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n var Bookmarks = {\n getBookmark: getBookmark$1,\n moveToBookmark: moveToBookmark,\n isBookmarkNode: isBookmarkNode$1\n };\n\n var isInlineBlock = function (node) {\n return node && /^(IMG)$/.test(node.nodeName);\n };\n var moveStart = function (dom, selection, rng) {\n var offset = rng.startOffset;\n var container = rng.startContainer, walker, node, nodes;\n if (rng.startContainer === rng.endContainer) {\n if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) {\n return;\n }\n }\n if (container.nodeType === 1) {\n nodes = container.childNodes;\n if (offset < nodes.length) {\n container = nodes[offset];\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\n } else {\n container = nodes[nodes.length - 1];\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\n walker.next(true);\n }\n for (node = walker.current(); node; node = walker.next()) {\n if (node.nodeType === 3 && !isWhiteSpaceNode(node)) {\n rng.setStart(node, 0);\n selection.setRng(rng);\n return;\n }\n }\n }\n };\n var getNonWhiteSpaceSibling = function (node, next, inc) {\n if (node) {\n next = next ? 'nextSibling' : 'previousSibling';\n for (node = inc ? node : node[next]; node; node = node[next]) {\n if (node.nodeType === 1 || !isWhiteSpaceNode(node)) {\n return node;\n }\n }\n }\n };\n var isTextBlock$1 = function (editor, name) {\n if (name.nodeType) {\n name = name.nodeName;\n }\n return !!editor.schema.getTextBlockElements()[name.toLowerCase()];\n };\n var isValid = function (ed, parent, child) {\n return ed.schema.isValidChild(parent, child);\n };\n var isWhiteSpaceNode = function (node) {\n return node && node.nodeType === 3 && /^([\\t \\r\\n]+|)$/.test(node.nodeValue);\n };\n var replaceVars = function (value, vars) {\n if (typeof value !== 'string') {\n value = value(vars);\n } else if (vars) {\n value = value.replace(/%(\\w+)/g, function (str, name) {\n return vars[name] || str;\n });\n }\n return value;\n };\n var isEq = function (str1, str2) {\n str1 = str1 || '';\n str2 = str2 || '';\n str1 = '' + (str1.nodeName || str1);\n str2 = '' + (str2.nodeName || str2);\n return str1.toLowerCase() === str2.toLowerCase();\n };\n var normalizeStyleValue = function (dom, value, name) {\n if (name === 'color' || name === 'backgroundColor') {\n value = dom.toHex(value);\n }\n if (name === 'fontWeight' && value === 700) {\n value = 'bold';\n }\n if (name === 'fontFamily') {\n value = value.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n }\n return '' + value;\n };\n var getStyle = function (dom, node, name) {\n return normalizeStyleValue(dom, dom.getStyle(node, name), name);\n };\n var getTextDecoration = function (dom, node) {\n var decoration;\n dom.getParent(node, function (n) {\n decoration = dom.getStyle(n, 'text-decoration');\n return decoration && decoration !== 'none';\n });\n return decoration;\n };\n var getParents$1 = function (dom, node, selector) {\n return dom.getParents(node, selector, dom.getRoot());\n };\n var FormatUtils = {\n isInlineBlock: isInlineBlock,\n moveStart: moveStart,\n getNonWhiteSpaceSibling: getNonWhiteSpaceSibling,\n isTextBlock: isTextBlock$1,\n isValid: isValid,\n isWhiteSpaceNode: isWhiteSpaceNode,\n replaceVars: replaceVars,\n isEq: isEq,\n normalizeStyleValue: normalizeStyleValue,\n getStyle: getStyle,\n getTextDecoration: getTextDecoration,\n getParents: getParents$1\n };\n\n var isBookmarkNode$2 = Bookmarks.isBookmarkNode;\n var getParents$2 = FormatUtils.getParents, isWhiteSpaceNode$1 = FormatUtils.isWhiteSpaceNode, isTextBlock$2 = FormatUtils.isTextBlock;\n var findLeaf = function (node, offset) {\n if (typeof offset === 'undefined') {\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\n }\n while (node && node.hasChildNodes()) {\n node = node.childNodes[offset];\n if (node) {\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\n }\n }\n return {\n node: node,\n offset: offset\n };\n };\n var excludeTrailingWhitespace = function (endContainer, endOffset) {\n var leaf = findLeaf(endContainer, endOffset);\n if (leaf.node) {\n while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) {\n leaf = findLeaf(leaf.node.previousSibling);\n }\n if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {\n if (leaf.offset > 1) {\n endContainer = leaf.node;\n endContainer.splitText(leaf.offset - 1);\n }\n }\n }\n return endContainer;\n };\n var isBogusBr = function (node) {\n return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling;\n };\n var findParentContentEditable = function (dom, node) {\n var parent = node;\n while (parent) {\n if (parent.nodeType === 1 && dom.getContentEditable(parent)) {\n return dom.getContentEditable(parent) === 'false' ? parent : node;\n }\n parent = parent.parentNode;\n }\n return node;\n };\n var findSpace = function (start, remove, node, offset) {\n var pos, pos2;\n var str = node.nodeValue;\n if (typeof offset === 'undefined') {\n offset = start ? str.length : 0;\n }\n if (start) {\n pos = str.lastIndexOf(' ', offset);\n pos2 = str.lastIndexOf('\\xA0', offset);\n pos = pos > pos2 ? pos : pos2;\n if (pos !== -1 && !remove && (pos < offset || !start) && pos <= str.length) {\n pos++;\n }\n } else {\n pos = str.indexOf(' ', offset);\n pos2 = str.indexOf('\\xA0', offset);\n pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;\n }\n return pos;\n };\n var findWordEndPoint = function (dom, body, container, offset, start, remove) {\n var node, pos, lastTextNode;\n if (container.nodeType === 3) {\n pos = findSpace(start, remove, container, offset);\n if (pos !== -1) {\n return {\n container: container,\n offset: pos\n };\n }\n lastTextNode = container;\n }\n var walker = new TreeWalker(container, dom.getParent(container, dom.isBlock) || body);\n while (node = walker[start ? 'prev' : 'next']()) {\n if (node.nodeType === 3 && !isBookmarkNode$2(node.parentNode)) {\n lastTextNode = node;\n pos = findSpace(start, remove, node);\n if (pos !== -1) {\n return {\n container: node,\n offset: pos\n };\n }\n } else if (dom.isBlock(node) || FormatUtils.isEq(node, 'BR')) {\n break;\n }\n }\n if (lastTextNode) {\n if (start) {\n offset = 0;\n } else {\n offset = lastTextNode.length;\n }\n return {\n container: lastTextNode,\n offset: offset\n };\n }\n };\n var findSelectorEndPoint = function (dom, format, rng, container, siblingName) {\n var parents, i, y, curFormat;\n if (container.nodeType === 3 && container.nodeValue.length === 0 && container[siblingName]) {\n container = container[siblingName];\n }\n parents = getParents$2(dom, container);\n for (i = 0; i < parents.length; i++) {\n for (y = 0; y < format.length; y++) {\n curFormat = format[y];\n if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) {\n continue;\n }\n if (dom.is(parents[i], curFormat.selector)) {\n return parents[i];\n }\n }\n }\n return container;\n };\n var findBlockEndPoint = function (editor, format, container, siblingName) {\n var node;\n var dom = editor.dom;\n var root = dom.getRoot();\n if (!format[0].wrapper) {\n node = dom.getParent(container, format[0].block, root);\n }\n if (!node) {\n var scopeRoot = dom.getParent(container, 'LI,TD,TH');\n node = dom.getParent(container.nodeType === 3 ? container.parentNode : container, function (node) {\n return node !== root && isTextBlock$2(editor, node);\n }, scopeRoot);\n }\n if (node && format[0].wrapper) {\n node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node;\n }\n if (!node) {\n node = container;\n while (node[siblingName] && !dom.isBlock(node[siblingName])) {\n node = node[siblingName];\n if (FormatUtils.isEq(node, 'br')) {\n break;\n }\n }\n }\n return node || container;\n };\n var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) {\n var container, parent, sibling, siblingName, root;\n container = parent = start ? startContainer : endContainer;\n siblingName = start ? 'previousSibling' : 'nextSibling';\n root = dom.getRoot();\n if (container.nodeType === 3 && !isWhiteSpaceNode$1(container)) {\n if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {\n return container;\n }\n }\n while (true) {\n if (!format[0].block_expand && dom.isBlock(parent)) {\n return parent;\n }\n for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\n if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) {\n return parent;\n }\n }\n if (parent === root || parent.parentNode === root) {\n container = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return container;\n };\n var expandRng = function (editor, rng, format, remove) {\n var endPoint, startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n var dom = editor.dom;\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\n startContainer = getNode(startContainer, startOffset);\n if (startContainer.nodeType === 3) {\n startOffset = 0;\n }\n }\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\n endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1);\n if (endContainer.nodeType === 3) {\n endOffset = endContainer.nodeValue.length;\n }\n }\n startContainer = findParentContentEditable(dom, startContainer);\n endContainer = findParentContentEditable(dom, endContainer);\n if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) {\n startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;\n if (rng.collapsed) {\n startContainer = startContainer.previousSibling || startContainer;\n } else {\n startContainer = startContainer.nextSibling || startContainer;\n }\n if (startContainer.nodeType === 3) {\n startOffset = rng.collapsed ? startContainer.length : 0;\n }\n }\n if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) {\n endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;\n if (rng.collapsed) {\n endContainer = endContainer.nextSibling || endContainer;\n } else {\n endContainer = endContainer.previousSibling || endContainer;\n }\n if (endContainer.nodeType === 3) {\n endOffset = rng.collapsed ? 0 : endContainer.length;\n }\n }\n if (rng.collapsed) {\n endPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, remove);\n if (endPoint) {\n startContainer = endPoint.container;\n startOffset = endPoint.offset;\n }\n endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, remove);\n if (endPoint) {\n endContainer = endPoint.container;\n endOffset = endPoint.offset;\n }\n }\n if (format[0].inline) {\n endContainer = remove ? endContainer : excludeTrailingWhitespace(endContainer, endOffset);\n }\n if (format[0].inline || format[0].block_expand) {\n if (!format[0].inline || (startContainer.nodeType !== 3 || startOffset === 0)) {\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\n }\n if (!format[0].inline || (endContainer.nodeType !== 3 || endOffset === endContainer.nodeValue.length)) {\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\n }\n }\n if (format[0].selector && format[0].expand !== false && !format[0].inline) {\n startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling');\n endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling');\n }\n if (format[0].block || format[0].selector) {\n startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling');\n endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');\n if (format[0].block) {\n if (!dom.isBlock(startContainer)) {\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\n }\n if (!dom.isBlock(endContainer)) {\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\n }\n }\n }\n if (startContainer.nodeType === 1) {\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (endContainer.nodeType === 1) {\n endOffset = dom.nodeIndex(endContainer) + 1;\n endContainer = endContainer.parentNode;\n }\n return {\n startContainer: startContainer,\n startOffset: startOffset,\n endContainer: endContainer,\n endOffset: endOffset\n };\n };\n var ExpandRange = { expandRng: expandRng };\n\n var each$8 = Tools.each;\n var getEndChild = function (container, index) {\n var childNodes = container.childNodes;\n index--;\n if (index > childNodes.length - 1) {\n index = childNodes.length - 1;\n } else if (index < 0) {\n index = 0;\n }\n return childNodes[index] || container;\n };\n var walk$1 = function (dom, rng, callback) {\n var startContainer = rng.startContainer;\n var startOffset = rng.startOffset;\n var endContainer = rng.endContainer;\n var endOffset = rng.endOffset;\n var ancestor;\n var startPoint;\n var endPoint;\n var node;\n var parent;\n var siblings;\n var nodes;\n nodes = dom.select('td[data-mce-selected],th[data-mce-selected]');\n if (nodes.length > 0) {\n each$8(nodes, function (node) {\n callback([node]);\n });\n return;\n }\n var exclude = function (nodes) {\n var node;\n node = nodes[0];\n if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {\n nodes.splice(0, 1);\n }\n node = nodes[nodes.length - 1];\n if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {\n nodes.splice(nodes.length - 1, 1);\n }\n return nodes;\n };\n var collectSiblings = function (node, name, endNode) {\n var siblings = [];\n for (; node && node !== endNode; node = node[name]) {\n siblings.push(node);\n }\n return siblings;\n };\n var findEndPoint = function (node, root) {\n do {\n if (node.parentNode === root) {\n return node;\n }\n node = node.parentNode;\n } while (node);\n };\n var walkBoundary = function (startNode, endNode, next) {\n var siblingName = next ? 'nextSibling' : 'previousSibling';\n for (node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\n parent = node.parentNode;\n siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\n if (siblings.length) {\n if (!next) {\n siblings.reverse();\n }\n callback(exclude(siblings));\n }\n }\n };\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\n startContainer = startContainer.childNodes[startOffset];\n }\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\n endContainer = getEndChild(endContainer, endOffset);\n }\n if (startContainer === endContainer) {\n return callback(exclude([startContainer]));\n }\n ancestor = dom.findCommonAncestor(startContainer, endContainer);\n for (node = startContainer; node; node = node.parentNode) {\n if (node === endContainer) {\n return walkBoundary(startContainer, ancestor, true);\n }\n if (node === ancestor) {\n break;\n }\n }\n for (node = endContainer; node; node = node.parentNode) {\n if (node === startContainer) {\n return walkBoundary(endContainer, ancestor);\n }\n if (node === ancestor) {\n break;\n }\n }\n startPoint = findEndPoint(startContainer, ancestor) || startContainer;\n endPoint = findEndPoint(endContainer, ancestor) || endContainer;\n walkBoundary(startContainer, startPoint, true);\n siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\n if (siblings.length) {\n callback(exclude(siblings));\n }\n walkBoundary(endContainer, endPoint);\n };\n var RangeWalk = { walk: walk$1 };\n\n var zeroWidth = function () {\n return '\\uFEFF';\n };\n\n function NodeValue (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOptionIE10 = function (element) {\n try {\n return getOptionSafe(element);\n } catch (e) {\n return Option.none();\n }\n };\n var getOptionSafe = function (element) {\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\n };\n var browser = PlatformDetection$1.detect().browser;\n var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom().nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n }\n\n var api = NodeValue(isText, 'text');\n var get$5 = function (element) {\n return api.get(element);\n };\n\n var isZeroWidth = function (elem) {\n return isText(elem) && get$5(elem) === zeroWidth();\n };\n var context = function (editor, elem, wrapName, nodeName) {\n return parent(elem).fold(function () {\n return 'skipping';\n }, function (parent) {\n if (nodeName === 'br' || isZeroWidth(elem)) {\n return 'valid';\n } else if (isAnnotation(elem)) {\n return 'existing';\n } else if (isCaretNode(elem)) {\n return 'caret';\n } else if (!FormatUtils.isValid(editor, wrapName, nodeName) || !FormatUtils.isValid(editor, name(parent), wrapName)) {\n return 'invalid-child';\n } else {\n return 'valid';\n }\n });\n };\n\n var shouldApplyToTrailingSpaces = function (rng) {\n return rng.startContainer.nodeType === 3 && rng.startContainer.nodeValue.length >= rng.startOffset && rng.startContainer.nodeValue[rng.startOffset] === '\\xA0';\n };\n var applyWordGrab = function (editor, rng) {\n var r = ExpandRange.expandRng(editor, rng, [{ inline: true }], shouldApplyToTrailingSpaces(rng));\n rng.setStart(r.startContainer, r.startOffset);\n rng.setEnd(r.endContainer, r.endOffset);\n editor.selection.setRng(rng);\n };\n var makeAnnotation = function (eDoc, _a, annotationName, decorate) {\n var _b = _a.uid, uid = _b === void 0 ? generate('mce-annotation') : _b, data = __rest(_a, ['uid']);\n var master = Element.fromTag('span', eDoc);\n add$3(master, annotation());\n set(master, '' + dataAnnotationId(), uid);\n set(master, '' + dataAnnotation(), annotationName);\n var _c = decorate(uid, data), _d = _c.attributes, attributes = _d === void 0 ? {} : _d, _e = _c.classes, classes = _e === void 0 ? [] : _e;\n setAll(master, attributes);\n add$4(master, classes);\n return master;\n };\n var annotate = function (editor, rng, annotationName, decorate, data) {\n var newWrappers = [];\n var master = makeAnnotation(editor.getDoc(), data, annotationName, decorate);\n var wrapper = Cell(Option.none());\n var finishWrapper = function () {\n wrapper.set(Option.none());\n };\n var getOrOpenWrapper = function () {\n return wrapper.get().getOrThunk(function () {\n var nu = shallow(master);\n newWrappers.push(nu);\n wrapper.set(Option.some(nu));\n return nu;\n });\n };\n var processElements = function (elems) {\n each(elems, processElement);\n };\n var processElement = function (elem) {\n var ctx = context(editor, elem, 'span', name(elem));\n switch (ctx) {\n case 'invalid-child': {\n finishWrapper();\n var children$1 = children(elem);\n processElements(children$1);\n finishWrapper();\n break;\n }\n case 'valid': {\n var w = getOrOpenWrapper();\n wrap$1(elem, w);\n break;\n }\n case 'skipping':\n case 'existing':\n case 'caret':\n }\n };\n var processNodes = function (nodes) {\n var elems = map(nodes, Element.fromDom);\n processElements(elems);\n };\n RangeWalk.walk(editor.dom, rng, function (nodes) {\n finishWrapper();\n processNodes(nodes);\n });\n return newWrappers;\n };\n var annotateWithBookmark = function (editor, name, settings, data) {\n editor.undoManager.transact(function () {\n var initialRng = editor.selection.getRng();\n if (initialRng.collapsed) {\n applyWordGrab(editor, initialRng);\n }\n if (editor.selection.getRng().collapsed) {\n var wrapper = makeAnnotation(editor.getDoc(), data, name, settings.decorate);\n set$1(wrapper, '\\xA0');\n editor.selection.getRng().insertNode(wrapper.dom());\n editor.selection.select(wrapper.dom());\n } else {\n var bookmark = GetBookmark.getPersistentBookmark(editor.selection, false);\n var rng = editor.selection.getRng();\n annotate(editor, rng, name, settings.decorate, data);\n editor.selection.moveToBookmark(bookmark);\n }\n });\n };\n\n var Annotator = function (editor) {\n var registry = create$1();\n setup$1(editor, registry);\n var changes = setup(editor, registry);\n return {\n register: function (name, settings) {\n registry.register(name, settings);\n },\n annotate: function (name, data) {\n registry.lookup(name).each(function (settings) {\n annotateWithBookmark(editor, name, settings, data);\n });\n },\n annotationChanged: function (name, callback) {\n changes.addListener(name, callback);\n },\n remove: function (name) {\n identify(editor, Option.some(name)).each(function (_a) {\n var elements = _a.elements;\n each(elements, unwrap);\n });\n },\n getAll: function (name) {\n var directory = findAll(editor, name);\n return map$2(directory, function (elems) {\n return map(elems, function (elem) {\n return elem.dom();\n });\n });\n }\n };\n };\n\n var whiteSpaceRegExp$3 = /^[ \\t\\r\\n]*$/;\n var typeLookup = {\n '#text': 3,\n '#comment': 8,\n '#cdata': 4,\n '#pi': 7,\n '#doctype': 10,\n '#document-fragment': 11\n };\n var walk$2 = function (node, root, prev) {\n var sibling;\n var parent;\n var startName = prev ? 'lastChild' : 'firstChild';\n var siblingName = prev ? 'prev' : 'next';\n if (node[startName]) {\n return node[startName];\n }\n if (node !== root) {\n sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (parent = node.parent; parent && parent !== root; parent = parent.parent) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n };\n var Node$1 = function () {\n function Node(name, type) {\n this.name = name;\n this.type = type;\n if (type === 1) {\n this.attributes = [];\n this.attributes.map = {};\n }\n }\n Node.create = function (name, attrs) {\n var node, attrName;\n node = new Node(name, typeLookup[name] || 1);\n if (attrs) {\n for (attrName in attrs) {\n node.attr(attrName, attrs[attrName]);\n }\n }\n return node;\n };\n Node.prototype.replace = function (node) {\n var self = this;\n if (node.parent) {\n node.remove();\n }\n self.insert(node, self);\n self.remove();\n return self;\n };\n Node.prototype.attr = function (name, value) {\n var self = this;\n var attrs, i;\n if (typeof name !== 'string') {\n for (i in name) {\n self.attr(i, name[i]);\n }\n return self;\n }\n if (attrs = self.attributes) {\n if (value !== undefined) {\n if (value === null) {\n if (name in attrs.map) {\n delete attrs.map[name];\n i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs = attrs.splice(i, 1);\n return self;\n }\n }\n }\n return self;\n }\n if (name in attrs.map) {\n i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs[i].value = value;\n break;\n }\n }\n } else {\n attrs.push({\n name: name,\n value: value\n });\n }\n attrs.map[name] = value;\n return self;\n }\n return attrs.map[name];\n }\n };\n Node.prototype.clone = function () {\n var self = this;\n var clone = new Node(self.name, self.type);\n var i, l, selfAttrs, selfAttr, cloneAttrs;\n if (selfAttrs = self.attributes) {\n cloneAttrs = [];\n cloneAttrs.map = {};\n for (i = 0, l = selfAttrs.length; i < l; i++) {\n selfAttr = selfAttrs[i];\n if (selfAttr.name !== 'id') {\n cloneAttrs[cloneAttrs.length] = {\n name: selfAttr.name,\n value: selfAttr.value\n };\n cloneAttrs.map[selfAttr.name] = selfAttr.value;\n }\n }\n clone.attributes = cloneAttrs;\n }\n clone.value = self.value;\n clone.shortEnded = self.shortEnded;\n return clone;\n };\n Node.prototype.wrap = function (wrapper) {\n var self = this;\n self.parent.insert(wrapper, self);\n wrapper.append(self);\n return self;\n };\n Node.prototype.unwrap = function () {\n var self = this;\n var node, next;\n for (node = self.firstChild; node;) {\n next = node.next;\n self.insert(node, self, true);\n node = next;\n }\n self.remove();\n };\n Node.prototype.remove = function () {\n var self = this, parent = self.parent, next = self.next, prev = self.prev;\n if (parent) {\n if (parent.firstChild === self) {\n parent.firstChild = next;\n if (next) {\n next.prev = null;\n }\n } else {\n prev.next = next;\n }\n if (parent.lastChild === self) {\n parent.lastChild = prev;\n if (prev) {\n prev.next = null;\n }\n } else {\n next.prev = prev;\n }\n self.parent = self.next = self.prev = null;\n }\n return self;\n };\n Node.prototype.append = function (node) {\n var self = this;\n var last;\n if (node.parent) {\n node.remove();\n }\n last = self.lastChild;\n if (last) {\n last.next = node;\n node.prev = last;\n self.lastChild = node;\n } else {\n self.lastChild = self.firstChild = node;\n }\n node.parent = self;\n return node;\n };\n Node.prototype.insert = function (node, refNode, before) {\n var parent;\n if (node.parent) {\n node.remove();\n }\n parent = refNode.parent || this;\n if (before) {\n if (refNode === parent.firstChild) {\n parent.firstChild = node;\n } else {\n refNode.prev.next = node;\n }\n node.prev = refNode.prev;\n node.next = refNode;\n refNode.prev = node;\n } else {\n if (refNode === parent.lastChild) {\n parent.lastChild = node;\n } else {\n refNode.next.prev = node;\n }\n node.next = refNode.next;\n node.prev = refNode;\n refNode.next = node;\n }\n node.parent = parent;\n return node;\n };\n Node.prototype.getAll = function (name) {\n var self = this;\n var node;\n var collection = [];\n for (node = self.firstChild; node; node = walk$2(node, self)) {\n if (node.name === name) {\n collection.push(node);\n }\n }\n return collection;\n };\n Node.prototype.empty = function () {\n var self = this;\n var nodes, i, node;\n if (self.firstChild) {\n nodes = [];\n for (node = self.firstChild; node; node = walk$2(node, self)) {\n nodes.push(node);\n }\n i = nodes.length;\n while (i--) {\n node = nodes[i];\n node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\n }\n }\n self.firstChild = self.lastChild = null;\n return self;\n };\n Node.prototype.isEmpty = function (elements, whitespace, predicate) {\n var self = this;\n var node = self.firstChild, i, name;\n whitespace = whitespace || {};\n if (node) {\n do {\n if (node.type === 1) {\n if (node.attr('data-mce-bogus')) {\n continue;\n }\n if (elements[node.name]) {\n return false;\n }\n i = node.attributes.length;\n while (i--) {\n name = node.attributes[i].name;\n if (name === 'name' || name.indexOf('data-mce-bookmark') === 0) {\n return false;\n }\n }\n }\n if (node.type === 8) {\n return false;\n }\n if (node.type === 3 && !whiteSpaceRegExp$3.test(node.value)) {\n return false;\n }\n if (node.type === 3 && node.parent && whitespace[node.parent.name] && whiteSpaceRegExp$3.test(node.value)) {\n return false;\n }\n if (predicate && predicate(node)) {\n return false;\n }\n } while (node = walk$2(node, self));\n }\n return true;\n };\n Node.prototype.walk = function (prev) {\n return walk$2(this, null, prev);\n };\n return Node;\n }();\n\n var isValidPrefixAttrName = function (name) {\n return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;\n };\n var trimComments = function (text) {\n return text.replace(//g, '');\n };\n var isInvalidUri = function (settings, uri) {\n if (settings.allow_html_data_urls) {\n return false;\n } else if (/^data:image\\//i.test(uri)) {\n return settings.allow_svg_data_urls === false && /^data:image\\/svg\\+xml/i.test(uri);\n } else {\n return /^data:/i.test(uri);\n }\n };\n var findEndTagIndex = function (schema, html, startIndex) {\n var count = 1, index, matches, tokenRegExp, shortEndedElements;\n shortEndedElements = schema.getShortEndedElements();\n tokenRegExp = /<([!?\\/])?([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\/|\\s+)>/g;\n tokenRegExp.lastIndex = index = startIndex;\n while (matches = tokenRegExp.exec(html)) {\n index = tokenRegExp.lastIndex;\n if (matches[1] === '/') {\n count--;\n } else if (!matches[1]) {\n if (matches[2] in shortEndedElements) {\n continue;\n }\n count++;\n }\n if (count === 0) {\n break;\n }\n }\n return index;\n };\n var checkBogusAttribute = function (regExp, attrString) {\n var matches = regExp.exec(attrString);\n if (matches) {\n var name = matches[1];\n var value = matches[2];\n return typeof name === 'string' && name.toLowerCase() === 'data-mce-bogus' ? value : null;\n } else {\n return null;\n }\n };\n function SaxParser(settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var noop = function () {\n };\n settings = settings || {};\n if (settings.fix_self_closing !== false) {\n settings.fix_self_closing = true;\n }\n var comment = settings.comment ? settings.comment : noop;\n var cdata = settings.cdata ? settings.cdata : noop;\n var text = settings.text ? settings.text : noop;\n var start = settings.start ? settings.start : noop;\n var end = settings.end ? settings.end : noop;\n var pi = settings.pi ? settings.pi : noop;\n var doctype = settings.doctype ? settings.doctype : noop;\n var parse = function (html) {\n var matches, index = 0, value, endRegExp;\n var stack = [];\n var attrList, i, textData, name;\n var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded;\n var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns;\n var attributesRequired, attributesDefault, attributesForced, processHtml;\n var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0;\n var decode = Entities.decode;\n var fixSelfClosing;\n var filteredUrlAttrs = Tools.makeMap('src,href,data,background,formaction,poster,xlink:href');\n var scriptUriRegExp = /((java|vb)script|mhtml):/i;\n var processEndTag = function (name) {\n var pos, i;\n pos = stack.length;\n while (pos--) {\n if (stack[pos].name === name) {\n break;\n }\n }\n if (pos >= 0) {\n for (i = stack.length - 1; i >= pos; i--) {\n name = stack[i];\n if (name.valid) {\n end(name.name);\n }\n }\n stack.length = pos;\n }\n };\n var parseAttribute = function (match, name, value, val2, val3) {\n var attrRule, i;\n var trimRegExp = /[\\s\\u0000-\\u001F]+/g;\n name = name.toLowerCase();\n value = name in fillAttrsMap ? name : decode(value || val2 || val3 || '');\n if (validate && !isInternalElement && isValidPrefixAttrName(name) === false) {\n attrRule = validAttributesMap[name];\n if (!attrRule && validAttributePatterns) {\n i = validAttributePatterns.length;\n while (i--) {\n attrRule = validAttributePatterns[i];\n if (attrRule.pattern.test(name)) {\n break;\n }\n }\n if (i === -1) {\n attrRule = null;\n }\n }\n if (!attrRule) {\n return;\n }\n if (attrRule.validValues && !(value in attrRule.validValues)) {\n return;\n }\n }\n if (filteredUrlAttrs[name] && !settings.allow_script_urls) {\n var uri = value.replace(trimRegExp, '');\n try {\n uri = decodeURIComponent(uri);\n } catch (ex) {\n uri = unescape(uri);\n }\n if (scriptUriRegExp.test(uri)) {\n return;\n }\n if (isInvalidUri(settings, uri)) {\n return;\n }\n }\n if (isInternalElement && (name in filteredUrlAttrs || name.indexOf('on') === 0)) {\n return;\n }\n attrList.map[name] = value;\n attrList.push({\n name: name,\n value: value\n });\n };\n tokenRegExp = new RegExp('<(?:' + '(?:!--([\\\\w\\\\W]*?)-->)|' + '(?:!\\\\[CDATA\\\\[([\\\\w\\\\W]*?)\\\\]\\\\]>)|' + '(?:!DOCTYPE([\\\\w\\\\W]*?)>)|' + '(?:\\\\?([^\\\\s\\\\/<>]+) ?([\\\\w\\\\W]*?)[?/]>)|' + '(?:\\\\/([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)((?:\\\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\\\/|\\\\s+)>)' + ')', 'g');\n attrRegExp = /([\\w:\\-]+)(?:\\s*=\\s*(?:(?:\\\"((?:[^\\\"])*)\\\")|(?:\\'((?:[^\\'])*)\\')|([^>\\s]+)))?/g;\n shortEndedElements = schema.getShortEndedElements();\n selfClosing = settings.self_closing_elements || schema.getSelfClosingElements();\n fillAttrsMap = schema.getBoolAttrs();\n validate = settings.validate;\n removeInternalElements = settings.remove_internals;\n fixSelfClosing = settings.fix_self_closing;\n specialElements = schema.getSpecialElements();\n processHtml = html + '>';\n while (matches = tokenRegExp.exec(processHtml)) {\n if (index < matches.index) {\n text(decode(html.substr(index, matches.index - index)));\n }\n if (value = matches[6]) {\n value = value.toLowerCase();\n if (value.charAt(0) === ':') {\n value = value.substr(1);\n }\n processEndTag(value);\n } else if (value = matches[7]) {\n if (matches.index + matches[0].length > html.length) {\n text(decode(html.substr(matches.index)));\n index = matches.index + matches[0].length;\n continue;\n }\n value = value.toLowerCase();\n if (value.charAt(0) === ':') {\n value = value.substr(1);\n }\n isShortEnded = value in shortEndedElements;\n if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) {\n processEndTag(value);\n }\n var bogusValue = checkBogusAttribute(attrRegExp, matches[8]);\n if (bogusValue !== null) {\n if (bogusValue === 'all') {\n index = findEndTagIndex(schema, html, tokenRegExp.lastIndex);\n tokenRegExp.lastIndex = index;\n continue;\n }\n isValidElement = false;\n }\n if (!validate || (elementRule = schema.getElementRule(value))) {\n isValidElement = true;\n if (validate) {\n validAttributesMap = elementRule.attributes;\n validAttributePatterns = elementRule.attributePatterns;\n }\n if (attribsValue = matches[8]) {\n isInternalElement = attribsValue.indexOf('data-mce-type') !== -1;\n if (isInternalElement && removeInternalElements) {\n isValidElement = false;\n }\n attrList = [];\n attrList.map = {};\n attribsValue.replace(attrRegExp, parseAttribute);\n } else {\n attrList = [];\n attrList.map = {};\n }\n if (validate && !isInternalElement) {\n attributesRequired = elementRule.attributesRequired;\n attributesDefault = elementRule.attributesDefault;\n attributesForced = elementRule.attributesForced;\n anyAttributesRequired = elementRule.removeEmptyAttrs;\n if (anyAttributesRequired && !attrList.length) {\n isValidElement = false;\n }\n if (attributesForced) {\n i = attributesForced.length;\n while (i--) {\n attr = attributesForced[i];\n name = attr.name;\n attrValue = attr.value;\n if (attrValue === '{$uid}') {\n attrValue = 'mce_' + idCount++;\n }\n attrList.map[name] = attrValue;\n attrList.push({\n name: name,\n value: attrValue\n });\n }\n }\n if (attributesDefault) {\n i = attributesDefault.length;\n while (i--) {\n attr = attributesDefault[i];\n name = attr.name;\n if (!(name in attrList.map)) {\n attrValue = attr.value;\n if (attrValue === '{$uid}') {\n attrValue = 'mce_' + idCount++;\n }\n attrList.map[name] = attrValue;\n attrList.push({\n name: name,\n value: attrValue\n });\n }\n }\n }\n if (attributesRequired) {\n i = attributesRequired.length;\n while (i--) {\n if (attributesRequired[i] in attrList.map) {\n break;\n }\n }\n if (i === -1) {\n isValidElement = false;\n }\n }\n if (attr = attrList.map['data-mce-bogus']) {\n if (attr === 'all') {\n index = findEndTagIndex(schema, html, tokenRegExp.lastIndex);\n tokenRegExp.lastIndex = index;\n continue;\n }\n isValidElement = false;\n }\n }\n if (isValidElement) {\n start(value, attrList, isShortEnded);\n }\n } else {\n isValidElement = false;\n }\n if (endRegExp = specialElements[value]) {\n endRegExp.lastIndex = index = matches.index + matches[0].length;\n if (matches = endRegExp.exec(html)) {\n if (isValidElement) {\n textData = html.substr(index, matches.index - index);\n }\n index = matches.index + matches[0].length;\n } else {\n textData = html.substr(index);\n index = html.length;\n }\n if (isValidElement) {\n if (textData.length > 0) {\n text(textData, true);\n }\n end(value);\n }\n tokenRegExp.lastIndex = index;\n continue;\n }\n if (!isShortEnded) {\n if (!attribsValue || attribsValue.indexOf('/') !== attribsValue.length - 1) {\n stack.push({\n name: value,\n valid: isValidElement\n });\n } else if (isValidElement) {\n end(value);\n }\n }\n } else if (value = matches[1]) {\n if (value.charAt(0) === '>') {\n value = ' ' + value;\n }\n if (!settings.allow_conditional_comments && value.substr(0, 3).toLowerCase() === '[if') {\n value = ' ' + value;\n }\n comment(value);\n } else if (value = matches[2]) {\n cdata(trimComments(value));\n } else if (value = matches[3]) {\n doctype(value);\n } else if (value = matches[4]) {\n pi(value, matches[5]);\n }\n index = matches.index + matches[0].length;\n }\n if (index < html.length) {\n text(decode(html.substr(index)));\n }\n for (i = stack.length - 1; i >= 0; i--) {\n value = stack[i];\n if (value.valid) {\n end(value.name);\n }\n }\n };\n return { parse: parse };\n }\n (function (SaxParser) {\n SaxParser.findEndTag = findEndTagIndex;\n }(SaxParser || (SaxParser = {})));\n var SaxParser$1 = SaxParser;\n\n var trimHtml = function (tempAttrs, html) {\n var trimContentRegExp = new RegExp(['\\\\s?(' + tempAttrs.join('|') + ')=\"[^\"]+\"'].join('|'), 'gi');\n return html.replace(trimContentRegExp, '');\n };\n var trimInternal = function (serializer, html) {\n var content = html;\n var bogusAllRegExp = /<(\\w+) [^>]*data-mce-bogus=\"all\"[^>]*>/g;\n var endTagIndex, index, matchLength, matches, shortEndedElements;\n var schema = serializer.schema;\n content = trimHtml(serializer.getTempAttrs(), content);\n shortEndedElements = schema.getShortEndedElements();\n while (matches = bogusAllRegExp.exec(content)) {\n index = bogusAllRegExp.lastIndex;\n matchLength = matches[0].length;\n if (shortEndedElements[matches[1]]) {\n endTagIndex = index;\n } else {\n endTagIndex = SaxParser$1.findEndTag(schema, content, index);\n }\n content = content.substring(0, index - matchLength) + content.substring(endTagIndex);\n bogusAllRegExp.lastIndex = index - matchLength;\n }\n return Zwsp.trim(content);\n };\n var trimExternal = trimInternal;\n var TrimHtml = {\n trimExternal: trimExternal,\n trimInternal: trimInternal\n };\n\n var getBodySetting = function (editor, name, defaultValue) {\n var value = editor.getParam(name, defaultValue);\n if (value.indexOf('=') !== -1) {\n var bodyObj = editor.getParam(name, '', 'hash');\n return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue;\n } else {\n return value;\n }\n };\n var getIframeAttrs = function (editor) {\n return editor.getParam('iframe_attrs', {});\n };\n var getDocType = function (editor) {\n return editor.getParam('doctype', '');\n };\n var getDocumentBaseUrl = function (editor) {\n return editor.getParam('document_base_url', '');\n };\n var getBodyId = function (editor) {\n return getBodySetting(editor, 'body_id', 'tinymce');\n };\n var getBodyClass = function (editor) {\n return getBodySetting(editor, 'body_class', '');\n };\n var getContentSecurityPolicy = function (editor) {\n return editor.getParam('content_security_policy', '');\n };\n var shouldPutBrInPre = function (editor) {\n return editor.getParam('br_in_pre', true);\n };\n var getForcedRootBlock = function (editor) {\n if (editor.getParam('force_p_newlines', false)) {\n return 'p';\n }\n var block = editor.getParam('forced_root_block', 'p');\n if (block === false) {\n return '';\n } else if (block === true) {\n return 'p';\n } else {\n return block;\n }\n };\n var getForcedRootBlockAttrs = function (editor) {\n return editor.getParam('forced_root_block_attrs', {});\n };\n var getBrNewLineSelector = function (editor) {\n return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption');\n };\n var getNoNewLineSelector = function (editor) {\n return editor.getParam('no_newline_selector', '');\n };\n var shouldKeepStyles = function (editor) {\n return editor.getParam('keep_styles', true);\n };\n var shouldEndContainerOnEmptyBlock = function (editor) {\n return editor.getParam('end_container_on_empty_block', false);\n };\n var getFontStyleValues = function (editor) {\n return Tools.explode(editor.getParam('font_size_style_values', ''));\n };\n var getFontSizeClasses = function (editor) {\n return Tools.explode(editor.getParam('font_size_classes', ''));\n };\n var getImagesDataImgFilter = function (editor) {\n return editor.getParam('images_dataimg_filter', constant(true), 'function');\n };\n var isAutomaticUploadsEnabled = function (editor) {\n return editor.getParam('automatic_uploads', true, 'boolean');\n };\n var shouldReuseFileName = function (editor) {\n return editor.getParam('images_reuse_filename', false, 'boolean');\n };\n var shouldReplaceBlobUris = function (editor) {\n return editor.getParam('images_replace_blob_uris', true, 'boolean');\n };\n var getImageUploadUrl = function (editor) {\n return editor.getParam('images_upload_url', '', 'string');\n };\n var getImageUploadBasePath = function (editor) {\n return editor.getParam('images_upload_base_path', '', 'string');\n };\n var getImagesUploadCredentials = function (editor) {\n return editor.getParam('images_upload_credentials', false, 'boolean');\n };\n var getImagesUploadHandler = function (editor) {\n return editor.getParam('images_upload_handler', null, 'function');\n };\n var shouldUseContentCssCors = function (editor) {\n return editor.getParam('content_css_cors', false, 'boolean');\n };\n var getLanguageCode = function (editor) {\n return editor.getParam('language', 'en', 'string');\n };\n var getLanguageUrl = function (editor) {\n return editor.getParam('language_url', '', 'string');\n };\n var shouldIndentUseMargin = function (editor) {\n return editor.getParam('indent_use_margin', false);\n };\n var getIndentation = function (editor) {\n return editor.getParam('indentation', '40px', 'string');\n };\n var getContentCss = function (editor) {\n var contentCss = editor.settings.content_css;\n if (isString(contentCss)) {\n return map(contentCss.split(','), trim$2);\n } else if (isArray(contentCss)) {\n return contentCss;\n } else if (contentCss === false || editor.inline) {\n return [];\n } else {\n return ['default'];\n }\n };\n var Settings = {\n getIframeAttrs: getIframeAttrs,\n getDocType: getDocType,\n getDocumentBaseUrl: getDocumentBaseUrl,\n getBodyId: getBodyId,\n getBodyClass: getBodyClass,\n getContentSecurityPolicy: getContentSecurityPolicy,\n shouldPutBrInPre: shouldPutBrInPre,\n getForcedRootBlock: getForcedRootBlock,\n getForcedRootBlockAttrs: getForcedRootBlockAttrs,\n getBrNewLineSelector: getBrNewLineSelector,\n getNoNewLineSelector: getNoNewLineSelector,\n shouldKeepStyles: shouldKeepStyles,\n shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock,\n getFontStyleValues: getFontStyleValues,\n getFontSizeClasses: getFontSizeClasses,\n getImagesDataImgFilter: getImagesDataImgFilter,\n isAutomaticUploadsEnabled: isAutomaticUploadsEnabled,\n shouldReuseFileName: shouldReuseFileName,\n shouldReplaceBlobUris: shouldReplaceBlobUris,\n getImageUploadUrl: getImageUploadUrl,\n getImageUploadBasePath: getImageUploadBasePath,\n getImagesUploadCredentials: getImagesUploadCredentials,\n getImagesUploadHandler: getImagesUploadHandler,\n shouldUseContentCssCors: shouldUseContentCssCors,\n getLanguageCode: getLanguageCode,\n getLanguageUrl: getLanguageUrl,\n shouldIndentUseMargin: shouldIndentUseMargin,\n getIndentation: getIndentation,\n getContentCss: getContentCss\n };\n\n var defaultFormat = 'html';\n var trimEmptyContents = function (editor, html) {\n var blockName = Settings.getForcedRootBlock(editor);\n var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>( | |\\\\s|\\xA0|
|)<\\\\/' + blockName + '>[\\r\\n]*|
[\\r\\n]*)$');\n return html.replace(emptyRegExp, '');\n };\n var getContentFromBody = function (editor, args, body) {\n var content;\n args.format = args.format ? args.format : defaultFormat;\n args.get = true;\n args.getInner = true;\n if (!args.no_events) {\n editor.fire('BeforeGetContent', args);\n }\n if (args.format === 'raw') {\n content = Tools.trim(TrimHtml.trimExternal(editor.serializer, body.innerHTML));\n } else if (args.format === 'text') {\n content = Zwsp.trim(body.innerText || body.textContent);\n } else if (args.format === 'tree') {\n return editor.serializer.serialize(body, args);\n } else {\n content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\n }\n if (args.format !== 'text' && !isWsPreserveElement(Element.fromDom(body))) {\n args.content = Tools.trim(content);\n } else {\n args.content = content;\n }\n if (!args.no_events) {\n editor.fire('GetContent', args);\n }\n return args.content;\n };\n var getContent = function (editor, args) {\n if (args === void 0) {\n args = {};\n }\n return Option.from(editor.getBody()).fold(constant(args.format === 'tree' ? new Node$1('body', 11) : ''), function (body) {\n return getContentFromBody(editor, args, body);\n });\n };\n\n var makeMap$3 = Tools.makeMap;\n var Writer = function (settings) {\n var html = [];\n var indent, indentBefore, indentAfter, encode, htmlOutput;\n settings = settings || {};\n indent = settings.indent;\n indentBefore = makeMap$3(settings.indent_before || '');\n indentAfter = makeMap$3(settings.indent_after || '');\n encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\n htmlOutput = settings.element_format === 'html';\n return {\n start: function (name, attrs, empty) {\n var i, l, attr, value;\n if (indent && indentBefore[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n html.push('<', name);\n if (attrs) {\n for (i = 0, l = attrs.length; i < l; i++) {\n attr = attrs[i];\n html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\n }\n }\n if (!empty || htmlOutput) {\n html[html.length] = '>';\n } else {\n html[html.length] = ' />';\n }\n if (empty && indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n end: function (name) {\n var value;\n html.push('');\n if (indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n text: function (text, raw) {\n if (text.length > 0) {\n html[html.length] = raw ? text : encode(text);\n }\n },\n cdata: function (text) {\n html.push('');\n },\n comment: function (text) {\n html.push('');\n },\n pi: function (name, text) {\n if (text) {\n html.push('');\n } else {\n html.push('');\n }\n if (indent) {\n html.push('\\n');\n }\n },\n doctype: function (text) {\n html.push('', indent ? '\\n' : '');\n },\n reset: function () {\n html.length = 0;\n },\n getContent: function () {\n return html.join('').replace(/\\n$/, '');\n }\n };\n };\n\n var Serializer = function (settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var writer = Writer(settings);\n settings = settings || {};\n settings.validate = 'validate' in settings ? settings.validate : true;\n var serialize = function (node) {\n var handlers, validate;\n validate = settings.validate;\n handlers = {\n 3: function (node) {\n writer.text(node.value, node.raw);\n },\n 8: function (node) {\n writer.comment(node.value);\n },\n 7: function (node) {\n writer.pi(node.name, node.value);\n },\n 10: function (node) {\n writer.doctype(node.value);\n },\n 4: function (node) {\n writer.cdata(node.value);\n },\n 11: function (node) {\n if (node = node.firstChild) {\n do {\n walk(node);\n } while (node = node.next);\n }\n }\n };\n writer.reset();\n var walk = function (node) {\n var handler = handlers[node.type];\n var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;\n if (!handler) {\n name = node.name;\n isEmpty = node.shortEnded;\n attrs = node.attributes;\n if (validate && attrs && attrs.length > 1) {\n sortedAttrs = [];\n sortedAttrs.map = {};\n elementRule = schema.getElementRule(node.name);\n if (elementRule) {\n for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\n attrName = elementRule.attributesOrder[i];\n if (attrName in attrs.map) {\n attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n for (i = 0, l = attrs.length; i < l; i++) {\n attrName = attrs[i].name;\n if (!(attrName in sortedAttrs.map)) {\n attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n attrs = sortedAttrs;\n }\n }\n writer.start(node.name, attrs, isEmpty);\n if (!isEmpty) {\n if (node = node.firstChild) {\n do {\n walk(node);\n } while (node = node.next);\n }\n writer.end(name);\n }\n } else {\n handler(node);\n }\n };\n if (node.type === 1 && !settings.inner) {\n walk(node);\n } else {\n handlers[11](node);\n }\n return writer.getContent();\n };\n return { serialize: serialize };\n };\n\n var traverse = function (node, fn) {\n fn(node);\n if (node.firstChild) {\n traverse(node.firstChild, fn);\n }\n if (node.next) {\n traverse(node.next, fn);\n }\n };\n var findMatchingNodes = function (nodeFilters, attributeFilters, node) {\n var nodeMatches = {};\n var attrMatches = {};\n var matches = [];\n if (node.firstChild) {\n traverse(node.firstChild, function (node) {\n each(nodeFilters, function (filter) {\n if (filter.name === node.name) {\n if (nodeMatches[filter.name]) {\n nodeMatches[filter.name].nodes.push(node);\n } else {\n nodeMatches[filter.name] = {\n filter: filter,\n nodes: [node]\n };\n }\n }\n });\n each(attributeFilters, function (filter) {\n if (typeof node.attr(filter.name) === 'string') {\n if (attrMatches[filter.name]) {\n attrMatches[filter.name].nodes.push(node);\n } else {\n attrMatches[filter.name] = {\n filter: filter,\n nodes: [node]\n };\n }\n }\n });\n });\n }\n for (var name in nodeMatches) {\n if (nodeMatches.hasOwnProperty(name)) {\n matches.push(nodeMatches[name]);\n }\n }\n for (var name in attrMatches) {\n if (attrMatches.hasOwnProperty(name)) {\n matches.push(attrMatches[name]);\n }\n }\n return matches;\n };\n var filter$2 = function (nodeFilters, attributeFilters, node) {\n var matches = findMatchingNodes(nodeFilters, attributeFilters, node);\n each(matches, function (match) {\n each(match.filter.callbacks, function (callback) {\n callback(match.nodes, match.filter.name, {});\n });\n });\n };\n\n var hasFocus = function (element) {\n var doc = owner(element).dom();\n return element.dom() === doc.activeElement;\n };\n var active = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;\n return Option.from(doc.activeElement).map(Element.fromDom);\n };\n var search = function (element) {\n return active(owner(element)).filter(function (e) {\n return element.dom().contains(e.dom());\n });\n };\n\n var generate$1 = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = function () {\n var argLength = arguments.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var args = new Array(argLength);\n for (var i = 0; i < args.length; i++)\n args[i] = arguments[i];\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd)\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n if (arguments.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\n }\n var target = arguments[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n domGlobals.console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate$1 };\n\n var adt = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n\n var type$1 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');\n\n var browser$3 = PlatformDetection$1.detect().browser;\n var clamp = function (offset, element) {\n var max = isText(element) ? get$5(element).length : children(element).length + 1;\n if (offset > max) {\n return max;\n } else if (offset < 0) {\n return 0;\n }\n return offset;\n };\n var normalizeRng = function (rng) {\n return range$1(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));\n };\n var isOrContains = function (root, elm) {\n return contains$3(root, elm) || eq(root, elm);\n };\n var isRngInRoot = function (root) {\n return function (rng) {\n return isOrContains(root, rng.start()) && isOrContains(root, rng.finish());\n };\n };\n var shouldStore = function (editor) {\n return editor.inline === true || browser$3.isIE();\n };\n var nativeRangeToSelectionRange = function (r) {\n return range$1(Element.fromDom(r.startContainer), r.startOffset, Element.fromDom(r.endContainer), r.endOffset);\n };\n var readRange = function (win) {\n var selection = win.getSelection();\n var rng = !selection || selection.rangeCount === 0 ? Option.none() : Option.from(selection.getRangeAt(0));\n return rng.map(nativeRangeToSelectionRange);\n };\n var getBookmark$2 = function (root) {\n var win = defaultView(root);\n return readRange(win.dom()).filter(isRngInRoot(root));\n };\n var validate = function (root, bookmark) {\n return Option.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\n };\n var bookmarkToNativeRng = function (bookmark) {\n var rng = domGlobals.document.createRange();\n try {\n rng.setStart(bookmark.start().dom(), bookmark.soffset());\n rng.setEnd(bookmark.finish().dom(), bookmark.foffset());\n return Option.some(rng);\n } catch (_) {\n return Option.none();\n }\n };\n var store = function (editor) {\n var newBookmark = shouldStore(editor) ? getBookmark$2(Element.fromDom(editor.getBody())) : Option.none();\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n var storeNative = function (editor, rng) {\n var root = Element.fromDom(editor.getBody());\n var range = shouldStore(editor) ? Option.from(rng) : Option.none();\n var newBookmark = range.map(nativeRangeToSelectionRange).filter(isRngInRoot(root));\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n var getRng = function (editor) {\n var bookmark = editor.bookmark ? editor.bookmark : Option.none();\n return bookmark.bind(curry(validate, Element.fromDom(editor.getBody()))).bind(bookmarkToNativeRng);\n };\n var restore = function (editor) {\n getRng(editor).each(function (rng) {\n editor.selection.setRng(rng);\n });\n };\n var SelectionBookmark = {\n store: store,\n storeNative: storeNative,\n readRange: readRange,\n restore: restore,\n getRng: getRng,\n getBookmark: getBookmark$2,\n validate: validate\n };\n\n var getContentEditableHost = function (editor, node) {\n return editor.dom.getParent(node, function (node) {\n return editor.dom.getContentEditable(node) === 'true';\n });\n };\n var getCollapsedNode = function (rng) {\n return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element.fromDom) : Option.none();\n };\n var getFocusInElement = function (root, rng) {\n return getCollapsedNode(rng).bind(function (node) {\n if (isTableSection(node)) {\n return Option.some(node);\n } else if (contains$3(root, node) === false) {\n return Option.some(root);\n } else {\n return Option.none();\n }\n });\n };\n var normalizeSelection = function (editor, rng) {\n getFocusInElement(Element.fromDom(editor.getBody()), rng).bind(function (elm) {\n return CaretFinder.firstPositionIn(elm.dom());\n }).fold(function () {\n editor.selection.normalize();\n return;\n }, function (caretPos) {\n return editor.selection.setRng(caretPos.toRange());\n });\n };\n var focusBody = function (body) {\n if (body.setActive) {\n try {\n body.setActive();\n } catch (ex) {\n body.focus();\n }\n } else {\n body.focus();\n }\n };\n var hasElementFocus = function (elm) {\n return hasFocus(elm) || search(elm).isSome();\n };\n var hasIframeFocus = function (editor) {\n return editor.iframeElement && hasFocus(Element.fromDom(editor.iframeElement));\n };\n var hasInlineFocus = function (editor) {\n var rawBody = editor.getBody();\n return rawBody && hasElementFocus(Element.fromDom(rawBody));\n };\n var hasFocus$1 = function (editor) {\n return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\n };\n var focusEditor = function (editor) {\n var selection = editor.selection;\n var body = editor.getBody();\n var rng = selection.getRng();\n editor.quirks.refreshContentEditable();\n var contentEditableHost = getContentEditableHost(editor, selection.getNode());\n if (editor.$.contains(body, contentEditableHost)) {\n focusBody(contentEditableHost);\n normalizeSelection(editor, rng);\n activateEditor(editor);\n return;\n }\n if (editor.bookmark !== undefined && hasFocus$1(editor) === false) {\n SelectionBookmark.getRng(editor).each(function (bookmarkRng) {\n editor.selection.setRng(bookmarkRng);\n rng = bookmarkRng;\n });\n }\n if (!editor.inline) {\n if (!Env.opera) {\n focusBody(body);\n }\n editor.getWin().focus();\n }\n if (Env.gecko || editor.inline) {\n focusBody(body);\n normalizeSelection(editor, rng);\n }\n activateEditor(editor);\n };\n var activateEditor = function (editor) {\n return editor.editorManager.setActive(editor);\n };\n var focus = function (editor, skipFocus) {\n if (editor.removed) {\n return;\n }\n skipFocus ? activateEditor(editor) : focusEditor(editor);\n };\n var EditorFocus = {\n focus: focus,\n hasFocus: hasFocus$1\n };\n\n var defaultFormat$1 = 'html';\n var isTreeNode = function (content) {\n return content instanceof Node$1;\n };\n var moveSelection = function (editor) {\n if (EditorFocus.hasFocus(editor)) {\n CaretFinder.firstPositionIn(editor.getBody()).each(function (pos) {\n var node = pos.getNode();\n var caretPos = NodeType.isTable(node) ? CaretFinder.firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n var setEditorHtml = function (editor, html) {\n editor.dom.setHTML(editor.getBody(), html);\n moveSelection(editor);\n };\n var setContentString = function (editor, body, content, args) {\n var forcedRootBlockName, padd;\n if (content.length === 0 || /^\\s+$/.test(content)) {\n padd = '
';\n if (body.nodeName === 'TABLE') {\n content = '' + padd + '';\n } else if (/^(UL|OL)$/.test(body.nodeName)) {\n content = '
  • ' + padd + '
  • ';\n }\n forcedRootBlockName = Settings.getForcedRootBlock(editor);\n if (forcedRootBlockName && editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n content = padd;\n content = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs, content);\n } else if (!content) {\n content = '
    ';\n }\n setEditorHtml(editor, content);\n editor.fire('SetContent', args);\n } else {\n if (args.format !== 'raw') {\n content = Serializer({ validate: editor.validate }, editor.schema).serialize(editor.parser.parse(content, {\n isRootContent: true,\n insert: true\n }));\n }\n args.content = isWsPreserveElement(Element.fromDom(body)) ? content : Tools.trim(content);\n setEditorHtml(editor, args.content);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n }\n return args.content;\n };\n var setContentTree = function (editor, body, content, args) {\n filter$2(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\n var html = Serializer({ validate: editor.validate }, editor.schema).serialize(content);\n args.content = isWsPreserveElement(Element.fromDom(body)) ? html : Tools.trim(html);\n setEditorHtml(editor, args.content);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n return content;\n };\n var setContent = function (editor, content, args) {\n if (args === void 0) {\n args = {};\n }\n args.format = args.format ? args.format : defaultFormat$1;\n args.set = true;\n args.content = isTreeNode(content) ? '' : content;\n if (!isTreeNode(content) && !args.no_events) {\n editor.fire('BeforeSetContent', args);\n content = args.content;\n }\n return Option.from(editor.getBody()).fold(constant(content), function (body) {\n return isTreeNode(content) ? setContentTree(editor, body, content, args) : setContentString(editor, body, content, args);\n });\n };\n\n var firePreProcess = function (editor, args) {\n return editor.fire('PreProcess', args);\n };\n var firePostProcess = function (editor, args) {\n return editor.fire('PostProcess', args);\n };\n var fireRemove = function (editor) {\n return editor.fire('remove');\n };\n var fireDetach = function (editor) {\n return editor.fire('detach');\n };\n var fireSwitchMode = function (editor, mode) {\n return editor.fire('SwitchMode', { mode: mode });\n };\n var fireObjectResizeStart = function (editor, target, width, height) {\n editor.fire('ObjectResizeStart', {\n target: target,\n width: width,\n height: height\n });\n };\n var fireObjectResized = function (editor, target, width, height) {\n editor.fire('ObjectResized', {\n target: target,\n width: width,\n height: height\n });\n };\n var Events = {\n firePreProcess: firePreProcess,\n firePostProcess: firePostProcess,\n fireRemove: fireRemove,\n fireDetach: fireDetach,\n fireSwitchMode: fireSwitchMode,\n fireObjectResizeStart: fireObjectResizeStart,\n fireObjectResized: fireObjectResized\n };\n\n var DOM$1 = DOMUtils$1.DOM;\n var restoreOriginalStyles = function (editor) {\n DOM$1.setStyle(editor.id, 'display', editor.orgDisplay);\n };\n var safeDestroy = function (x) {\n return Option.from(x).each(function (x) {\n return x.destroy();\n });\n };\n var clearDomReferences = function (editor) {\n editor.contentAreaContainer = editor.formElement = editor.container = editor.editorContainer = null;\n editor.bodyElement = editor.contentDocument = editor.contentWindow = null;\n editor.iframeElement = editor.targetElm = null;\n if (editor.selection) {\n editor.selection = editor.selection.win = editor.selection.dom = editor.selection.dom.doc = null;\n }\n };\n var restoreForm = function (editor) {\n var form = editor.formElement;\n if (form) {\n if (form._mceOldSubmit) {\n form.submit = form._mceOldSubmit;\n form._mceOldSubmit = null;\n }\n DOM$1.unbind(form, 'submit reset', editor.formEventDelegate);\n }\n };\n var remove$6 = function (editor) {\n if (!editor.removed) {\n var _selectionOverrides = editor._selectionOverrides, editorUpload = editor.editorUpload;\n var body = editor.getBody();\n var element = editor.getElement();\n if (body) {\n editor.save({ is_removing: true });\n }\n editor.removed = true;\n editor.unbindAllNativeEvents();\n if (editor.hasHiddenInput && element) {\n DOM$1.remove(element.nextSibling);\n }\n Events.fireRemove(editor);\n editor.editorManager.remove(editor);\n if (!editor.inline && body) {\n restoreOriginalStyles(editor);\n }\n Events.fireDetach(editor);\n DOM$1.remove(editor.getContainer());\n safeDestroy(_selectionOverrides);\n safeDestroy(editorUpload);\n editor.destroy();\n }\n };\n var destroy = function (editor, automatic) {\n var selection = editor.selection, dom = editor.dom;\n if (editor.destroyed) {\n return;\n }\n if (!automatic && !editor.removed) {\n editor.remove();\n return;\n }\n if (!automatic) {\n editor.editorManager.off('beforeunload', editor._beforeUnload);\n if (editor.theme && editor.theme.destroy) {\n editor.theme.destroy();\n }\n safeDestroy(selection);\n safeDestroy(dom);\n }\n restoreForm(editor);\n clearDomReferences(editor);\n editor.destroyed = true;\n };\n\n var sectionResult = Immutable('sections', 'settings');\n var detection = PlatformDetection$1.detect();\n var isTouch = detection.deviceType.isTouch();\n var isPhone = detection.deviceType.isPhone();\n var mobilePlugins = [\n 'lists',\n 'autolink',\n 'autosave'\n ];\n var defaultMobileSettings = isPhone ? { theme: 'mobile' } : {};\n var normalizePlugins = function (plugins) {\n var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;\n var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim$2);\n return filter(trimmedPlugins, function (item) {\n return item.length > 0;\n });\n };\n var filterMobilePlugins = function (plugins) {\n return filter(plugins, curry(contains, mobilePlugins));\n };\n var extractSections = function (keys, settings) {\n var result = bifilter(settings, function (value, key) {\n return contains(keys, key);\n });\n return sectionResult(result.t, result.f);\n };\n var getSection = function (sectionResult, name, defaults) {\n var sections = sectionResult.sections();\n var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};\n return Tools.extend({}, defaults, sectionSettings);\n };\n var hasSection = function (sectionResult, name) {\n return sectionResult.sections().hasOwnProperty(name);\n };\n var getDefaultSettings = function (id, documentBaseUrl, editor) {\n return {\n id: id,\n theme: 'silver',\n popup_css: '',\n plugins: '',\n document_base_url: documentBaseUrl,\n add_form_submit_trigger: true,\n submit_patch: true,\n add_unload_trigger: true,\n convert_urls: true,\n relative_urls: true,\n remove_script_host: true,\n object_resizing: true,\n doctype: '',\n visual: true,\n font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large',\n font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%',\n forced_root_block: 'p',\n hidden_input: true,\n render_ui: true,\n inline_styles: true,\n convert_fonts_to_spans: true,\n indent: true,\n indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\n indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\n entity_encoding: 'named',\n url_converter: editor.convertURL,\n url_converter_scope: editor,\n ie7_compat: true\n };\n };\n var getExternalPlugins = function (overrideSettings, settings) {\n var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {};\n if (overrideSettings && overrideSettings.external_plugins) {\n return Tools.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);\n } else {\n return userDefinedExternalPlugins;\n }\n };\n var combinePlugins = function (forcedPlugins, plugins) {\n return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins));\n };\n var processPlugins = function (isTouchDevice, sectionResult, defaultOverrideSettings, settings) {\n var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins);\n var plugins = normalizePlugins(settings.plugins);\n var platformPlugins = isTouchDevice && hasSection(sectionResult, 'mobile') ? filterMobilePlugins(plugins) : plugins;\n var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\n return Tools.extend(settings, { plugins: combinedPlugins.join(' ') });\n };\n var isOnMobile = function (isTouchDevice, sectionResult) {\n var isInline = sectionResult.settings().inline;\n return isTouchDevice && !isInline;\n };\n var combineSettings = function (isTouchDevice, defaultSettings, defaultOverrideSettings, settings) {\n var sectionResult = extractSections(['mobile'], settings);\n var extendedSettings = Tools.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {\n validate: true,\n external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())\n });\n return processPlugins(isTouchDevice, sectionResult, defaultOverrideSettings, extendedSettings);\n };\n var getEditorSettings = function (editor, id, documentBaseUrl, defaultOverrideSettings, settings) {\n var defaultSettings = getDefaultSettings(id, documentBaseUrl, editor);\n return combineSettings(isTouch, defaultSettings, defaultOverrideSettings, settings);\n };\n var getFiltered = function (predicate, editor, name) {\n return Option.from(editor.settings[name]).filter(predicate);\n };\n var getString = curry(getFiltered, isString);\n var getParamObject = function (value) {\n var output = {};\n if (typeof value === 'string') {\n each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {\n var arr = val.split('=');\n if (arr.length > 1) {\n output[Tools.trim(arr[0])] = Tools.trim(arr[1]);\n } else {\n output[Tools.trim(arr[0])] = Tools.trim(arr[0]);\n }\n });\n } else {\n output = value;\n }\n return output;\n };\n var isArrayOf = function (p) {\n return function (a) {\n return isArray(a) && forall(a, p);\n };\n };\n var getParam = function (editor, name, defaultVal, type) {\n var value = name in editor.settings ? editor.settings[name] : defaultVal;\n if (type === 'hash') {\n return getParamObject(value);\n } else if (type === 'string') {\n return getFiltered(isString, editor, name).getOr(defaultVal);\n } else if (type === 'number') {\n return getFiltered(isNumber, editor, name).getOr(defaultVal);\n } else if (type === 'boolean') {\n return getFiltered(isBoolean, editor, name).getOr(defaultVal);\n } else if (type === 'object') {\n return getFiltered(isObject, editor, name).getOr(defaultVal);\n } else if (type === 'array') {\n return getFiltered(isArray, editor, name).getOr(defaultVal);\n } else if (type === 'string[]') {\n return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);\n } else if (type === 'function') {\n return getFiltered(isFunction, editor, name).getOr(defaultVal);\n } else {\n return value;\n }\n };\n\n var getProp = function (propName, elm) {\n var rawElm = elm.dom();\n return rawElm[propName];\n };\n var getComputedSizeProp = function (propName, elm) {\n return parseInt(get$2(elm, propName), 10);\n };\n var getClientWidth = curry(getProp, 'clientWidth');\n var getClientHeight = curry(getProp, 'clientHeight');\n var getMarginTop = curry(getComputedSizeProp, 'margin-top');\n var getMarginLeft = curry(getComputedSizeProp, 'margin-left');\n var getBoundingClientRect$1 = function (elm) {\n return elm.dom().getBoundingClientRect();\n };\n var isInsideElementContentArea = function (bodyElm, clientX, clientY) {\n var clientWidth = getClientWidth(bodyElm);\n var clientHeight = getClientHeight(bodyElm);\n return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\n };\n var transpose = function (inline, elm, clientX, clientY) {\n var clientRect = getBoundingClientRect$1(elm);\n var deltaX = inline ? clientRect.left + elm.dom().clientLeft + getMarginLeft(elm) : 0;\n var deltaY = inline ? clientRect.top + elm.dom().clientTop + getMarginTop(elm) : 0;\n var x = clientX - deltaX;\n var y = clientY - deltaY;\n return {\n x: x,\n y: y\n };\n };\n var isXYInContentArea = function (editor, clientX, clientY) {\n var bodyElm = Element.fromDom(editor.getBody());\n var targetElm = editor.inline ? bodyElm : documentElement(bodyElm);\n var transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\n return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\n };\n var fromDomSafe = function (node) {\n return Option.from(node).map(Element.fromDom);\n };\n var isEditorAttachedToDom = function (editor) {\n var rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\n return fromDomSafe(rawContainer).map(function (container) {\n return contains$3(owner(container), container);\n }).getOr(false);\n };\n var EditorView = {\n isXYInContentArea: isXYInContentArea,\n isEditorAttachedToDom: isEditorAttachedToDom\n };\n\n function NotificationManagerImpl() {\n var unimplemented = function () {\n throw new Error('Theme did not provide a NotificationManager implementation.');\n };\n return {\n open: unimplemented,\n close: unimplemented,\n reposition: unimplemented,\n getArgs: unimplemented\n };\n }\n\n function NotificationManager(editor) {\n var notifications = [];\n var getImplementation = function () {\n var theme = editor.theme;\n return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\n };\n var getTopNotification = function () {\n return Option.from(notifications[0]);\n };\n var isEqual = function (a, b) {\n return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\n };\n var reposition = function () {\n if (notifications.length > 0) {\n getImplementation().reposition(notifications);\n }\n };\n var addNotification = function (notification) {\n notifications.push(notification);\n };\n var closeNotification = function (notification) {\n findIndex(notifications, function (otherNotification) {\n return otherNotification === notification;\n }).each(function (index) {\n notifications.splice(index, 1);\n });\n };\n var open = function (spec) {\n if (editor.removed || !EditorView.isEditorAttachedToDom(editor)) {\n return;\n }\n return find(notifications, function (notification) {\n return isEqual(getImplementation().getArgs(notification), spec);\n }).getOrThunk(function () {\n editor.editorManager.setActive(editor);\n var notification = getImplementation().open(spec, function () {\n closeNotification(notification);\n reposition();\n });\n addNotification(notification);\n reposition();\n return notification;\n });\n };\n var close = function () {\n getTopNotification().each(function (notification) {\n getImplementation().close(notification);\n closeNotification(notification);\n reposition();\n });\n };\n var getNotifications = function () {\n return notifications;\n };\n var registerEvents = function (editor) {\n editor.on('SkinLoaded', function () {\n var serviceMessage = editor.settings.service_message;\n if (serviceMessage) {\n open({\n text: serviceMessage,\n type: 'warn',\n timeout: 0\n });\n }\n });\n editor.on('ResizeEditor ResizeWindow NodeChange', function () {\n Delay.requestAnimationFrame(reposition);\n });\n editor.on('remove', function () {\n each(notifications.slice(), function (notification) {\n getImplementation().close(notification);\n });\n });\n };\n registerEvents(editor);\n return {\n open: open,\n close: close,\n getNotifications: getNotifications\n };\n }\n\n function WindowManagerImpl () {\n var unimplemented = function () {\n throw new Error('Theme did not provide a WindowManager implementation.');\n };\n return {\n open: unimplemented,\n openUrl: unimplemented,\n alert: unimplemented,\n confirm: unimplemented,\n close: unimplemented,\n getParams: unimplemented,\n setParams: unimplemented\n };\n }\n\n var WindowManager = function (editor) {\n var dialogs = [];\n var getImplementation = function () {\n var theme = editor.theme;\n return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\n };\n var funcBind = function (scope, f) {\n return function () {\n return f ? f.apply(scope, arguments) : undefined;\n };\n };\n var fireOpenEvent = function (dialog) {\n editor.fire('OpenWindow', { dialog: dialog });\n };\n var fireCloseEvent = function (dialog) {\n editor.fire('CloseWindow', { dialog: dialog });\n };\n var addDialog = function (dialog) {\n dialogs.push(dialog);\n fireOpenEvent(dialog);\n };\n var closeDialog = function (dialog) {\n fireCloseEvent(dialog);\n dialogs = filter(dialogs, function (otherDialog) {\n return otherDialog !== dialog;\n });\n if (dialogs.length === 0) {\n editor.focus();\n }\n };\n var getTopDialog = function () {\n return Option.from(dialogs[dialogs.length - 1]);\n };\n var storeSelectionAndOpenDialog = function (openDialog) {\n editor.editorManager.setActive(editor);\n SelectionBookmark.store(editor);\n var dialog = openDialog();\n addDialog(dialog);\n return dialog;\n };\n var open = function (args, params) {\n return storeSelectionAndOpenDialog(function () {\n return getImplementation().open(args, params, closeDialog);\n });\n };\n var openUrl = function (args) {\n return storeSelectionAndOpenDialog(function () {\n return getImplementation().openUrl(args, closeDialog);\n });\n };\n var alert = function (message, callback, scope) {\n getImplementation().alert(message, funcBind(scope ? scope : this, callback));\n };\n var confirm = function (message, callback, scope) {\n getImplementation().confirm(message, funcBind(scope ? scope : this, callback));\n };\n var close = function () {\n getTopDialog().each(function (dialog) {\n getImplementation().close(dialog);\n closeDialog(dialog);\n });\n };\n editor.on('remove', function () {\n each(dialogs, function (dialog) {\n getImplementation().close(dialog);\n });\n });\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n confirm: confirm,\n close: close\n };\n };\n\n var PluginManager = AddOnManager$1.PluginManager;\n var resolvePluginName = function (targetUrl, suffix) {\n for (var name in PluginManager.urls) {\n var matchUrl = PluginManager.urls[name] + '/plugin' + suffix + '.js';\n if (matchUrl === targetUrl) {\n return name;\n }\n }\n return null;\n };\n var pluginUrlToMessage = function (editor, url) {\n var plugin = resolvePluginName(url, editor.suffix);\n return plugin ? I18n.translate([\n 'Failed to load plugin: {0} from url {1}',\n plugin,\n url\n ]) : I18n.translate([\n 'Failed to load plugin url: {0}',\n url\n ]);\n };\n var displayNotification = function (editor, message) {\n editor.notificationManager.open({\n type: 'error',\n text: message\n });\n };\n var displayError = function (editor, message) {\n if (editor._skinLoaded) {\n displayNotification(editor, message);\n } else {\n editor.on('SkinLoaded', function () {\n displayNotification(editor, message);\n });\n }\n };\n var uploadError = function (editor, message) {\n displayError(editor, I18n.translate([\n 'Failed to upload image: {0}',\n message\n ]));\n };\n var pluginLoadError = function (editor, url) {\n displayError(editor, pluginUrlToMessage(editor, url));\n };\n var pluginInitError = function (editor, name, err) {\n var message = I18n.translate([\n 'Failed to initialize plugin: {0}',\n name\n ]);\n initError(message, err);\n displayError(editor, message);\n };\n var initError = function (message) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var console = domGlobals.window.console;\n if (console) {\n if (console.error) {\n console.error.apply(console, arguments);\n } else {\n console.log.apply(console, arguments);\n }\n }\n };\n var ErrorReporter = {\n pluginLoadError: pluginLoadError,\n pluginInitError: pluginInitError,\n uploadError: uploadError,\n displayError: displayError,\n initError: initError\n };\n\n var getAll = function () {\n return {\n 'accessibility-check': '',\n 'align-center': '',\n 'align-justify': '',\n 'align-left': '',\n 'align-none': '',\n 'align-right': '',\n 'arrow-left': '',\n 'arrow-right': '',\n 'bold': '',\n 'bookmark': '',\n 'border-width': '',\n 'brightness': '',\n 'browse': '',\n 'cancel': '',\n 'change-case': '',\n 'character-count': '',\n 'checklist': '',\n 'checkmark': '',\n 'chevron-down': '',\n 'chevron-left': '',\n 'chevron-right': '',\n 'chevron-up': '',\n 'close': '',\n 'code-sample': '',\n 'color-levels': '',\n 'color-picker': '',\n 'color-swatch-remove-color': '',\n 'color-swatch': '',\n 'comment': '',\n 'contrast': '',\n 'copy': '',\n 'crop': '',\n 'cut': '',\n 'document-properties': '',\n 'drag': '',\n 'duplicate': '',\n 'edit-image': '',\n 'embed-page': '',\n 'embed': '',\n 'emoji': '',\n 'fill': '',\n 'flip-horizontally': '',\n 'flip-vertically': '',\n 'format-painter': '',\n 'fullscreen': '',\n 'gamma': '',\n 'help': '',\n 'highlight-bg-color': '',\n 'home': '',\n 'horizontal-rule': '',\n 'image-options': '',\n 'image': '',\n 'indent': '',\n 'info': '',\n 'insert-character': '',\n 'insert-time': '',\n 'invert': '',\n 'italic': '',\n 'line': '',\n 'link': '',\n 'list-bull-circle': '',\n 'list-bull-default': '',\n 'list-bull-square': '',\n 'list-num-default': '',\n 'list-num-lower-alpha': '',\n 'list-num-lower-greek': '',\n 'list-num-lower-roman': '',\n 'list-num-upper-alpha': '',\n 'list-num-upper-roman': '',\n 'lock': '',\n 'ltr': '',\n 'more-drawer': '',\n 'new-document': '',\n 'new-tab': '',\n 'non-breaking': '',\n 'notice': '',\n 'ordered-list': '',\n 'orientation': '',\n 'outdent': '',\n 'page-break': '',\n 'paragraph': '',\n 'paste-text': '',\n 'paste': '',\n 'permanent-pen': '',\n 'plus': '',\n 'preferences': '',\n 'preview': '',\n 'print': '',\n 'quote': '',\n 'redo': '',\n 'reload': '',\n 'remove-formatting': '',\n 'remove': '',\n 'resize-handle': '',\n 'resize': '',\n 'restore-draft': '',\n 'rotate-left': '',\n 'rotate-right': '',\n 'rtl': '',\n 'save': '',\n 'search': '',\n 'select-all': '',\n 'selected': '',\n 'settings': '',\n 'sharpen': '',\n 'sourcecode': '',\n 'spell-check': '',\n 'strike-through': '',\n 'subscript': '',\n 'superscript': '',\n 'table-cell-properties': '',\n 'table-cell-select-all': '',\n 'table-cell-select-inner': '',\n 'table-delete-column': '',\n 'table-delete-row': '',\n 'table-delete-table': '',\n 'table-insert-column-after': '',\n 'table-insert-column-before': '',\n 'table-insert-row-above': '',\n 'table-insert-row-after': '',\n 'table-left-header': '',\n 'table-merge-cells': '',\n 'table-row-properties': '',\n 'table-split-cells': '',\n 'table-top-header': '',\n 'table': '',\n 'template': '',\n 'temporary-placeholder': '',\n 'text-color': '',\n 'toc': '',\n 'translate': '',\n 'underline': '',\n 'undo': '',\n 'unlink': '',\n 'unlock': '',\n 'unordered-list': '',\n 'unselected': '',\n 'upload': '',\n 'user': '',\n 'warning': '',\n 'zoom-in': '',\n 'zoom-out': ''\n };\n };\n\n var CreateIconManager = function () {\n var lookup = {};\n var add = function (id, iconPack) {\n lookup[id] = iconPack;\n };\n var get = function (id) {\n if (lookup[id]) {\n return lookup[id];\n }\n return { icons: {} };\n };\n var has$1 = function (id) {\n return has(lookup, id);\n };\n return {\n add: add,\n get: get,\n has: has$1\n };\n };\n var IconManager = CreateIconManager();\n\n var PluginManager$1 = AddOnManager$1.PluginManager;\n\n var ThemeManager = AddOnManager$1.ThemeManager;\n\n function XMLHttpRequest () {\n var f = Global$1.getOrDie('XMLHttpRequest');\n return new f();\n }\n\n function Uploader(uploadStatus, settings) {\n var pendingPromises = {};\n var pathJoin = function (path1, path2) {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n var defaultHandler = function (blobInfo, success, failure, progress) {\n var xhr, formData;\n xhr = XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = function (e) {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = function () {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = function () {\n var json;\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n json = JSON.parse(xhr.responseText);\n if (!json || typeof json.location !== 'string') {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n formData = new domGlobals.FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n };\n var noUpload = function () {\n return new promiseObj(function (resolve) {\n resolve([]);\n });\n };\n var handlerSuccess = function (blobInfo, url) {\n return {\n url: url,\n blobInfo: blobInfo,\n status: true\n };\n };\n var handlerFailure = function (blobInfo, error) {\n return {\n url: '',\n blobInfo: blobInfo,\n status: false,\n error: error\n };\n };\n var resolvePending = function (blobUri, result) {\n Tools.each(pendingPromises[blobUri], function (resolve) {\n resolve(result);\n });\n delete pendingPromises[blobUri];\n };\n var uploadBlobInfo = function (blobInfo, handler, openNotification) {\n uploadStatus.markPending(blobInfo.blobUri());\n return new promiseObj(function (resolve) {\n var notification, progress;\n var noop = function () {\n };\n try {\n var closeNotification_1 = function () {\n if (notification) {\n notification.close();\n progress = noop;\n }\n };\n var success = function (url) {\n closeNotification_1();\n uploadStatus.markUploaded(blobInfo.blobUri(), url);\n resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\n resolve(handlerSuccess(blobInfo, url));\n };\n var failure = function (error) {\n closeNotification_1();\n uploadStatus.removeFailed(blobInfo.blobUri());\n resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\n resolve(handlerFailure(blobInfo, error));\n };\n progress = function (percent) {\n if (percent < 0 || percent > 100) {\n return;\n }\n if (!notification) {\n notification = openNotification();\n }\n notification.progressBar.value(percent);\n };\n handler(blobInfo, success, failure, progress);\n } catch (ex) {\n resolve(handlerFailure(blobInfo, ex.message));\n }\n });\n };\n var isDefaultHandler = function (handler) {\n return handler === defaultHandler;\n };\n var pendingUploadBlobInfo = function (blobInfo) {\n var blobUri = blobInfo.blobUri();\n return new promiseObj(function (resolve) {\n pendingPromises[blobUri] = pendingPromises[blobUri] || [];\n pendingPromises[blobUri].push(resolve);\n });\n };\n var uploadBlobs = function (blobInfos, openNotification) {\n blobInfos = Tools.grep(blobInfos, function (blobInfo) {\n return !uploadStatus.isUploaded(blobInfo.blobUri());\n });\n return promiseObj.all(Tools.map(blobInfos, function (blobInfo) {\n return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);\n }));\n };\n var upload = function (blobInfos, openNotification) {\n return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\n };\n if (isFunction(settings.handler) === false) {\n settings.handler = defaultHandler;\n }\n return { upload: upload };\n }\n\n function FileReader () {\n var f = Global$1.getOrDie('FileReader');\n return new f();\n }\n\n function Uint8Array (arr) {\n var f = Global$1.getOrDie('Uint8Array');\n return new f(arr);\n }\n\n var requestAnimationFrame$1 = function (callback) {\n var f = Global$1.getOrDie('requestAnimationFrame');\n f(callback);\n };\n var atob = function (base64) {\n var f = Global$1.getOrDie('atob');\n return f(base64);\n };\n var Window = {\n atob: atob,\n requestAnimationFrame: requestAnimationFrame$1\n };\n\n var blobUriToBlob = function (url) {\n return new promiseObj(function (resolve, reject) {\n var rejectWithError = function () {\n reject('Cannot convert ' + url + ' to Blob. Resource might not exist or is inaccessible.');\n };\n try {\n var xhr = XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n rejectWithError();\n }\n };\n xhr.onerror = rejectWithError;\n xhr.send();\n } catch (ex) {\n rejectWithError();\n }\n });\n };\n var parseDataUri = function (uri) {\n var type, matches;\n var uriParts = decodeURIComponent(uri).split(',');\n matches = /data:([^;]+)/.exec(uriParts[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type: type,\n data: uriParts[1]\n };\n };\n var dataUriToBlob = function (uri) {\n return new promiseObj(function (resolve) {\n var str, arr, i;\n var uriParts = parseDataUri(uri);\n try {\n str = Window.atob(uriParts.data);\n } catch (e) {\n resolve(new domGlobals.Blob([]));\n return;\n }\n arr = Uint8Array(str.length);\n for (i = 0; i < arr.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n resolve(new domGlobals.Blob([arr], { type: uriParts.type }));\n });\n };\n var uriToBlob = function (url) {\n if (url.indexOf('blob:') === 0) {\n return blobUriToBlob(url);\n }\n if (url.indexOf('data:') === 0) {\n return dataUriToBlob(url);\n }\n return null;\n };\n var blobToDataUri = function (blob) {\n return new promiseObj(function (resolve) {\n var reader = FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n };\n var Conversions = {\n uriToBlob: uriToBlob,\n blobToDataUri: blobToDataUri,\n parseDataUri: parseDataUri\n };\n\n var count = 0;\n var uniqueId = function (prefix) {\n return (prefix || 'blobid') + count++;\n };\n var imageToBlobInfo = function (blobCache, img, resolve, reject) {\n var base64, blobInfo;\n if (img.src.indexOf('blob:') === 0) {\n blobInfo = blobCache.getByUri(img.src);\n if (blobInfo) {\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n } else {\n Conversions.uriToBlob(img.src).then(function (blob) {\n Conversions.blobToDataUri(blob).then(function (dataUri) {\n base64 = Conversions.parseDataUri(dataUri).data;\n blobInfo = blobCache.create(uniqueId(), blob, base64);\n blobCache.add(blobInfo);\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n });\n }, function (err) {\n reject(err);\n });\n }\n return;\n }\n base64 = Conversions.parseDataUri(img.src).data;\n blobInfo = blobCache.findFirst(function (cachedBlobInfo) {\n return cachedBlobInfo.base64() === base64;\n });\n if (blobInfo) {\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n } else {\n Conversions.uriToBlob(img.src).then(function (blob) {\n blobInfo = blobCache.create(uniqueId(), blob, base64);\n blobCache.add(blobInfo);\n resolve({\n image: img,\n blobInfo: blobInfo\n });\n }, function (err) {\n reject(err);\n });\n }\n };\n var getAllImages = function (elm) {\n return elm ? from$1(elm.getElementsByTagName('img')) : [];\n };\n function ImageScanner(uploadStatus, blobCache) {\n var cachedPromises = {};\n var findAll = function (elm, predicate) {\n var images;\n if (!predicate) {\n predicate = constant(true);\n }\n images = filter(getAllImages(elm), function (img) {\n var src = img.src;\n if (!Env.fileApi) {\n return false;\n }\n if (img.hasAttribute('data-mce-bogus')) {\n return false;\n }\n if (img.hasAttribute('data-mce-placeholder')) {\n return false;\n }\n if (!src || src === Env.transparentSrc) {\n return false;\n }\n if (src.indexOf('blob:') === 0) {\n return !uploadStatus.isUploaded(src) && predicate(img);\n }\n if (src.indexOf('data:') === 0) {\n return predicate(img);\n }\n return false;\n });\n var promises = map(images, function (img) {\n if (cachedPromises[img.src]) {\n return new promiseObj(function (resolve) {\n cachedPromises[img.src].then(function (imageInfo) {\n if (typeof imageInfo === 'string') {\n return imageInfo;\n }\n resolve({\n image: img,\n blobInfo: imageInfo.blobInfo\n });\n });\n });\n }\n var newPromise = new promiseObj(function (resolve, reject) {\n imageToBlobInfo(blobCache, img, resolve, reject);\n }).then(function (result) {\n delete cachedPromises[result.image.src];\n return result;\n }).catch(function (error) {\n delete cachedPromises[img.src];\n return error;\n });\n cachedPromises[img.src] = newPromise;\n return newPromise;\n });\n return promiseObj.all(promises);\n };\n return { findAll: findAll };\n }\n\n var count$1 = 0;\n var seed = function () {\n var rnd = function () {\n return Math.round(Math.random() * 4294967295).toString(36);\n };\n var now = new Date().getTime();\n return 's' + now.toString(36) + rnd() + rnd() + rnd();\n };\n var uuid = function (prefix) {\n return prefix + count$1++ + seed();\n };\n var Uuid = { uuid: uuid };\n\n var BlobCache = function () {\n var cache = [];\n var mimeToExt = function (mime) {\n var mimes = {\n 'image/jpeg': 'jpg',\n 'image/jpg': 'jpg',\n 'image/gif': 'gif',\n 'image/png': 'png'\n };\n return mimes[mime.toLowerCase()] || 'dat';\n };\n var create = function (o, blob, base64, filename) {\n if (isString(o)) {\n var id = o;\n return toBlobInfo({\n id: id,\n name: filename,\n blob: blob,\n base64: base64\n });\n } else if (isObject(o)) {\n return toBlobInfo(o);\n } else {\n throw new Error('Unknown input type');\n }\n };\n var toBlobInfo = function (o) {\n var id, name;\n if (!o.blob || !o.base64) {\n throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\n }\n id = o.id || Uuid.uuid('blobid');\n name = o.name || id;\n return {\n id: constant(id),\n name: constant(name),\n filename: constant(name + '.' + mimeToExt(o.blob.type)),\n blob: constant(o.blob),\n base64: constant(o.base64),\n blobUri: constant(o.blobUri || URL.createObjectURL(o.blob)),\n uri: constant(o.uri)\n };\n };\n var add = function (blobInfo) {\n if (!get(blobInfo.id())) {\n cache.push(blobInfo);\n }\n };\n var get = function (id) {\n return findFirst(function (cachedBlobInfo) {\n return cachedBlobInfo.id() === id;\n });\n };\n var findFirst = function (predicate) {\n return filter(cache, predicate)[0];\n };\n var getByUri = function (blobUri) {\n return findFirst(function (blobInfo) {\n return blobInfo.blobUri() === blobUri;\n });\n };\n var removeByUri = function (blobUri) {\n cache = filter(cache, function (blobInfo) {\n if (blobInfo.blobUri() === blobUri) {\n URL.revokeObjectURL(blobInfo.blobUri());\n return false;\n }\n return true;\n });\n };\n var destroy = function () {\n each(cache, function (cachedBlobInfo) {\n URL.revokeObjectURL(cachedBlobInfo.blobUri());\n });\n cache = [];\n };\n return {\n create: create,\n add: add,\n get: get,\n getByUri: getByUri,\n findFirst: findFirst,\n removeByUri: removeByUri,\n destroy: destroy\n };\n };\n\n function UploadStatus () {\n var PENDING = 1, UPLOADED = 2;\n var blobUriStatuses = {};\n var createStatus = function (status, resultUri) {\n return {\n status: status,\n resultUri: resultUri\n };\n };\n var hasBlobUri = function (blobUri) {\n return blobUri in blobUriStatuses;\n };\n var getResultUri = function (blobUri) {\n var result = blobUriStatuses[blobUri];\n return result ? result.resultUri : null;\n };\n var isPending = function (blobUri) {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\n };\n var isUploaded = function (blobUri) {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\n };\n var markPending = function (blobUri) {\n blobUriStatuses[blobUri] = createStatus(PENDING, null);\n };\n var markUploaded = function (blobUri, resultUri) {\n blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\n };\n var removeFailed = function (blobUri) {\n delete blobUriStatuses[blobUri];\n };\n var destroy = function () {\n blobUriStatuses = {};\n };\n return {\n hasBlobUri: hasBlobUri,\n getResultUri: getResultUri,\n isPending: isPending,\n isUploaded: isUploaded,\n markPending: markPending,\n markUploaded: markUploaded,\n removeFailed: removeFailed,\n destroy: destroy\n };\n }\n\n var EditorUpload = function (editor) {\n var blobCache = BlobCache();\n var uploader, imageScanner;\n var uploadStatus = UploadStatus();\n var urlFilters = [];\n var aliveGuard = function (callback) {\n return function (result) {\n if (editor.selection) {\n return callback(result);\n }\n return [];\n };\n };\n var cacheInvalidator = function () {\n return '?' + new Date().getTime();\n };\n var replaceString = function (content, search, replace) {\n var index = 0;\n do {\n index = content.indexOf(search, index);\n if (index !== -1) {\n content = content.substring(0, index) + replace + content.substr(index + search.length);\n index += replace.length - search.length + 1;\n }\n } while (index !== -1);\n return content;\n };\n var replaceImageUrl = function (content, targetUrl, replacementUrl) {\n content = replaceString(content, 'src=\"' + targetUrl + '\"', 'src=\"' + replacementUrl + '\"');\n content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\n return content;\n };\n var replaceUrlInUndoStack = function (targetUrl, replacementUrl) {\n each(editor.undoManager.data, function (level) {\n if (level.type === 'fragmented') {\n level.fragments = map(level.fragments, function (fragment) {\n return replaceImageUrl(fragment, targetUrl, replacementUrl);\n });\n } else {\n level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\n }\n });\n };\n var openNotification = function () {\n return editor.notificationManager.open({\n text: editor.translate('Image uploading...'),\n type: 'info',\n timeout: -1,\n progressBar: true\n });\n };\n var replaceImageUri = function (image, resultUri) {\n blobCache.removeByUri(image.src);\n replaceUrlInUndoStack(image.src, resultUri);\n editor.$(image).attr({\n 'src': Settings.shouldReuseFileName(editor) ? resultUri + cacheInvalidator() : resultUri,\n 'data-mce-src': editor.convertURL(resultUri, 'src')\n });\n };\n var uploadImages = function (callback) {\n if (!uploader) {\n uploader = Uploader(uploadStatus, {\n url: Settings.getImageUploadUrl(editor),\n basePath: Settings.getImageUploadBasePath(editor),\n credentials: Settings.getImagesUploadCredentials(editor),\n handler: Settings.getImagesUploadHandler(editor)\n });\n }\n return scanForImages().then(aliveGuard(function (imageInfos) {\n var blobInfos;\n blobInfos = map(imageInfos, function (imageInfo) {\n return imageInfo.blobInfo;\n });\n return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) {\n var filteredResult = map(result, function (uploadInfo, index) {\n var image = imageInfos[index].image;\n if (uploadInfo.status && Settings.shouldReplaceBlobUris(editor)) {\n replaceImageUri(image, uploadInfo.url);\n } else if (uploadInfo.error) {\n ErrorReporter.uploadError(editor, uploadInfo.error);\n }\n return {\n element: image,\n status: uploadInfo.status\n };\n });\n if (callback) {\n callback(filteredResult);\n }\n return filteredResult;\n }));\n }));\n };\n var uploadImagesAuto = function (callback) {\n if (Settings.isAutomaticUploadsEnabled(editor)) {\n return uploadImages(callback);\n }\n };\n var isValidDataUriImage = function (imgElm) {\n if (forall(urlFilters, function (filter) {\n return filter(imgElm);\n }) === false) {\n return false;\n }\n if (imgElm.getAttribute('src').indexOf('data:') === 0) {\n var dataImgFilter = Settings.getImagesDataImgFilter(editor);\n return dataImgFilter(imgElm);\n }\n return true;\n };\n var addFilter = function (filter) {\n urlFilters.push(filter);\n };\n var scanForImages = function () {\n if (!imageScanner) {\n imageScanner = ImageScanner(uploadStatus, blobCache);\n }\n return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(function (result) {\n result = filter(result, function (resultItem) {\n if (typeof resultItem === 'string') {\n ErrorReporter.displayError(editor, resultItem);\n return false;\n }\n return true;\n });\n each(result, function (resultItem) {\n replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\n resultItem.image.src = resultItem.blobInfo.blobUri();\n resultItem.image.removeAttribute('data-mce-src');\n });\n return result;\n }));\n };\n var destroy = function () {\n blobCache.destroy();\n uploadStatus.destroy();\n imageScanner = uploader = null;\n };\n var replaceBlobUris = function (content) {\n return content.replace(/src=\"(blob:[^\"]+)\"/g, function (match, blobUri) {\n var resultUri = uploadStatus.getResultUri(blobUri);\n if (resultUri) {\n return 'src=\"' + resultUri + '\"';\n }\n var blobInfo = blobCache.getByUri(blobUri);\n if (!blobInfo) {\n blobInfo = foldl(editor.editorManager.get(), function (result, editor) {\n return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\n }, null);\n }\n if (blobInfo) {\n var blob = blobInfo.blob();\n return 'src=\"data:' + blob.type + ';base64,' + blobInfo.base64() + '\"';\n }\n return match;\n });\n };\n editor.on('SetContent', function () {\n if (Settings.isAutomaticUploadsEnabled(editor)) {\n uploadImagesAuto();\n } else {\n scanForImages();\n }\n });\n editor.on('RawSaveContent', function (e) {\n e.content = replaceBlobUris(e.content);\n });\n editor.on('GetContent', function (e) {\n if (e.source_view || e.format === 'raw') {\n return;\n }\n e.content = replaceBlobUris(e.content);\n });\n editor.on('PostRender', function () {\n editor.parser.addNodeFilter('img', function (images) {\n each(images, function (img) {\n var src = img.attr('src');\n if (blobCache.getByUri(src)) {\n return;\n }\n var resultUri = uploadStatus.getResultUri(src);\n if (resultUri) {\n img.attr('src', resultUri);\n }\n });\n });\n });\n return {\n blobCache: blobCache,\n addFilter: addFilter,\n uploadImages: uploadImages,\n uploadImagesAuto: uploadImagesAuto,\n scanForImages: scanForImages,\n destroy: destroy\n };\n };\n\n var dropLast = function (xs) {\n return xs.slice(0, -1);\n };\n var parentsUntil$1 = function (start, root, predicate) {\n if (contains$3(root, start)) {\n return dropLast(parents(start, function (elm) {\n return predicate(elm) || eq(elm, root);\n }));\n } else {\n return [];\n }\n };\n var parents$1 = function (start, root) {\n return parentsUntil$1(start, root, constant(false));\n };\n var parentsAndSelf = function (start, root) {\n return [start].concat(parents$1(start, root));\n };\n var Parents = {\n parentsUntil: parentsUntil$1,\n parents: parents$1,\n parentsAndSelf: parentsAndSelf\n };\n\n var isBlockElement = function (blockElements, node) {\n return blockElements.hasOwnProperty(node.nodeName);\n };\n var isValidTarget = function (blockElements, node) {\n if (NodeType.isText(node)) {\n return true;\n } else if (NodeType.isElement(node)) {\n return !isBlockElement(blockElements, node) && !Bookmarks.isBookmarkNode(node);\n } else {\n return false;\n }\n };\n var hasBlockParent = function (blockElements, root, node) {\n return exists(Parents.parents(Element.fromDom(node), Element.fromDom(root)), function (elm) {\n return isBlockElement(blockElements, elm.dom());\n });\n };\n var shouldRemoveTextNode = function (blockElements, node) {\n if (NodeType.isText(node)) {\n if (node.nodeValue.length === 0) {\n return true;\n } else if (/^\\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) {\n return true;\n }\n }\n return false;\n };\n var addRootBlocks = function (editor) {\n var dom = editor.dom, selection = editor.selection;\n var schema = editor.schema, blockElements = schema.getBlockElements();\n var node = selection.getStart();\n var rootNode = editor.getBody();\n var rng;\n var startContainer, startOffset, endContainer, endOffset, rootBlockNode;\n var tempNode, wrapped, restoreSelection;\n var rootNodeName;\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (!node || !NodeType.isElement(node) || !forcedRootBlock) {\n return;\n }\n rootNodeName = rootNode.nodeName.toLowerCase();\n if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, node)) {\n return;\n }\n rng = selection.getRng();\n startContainer = rng.startContainer;\n startOffset = rng.startOffset;\n endContainer = rng.endContainer;\n endOffset = rng.endOffset;\n restoreSelection = EditorFocus.hasFocus(editor);\n node = rootNode.firstChild;\n while (node) {\n if (isValidTarget(blockElements, node)) {\n if (shouldRemoveTextNode(blockElements, node)) {\n tempNode = node;\n node = node.nextSibling;\n dom.remove(tempNode);\n continue;\n }\n if (!rootBlockNode) {\n rootBlockNode = dom.create(forcedRootBlock, Settings.getForcedRootBlockAttrs(editor));\n node.parentNode.insertBefore(rootBlockNode, node);\n wrapped = true;\n }\n tempNode = node;\n node = node.nextSibling;\n rootBlockNode.appendChild(tempNode);\n } else {\n rootBlockNode = null;\n node = node.nextSibling;\n }\n }\n if (wrapped && restoreSelection) {\n rng.setStart(startContainer, startOffset);\n rng.setEnd(endContainer, endOffset);\n selection.setRng(rng);\n editor.nodeChanged();\n }\n };\n var setup$2 = function (editor) {\n if (Settings.getForcedRootBlock(editor)) {\n editor.on('NodeChange', curry(addRootBlocks, editor));\n }\n };\n var ForceBlocks = { setup: setup$2 };\n\n var isEq$1 = function (rng1, rng2) {\n return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\n };\n var RangeCompare = { isEq: isEq$1 };\n\n var getStartNode = function (rng) {\n var sc = rng.startContainer, so = rng.startOffset;\n if (NodeType.isText(sc)) {\n return so === 0 ? Option.some(Element.fromDom(sc)) : Option.none();\n } else {\n return Option.from(sc.childNodes[so]).map(Element.fromDom);\n }\n };\n var getEndNode = function (rng) {\n var ec = rng.endContainer, eo = rng.endOffset;\n if (NodeType.isText(ec)) {\n return eo === ec.data.length ? Option.some(Element.fromDom(ec)) : Option.none();\n } else {\n return Option.from(ec.childNodes[eo - 1]).map(Element.fromDom);\n }\n };\n var getFirstChildren = function (node) {\n return firstChild(node).fold(constant([node]), function (child) {\n return [node].concat(getFirstChildren(child));\n });\n };\n var getLastChildren = function (node) {\n return lastChild(node).fold(constant([node]), function (child) {\n if (name(child) === 'br') {\n return prevSibling(child).map(function (sibling) {\n return [node].concat(getLastChildren(sibling));\n }).getOr([]);\n } else {\n return [node].concat(getLastChildren(child));\n }\n });\n };\n var hasAllContentsSelected = function (elm, rng) {\n return liftN([\n getStartNode(rng),\n getEndNode(rng)\n ], function (startNode, endNode) {\n var start = find(getFirstChildren(elm), curry(eq, startNode));\n var end = find(getLastChildren(elm), curry(eq, endNode));\n return start.isSome() && end.isSome();\n }).getOr(false);\n };\n var moveEndPoint$1 = function (dom, rng, node, start) {\n var root = node, walker = new TreeWalker(node, root);\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n do {\n if (node.nodeType === 3 && Tools.trim(node.nodeValue).length !== 0) {\n if (start) {\n rng.setStart(node, 0);\n } else {\n rng.setEnd(node, node.nodeValue.length);\n }\n return;\n }\n if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) {\n if (start) {\n rng.setStartBefore(node);\n } else {\n if (node.nodeName === 'BR') {\n rng.setEndBefore(node);\n } else {\n rng.setEndAfter(node);\n }\n }\n return;\n }\n if (Env.ie && Env.ie < 11 && dom.isBlock(node) && dom.isEmpty(node)) {\n if (start) {\n rng.setStart(node, 0);\n } else {\n rng.setEnd(node, 0);\n }\n return;\n }\n } while (node = start ? walker.next() : walker.prev());\n if (root.nodeName === 'BODY') {\n if (start) {\n rng.setStart(root, 0);\n } else {\n rng.setEnd(root, root.childNodes.length);\n }\n }\n };\n var hasAnyRanges = function (editor) {\n var sel = editor.selection.getSel();\n return sel && sel.rangeCount > 0;\n };\n\n var NodeChange = function () {\n function NodeChange(editor) {\n this.lastPath = [];\n this.editor = editor;\n var lastRng;\n var self = this;\n if (!('onselectionchange' in editor.getDoc())) {\n editor.on('NodeChange click mouseup keyup focus', function (e) {\n var nativeRng, fakeRng;\n nativeRng = editor.selection.getRng();\n fakeRng = {\n startContainer: nativeRng.startContainer,\n startOffset: nativeRng.startOffset,\n endContainer: nativeRng.endContainer,\n endOffset: nativeRng.endOffset\n };\n if (e.type === 'nodechange' || !RangeCompare.isEq(fakeRng, lastRng)) {\n editor.fire('SelectionChange');\n }\n lastRng = fakeRng;\n });\n }\n editor.on('contextmenu', function () {\n editor.fire('SelectionChange');\n });\n editor.on('SelectionChange', function () {\n var startElm = editor.selection.getStart(true);\n if (!startElm || !Env.range && editor.selection.isCollapsed()) {\n return;\n }\n if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\n editor.nodeChanged({ selectionChange: true });\n }\n });\n editor.on('mouseup', function (e) {\n if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\n if (editor.selection.getNode().nodeName === 'IMG') {\n Delay.setEditorTimeout(editor, function () {\n editor.nodeChanged();\n });\n } else {\n editor.nodeChanged();\n }\n }\n });\n }\n NodeChange.prototype.nodeChanged = function (args) {\n var selection = this.editor.selection;\n var node, parents, root;\n if (this.editor.initialized && selection && !this.editor.settings.disable_nodechange && !this.editor.readonly) {\n root = this.editor.getBody();\n node = selection.getStart(true) || root;\n if (node.ownerDocument !== this.editor.getDoc() || !this.editor.dom.isChildOf(node, root)) {\n node = root;\n }\n parents = [];\n this.editor.dom.getParent(node, function (node) {\n if (node === root) {\n return true;\n }\n parents.push(node);\n });\n args = args || {};\n args.element = node;\n args.parents = parents;\n this.editor.fire('NodeChange', args);\n }\n };\n NodeChange.prototype.isSameElementPath = function (startElm) {\n var i, currentPath;\n currentPath = this.editor.$(startElm).parentsUntil(this.editor.getBody()).add(startElm);\n if (currentPath.length === this.lastPath.length) {\n for (i = currentPath.length; i >= 0; i--) {\n if (currentPath[i] !== this.lastPath[i]) {\n break;\n }\n }\n if (i === -1) {\n this.lastPath = currentPath;\n return true;\n }\n }\n this.lastPath = currentPath;\n return false;\n };\n return NodeChange;\n }();\n\n var getAbsolutePosition = function (elm) {\n var doc, docElem, win, clientRect;\n clientRect = elm.getBoundingClientRect();\n doc = elm.ownerDocument;\n docElem = doc.documentElement;\n win = doc.defaultView;\n return {\n top: clientRect.top + win.pageYOffset - docElem.clientTop,\n left: clientRect.left + win.pageXOffset - docElem.clientLeft\n };\n };\n var getBodyPosition = function (editor) {\n return editor.inline ? getAbsolutePosition(editor.getBody()) : {\n left: 0,\n top: 0\n };\n };\n var getScrollPosition = function (editor) {\n var body = editor.getBody();\n return editor.inline ? {\n left: body.scrollLeft,\n top: body.scrollTop\n } : {\n left: 0,\n top: 0\n };\n };\n var getBodyScroll = function (editor) {\n var body = editor.getBody(), docElm = editor.getDoc().documentElement;\n var inlineScroll = {\n left: body.scrollLeft,\n top: body.scrollTop\n };\n var iframeScroll = {\n left: body.scrollLeft || docElm.scrollLeft,\n top: body.scrollTop || docElm.scrollTop\n };\n return editor.inline ? inlineScroll : iframeScroll;\n };\n var getMousePosition = function (editor, event) {\n if (event.target.ownerDocument !== editor.getDoc()) {\n var iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\n var scrollPosition = getBodyScroll(editor);\n return {\n left: event.pageX - iframePosition.left + scrollPosition.left,\n top: event.pageY - iframePosition.top + scrollPosition.top\n };\n }\n return {\n left: event.pageX,\n top: event.pageY\n };\n };\n var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) {\n return {\n pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\n pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\n };\n };\n var calc = function (editor, event) {\n return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\n };\n var MousePosition = { calc: calc };\n\n var isContentEditableFalse$6 = NodeType.isContentEditableFalse, isContentEditableTrue$2 = NodeType.isContentEditableTrue;\n var isDraggable = function (rootElm, elm) {\n return isContentEditableFalse$6(elm) && elm !== rootElm;\n };\n var isValidDropTarget = function (editor, targetElement, dragElement) {\n if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\n return false;\n }\n return !isContentEditableFalse$6(targetElement);\n };\n var cloneElement = function (elm) {\n var cloneElm = elm.cloneNode(true);\n cloneElm.removeAttribute('data-mce-selected');\n return cloneElm;\n };\n var createGhost = function (editor, elm, width, height) {\n var clonedElm = elm.cloneNode(true);\n editor.dom.setStyles(clonedElm, {\n width: width,\n height: height\n });\n editor.dom.setAttrib(clonedElm, 'data-mce-selected', null);\n var ghostElm = editor.dom.create('div', {\n 'class': 'mce-drag-container',\n 'data-mce-bogus': 'all',\n 'unselectable': 'on',\n 'contenteditable': 'false'\n });\n editor.dom.setStyles(ghostElm, {\n position: 'absolute',\n opacity: 0.5,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n margin: 0,\n width: width,\n height: height\n });\n editor.dom.setStyles(clonedElm, {\n margin: 0,\n boxSizing: 'border-box'\n });\n ghostElm.appendChild(clonedElm);\n return ghostElm;\n };\n var appendGhostToBody = function (ghostElm, bodyElm) {\n if (ghostElm.parentNode !== bodyElm) {\n bodyElm.appendChild(ghostElm);\n }\n };\n var moveGhost = function (ghostElm, position, width, height, maxX, maxY) {\n var overflowX = 0, overflowY = 0;\n ghostElm.style.left = position.pageX + 'px';\n ghostElm.style.top = position.pageY + 'px';\n if (position.pageX + width > maxX) {\n overflowX = position.pageX + width - maxX;\n }\n if (position.pageY + height > maxY) {\n overflowY = position.pageY + height - maxY;\n }\n ghostElm.style.width = width - overflowX + 'px';\n ghostElm.style.height = height - overflowY + 'px';\n };\n var removeElement = function (elm) {\n if (elm && elm.parentNode) {\n elm.parentNode.removeChild(elm);\n }\n };\n var isLeftMouseButtonPressed = function (e) {\n return e.button === 0;\n };\n var hasDraggableElement = function (state) {\n return state.element;\n };\n var applyRelPos = function (state, position) {\n return {\n pageX: position.pageX - state.relX,\n pageY: position.pageY + 5\n };\n };\n var start = function (state, editor) {\n return function (e) {\n if (isLeftMouseButtonPressed(e)) {\n var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$6, isContentEditableTrue$2)).getOr(null);\n if (isDraggable(editor.getBody(), ceElm)) {\n var elmPos = editor.dom.getPos(ceElm);\n var bodyElm = editor.getBody();\n var docElm = editor.getDoc().documentElement;\n state.element = ceElm;\n state.screenX = e.screenX;\n state.screenY = e.screenY;\n state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2;\n state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2;\n state.relX = e.pageX - elmPos.x;\n state.relY = e.pageY - elmPos.y;\n state.width = ceElm.offsetWidth;\n state.height = ceElm.offsetHeight;\n state.ghost = createGhost(editor, ceElm, state.width, state.height);\n }\n }\n };\n };\n var move = function (state, editor) {\n var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) {\n editor._selectionOverrides.hideFakeCaret();\n editor.selection.placeCaretAt(clientX, clientY);\n }, 0);\n return function (e) {\n var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\n if (hasDraggableElement(state) && !state.dragging && movement > 10) {\n var args = editor.fire('dragstart', { target: state.element });\n if (args.isDefaultPrevented()) {\n return;\n }\n state.dragging = true;\n editor.focus();\n }\n if (state.dragging) {\n var targetPos = applyRelPos(state, MousePosition.calc(editor, e));\n appendGhostToBody(state.ghost, editor.getBody());\n moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);\n throttledPlaceCaretAt(e.clientX, e.clientY);\n }\n };\n };\n var getRawTarget = function (selection) {\n var rng = selection.getSel().getRangeAt(0);\n var startContainer = rng.startContainer;\n return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer;\n };\n var drop = function (state, editor) {\n return function (e) {\n if (state.dragging) {\n if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\n var targetClone_1 = cloneElement(state.element);\n var args = editor.fire('drop', {\n targetClone: targetClone_1,\n clientX: e.clientX,\n clientY: e.clientY\n });\n if (!args.isDefaultPrevented()) {\n targetClone_1 = args.targetClone;\n editor.undoManager.transact(function () {\n removeElement(state.element);\n editor.insertContent(editor.dom.getOuterHTML(targetClone_1));\n editor._selectionOverrides.hideFakeCaret();\n });\n }\n }\n }\n removeDragState(state);\n };\n };\n var stop = function (state, editor) {\n return function () {\n if (state.dragging) {\n editor.fire('dragend');\n }\n removeDragState(state);\n };\n };\n var removeDragState = function (state) {\n state.dragging = false;\n state.element = null;\n removeElement(state.ghost);\n };\n var bindFakeDragEvents = function (editor) {\n var state = {};\n var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument;\n pageDom = DOMUtils$1.DOM;\n rootDocument = domGlobals.document;\n dragStartHandler = start(state, editor);\n dragHandler = move(state, editor);\n dropHandler = drop(state, editor);\n dragEndHandler = stop(state, editor);\n editor.on('mousedown', dragStartHandler);\n editor.on('mousemove', dragHandler);\n editor.on('mouseup', dropHandler);\n pageDom.bind(rootDocument, 'mousemove', dragHandler);\n pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\n editor.on('remove', function () {\n pageDom.unbind(rootDocument, 'mousemove', dragHandler);\n pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\n });\n };\n var blockIeDrop = function (editor) {\n editor.on('drop', function (e) {\n var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null;\n if (isContentEditableFalse$6(realTarget) || isContentEditableFalse$6(editor.dom.getContentEditableParent(realTarget))) {\n e.preventDefault();\n }\n });\n };\n var init = function (editor) {\n bindFakeDragEvents(editor);\n blockIeDrop(editor);\n };\n var DragDropOverrides = { init: init };\n\n var getNodeClientRects = function (node) {\n var toArrayWithNode = function (clientRects) {\n return map(clientRects, function (clientRect) {\n clientRect = clone$1(clientRect);\n clientRect.node = node;\n return clientRect;\n });\n };\n if (NodeType.isElement(node)) {\n return toArrayWithNode(node.getClientRects());\n }\n if (NodeType.isText(node)) {\n var rng = node.ownerDocument.createRange();\n rng.setStart(node, 0);\n rng.setEnd(node, node.data.length);\n return toArrayWithNode(rng.getClientRects());\n }\n };\n var getClientRects = function (node) {\n return foldl(node, function (result, node) {\n return result.concat(getNodeClientRects(node));\n }, []);\n };\n\n var VDirection;\n (function (VDirection) {\n VDirection[VDirection['Up'] = -1] = 'Up';\n VDirection[VDirection['Down'] = 1] = 'Down';\n }(VDirection || (VDirection = {})));\n var findUntil = function (direction, root, predicateFn, node) {\n while (node = findNode(node, direction, isEditableCaretCandidate, root)) {\n if (predicateFn(node)) {\n return;\n }\n }\n };\n var walkUntil = function (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) {\n var line = 0, node;\n var result = [];\n var targetClientRect;\n var add = function (node) {\n var i, clientRect, clientRects;\n clientRects = getClientRects([node]);\n if (direction === -1) {\n clientRects = clientRects.reverse();\n }\n for (i = 0; i < clientRects.length; i++) {\n clientRect = clientRects[i];\n if (isBeflowFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isAboveFn(clientRect, ArrUtils.last(result))) {\n line++;\n }\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return true;\n }\n result.push(clientRect);\n }\n };\n targetClientRect = ArrUtils.last(caretPosition.getClientRects());\n if (!targetClientRect) {\n return result;\n }\n node = caretPosition.getNode();\n add(node);\n findUntil(direction, root, add, node);\n return result;\n };\n var aboveLineNumber = function (lineNumber, clientRect) {\n return clientRect.line > lineNumber;\n };\n var isLineNumber = function (lineNumber, clientRect) {\n return clientRect.line === lineNumber;\n };\n var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow);\n var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove);\n var positionsUntil = function (direction, root, predicateFn, node) {\n var caretWalker = CaretWalker(root);\n var walkFn, isBelowFn, isAboveFn, caretPosition;\n var result = [];\n var line = 0, clientRect, targetClientRect;\n var getClientRect = function (caretPosition) {\n if (direction === 1) {\n return ArrUtils.last(caretPosition.getClientRects());\n }\n return ArrUtils.last(caretPosition.getClientRects());\n };\n if (direction === 1) {\n walkFn = caretWalker.next;\n isBelowFn = isBelow;\n isAboveFn = isAbove;\n caretPosition = CaretPosition$1.after(node);\n } else {\n walkFn = caretWalker.prev;\n isBelowFn = isAbove;\n isAboveFn = isBelow;\n caretPosition = CaretPosition$1.before(node);\n }\n targetClientRect = getClientRect(caretPosition);\n do {\n if (!caretPosition.isVisible()) {\n continue;\n }\n clientRect = getClientRect(caretPosition);\n if (isAboveFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isBelowFn(clientRect, ArrUtils.last(result))) {\n line++;\n }\n clientRect = clone$1(clientRect);\n clientRect.position = caretPosition;\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return result;\n }\n result.push(clientRect);\n } while (caretPosition = walkFn(caretPosition));\n return result;\n };\n var isAboveLine = function (lineNumber) {\n return function (clientRect) {\n return aboveLineNumber(lineNumber, clientRect);\n };\n };\n var isLine = function (lineNumber) {\n return function (clientRect) {\n return isLineNumber(lineNumber, clientRect);\n };\n };\n\n var isContentEditableFalse$7 = NodeType.isContentEditableFalse;\n var findNode$1 = findNode;\n var distanceToRectLeft = function (clientRect, clientX) {\n return Math.abs(clientRect.left - clientX);\n };\n var distanceToRectRight = function (clientRect, clientX) {\n return Math.abs(clientRect.right - clientX);\n };\n var isInside = function (clientX, clientRect) {\n return clientX >= clientRect.left && clientX <= clientRect.right;\n };\n var findClosestClientRect = function (clientRects, clientX) {\n return ArrUtils.reduce(clientRects, function (oldClientRect, clientRect) {\n var oldDistance, newDistance;\n oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX));\n newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX));\n if (isInside(clientX, clientRect)) {\n return clientRect;\n }\n if (isInside(clientX, oldClientRect)) {\n return oldClientRect;\n }\n if (newDistance === oldDistance && isContentEditableFalse$7(clientRect.node)) {\n return clientRect;\n }\n if (newDistance < oldDistance) {\n return clientRect;\n }\n return oldClientRect;\n });\n };\n var walkUntil$1 = function (direction, root, predicateFn, node) {\n while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) {\n if (predicateFn(node)) {\n return;\n }\n }\n };\n var findLineNodeRects = function (root, targetNodeRect) {\n var clientRects = [];\n var collect = function (checkPosFn, node) {\n var lineRects;\n lineRects = filter(getClientRects([node]), function (clientRect) {\n return !checkPosFn(clientRect, targetNodeRect);\n });\n clientRects = clientRects.concat(lineRects);\n return lineRects.length === 0;\n };\n clientRects.push(targetNodeRect);\n walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);\n walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);\n return clientRects;\n };\n var getFakeCaretTargets = function (root) {\n return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget);\n };\n var caretInfo = function (clientRect, clientX) {\n return {\n node: clientRect.node,\n before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX)\n };\n };\n var closestCaret = function (root, clientX, clientY) {\n var closestNodeRect;\n var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root));\n var targetNodeRects = filter(contentEditableFalseNodeRects, function (rect) {\n return clientY >= rect.top && clientY <= rect.bottom;\n });\n closestNodeRect = findClosestClientRect(targetNodeRects, clientX);\n if (closestNodeRect) {\n closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX);\n if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) {\n return caretInfo(closestNodeRect, clientX);\n }\n }\n return null;\n };\n\n var isXYWithinRange = function (clientX, clientY, range) {\n if (range.collapsed) {\n return false;\n }\n return foldl(range.getClientRects(), function (state, rect) {\n return state || containsXY(rect, clientX, clientY);\n }, false);\n };\n var RangePoint = { isXYWithinRange: isXYWithinRange };\n\n var isContentEditableTrue$3 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$8 = NodeType.isContentEditableFalse;\n var showCaret = function (direction, editor, node, before, scrollIntoView) {\n return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView);\n };\n var getNodeRange = function (node) {\n var rng = node.ownerDocument.createRange();\n rng.selectNode(node);\n return rng;\n };\n var selectNode = function (editor, node) {\n var e = editor.fire('BeforeObjectSelected', { target: node });\n if (e.isDefaultPrevented()) {\n return null;\n }\n return getNodeRange(node);\n };\n var renderCaretAtRange = function (editor, range, scrollIntoView) {\n var normalizedRange = normalizeRange(1, editor.getBody(), range);\n var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange);\n var caretPositionNode = caretPosition.getNode();\n if (isContentEditableFalse$8(caretPositionNode)) {\n return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\n }\n var caretPositionBeforeNode = caretPosition.getNode(true);\n if (isContentEditableFalse$8(caretPositionBeforeNode)) {\n return showCaret(1, editor, caretPositionBeforeNode, false, false);\n }\n var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) {\n return isContentEditableFalse$8(node) || isContentEditableTrue$3(node);\n });\n if (isContentEditableFalse$8(ceRoot)) {\n return showCaret(1, editor, ceRoot, false, scrollIntoView);\n }\n return null;\n };\n var renderRangeCaret = function (editor, range, scrollIntoView) {\n if (!range || !range.collapsed) {\n return range;\n }\n var caretRange = renderCaretAtRange(editor, range, scrollIntoView);\n if (caretRange) {\n return caretRange;\n }\n return range;\n };\n\n var setup$3 = function (editor) {\n var renderFocusCaret = first(function () {\n if (!editor.removed && editor.getBody().contains(domGlobals.document.activeElement)) {\n var rng = editor.selection.getRng();\n if (rng.collapsed) {\n var caretRange = renderRangeCaret(editor, editor.selection.getRng(), false);\n editor.selection.setRng(caretRange);\n }\n }\n }, 0);\n editor.on('focus', function () {\n renderFocusCaret.throttle();\n });\n editor.on('blur', function () {\n renderFocusCaret.cancel();\n });\n };\n var CefFocus = { setup: setup$3 };\n\n var VK = {\n BACKSPACE: 8,\n DELETE: 46,\n DOWN: 40,\n ENTER: 13,\n LEFT: 37,\n RIGHT: 39,\n SPACEBAR: 32,\n TAB: 9,\n UP: 38,\n END: 35,\n HOME: 36,\n modifierPressed: function (e) {\n return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);\n },\n metaKeyPressed: function (e) {\n return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey;\n }\n };\n\n var is$2 = function (expected) {\n return function (actual) {\n return expected === actual;\n };\n };\n var isNbsp = is$2('\\xA0');\n var isWhiteSpace$1 = function (chr) {\n return /^[\\r\\n\\t ]$/.test(chr);\n };\n var isContent = function (chr) {\n return !isWhiteSpace$1(chr) && !isNbsp(chr);\n };\n\n var isChar = function (forward, predicate, pos) {\n return Option.from(pos.container()).filter(NodeType.isText).exists(function (text) {\n var delta = forward ? 0 : -1;\n return predicate(text.data.charAt(pos.offset() + delta));\n });\n };\n var isBeforeSpace = curry(isChar, true, isWhiteSpace$1);\n var isAfterSpace = curry(isChar, false, isWhiteSpace$1);\n var isEmptyText = function (pos) {\n var container = pos.container();\n return NodeType.isText(container) && container.data.length === 0;\n };\n var matchesElementPosition = function (before, predicate) {\n return function (pos) {\n return Option.from(getChildNodeAtRelativeOffset(before ? 0 : -1, pos)).filter(predicate).isSome();\n };\n };\n var isImageBlock = function (node) {\n return node.nodeName === 'IMG' && get$2(Element.fromDom(node), 'display') === 'block';\n };\n var isCefNode = function (node) {\n return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node);\n };\n var isBeforeImageBlock = matchesElementPosition(true, isImageBlock);\n var isAfterImageBlock = matchesElementPosition(false, isImageBlock);\n var isBeforeTable = matchesElementPosition(true, NodeType.isTable);\n var isAfterTable = matchesElementPosition(false, NodeType.isTable);\n var isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);\n var isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);\n\n var isContentEditableTrue$4 = NodeType.isContentEditableTrue;\n var isContentEditableFalse$9 = NodeType.isContentEditableFalse;\n var getContentEditableRoot = function (editor, node) {\n var root = editor.getBody();\n while (node && node !== root) {\n if (isContentEditableTrue$4(node) || isContentEditableFalse$9(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var SelectionOverrides = function (editor) {\n var isBlock = function (node) {\n return editor.dom.isBlock(node);\n };\n var rootNode = editor.getBody();\n var fakeCaret = FakeCaret(editor.getBody(), isBlock, function () {\n return EditorFocus.hasFocus(editor);\n });\n var realSelectionId = 'sel-' + editor.dom.uniqueId();\n var selectedContentEditableNode;\n var isFakeSelectionElement = function (elm) {\n return editor.dom.hasClass(elm, 'mce-offscreen-selection');\n };\n var getRealSelectionElement = function () {\n var container = editor.dom.get(realSelectionId);\n return container ? container.getElementsByTagName('*')[0] : container;\n };\n var setRange = function (range) {\n if (range) {\n editor.selection.setRng(range);\n }\n };\n var getRange = function () {\n return editor.selection.getRng();\n };\n var showCaret = function (direction, node, before, scrollIntoView) {\n if (scrollIntoView === void 0) {\n scrollIntoView = true;\n }\n var e;\n e = editor.fire('ShowCaret', {\n target: node,\n direction: direction,\n before: before\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n if (scrollIntoView) {\n editor.selection.scrollIntoView(node, direction === -1);\n }\n return fakeCaret.show(before, node);\n };\n var getNormalizedRangeEndPoint = function (direction, range) {\n range = normalizeRange(direction, rootNode, range);\n if (direction === -1) {\n return CaretPosition$1.fromRangeStart(range);\n }\n return CaretPosition$1.fromRangeEnd(range);\n };\n var showBlockCaretContainer = function (blockCaretContainer) {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n setRange(getRange());\n editor.selection.scrollIntoView(blockCaretContainer[0]);\n }\n };\n var registerEvents = function () {\n editor.on('mouseup', function (e) {\n var range = getRange();\n if (range.collapsed && EditorView.isXYInContentArea(editor, e.clientX, e.clientY)) {\n setRange(renderCaretAtRange(editor, range, false));\n }\n });\n editor.on('click', function (e) {\n var contentEditableRoot;\n contentEditableRoot = getContentEditableRoot(editor, e.target);\n if (contentEditableRoot) {\n if (isContentEditableFalse$9(contentEditableRoot)) {\n e.preventDefault();\n editor.focus();\n }\n if (isContentEditableTrue$4(contentEditableRoot)) {\n if (editor.dom.isChildOf(contentEditableRoot, editor.selection.getNode())) {\n removeContentEditableSelection();\n }\n }\n }\n });\n editor.on('blur NewBlock', function () {\n removeContentEditableSelection();\n });\n editor.on('ResizeWindow FullscreenStateChanged', function () {\n return fakeCaret.reposition();\n });\n var handleTouchSelect = function (editor) {\n var moved = false;\n editor.on('touchstart', function () {\n moved = false;\n });\n editor.on('touchmove', function () {\n moved = true;\n });\n editor.on('touchend', function (e) {\n var contentEditableRoot = getContentEditableRoot(editor, e.target);\n if (isContentEditableFalse$9(contentEditableRoot)) {\n if (!moved) {\n e.preventDefault();\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\n }\n }\n });\n };\n var hasNormalCaretPosition = function (elm) {\n var caretWalker = CaretWalker(elm);\n if (!elm.firstChild) {\n return false;\n }\n var startPos = CaretPosition$1.before(elm.firstChild);\n var newPos = caretWalker.next(startPos);\n return newPos && !isBeforeContentEditableFalse(newPos) && !isAfterContentEditableFalse(newPos);\n };\n var isInSameBlock = function (node1, node2) {\n var block1 = editor.dom.getParent(node1, editor.dom.isBlock);\n var block2 = editor.dom.getParent(node2, editor.dom.isBlock);\n return block1 === block2;\n };\n var hasBetterMouseTarget = function (targetNode, caretNode) {\n var targetBlock = editor.dom.getParent(targetNode, editor.dom.isBlock);\n var caretBlock = editor.dom.getParent(caretNode, editor.dom.isBlock);\n if (targetBlock && editor.dom.isChildOf(targetBlock, caretBlock) && isContentEditableFalse$9(getContentEditableRoot(editor, targetBlock)) === false) {\n return true;\n }\n return targetBlock && !isInSameBlock(targetBlock, caretBlock) && hasNormalCaretPosition(targetBlock);\n };\n handleTouchSelect(editor);\n editor.on('mousedown', function (e) {\n var contentEditableRoot;\n var targetElm = e.target;\n if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) {\n return;\n }\n if (EditorView.isXYInContentArea(editor, e.clientX, e.clientY) === false) {\n return;\n }\n contentEditableRoot = getContentEditableRoot(editor, targetElm);\n if (contentEditableRoot) {\n if (isContentEditableFalse$9(contentEditableRoot)) {\n e.preventDefault();\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\n } else {\n removeContentEditableSelection();\n if (!(isContentEditableTrue$4(contentEditableRoot) && e.shiftKey) && !RangePoint.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) {\n hideFakeCaret();\n editor.selection.placeCaretAt(e.clientX, e.clientY);\n }\n }\n } else if (isFakeCaretTarget(targetElm) === false) {\n removeContentEditableSelection();\n hideFakeCaret();\n var caretInfo = closestCaret(rootNode, e.clientX, e.clientY);\n if (caretInfo) {\n if (!hasBetterMouseTarget(e.target, caretInfo.node)) {\n e.preventDefault();\n var range = showCaret(1, caretInfo.node, caretInfo.before, false);\n editor.getBody().focus();\n setRange(range);\n }\n }\n }\n });\n editor.on('keypress', function (e) {\n if (VK.modifierPressed(e)) {\n return;\n }\n switch (e.keyCode) {\n default:\n if (isContentEditableFalse$9(editor.selection.getNode())) {\n e.preventDefault();\n }\n break;\n }\n });\n editor.on('GetSelectionRange', function (e) {\n var rng = e.range;\n if (selectedContentEditableNode) {\n if (!selectedContentEditableNode.parentNode) {\n selectedContentEditableNode = null;\n return;\n }\n rng = rng.cloneRange();\n rng.selectNode(selectedContentEditableNode);\n e.range = rng;\n }\n });\n editor.on('SetSelectionRange', function (e) {\n var rng;\n rng = setContentEditableSelection(e.range, e.forward);\n if (rng) {\n e.range = rng;\n }\n });\n var isPasteBin = function (node) {\n return node.id === 'mcepastebin';\n };\n editor.on('AfterSetSelectionRange', function (e) {\n var rng = e.range;\n if (!isRangeInCaretContainer(rng) && !isPasteBin(rng.startContainer.parentNode)) {\n hideFakeCaret();\n }\n if (!isFakeSelectionElement(rng.startContainer.parentNode)) {\n removeContentEditableSelection();\n }\n });\n editor.on('copy', function (e) {\n var clipboardData = e.clipboardData;\n if (!e.isDefaultPrevented() && e.clipboardData && !Env.ie) {\n var realSelectionElement = getRealSelectionElement();\n if (realSelectionElement) {\n e.preventDefault();\n clipboardData.clearData();\n clipboardData.setData('text/html', realSelectionElement.outerHTML);\n clipboardData.setData('text/plain', realSelectionElement.outerText);\n }\n }\n });\n DragDropOverrides.init(editor);\n CefFocus.setup(editor);\n };\n var isWithinCaretContainer = function (node) {\n return isCaretContainer(node) || startsWithCaretContainer(node) || endsWithCaretContainer(node);\n };\n var isRangeInCaretContainer = function (rng) {\n return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\n };\n var setContentEditableSelection = function (range, forward) {\n var node;\n var $ = editor.$;\n var dom = editor.dom;\n var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone;\n if (!range) {\n return null;\n }\n if (range.collapsed) {\n if (!isRangeInCaretContainer(range)) {\n if (forward === false) {\n caretPosition = getNormalizedRangeEndPoint(-1, range);\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\n return showCaret(-1, caretPosition.getNode(true), false, false);\n }\n if (isFakeCaretTarget(caretPosition.getNode())) {\n return showCaret(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\n }\n } else {\n caretPosition = getNormalizedRangeEndPoint(1, range);\n if (isFakeCaretTarget(caretPosition.getNode())) {\n return showCaret(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\n }\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\n return showCaret(1, caretPosition.getNode(true), false, false);\n }\n }\n }\n return null;\n }\n startContainer = range.startContainer;\n startOffset = range.startOffset;\n endOffset = range.endOffset;\n if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$9(startContainer.parentNode)) {\n startContainer = startContainer.parentNode;\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (startContainer.nodeType !== 1) {\n return null;\n }\n if (endOffset === startOffset + 1) {\n node = startContainer.childNodes[startOffset];\n }\n if (!isContentEditableFalse$9(node)) {\n return null;\n }\n targetClone = origTargetClone = node.cloneNode(true);\n e = editor.fire('ObjectSelected', {\n target: node,\n targetClone: targetClone\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n $realSelectionContainer = descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () {\n return $([]);\n }, function (elm) {\n return $([elm.dom()]);\n });\n targetClone = e.targetClone;\n if ($realSelectionContainer.length === 0) {\n $realSelectionContainer = $('
    ').attr('id', realSelectionId);\n $realSelectionContainer.appendTo(editor.getBody());\n }\n range = editor.dom.createRng();\n if (targetClone === origTargetClone && Env.ie) {\n $realSelectionContainer.empty().append('

    \\xA0

    ').append(targetClone);\n range.setStartAfter($realSelectionContainer[0].firstChild.firstChild);\n range.setEndAfter(targetClone);\n } else {\n $realSelectionContainer.empty().append('\\xA0').append(targetClone).append('\\xA0');\n range.setStart($realSelectionContainer[0].firstChild, 1);\n range.setEnd($realSelectionContainer[0].lastChild, 0);\n }\n $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y });\n $realSelectionContainer[0].focus();\n sel = editor.selection.getSel();\n sel.removeAllRanges();\n sel.addRange(range);\n each(descendants$1(Element.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) {\n remove(elm, 'data-mce-selected');\n });\n node.setAttribute('data-mce-selected', '1');\n selectedContentEditableNode = node;\n hideFakeCaret();\n return range;\n };\n var removeContentEditableSelection = function () {\n if (selectedContentEditableNode) {\n selectedContentEditableNode.removeAttribute('data-mce-selected');\n descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$1);\n selectedContentEditableNode = null;\n }\n descendant(Element.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$1);\n selectedContentEditableNode = null;\n };\n var destroy = function () {\n fakeCaret.destroy();\n selectedContentEditableNode = null;\n };\n var hideFakeCaret = function () {\n fakeCaret.hide();\n };\n if (Env.ceFalse) {\n registerEvents();\n }\n return {\n showCaret: showCaret,\n showBlockCaretContainer: showBlockCaretContainer,\n hideFakeCaret: hideFakeCaret,\n destroy: destroy\n };\n };\n\n var KEEP = 0, INSERT = 1, DELETE = 2;\n var diff = function (left, right) {\n var size = left.length + right.length + 2;\n var vDown = new Array(size);\n var vUp = new Array(size);\n var snake = function (start, end, diag) {\n return {\n start: start,\n end: end,\n diag: diag\n };\n };\n var buildScript = function (start1, end1, start2, end2, script) {\n var middle = getMiddleSnake(start1, end1, start2, end2);\n if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\n var i = start1;\n var j = start2;\n while (i < end1 || j < end2) {\n if (i < end1 && j < end2 && left[i] === right[j]) {\n script.push([\n KEEP,\n left[i]\n ]);\n ++i;\n ++j;\n } else {\n if (end1 - start1 > end2 - start2) {\n script.push([\n DELETE,\n left[i]\n ]);\n ++i;\n } else {\n script.push([\n INSERT,\n right[j]\n ]);\n ++j;\n }\n }\n }\n } else {\n buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\n for (var i2 = middle.start; i2 < middle.end; ++i2) {\n script.push([\n KEEP,\n left[i2]\n ]);\n }\n buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\n }\n };\n var buildSnake = function (start, diag, end1, end2) {\n var end = start;\n while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\n ++end;\n }\n return snake(start, end, diag);\n };\n var getMiddleSnake = function (start1, end1, start2, end2) {\n var m = end1 - start1;\n var n = end2 - start2;\n if (m === 0 || n === 0) {\n return null;\n }\n var delta = m - n;\n var sum = n + m;\n var offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\n vDown[1 + offset] = start1;\n vUp[1 + offset] = end1 + 1;\n var d, k, i, x, y;\n for (d = 0; d <= offset; ++d) {\n for (k = -d; k <= d; k += 2) {\n i = k + offset;\n if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\n vDown[i] = vDown[i + 1];\n } else {\n vDown[i] = vDown[i - 1] + 1;\n }\n x = vDown[i];\n y = x - start1 + start2 - k;\n while (x < end1 && y < end2 && left[x] === right[y]) {\n vDown[i] = ++x;\n ++y;\n }\n if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\n if (vUp[i - delta] <= vDown[i]) {\n return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\n }\n }\n }\n for (k = delta - d; k <= delta + d; k += 2) {\n i = k + offset - delta;\n if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\n vUp[i] = vUp[i + 1] - 1;\n } else {\n vUp[i] = vUp[i - 1];\n }\n x = vUp[i] - 1;\n y = x - start1 + start2 - k;\n while (x >= start1 && y >= start2 && left[x] === right[y]) {\n vUp[i] = x--;\n y--;\n }\n if (delta % 2 === 0 && -d <= k && k <= d) {\n if (vUp[i] <= vDown[i + delta]) {\n return buildSnake(vUp[i], k + start1 - start2, end1, end2);\n }\n }\n }\n }\n };\n var script = [];\n buildScript(0, left.length, 0, right.length, script);\n return script;\n };\n var Diff = {\n KEEP: KEEP,\n DELETE: DELETE,\n INSERT: INSERT,\n diff: diff\n };\n\n var getOuterHtml = function (elm) {\n if (NodeType.isElement(elm)) {\n return elm.outerHTML;\n } else if (NodeType.isText(elm)) {\n return Entities.encodeRaw(elm.data, false);\n } else if (NodeType.isComment(elm)) {\n return '';\n }\n return '';\n };\n var createFragment$1 = function (html) {\n var frag, node, container;\n container = domGlobals.document.createElement('div');\n frag = domGlobals.document.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n var insertAt = function (elm, html, index) {\n var fragment = createFragment$1(html);\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n var target = elm.childNodes[index];\n target.parentNode.insertBefore(fragment, target);\n } else {\n elm.appendChild(fragment);\n }\n };\n var removeAt = function (elm, index) {\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n var target = elm.childNodes[index];\n target.parentNode.removeChild(target);\n }\n };\n var applyDiff = function (diff, elm) {\n var index = 0;\n each(diff, function (action) {\n if (action[0] === Diff.KEEP) {\n index++;\n } else if (action[0] === Diff.INSERT) {\n insertAt(elm, action[1], index);\n index++;\n } else if (action[0] === Diff.DELETE) {\n removeAt(elm, index);\n }\n });\n };\n var read$1 = function (elm) {\n return filter(map(from$1(elm.childNodes), getOuterHtml), function (item) {\n return item.length > 0;\n });\n };\n var write = function (fragments, elm) {\n var currentFragments = map(from$1(elm.childNodes), getOuterHtml);\n applyDiff(Diff.diff(currentFragments, fragments), elm);\n return elm;\n };\n var Fragments = {\n read: read$1,\n write: write\n };\n\n var undoLevelDocument = Cell(Option.none());\n var lazyTempDocument = function () {\n return undoLevelDocument.get().getOrThunk(function () {\n var doc = domGlobals.document.implementation.createHTMLDocument('undo');\n undoLevelDocument.set(Option.some(doc));\n return doc;\n });\n };\n var hasIframes = function (html) {\n return html.indexOf('') !== -1;\n };\n var createFragmentedLevel = function (fragments) {\n return {\n type: 'fragmented',\n fragments: fragments,\n content: '',\n bookmark: null,\n beforeBookmark: null\n };\n };\n var createCompleteLevel = function (content) {\n return {\n type: 'complete',\n fragments: null,\n content: content,\n bookmark: null,\n beforeBookmark: null\n };\n };\n var createFromEditor = function (editor) {\n var fragments, content, trimmedFragments;\n fragments = Fragments.read(editor.getBody());\n trimmedFragments = bind(fragments, function (html) {\n var trimmed = TrimHtml.trimInternal(editor.serializer, html);\n return trimmed.length > 0 ? [trimmed] : [];\n });\n content = trimmedFragments.join('');\n return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content);\n };\n var applyToEditor = function (editor, level, before) {\n if (level.type === 'fragmented') {\n Fragments.write(level.fragments, editor.getBody());\n } else {\n editor.setContent(level.content, { format: 'raw' });\n }\n editor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark);\n };\n var getLevelContent = function (level) {\n return level.type === 'fragmented' ? level.fragments.join('') : level.content;\n };\n var getCleanLevelContent = function (level) {\n var elm = Element.fromTag('body', lazyTempDocument());\n set$1(elm, getLevelContent(level));\n each(descendants$1(elm, '*[data-mce-bogus]'), unwrap);\n return get$4(elm);\n };\n var hasEqualContent = function (level1, level2) {\n return getLevelContent(level1) === getLevelContent(level2);\n };\n var hasEqualCleanedContent = function (level1, level2) {\n return getCleanLevelContent(level1) === getCleanLevelContent(level2);\n };\n var isEq$2 = function (level1, level2) {\n if (!level1 || !level2) {\n return false;\n } else if (hasEqualContent(level1, level2)) {\n return true;\n } else {\n return hasEqualCleanedContent(level1, level2);\n }\n };\n var Levels = {\n createFragmentedLevel: createFragmentedLevel,\n createCompleteLevel: createCompleteLevel,\n createFromEditor: createFromEditor,\n applyToEditor: applyToEditor,\n isEq: isEq$2\n };\n\n var UndoManager = function (editor) {\n var self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, locks = 0;\n var isUnlocked = function () {\n return locks === 0;\n };\n var setTyping = function (typing) {\n if (isUnlocked()) {\n self.typing = typing;\n }\n };\n var setDirty = function (state) {\n editor.setDirty(state);\n };\n var addNonTypingUndoLevel = function (e) {\n setTyping(false);\n self.add({}, e);\n };\n var endTyping = function () {\n if (self.typing) {\n setTyping(false);\n self.add();\n }\n };\n editor.on('init', function () {\n self.add();\n });\n editor.on('BeforeExecCommand', function (e) {\n var cmd = e.command;\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n endTyping();\n self.beforeChange();\n }\n });\n editor.on('ExecCommand', function (e) {\n var cmd = e.command;\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('ObjectResizeStart cut', function () {\n self.beforeChange();\n });\n editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n editor.on('dragend', addNonTypingUndoLevel);\n editor.on('keyup', function (e) {\n var keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) {\n addNonTypingUndoLevel();\n editor.nodeChanged();\n }\n if (keyCode === 46 || keyCode === 8) {\n editor.nodeChanged();\n }\n if (isFirstTypedCharacter && self.typing && Levels.isEq(Levels.createFromEditor(editor), data[0]) === false) {\n if (editor.isDirty() === false) {\n setDirty(true);\n editor.fire('change', {\n level: data[0],\n lastLevel: null\n });\n }\n editor.fire('TypingUndo');\n isFirstTypedCharacter = false;\n editor.nodeChanged();\n }\n });\n editor.on('keydown', function (e) {\n var keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\n if (self.typing) {\n addNonTypingUndoLevel(e);\n }\n return;\n }\n var modKey = e.ctrlKey && !e.altKey || e.metaKey;\n if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !self.typing && !modKey) {\n self.beforeChange();\n setTyping(true);\n self.add({}, e);\n isFirstTypedCharacter = true;\n }\n });\n editor.on('mousedown', function (e) {\n if (self.typing) {\n addNonTypingUndoLevel(e);\n }\n });\n var isInsertReplacementText = function (event) {\n return event.inputType === 'insertReplacementText';\n };\n var isInsertTextDataNull = function (event) {\n return event.inputType === 'insertText' && event.data === null;\n };\n editor.on('input', function (e) {\n if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e))) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.addShortcut('meta+z', '', 'Undo');\n editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n editor.on('AddUndo Undo Redo ClearUndos', function (e) {\n if (!e.isDefaultPrevented()) {\n editor.nodeChanged();\n }\n });\n self = {\n data: data,\n typing: false,\n beforeChange: function () {\n if (isUnlocked()) {\n beforeBookmark = GetBookmark.getUndoBookmark(editor.selection);\n }\n },\n add: function (level, event) {\n var i;\n var settings = editor.settings;\n var lastLevel, currentLevel;\n currentLevel = Levels.createFromEditor(editor);\n level = level || {};\n level = Tools.extend(level, currentLevel);\n if (isUnlocked() === false || editor.removed) {\n return null;\n }\n lastLevel = data[index];\n if (editor.fire('BeforeAddUndo', {\n level: level,\n lastLevel: lastLevel,\n originalEvent: event\n }).isDefaultPrevented()) {\n return null;\n }\n if (lastLevel && Levels.isEq(lastLevel, level)) {\n return null;\n }\n if (data[index]) {\n data[index].beforeBookmark = beforeBookmark;\n }\n if (settings.custom_undo_redo_levels) {\n if (data.length > settings.custom_undo_redo_levels) {\n for (i = 0; i < data.length - 1; i++) {\n data[i] = data[i + 1];\n }\n data.length--;\n index = data.length;\n }\n }\n level.bookmark = GetBookmark.getUndoBookmark(editor.selection);\n if (index < data.length - 1) {\n data.length = index + 1;\n }\n data.push(level);\n index = data.length - 1;\n var args = {\n level: level,\n lastLevel: lastLevel,\n originalEvent: event\n };\n editor.fire('AddUndo', args);\n if (index > 0) {\n setDirty(true);\n editor.fire('change', args);\n }\n return level;\n },\n undo: function () {\n var level;\n if (self.typing) {\n self.add();\n self.typing = false;\n setTyping(false);\n }\n if (index > 0) {\n level = data[--index];\n Levels.applyToEditor(editor, level, true);\n setDirty(true);\n editor.fire('Undo', { level: level });\n }\n return level;\n },\n redo: function () {\n var level;\n if (index < data.length - 1) {\n level = data[++index];\n Levels.applyToEditor(editor, level, false);\n setDirty(true);\n editor.fire('Redo', { level: level });\n }\n return level;\n },\n clear: function () {\n data = [];\n index = 0;\n self.typing = false;\n self.data = data;\n editor.fire('ClearUndos');\n },\n reset: function () {\n self.clear();\n self.add();\n },\n hasUndo: function () {\n return index > 0 || self.typing && data[0] && !Levels.isEq(Levels.createFromEditor(editor), data[0]);\n },\n hasRedo: function () {\n return index < data.length - 1 && !self.typing;\n },\n transact: function (callback) {\n endTyping();\n self.beforeChange();\n self.ignore(callback);\n return self.add();\n },\n ignore: function (callback) {\n try {\n locks++;\n callback();\n } finally {\n locks--;\n }\n },\n extra: function (callback1, callback2) {\n var lastLevel, bookmark;\n if (self.transact(callback1)) {\n bookmark = data[index].bookmark;\n lastLevel = data[index - 1];\n Levels.applyToEditor(editor, lastLevel, true);\n if (self.transact(callback2)) {\n data[index - 1].beforeBookmark = bookmark;\n }\n }\n }\n };\n return self;\n };\n\n var getLastChildren$1 = function (elm) {\n var children = [];\n var rawNode = elm.dom();\n while (rawNode) {\n children.push(Element.fromDom(rawNode));\n rawNode = rawNode.lastChild;\n }\n return children;\n };\n var removeTrailingBr = function (elm) {\n var allBrs = descendants$1(elm, 'br');\n var brs = filter(getLastChildren$1(elm).slice(-1), isBr$1);\n if (allBrs.length === brs.length) {\n each(brs, remove$1);\n }\n };\n var fillWithPaddingBr = function (elm) {\n empty(elm);\n append(elm, Element.fromHtml('
    '));\n };\n var isPaddingContents = function (elm) {\n return isText(elm) ? get$5(elm) === '\\xA0' : isBr$1(elm);\n };\n var isPaddedElement = function (elm) {\n return filter(children(elm), isPaddingContents).length === 1;\n };\n var trimBlockTrailingBr = function (elm) {\n lastChild(elm).each(function (lastChild) {\n prevSibling(lastChild).each(function (lastChildPrevSibling) {\n if (isBlock(elm) && isBr$1(lastChild) && isBlock(lastChildPrevSibling)) {\n remove$1(lastChild);\n }\n });\n });\n };\n var PaddingBr = {\n removeTrailingBr: removeTrailingBr,\n fillWithPaddingBr: fillWithPaddingBr,\n isPaddedElement: isPaddedElement,\n trimBlockTrailingBr: trimBlockTrailingBr\n };\n\n var isEq$3 = FormatUtils.isEq;\n var matchesUnInheritedFormatSelector = function (ed, node, name) {\n var formatList = ed.formatter.get(name);\n if (formatList) {\n for (var i = 0; i < formatList.length; i++) {\n if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {\n return true;\n }\n }\n }\n return false;\n };\n var matchParents = function (editor, node, name, vars) {\n var root = editor.dom.getRoot();\n if (node === root) {\n return false;\n }\n node = editor.dom.getParent(node, function (node) {\n if (matchesUnInheritedFormatSelector(editor, node, name)) {\n return true;\n }\n return node.parentNode === root || !!matchNode(editor, node, name, vars, true);\n });\n return matchNode(editor, node, name, vars);\n };\n var matchName = function (dom, node, format) {\n if (isEq$3(node, format.inline)) {\n return true;\n }\n if (isEq$3(node, format.block)) {\n return true;\n }\n if (format.selector) {\n return node.nodeType === 1 && dom.is(node, format.selector);\n }\n };\n var matchItems = function (dom, node, format, itemName, similar, vars) {\n var key, value;\n var items = format[itemName];\n var i;\n if (format.onmatch) {\n return format.onmatch(node, format, itemName);\n }\n if (items) {\n if (typeof items.length === 'undefined') {\n for (key in items) {\n if (items.hasOwnProperty(key)) {\n if (itemName === 'attributes') {\n value = dom.getAttrib(node, key);\n } else {\n value = FormatUtils.getStyle(dom, node, key);\n }\n if (similar && !value && !format.exact) {\n return;\n }\n if ((!similar || format.exact) && !isEq$3(value, FormatUtils.normalizeStyleValue(dom, FormatUtils.replaceVars(items[key], vars), key))) {\n return;\n }\n }\n }\n } else {\n for (i = 0; i < items.length; i++) {\n if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : FormatUtils.getStyle(dom, node, items[i])) {\n return format;\n }\n }\n }\n }\n return format;\n };\n var matchNode = function (ed, node, name, vars, similar) {\n var formatList = ed.formatter.get(name);\n var format, i, x, classes;\n var dom = ed.dom;\n if (formatList && node) {\n for (i = 0; i < formatList.length; i++) {\n format = formatList[i];\n if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\n if (classes = format.classes) {\n for (x = 0; x < classes.length; x++) {\n if (!ed.dom.hasClass(node, classes[x])) {\n return;\n }\n }\n }\n return format;\n }\n }\n }\n };\n var match = function (editor, name, vars, node) {\n var startNode;\n if (node) {\n return matchParents(editor, node, name, vars);\n }\n node = editor.selection.getNode();\n if (matchParents(editor, node, name, vars)) {\n return true;\n }\n startNode = editor.selection.getStart();\n if (startNode !== node) {\n if (matchParents(editor, startNode, name, vars)) {\n return true;\n }\n }\n return false;\n };\n var matchAll = function (editor, names, vars) {\n var startElement;\n var matchedFormatNames = [];\n var checkedMap = {};\n startElement = editor.selection.getStart();\n editor.dom.getParent(startElement, function (node) {\n var i, name;\n for (i = 0; i < names.length; i++) {\n name = names[i];\n if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\n checkedMap[name] = true;\n matchedFormatNames.push(name);\n }\n }\n }, editor.dom.getRoot());\n return matchedFormatNames;\n };\n var canApply = function (editor, name) {\n var formatList = editor.formatter.get(name);\n var startNode, parents, i, x, selector;\n var dom = editor.dom;\n if (formatList) {\n startNode = editor.selection.getStart();\n parents = FormatUtils.getParents(dom, startNode);\n for (x = formatList.length - 1; x >= 0; x--) {\n selector = formatList[x].selector;\n if (!selector || formatList[x].defaultBlock) {\n return true;\n }\n for (i = parents.length - 1; i >= 0; i--) {\n if (dom.is(parents[i], selector)) {\n return true;\n }\n }\n }\n }\n return false;\n };\n var MatchFormat = {\n matchNode: matchNode,\n matchName: matchName,\n match: match,\n matchAll: matchAll,\n canApply: canApply,\n matchesUnInheritedFormatSelector: matchesUnInheritedFormatSelector\n };\n\n var splitText = function (node, offset) {\n return node.splitText(offset);\n };\n var split$1 = function (rng) {\n var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n if (startContainer === endContainer && NodeType.isText(startContainer)) {\n if (startOffset > 0 && startOffset < startContainer.nodeValue.length) {\n endContainer = splitText(startContainer, startOffset);\n startContainer = endContainer.previousSibling;\n if (endOffset > startOffset) {\n endOffset = endOffset - startOffset;\n startContainer = endContainer = splitText(endContainer, endOffset).previousSibling;\n endOffset = endContainer.nodeValue.length;\n startOffset = 0;\n } else {\n endOffset = 0;\n }\n }\n } else {\n if (NodeType.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) {\n startContainer = splitText(startContainer, startOffset);\n startOffset = 0;\n }\n if (NodeType.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) {\n endContainer = splitText(endContainer, endOffset).previousSibling;\n endOffset = endContainer.nodeValue.length;\n }\n }\n return {\n startContainer: startContainer,\n startOffset: startOffset,\n endContainer: endContainer,\n endOffset: endOffset\n };\n };\n\n var isCollapsibleWhitespace = function (c) {\n return ' \\f\\n\\r\\t\\x0B'.indexOf(c) !== -1;\n };\n var normalizeContent = function (content, isStartOfContent, isEndOfContent) {\n var result = foldl(content.split(''), function (acc, c) {\n if (isCollapsibleWhitespace(c) || c === '\\xA0') {\n if (acc.previousCharIsSpace || acc.str === '' && isStartOfContent || acc.str.length === content.length - 1 && isEndOfContent) {\n return {\n previousCharIsSpace: false,\n str: acc.str + '\\xA0'\n };\n } else {\n return {\n previousCharIsSpace: true,\n str: acc.str + ' '\n };\n }\n } else {\n return {\n previousCharIsSpace: false,\n str: acc.str + c\n };\n }\n }, {\n previousCharIsSpace: false,\n str: ''\n });\n return result.str;\n };\n var normalize = function (node, offset, count) {\n if (count === 0) {\n return;\n }\n var whitespace = node.data.slice(offset, offset + count);\n var isEndOfContent = offset + count >= node.data.length;\n var isStartOfContent = offset === 0;\n node.replaceData(offset, count, normalizeContent(whitespace, isStartOfContent, isEndOfContent));\n };\n var normalizeWhitespaceAfter = function (node, offset) {\n var content = node.data.slice(offset);\n var whitespaceCount = content.length - lTrim(content).length;\n return normalize(node, offset, whitespaceCount);\n };\n var normalizeWhitespaceBefore = function (node, offset) {\n var content = node.data.slice(0, offset);\n var whitespaceCount = content.length - rTrim(content).length;\n return normalize(node, offset - whitespaceCount, whitespaceCount);\n };\n var mergeTextNodes = function (prevNode, nextNode, normalizeWhitespace) {\n var whitespaceOffset = rTrim(prevNode.data).length;\n prevNode.appendData(nextNode.data);\n remove$1(Element.fromDom(nextNode));\n if (normalizeWhitespace) {\n normalizeWhitespaceAfter(prevNode, whitespaceOffset);\n }\n return prevNode;\n };\n\n var ancestor$2 = function (scope, selector, isRoot) {\n return ancestor$1(scope, selector, isRoot).isSome();\n };\n\n var hasWhitespacePreserveParent = function (rootNode, node) {\n var rootElement = Element.fromDom(rootNode);\n var startNode = Element.fromDom(node);\n return ancestor$2(startNode, 'pre,code', curry(eq, rootElement));\n };\n var isWhitespace = function (rootNode, node) {\n return NodeType.isText(node) && /^[ \\t\\r\\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false;\n };\n var isNamedAnchor = function (node) {\n return NodeType.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name');\n };\n var isContent$1 = function (rootNode, node) {\n return isCaretCandidate(node) && isWhitespace(rootNode, node) === false || isNamedAnchor(node) || isBookmark(node);\n };\n var isBookmark = NodeType.hasAttribute('data-mce-bookmark');\n var isBogus$2 = NodeType.hasAttribute('data-mce-bogus');\n var isBogusAll$1 = NodeType.hasAttributeValue('data-mce-bogus', 'all');\n var isEmptyNode = function (targetNode) {\n var node, brCount = 0;\n if (isContent$1(targetNode, targetNode)) {\n return false;\n } else {\n node = targetNode.firstChild;\n if (!node) {\n return true;\n }\n var walker = new TreeWalker(node, targetNode);\n do {\n if (isBogusAll$1(node)) {\n node = walker.next(true);\n continue;\n }\n if (isBogus$2(node)) {\n node = walker.next();\n continue;\n }\n if (NodeType.isBr(node)) {\n brCount++;\n node = walker.next();\n continue;\n }\n if (isContent$1(targetNode, node)) {\n return false;\n }\n node = walker.next();\n } while (node);\n return brCount <= 1;\n }\n };\n var isEmpty$1 = function (elm) {\n return isEmptyNode(elm.dom());\n };\n var Empty = { isEmpty: isEmpty$1 };\n\n var needsReposition = function (pos, elm) {\n var container = pos.container();\n var offset = pos.offset();\n return CaretPosition$1.isTextPosition(pos) === false && container === elm.parentNode && offset > CaretPosition$1.before(elm).offset();\n };\n var reposition = function (elm, pos) {\n return needsReposition(pos, elm) ? CaretPosition$1(pos.container(), pos.offset() - 1) : pos;\n };\n var beforeOrStartOf = function (node) {\n return NodeType.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node);\n };\n var afterOrEndOf = function (node) {\n return NodeType.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node);\n };\n var getPreviousSiblingCaretPosition = function (elm) {\n if (isCaretCandidate(elm.previousSibling)) {\n return Option.some(afterOrEndOf(elm.previousSibling));\n } else {\n return elm.previousSibling ? CaretFinder.lastPositionIn(elm.previousSibling) : Option.none();\n }\n };\n var getNextSiblingCaretPosition = function (elm) {\n if (isCaretCandidate(elm.nextSibling)) {\n return Option.some(beforeOrStartOf(elm.nextSibling));\n } else {\n return elm.nextSibling ? CaretFinder.firstPositionIn(elm.nextSibling) : Option.none();\n }\n };\n var findCaretPositionBackwardsFromElm = function (rootElement, elm) {\n var startPosition = CaretPosition$1.before(elm.previousSibling ? elm.previousSibling : elm.parentNode);\n return CaretFinder.prevPosition(rootElement, startPosition).fold(function () {\n return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm));\n }, Option.some);\n };\n var findCaretPositionForwardsFromElm = function (rootElement, elm) {\n return CaretFinder.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () {\n return CaretFinder.prevPosition(rootElement, CaretPosition$1.before(elm));\n }, Option.some);\n };\n var findCaretPositionBackwards = function (rootElement, elm) {\n return getPreviousSiblingCaretPosition(elm).orThunk(function () {\n return getNextSiblingCaretPosition(elm);\n }).orThunk(function () {\n return findCaretPositionBackwardsFromElm(rootElement, elm);\n });\n };\n var findCaretPositionForward = function (rootElement, elm) {\n return getNextSiblingCaretPosition(elm).orThunk(function () {\n return getPreviousSiblingCaretPosition(elm);\n }).orThunk(function () {\n return findCaretPositionForwardsFromElm(rootElement, elm);\n });\n };\n var findCaretPosition$1 = function (forward, rootElement, elm) {\n return forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\n };\n var findCaretPosOutsideElmAfterDelete = function (forward, rootElement, elm) {\n return findCaretPosition$1(forward, rootElement, elm).map(curry(reposition, elm));\n };\n var setSelection = function (editor, forward, pos) {\n pos.fold(function () {\n editor.focus();\n }, function (pos) {\n editor.selection.setRng(pos.toRange(), forward);\n });\n };\n var eqRawNode = function (rawNode) {\n return function (elm) {\n return elm.dom() === rawNode;\n };\n };\n var isBlock$2 = function (editor, elm) {\n return elm && editor.schema.getBlockElements().hasOwnProperty(name(elm));\n };\n var paddEmptyBlock = function (elm) {\n if (Empty.isEmpty(elm)) {\n var br = Element.fromHtml('
    ');\n empty(elm);\n append(elm, br);\n return Option.some(CaretPosition$1.before(br.dom()));\n } else {\n return Option.none();\n }\n };\n var deleteNormalized = function (elm, afterDeletePosOpt, normalizeWhitespace) {\n var prevTextOpt = prevSibling(elm).filter(function (e) {\n return NodeType.isText(e.dom());\n });\n var nextTextOpt = nextSibling(elm).filter(function (e) {\n return NodeType.isText(e.dom());\n });\n remove$1(elm);\n return liftN([\n prevTextOpt,\n nextTextOpt,\n afterDeletePosOpt\n ], function (prev, next, pos) {\n var prevNode = prev.dom(), nextNode = next.dom();\n var offset = prevNode.data.length;\n mergeTextNodes(prevNode, nextNode, normalizeWhitespace);\n return pos.container() === nextNode ? CaretPosition$1(prevNode, offset) : pos;\n }).orThunk(function () {\n if (normalizeWhitespace) {\n prevTextOpt.each(function (elm) {\n return normalizeWhitespaceBefore(elm.dom(), elm.dom().length);\n });\n nextTextOpt.each(function (elm) {\n return normalizeWhitespaceAfter(elm.dom(), 0);\n });\n }\n return afterDeletePosOpt;\n });\n };\n var isInlineElement = function (editor, element) {\n return has(editor.schema.getTextInlineElements(), name(element));\n };\n var deleteElement = function (editor, forward, elm, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom());\n var parentBlock = ancestor(elm, curry(isBlock$2, editor), eqRawNode(editor.getBody()));\n var normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, isInlineElement(editor, elm));\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n parentBlock.bind(paddEmptyBlock).fold(function () {\n if (moveCaret) {\n setSelection(editor, forward, normalizedAfterDeletePos);\n }\n }, function (paddPos) {\n if (moveCaret) {\n setSelection(editor, forward, Option.some(paddPos));\n }\n });\n }\n };\n var DeleteElement = { deleteElement: deleteElement };\n\n var ZWSP$1 = Zwsp.ZWSP, CARET_ID$1 = '_mce_caret';\n var importNode = function (ownerDocument, node) {\n return ownerDocument.importNode(node, true);\n };\n var getEmptyCaretContainers = function (node) {\n var nodes = [];\n while (node) {\n if (node.nodeType === 3 && node.nodeValue !== ZWSP$1 || node.childNodes.length > 1) {\n return [];\n }\n if (node.nodeType === 1) {\n nodes.push(node);\n }\n node = node.firstChild;\n }\n return nodes;\n };\n var isCaretContainerEmpty = function (node) {\n return getEmptyCaretContainers(node).length > 0;\n };\n var findFirstTextNode = function (node) {\n if (node) {\n var walker = new TreeWalker(node, node);\n for (node = walker.current(); node; node = walker.next()) {\n if (node.nodeType === 3) {\n return node;\n }\n }\n }\n return null;\n };\n var createCaretContainer = function (fill) {\n var caretContainer = Element.fromTag('span');\n setAll(caretContainer, {\n 'id': CARET_ID$1,\n 'data-mce-bogus': '1',\n 'data-mce-type': 'format-caret'\n });\n if (fill) {\n append(caretContainer, Element.fromText(ZWSP$1));\n }\n return caretContainer;\n };\n var trimZwspFromCaretContainer = function (caretContainerNode) {\n var textNode = findFirstTextNode(caretContainerNode);\n if (textNode && textNode.nodeValue.charAt(0) === ZWSP$1) {\n textNode.deleteData(0, 1);\n }\n return textNode;\n };\n var removeCaretContainerNode = function (editor, node, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var dom = editor.dom, selection = editor.selection;\n if (isCaretContainerEmpty(node)) {\n DeleteElement.deleteElement(editor, false, Element.fromDom(node), moveCaret);\n } else {\n var rng = selection.getRng();\n var block = dom.getParent(node, dom.isBlock);\n var textNode = trimZwspFromCaretContainer(node);\n if (rng.startContainer === textNode && rng.startOffset > 0) {\n rng.setStart(textNode, rng.startOffset - 1);\n }\n if (rng.endContainer === textNode && rng.endOffset > 0) {\n rng.setEnd(textNode, rng.endOffset - 1);\n }\n dom.remove(node, true);\n if (block && dom.isEmpty(block)) {\n PaddingBr.fillWithPaddingBr(Element.fromDom(block));\n }\n selection.setRng(rng);\n }\n };\n var removeCaretContainer = function (editor, node, moveCaret) {\n if (moveCaret === void 0) {\n moveCaret = true;\n }\n var dom = editor.dom, selection = editor.selection;\n if (!node) {\n node = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (!node) {\n while (node = dom.get(CARET_ID$1)) {\n removeCaretContainerNode(editor, node, false);\n }\n }\n } else {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n };\n var insertCaretContainerNode = function (editor, caretContainer, formatNode) {\n var dom = editor.dom, block = dom.getParent(formatNode, curry(FormatUtils.isTextBlock, editor));\n if (block && dom.isEmpty(block)) {\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\n } else {\n PaddingBr.removeTrailingBr(Element.fromDom(formatNode));\n if (dom.isEmpty(formatNode)) {\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\n } else {\n dom.insertAfter(caretContainer, formatNode);\n }\n }\n };\n var appendNode = function (parentNode, node) {\n parentNode.appendChild(node);\n return node;\n };\n var insertFormatNodesIntoCaretContainer = function (formatNodes, caretContainer) {\n var innerMostFormatNode = foldr(formatNodes, function (parentNode, formatNode) {\n return appendNode(parentNode, formatNode.cloneNode(false));\n }, caretContainer);\n return appendNode(innerMostFormatNode, innerMostFormatNode.ownerDocument.createTextNode(ZWSP$1));\n };\n var applyCaretFormat = function (editor, name, vars) {\n var rng, caretContainer, textNode, offset, bookmark, container, text;\n var selection = editor.selection;\n rng = selection.getRng();\n offset = rng.startOffset;\n container = rng.startContainer;\n text = container.nodeValue;\n caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (caretContainer) {\n textNode = findFirstTextNode(caretContainer);\n }\n var wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\n if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\n bookmark = selection.getBookmark();\n rng.collapse(true);\n rng = ExpandRange.expandRng(editor, rng, editor.formatter.get(name));\n rng = split$1(rng);\n editor.formatter.apply(name, vars, rng);\n selection.moveToBookmark(bookmark);\n } else {\n if (!caretContainer || textNode.nodeValue !== ZWSP$1) {\n caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom());\n textNode = caretContainer.firstChild;\n rng.insertNode(caretContainer);\n offset = 1;\n editor.formatter.apply(name, vars, caretContainer);\n } else {\n editor.formatter.apply(name, vars, caretContainer);\n }\n selection.setCursorLocation(textNode, offset);\n }\n };\n var removeCaretFormat = function (editor, name, vars, similar) {\n var dom = editor.dom, selection = editor.selection;\n var container, offset, bookmark;\n var hasContentAfter, node, formatNode;\n var parents = [], rng = selection.getRng();\n var caretContainer;\n container = rng.startContainer;\n offset = rng.startOffset;\n node = container;\n if (container.nodeType === 3) {\n if (offset !== container.nodeValue.length) {\n hasContentAfter = true;\n }\n node = node.parentNode;\n }\n while (node) {\n if (MatchFormat.matchNode(editor, node, name, vars, similar)) {\n formatNode = node;\n break;\n }\n if (node.nextSibling) {\n hasContentAfter = true;\n }\n parents.push(node);\n node = node.parentNode;\n }\n if (!formatNode) {\n return;\n }\n if (hasContentAfter) {\n bookmark = selection.getBookmark();\n rng.collapse(true);\n var expandedRng = ExpandRange.expandRng(editor, rng, editor.formatter.get(name), true);\n expandedRng = split$1(expandedRng);\n editor.formatter.remove(name, vars, expandedRng);\n selection.moveToBookmark(bookmark);\n } else {\n caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\n var newCaretContainer = createCaretContainer(false).dom();\n var caretNode = insertFormatNodesIntoCaretContainer(parents, newCaretContainer);\n if (caretContainer) {\n insertCaretContainerNode(editor, newCaretContainer, caretContainer);\n } else {\n insertCaretContainerNode(editor, newCaretContainer, formatNode);\n }\n removeCaretContainerNode(editor, caretContainer, false);\n selection.setCursorLocation(caretNode, 1);\n if (dom.isEmpty(formatNode)) {\n dom.remove(formatNode);\n }\n }\n };\n var disableCaretContainer = function (editor, keyCode) {\n var selection = editor.selection, body = editor.getBody();\n removeCaretContainer(editor, null, false);\n if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP$1) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n }\n if (keyCode === 37 || keyCode === 39) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));\n }\n };\n var setup$4 = function (editor) {\n editor.on('mouseup keydown', function (e) {\n disableCaretContainer(editor, e.keyCode);\n });\n };\n var replaceWithCaretFormat = function (targetNode, formatNodes) {\n var caretContainer = createCaretContainer(false);\n var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom());\n before(Element.fromDom(targetNode), caretContainer);\n remove$1(Element.fromDom(targetNode));\n return CaretPosition$1(innerMost, 0);\n };\n var isFormatElement = function (editor, element) {\n var inlineElements = editor.schema.getTextInlineElements();\n return inlineElements.hasOwnProperty(name(element)) && !isCaretNode(element.dom()) && !NodeType.isBogus(element.dom());\n };\n var isEmptyCaretFormatElement = function (element) {\n return isCaretNode(element.dom()) && isCaretContainerEmpty(element.dom());\n };\n\n var postProcessHooks = {}, filter$3 = ArrUtils.filter, each$9 = ArrUtils.each;\n var addPostProcessHook = function (name, hook) {\n var hooks = postProcessHooks[name];\n if (!hooks) {\n postProcessHooks[name] = hooks = [];\n }\n postProcessHooks[name].push(hook);\n };\n var postProcess = function (name, editor) {\n each$9(postProcessHooks[name], function (hook) {\n hook(editor);\n });\n };\n addPostProcessHook('pre', function (editor) {\n var rng = editor.selection.getRng();\n var isPre, blocks;\n var hasPreSibling = function (pre) {\n return isPre(pre.previousSibling) && ArrUtils.indexOf(blocks, pre.previousSibling) !== -1;\n };\n var joinPre = function (pre1, pre2) {\n DomQuery(pre2).remove();\n DomQuery(pre1).append('

    ').append(pre2.childNodes);\n };\n isPre = NodeType.matchNodeNames('pre');\n if (!rng.collapsed) {\n blocks = editor.selection.getSelectedBlocks();\n each$9(filter$3(filter$3(blocks, isPre), hasPreSibling), function (pre) {\n joinPre(pre.previousSibling, pre);\n });\n }\n });\n var Hooks = { postProcess: postProcess };\n\n var each$a = Tools.each;\n var ElementUtils = function (dom) {\n this.compare = function (node1, node2) {\n if (node1.nodeName !== node2.nodeName) {\n return false;\n }\n var getAttribs = function (node) {\n var attribs = {};\n each$a(dom.getAttribs(node), function (attr) {\n var name = attr.nodeName.toLowerCase();\n if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) {\n attribs[name] = dom.getAttrib(node, name);\n }\n });\n return attribs;\n };\n var compareObjects = function (obj1, obj2) {\n var value, name;\n for (name in obj1) {\n if (obj1.hasOwnProperty(name)) {\n value = obj2[name];\n if (typeof value === 'undefined') {\n return false;\n }\n if (obj1[name] !== value) {\n return false;\n }\n delete obj2[name];\n }\n }\n for (name in obj2) {\n if (obj2.hasOwnProperty(name)) {\n return false;\n }\n }\n return true;\n };\n if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\n return false;\n }\n if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\n return false;\n }\n return !Bookmarks.isBookmarkNode(node1) && !Bookmarks.isBookmarkNode(node2);\n };\n };\n\n var MCE_ATTR_RE = /^(src|href|style)$/;\n var each$b = Tools.each;\n var isEq$4 = FormatUtils.isEq;\n var isTableCell$2 = function (node) {\n return /^(TH|TD)$/.test(node.nodeName);\n };\n var isChildOfInlineParent = function (dom, node, parent) {\n return dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent);\n };\n var getContainer = function (ed, rng, start) {\n var container, offset, lastIdx;\n container = rng[start ? 'startContainer' : 'endContainer'];\n offset = rng[start ? 'startOffset' : 'endOffset'];\n if (NodeType.isElement(container)) {\n lastIdx = container.childNodes.length - 1;\n if (!start && offset) {\n offset--;\n }\n container = container.childNodes[offset > lastIdx ? lastIdx : offset];\n }\n if (NodeType.isText(container) && start && offset >= container.nodeValue.length) {\n container = new TreeWalker(container, ed.getBody()).next() || container;\n }\n if (NodeType.isText(container) && !start && offset === 0) {\n container = new TreeWalker(container, ed.getBody()).prev() || container;\n }\n return container;\n };\n var wrap$2 = function (dom, node, name, attrs) {\n var wrapper = dom.create(name, attrs);\n node.parentNode.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n return wrapper;\n };\n var wrapWithSiblings = function (dom, node, next, name, attrs) {\n var start = Element.fromDom(node);\n var wrapper = Element.fromDom(dom.create(name, attrs));\n var siblings = next ? nextSiblings(start) : prevSiblings(start);\n append$1(wrapper, siblings);\n if (next) {\n before(start, wrapper);\n prepend(wrapper, start);\n } else {\n after(start, wrapper);\n append(wrapper, start);\n }\n return wrapper.dom();\n };\n var matchName$1 = function (dom, node, format) {\n if (isEq$4(node, format.inline)) {\n return true;\n }\n if (isEq$4(node, format.block)) {\n return true;\n }\n if (format.selector) {\n return NodeType.isElement(node) && dom.is(node, format.selector);\n }\n };\n var isColorFormatAndAnchor = function (node, format) {\n return format.links && node.tagName === 'A';\n };\n var find$3 = function (dom, node, next, inc) {\n node = FormatUtils.getNonWhiteSpaceSibling(node, next, inc);\n return !node || (node.nodeName === 'BR' || dom.isBlock(node));\n };\n var removeNode$1 = function (ed, node, format) {\n var parentNode = node.parentNode;\n var rootBlockElm;\n var dom = ed.dom, forcedRootBlock = Settings.getForcedRootBlock(ed);\n if (format.block) {\n if (!forcedRootBlock) {\n if (dom.isBlock(node) && !dom.isBlock(parentNode)) {\n if (!find$3(dom, node, false) && !find$3(dom, node.firstChild, true, 1)) {\n node.insertBefore(dom.create('br'), node.firstChild);\n }\n if (!find$3(dom, node, true) && !find$3(dom, node.lastChild, false, 1)) {\n node.appendChild(dom.create('br'));\n }\n }\n } else {\n if (parentNode === dom.getRoot()) {\n if (!format.list_block || !isEq$4(node, format.list_block)) {\n each$b(Tools.grep(node.childNodes), function (node) {\n if (FormatUtils.isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\n if (!rootBlockElm) {\n rootBlockElm = wrap$2(dom, node, forcedRootBlock);\n dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs);\n } else {\n rootBlockElm.appendChild(node);\n }\n } else {\n rootBlockElm = 0;\n }\n });\n }\n }\n }\n }\n if (format.selector && format.inline && !isEq$4(format.inline, node)) {\n return;\n }\n dom.remove(node, 1);\n };\n var removeFormat = function (ed, format, vars, node, compareNode) {\n var i, attrs, stylesModified;\n var dom = ed.dom;\n if (!matchName$1(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\n return false;\n }\n if (format.remove !== 'all') {\n each$b(format.styles, function (value, name) {\n value = FormatUtils.normalizeStyleValue(dom, FormatUtils.replaceVars(value, vars), name);\n if (typeof name === 'number') {\n name = value;\n compareNode = 0;\n }\n if (format.remove_similar || (!compareNode || isEq$4(FormatUtils.getStyle(dom, compareNode, name), value))) {\n dom.setStyle(node, name, '');\n }\n stylesModified = 1;\n });\n if (stylesModified && dom.getAttrib(node, 'style') === '') {\n node.removeAttribute('style');\n node.removeAttribute('data-mce-style');\n }\n each$b(format.attributes, function (value, name) {\n var valueOut;\n value = FormatUtils.replaceVars(value, vars);\n if (typeof name === 'number') {\n name = value;\n compareNode = 0;\n }\n if (!compareNode || isEq$4(dom.getAttrib(compareNode, name), value)) {\n if (name === 'class') {\n value = dom.getAttrib(node, name);\n if (value) {\n valueOut = '';\n each$b(value.split(/\\s+/), function (cls) {\n if (/mce\\-\\w+/.test(cls)) {\n valueOut += (valueOut ? ' ' : '') + cls;\n }\n });\n if (valueOut) {\n dom.setAttrib(node, name, valueOut);\n return;\n }\n }\n }\n if (name === 'class') {\n node.removeAttribute('className');\n }\n if (MCE_ATTR_RE.test(name)) {\n node.removeAttribute('data-mce-' + name);\n }\n node.removeAttribute(name);\n }\n });\n each$b(format.classes, function (value) {\n value = FormatUtils.replaceVars(value, vars);\n if (!compareNode || dom.hasClass(compareNode, value)) {\n dom.removeClass(node, value);\n }\n });\n attrs = dom.getAttribs(node);\n for (i = 0; i < attrs.length; i++) {\n var attrName = attrs[i].nodeName;\n if (attrName.indexOf('_') !== 0 && attrName.indexOf('data-') !== 0) {\n return false;\n }\n }\n }\n if (format.remove !== 'none') {\n removeNode$1(ed, node, format);\n return true;\n }\n };\n var findFormatRoot = function (editor, container, name, vars, similar) {\n var formatRoot;\n each$b(FormatUtils.getParents(editor.dom, container.parentNode).reverse(), function (parent) {\n var format;\n if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') {\n format = MatchFormat.matchNode(editor, parent, name, vars, similar);\n if (format && format.split !== false) {\n formatRoot = parent;\n }\n }\n });\n return formatRoot;\n };\n var wrapAndSplit = function (editor, formatList, formatRoot, container, target, split, format, vars) {\n var parent, clone, lastClone, firstClone, i, formatRootParent;\n var dom = editor.dom;\n if (formatRoot) {\n formatRootParent = formatRoot.parentNode;\n for (parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\n clone = dom.clone(parent, false);\n for (i = 0; i < formatList.length; i++) {\n if (removeFormat(editor, formatList[i], vars, clone, clone)) {\n clone = 0;\n break;\n }\n }\n if (clone) {\n if (lastClone) {\n clone.appendChild(lastClone);\n }\n if (!firstClone) {\n firstClone = clone;\n }\n lastClone = clone;\n }\n }\n if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\n container = dom.split(formatRoot, container);\n }\n if (lastClone) {\n target.parentNode.insertBefore(lastClone, target);\n firstClone.appendChild(target);\n }\n }\n return container;\n };\n var remove$7 = function (ed, name, vars, node, similar) {\n var formatList = ed.formatter.get(name), format = formatList[0];\n var bookmark, rng, contentEditable = true;\n var dom = ed.dom;\n var selection = ed.selection;\n var splitToFormatRoot = function (container) {\n var formatRoot = findFormatRoot(ed, container, name, vars, similar);\n return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\n };\n var isRemoveBookmarkNode = function (node) {\n return Bookmarks.isBookmarkNode(node) && NodeType.isElement(node) && (node.id === '_start' || node.id === '_end');\n };\n var process = function (node) {\n var children, i, l, lastContentEditable, hasContentEditableState;\n if (NodeType.isElement(node) && dom.getContentEditable(node)) {\n lastContentEditable = contentEditable;\n contentEditable = dom.getContentEditable(node) === 'true';\n hasContentEditableState = true;\n }\n children = Tools.grep(node.childNodes);\n if (contentEditable && !hasContentEditableState) {\n for (i = 0, l = formatList.length; i < l; i++) {\n if (removeFormat(ed, formatList[i], vars, node, node)) {\n break;\n }\n }\n }\n if (format.deep) {\n if (children.length) {\n for (i = 0, l = children.length; i < l; i++) {\n process(children[i]);\n }\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n }\n }\n };\n var unwrap = function (start) {\n var node = dom.get(start ? '_start' : '_end');\n var out = node[start ? 'firstChild' : 'lastChild'];\n if (isRemoveBookmarkNode(out)) {\n out = out[start ? 'firstChild' : 'lastChild'];\n }\n if (NodeType.isText(out) && out.data.length === 0) {\n out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\n }\n dom.remove(node, true);\n return out;\n };\n var removeRngStyle = function (rng) {\n var startContainer, endContainer;\n var commonAncestorContainer = rng.commonAncestorContainer;\n rng = ExpandRange.expandRng(ed, rng, formatList, true);\n if (format.split) {\n rng = split$1(rng);\n startContainer = getContainer(ed, rng, true);\n endContainer = getContainer(ed, rng);\n if (startContainer !== endContainer) {\n if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) {\n if (startContainer.nodeName === 'TR') {\n startContainer = startContainer.firstChild.firstChild || startContainer;\n } else {\n startContainer = startContainer.firstChild || startContainer;\n }\n }\n if (commonAncestorContainer && /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && isTableCell$2(endContainer) && endContainer.firstChild) {\n endContainer = endContainer.firstChild || endContainer;\n }\n if (isChildOfInlineParent(dom, startContainer, endContainer)) {\n var marker = Option.from(startContainer.firstChild).getOr(startContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(true);\n return;\n }\n if (isChildOfInlineParent(dom, endContainer, startContainer)) {\n var marker = Option.from(endContainer.lastChild).getOr(endContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(false);\n return;\n }\n startContainer = wrap$2(dom, startContainer, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n });\n endContainer = wrap$2(dom, endContainer, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n });\n splitToFormatRoot(startContainer);\n splitToFormatRoot(endContainer);\n startContainer = unwrap(true);\n endContainer = unwrap();\n } else {\n startContainer = endContainer = splitToFormatRoot(startContainer);\n }\n rng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\n rng.startOffset = dom.nodeIndex(startContainer);\n rng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\n rng.endOffset = dom.nodeIndex(endContainer) + 1;\n }\n RangeWalk.walk(dom, rng, function (nodes) {\n each$b(nodes, function (node) {\n process(node);\n if (NodeType.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && FormatUtils.getTextDecoration(dom, node.parentNode) === 'underline') {\n removeFormat(ed, {\n deep: false,\n exact: true,\n inline: 'span',\n styles: { textDecoration: 'underline' }\n }, null, node);\n }\n });\n });\n };\n if (node) {\n if (node.nodeType) {\n rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n removeRngStyle(rng);\n } else {\n removeRngStyle(node);\n }\n return;\n }\n if (dom.getContentEditable(selection.getNode()) === 'false') {\n node = selection.getNode();\n for (var i = 0, l = formatList.length; i < l; i++) {\n if (formatList[i].ceFalseOverride) {\n if (removeFormat(ed, formatList[i], vars, node, node)) {\n break;\n }\n }\n }\n return;\n }\n if (!selection.isCollapsed() || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\n bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);\n removeRngStyle(selection.getRng());\n selection.moveToBookmark(bookmark);\n if (format.inline && MatchFormat.match(ed, name, vars, selection.getStart())) {\n FormatUtils.moveStart(dom, selection, selection.getRng());\n }\n ed.nodeChanged();\n } else {\n removeCaretFormat(ed, name, vars, similar);\n }\n };\n var RemoveFormat = {\n removeFormat: removeFormat,\n remove: remove$7\n };\n\n var each$c = Tools.each;\n var isElementNode = function (node) {\n return node && node.nodeType === 1 && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node);\n };\n var findElementSibling = function (node, siblingName) {\n var sibling;\n for (sibling = node; sibling; sibling = sibling[siblingName]) {\n if (sibling.nodeType === 3 && sibling.nodeValue.length !== 0) {\n return node;\n }\n if (sibling.nodeType === 1 && !Bookmarks.isBookmarkNode(sibling)) {\n return sibling;\n }\n }\n return node;\n };\n var mergeSiblingsNodes = function (dom, prev, next) {\n var sibling, tmpSibling;\n var elementUtils = new ElementUtils(dom);\n if (prev && next) {\n prev = findElementSibling(prev, 'previousSibling');\n next = findElementSibling(next, 'nextSibling');\n if (elementUtils.compare(prev, next)) {\n for (sibling = prev.nextSibling; sibling && sibling !== next;) {\n tmpSibling = sibling;\n sibling = sibling.nextSibling;\n prev.appendChild(tmpSibling);\n }\n dom.remove(next);\n Tools.each(Tools.grep(next.childNodes), function (node) {\n prev.appendChild(node);\n });\n return prev;\n }\n }\n return next;\n };\n var processChildElements = function (node, filter, process) {\n each$c(node.childNodes, function (node) {\n if (isElementNode(node)) {\n if (filter(node)) {\n process(node);\n }\n if (node.hasChildNodes()) {\n processChildElements(node, filter, process);\n }\n }\n });\n };\n var hasStyle = function (dom, name) {\n return curry(function (name, node) {\n return !!(node && FormatUtils.getStyle(dom, node, name));\n }, name);\n };\n var applyStyle = function (dom, name, value) {\n return curry(function (name, value, node) {\n dom.setStyle(node, name, value);\n if (node.getAttribute('style') === '') {\n node.removeAttribute('style');\n }\n unwrapEmptySpan(dom, node);\n }, name, value);\n };\n var unwrapEmptySpan = function (dom, node) {\n if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\n dom.remove(node, true);\n }\n };\n var processUnderlineAndColor = function (dom, node) {\n var textDecoration;\n if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) {\n textDecoration = FormatUtils.getTextDecoration(dom, node.parentNode);\n if (dom.getStyle(node, 'color') && textDecoration) {\n dom.setStyle(node, 'text-decoration', textDecoration);\n } else if (dom.getStyle(node, 'text-decoration') === textDecoration) {\n dom.setStyle(node, 'text-decoration', null);\n }\n }\n };\n var mergeUnderlineAndColor = function (dom, format, vars, node) {\n if (format.styles.color || format.styles.textDecoration) {\n Tools.walk(node, curry(processUnderlineAndColor, dom), 'childNodes');\n processUnderlineAndColor(dom, node);\n }\n };\n var mergeBackgroundColorAndFontSize = function (dom, format, vars, node) {\n if (format.styles && format.styles.backgroundColor) {\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', FormatUtils.replaceVars(format.styles.backgroundColor, vars)));\n }\n };\n var mergeSubSup = function (dom, format, vars, node) {\n if (format.inline === 'sub' || format.inline === 'sup') {\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'fontSize', ''));\n dom.remove(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), true);\n }\n };\n var mergeSiblings = function (dom, format, vars, node) {\n if (node && format.merge_siblings !== false) {\n node = mergeSiblingsNodes(dom, FormatUtils.getNonWhiteSpaceSibling(node), node);\n node = mergeSiblingsNodes(dom, node, FormatUtils.getNonWhiteSpaceSibling(node, true));\n }\n };\n var clearChildStyles = function (dom, format, node) {\n if (format.clear_child_styles) {\n var selector = format.links ? '*:not(a)' : '*';\n each$c(dom.select(selector, node), function (node) {\n if (isElementNode(node)) {\n each$c(format.styles, function (value, name) {\n dom.setStyle(node, name, '');\n });\n }\n });\n }\n };\n var mergeWithChildren = function (editor, formatList, vars, node) {\n each$c(formatList, function (format) {\n each$c(editor.dom.select(format.inline, node), function (child) {\n if (!isElementNode(child)) {\n return;\n }\n RemoveFormat.removeFormat(editor, format, vars, child, format.exact ? child : null);\n });\n clearChildStyles(editor.dom, format, node);\n });\n };\n var mergeWithParents = function (editor, format, name, vars, node) {\n if (MatchFormat.matchNode(editor, node.parentNode, name, vars)) {\n if (RemoveFormat.removeFormat(editor, format, vars, node)) {\n return;\n }\n }\n if (format.merge_with_parents) {\n editor.dom.getParent(node.parentNode, function (parent) {\n if (MatchFormat.matchNode(editor, parent, name, vars)) {\n RemoveFormat.removeFormat(editor, format, vars, node);\n return true;\n }\n });\n }\n };\n var MergeFormats = {\n mergeWithChildren: mergeWithChildren,\n mergeUnderlineAndColor: mergeUnderlineAndColor,\n mergeBackgroundColorAndFontSize: mergeBackgroundColorAndFontSize,\n mergeSubSup: mergeSubSup,\n mergeSiblings: mergeSiblings,\n mergeWithParents: mergeWithParents\n };\n\n var createRange$1 = function (sc, so, ec, eo) {\n var rng = domGlobals.document.createRange();\n rng.setStart(sc, so);\n rng.setEnd(ec, eo);\n return rng;\n };\n var normalizeBlockSelectionRange = function (rng) {\n var startPos = CaretPosition$1.fromRangeStart(rng);\n var endPos = CaretPosition$1.fromRangeEnd(rng);\n var rootNode = rng.commonAncestorContainer;\n return CaretFinder.fromPosition(false, rootNode, endPos).map(function (newEndPos) {\n if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\n return createRange$1(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\n } else {\n return rng;\n }\n }).getOr(rng);\n };\n var normalize$1 = function (rng) {\n return rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\n };\n var RangeNormalizer = { normalize: normalize$1 };\n\n var each$d = Tools.each;\n var isElementNode$1 = function (node) {\n return node && node.nodeType === 1 && !Bookmarks.isBookmarkNode(node) && !isCaretNode(node) && !NodeType.isBogus(node);\n };\n var applyFormat = function (ed, name, vars, node) {\n var formatList = ed.formatter.get(name);\n var format = formatList[0];\n var bookmark, rng;\n var isCollapsed = !node && ed.selection.isCollapsed();\n var dom = ed.dom, selection = ed.selection;\n var setElementFormat = function (elm, fmt) {\n fmt = fmt || format;\n if (elm) {\n if (fmt.onformat) {\n fmt.onformat(elm, fmt, vars, node);\n }\n each$d(fmt.styles, function (value, name) {\n dom.setStyle(elm, name, FormatUtils.replaceVars(value, vars));\n });\n if (fmt.styles) {\n var styleVal = dom.getAttrib(elm, 'style');\n if (styleVal) {\n elm.setAttribute('data-mce-style', styleVal);\n }\n }\n each$d(fmt.attributes, function (value, name) {\n dom.setAttrib(elm, name, FormatUtils.replaceVars(value, vars));\n });\n each$d(fmt.classes, function (value) {\n value = FormatUtils.replaceVars(value, vars);\n if (!dom.hasClass(elm, value)) {\n dom.addClass(elm, value);\n }\n });\n }\n };\n var applyNodeStyle = function (formatList, node) {\n var found = false;\n if (!format.selector) {\n return false;\n }\n each$d(formatList, function (format) {\n if ('collapsed' in format && format.collapsed !== isCollapsed) {\n return;\n }\n if (dom.is(node, format.selector) && !isCaretNode(node)) {\n setElementFormat(node, format);\n found = true;\n return false;\n }\n });\n return found;\n };\n var applyRngStyle = function (dom, rng, bookmark, nodeSpecific) {\n var newWrappers = [];\n var wrapName, wrapElm, contentEditable = true;\n wrapName = format.inline || format.block;\n wrapElm = dom.create(wrapName);\n setElementFormat(wrapElm);\n RangeWalk.walk(dom, rng, function (nodes) {\n var currentWrapElm;\n var process = function (node) {\n var nodeName, parentName, hasContentEditableState, lastContentEditable;\n lastContentEditable = contentEditable;\n nodeName = node.nodeName.toLowerCase();\n parentName = node.parentNode.nodeName.toLowerCase();\n if (node.nodeType === 1 && dom.getContentEditable(node)) {\n lastContentEditable = contentEditable;\n contentEditable = dom.getContentEditable(node) === 'true';\n hasContentEditableState = true;\n }\n if (FormatUtils.isEq(nodeName, 'br')) {\n currentWrapElm = 0;\n if (format.block) {\n dom.remove(node);\n }\n return;\n }\n if (format.wrapper && MatchFormat.matchNode(ed, node, name, vars)) {\n currentWrapElm = 0;\n return;\n }\n if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && FormatUtils.isTextBlock(ed, nodeName) && FormatUtils.isValid(ed, parentName, wrapName)) {\n node = dom.rename(node, wrapName);\n setElementFormat(node);\n newWrappers.push(node);\n currentWrapElm = 0;\n return;\n }\n if (format.selector) {\n var found = applyNodeStyle(formatList, node);\n if (!format.inline || found) {\n currentWrapElm = 0;\n return;\n }\n }\n if (contentEditable && !hasContentEditableState && FormatUtils.isValid(ed, wrapName, nodeName) && FormatUtils.isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) {\n if (!currentWrapElm) {\n currentWrapElm = dom.clone(wrapElm, false);\n node.parentNode.insertBefore(currentWrapElm, node);\n newWrappers.push(currentWrapElm);\n }\n currentWrapElm.appendChild(node);\n } else {\n currentWrapElm = 0;\n each$d(Tools.grep(node.childNodes), process);\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm = 0;\n }\n };\n each$d(nodes, process);\n });\n if (format.links === true) {\n each$d(newWrappers, function (node) {\n var process = function (node) {\n if (node.nodeName === 'A') {\n setElementFormat(node, format);\n }\n each$d(Tools.grep(node.childNodes), process);\n };\n process(node);\n });\n }\n each$d(newWrappers, function (node) {\n var childCount;\n var getChildCount = function (node) {\n var count = 0;\n each$d(node.childNodes, function (node) {\n if (!FormatUtils.isWhiteSpaceNode(node) && !Bookmarks.isBookmarkNode(node)) {\n count++;\n }\n });\n return count;\n };\n var getChildElementNode = function (root) {\n var child = false;\n each$d(root.childNodes, function (node) {\n if (isElementNode$1(node)) {\n child = node;\n return false;\n }\n });\n return child;\n };\n var mergeStyles = function (node) {\n var child, clone;\n child = getChildElementNode(node);\n if (child && !Bookmarks.isBookmarkNode(child) && MatchFormat.matchName(dom, child, format)) {\n clone = dom.clone(child, false);\n setElementFormat(clone);\n dom.replace(clone, node, true);\n dom.remove(child, 1);\n }\n return clone || node;\n };\n childCount = getChildCount(node);\n if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\n dom.remove(node, 1);\n return;\n }\n if (format.inline || format.wrapper) {\n if (!format.exact && childCount === 1) {\n node = mergeStyles(node);\n }\n MergeFormats.mergeWithChildren(ed, formatList, vars, node);\n MergeFormats.mergeWithParents(ed, format, name, vars, node);\n MergeFormats.mergeBackgroundColorAndFontSize(dom, format, vars, node);\n MergeFormats.mergeSubSup(dom, format, vars, node);\n MergeFormats.mergeSiblings(dom, format, vars, node);\n }\n });\n };\n if (dom.getContentEditable(selection.getNode()) === 'false') {\n node = selection.getNode();\n for (var i = 0, l = formatList.length; i < l; i++) {\n if (formatList[i].ceFalseOverride && dom.is(node, formatList[i].selector)) {\n setElementFormat(node, formatList[i]);\n return;\n }\n }\n return;\n }\n if (format) {\n if (node) {\n if (node.nodeType) {\n if (!applyNodeStyle(formatList, node)) {\n rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n applyRngStyle(dom, ExpandRange.expandRng(ed, rng, formatList), null, true);\n }\n } else {\n applyRngStyle(dom, node, null, true);\n }\n } else {\n if (!isCollapsed || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\n var curSelNode = ed.selection.getNode();\n if (!ed.settings.forced_root_block && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) {\n applyFormat(ed, formatList[0].defaultBlock);\n }\n ed.selection.setRng(RangeNormalizer.normalize(ed.selection.getRng()));\n bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);\n applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList), bookmark);\n if (format.styles) {\n MergeFormats.mergeUnderlineAndColor(dom, format, vars, curSelNode);\n }\n selection.moveToBookmark(bookmark);\n FormatUtils.moveStart(dom, selection, selection.getRng());\n ed.nodeChanged();\n } else {\n applyCaretFormat(ed, name, vars);\n }\n }\n Hooks.postProcess(name, ed);\n }\n };\n var ApplyFormat = { applyFormat: applyFormat };\n\n var setup$5 = function (registeredFormatListeners, editor) {\n var currentFormats = Cell({});\n registeredFormatListeners.set({});\n editor.on('NodeChange', function (e) {\n updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get());\n });\n };\n var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) {\n var formatsList = keys(currentFormats.get());\n var newFormats = {};\n var matchedFormats = {};\n var parents = filter(FormatUtils.getParents(editor.dom, elm), function (node) {\n return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');\n });\n each$3(formatChangeData, function (data, format) {\n Tools.each(parents, function (node) {\n if (editor.formatter.matchNode(node, format, {}, data.similar)) {\n if (formatsList.indexOf(format) === -1) {\n each(data.callbacks, function (callback) {\n callback(true, {\n node: node,\n format: format,\n parents: parents\n });\n });\n newFormats[format] = data.callbacks;\n }\n matchedFormats[format] = data.callbacks;\n return false;\n }\n if (MatchFormat.matchesUnInheritedFormatSelector(editor, node, format)) {\n return false;\n }\n });\n });\n var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents);\n currentFormats.set(__assign({}, newFormats, remainingFormats));\n };\n var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) {\n return bifilter(currentFormats, function (callbacks, format) {\n if (!has(matchedFormats, format)) {\n each(callbacks, function (callback) {\n callback(false, {\n node: elm,\n format: format,\n parents: parents\n });\n });\n return false;\n } else {\n return true;\n }\n }).t;\n };\n var addListeners = function (registeredFormatListeners, formats, callback, similar) {\n var formatChangeItems = registeredFormatListeners.get();\n each(formats.split(','), function (format) {\n if (!formatChangeItems[format]) {\n formatChangeItems[format] = {\n similar: similar,\n callbacks: []\n };\n }\n formatChangeItems[format].callbacks.push(callback);\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n var removeListeners = function (registeredFormatListeners, formats, callback) {\n var formatChangeItems = registeredFormatListeners.get();\n each(formats.split(','), function (format) {\n formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) {\n return c !== callback;\n });\n if (formatChangeItems[format].callbacks.length === 0) {\n delete formatChangeItems[format];\n }\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {\n if (registeredFormatListeners.get() === null) {\n setup$5(registeredFormatListeners, editor);\n }\n addListeners(registeredFormatListeners, formats, callback, similar);\n return {\n unbind: function () {\n return removeListeners(registeredFormatListeners, formats, callback);\n }\n };\n };\n\n var get$6 = function (dom) {\n var formats = {\n valigntop: [{\n selector: 'td,th',\n styles: { verticalAlign: 'top' }\n }],\n valignmiddle: [{\n selector: 'td,th',\n styles: { verticalAlign: 'middle' }\n }],\n valignbottom: [{\n selector: 'td,th',\n styles: { verticalAlign: 'bottom' }\n }],\n alignleft: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-left',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'left' },\n inherit: false,\n preview: false,\n defaultBlock: 'div'\n },\n {\n selector: 'img,table',\n collapsed: false,\n styles: { float: 'left' },\n preview: 'font-family font-size'\n }\n ],\n aligncenter: [\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'center' },\n inherit: false,\n preview: 'font-family font-size',\n defaultBlock: 'div'\n },\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-center',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'img',\n collapsed: false,\n styles: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: 'font-family font-size'\n }\n ],\n alignright: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-right',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'right' },\n inherit: false,\n preview: 'font-family font-size',\n defaultBlock: 'div'\n },\n {\n selector: 'img,table',\n collapsed: false,\n styles: { float: 'right' },\n preview: 'font-family font-size'\n }\n ],\n alignjustify: [{\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\n styles: { textAlign: 'justify' },\n inherit: false,\n defaultBlock: 'div',\n preview: 'font-family font-size'\n }],\n bold: [\n {\n inline: 'strong',\n remove: 'all'\n },\n {\n inline: 'span',\n styles: { fontWeight: 'bold' }\n },\n {\n inline: 'b',\n remove: 'all'\n }\n ],\n italic: [\n {\n inline: 'em',\n remove: 'all'\n },\n {\n inline: 'span',\n styles: { fontStyle: 'italic' }\n },\n {\n inline: 'i',\n remove: 'all'\n }\n ],\n underline: [\n {\n inline: 'span',\n styles: { textDecoration: 'underline' },\n exact: true\n },\n {\n inline: 'u',\n remove: 'all'\n }\n ],\n strikethrough: [\n {\n inline: 'span',\n styles: { textDecoration: 'line-through' },\n exact: true\n },\n {\n inline: 'strike',\n remove: 'all'\n }\n ],\n forecolor: {\n inline: 'span',\n styles: { color: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n hilitecolor: {\n inline: 'span',\n styles: { backgroundColor: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n fontname: {\n inline: 'span',\n toggle: false,\n styles: { fontFamily: '%value' },\n clear_child_styles: true\n },\n fontsize: {\n inline: 'span',\n toggle: false,\n styles: { fontSize: '%value' },\n clear_child_styles: true\n },\n fontsize_class: {\n inline: 'span',\n attributes: { class: '%value' }\n },\n blockquote: {\n block: 'blockquote',\n wrapper: true,\n remove: 'all'\n },\n subscript: { inline: 'sub' },\n superscript: { inline: 'sup' },\n code: { inline: 'code' },\n link: {\n inline: 'a',\n selector: 'a',\n remove: 'all',\n split: true,\n deep: true,\n onmatch: function () {\n return true;\n },\n onformat: function (elm, fmt, vars) {\n Tools.each(vars, function (value, key) {\n dom.setAttrib(elm, key, value);\n });\n }\n },\n removeformat: [\n {\n selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins',\n remove: 'all',\n split: true,\n expand: false,\n block_expand: true,\n deep: true\n },\n {\n selector: 'span',\n attributes: [\n 'style',\n 'class'\n ],\n remove: 'empty',\n split: true,\n expand: false,\n deep: true\n },\n {\n selector: '*',\n attributes: [\n 'style',\n 'class'\n ],\n split: false,\n expand: false,\n deep: true\n }\n ]\n };\n Tools.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\\s/), function (name) {\n formats[name] = {\n block: name,\n remove: 'all'\n };\n });\n return formats;\n };\n var DefaultFormats = { get: get$6 };\n\n function FormatRegistry(editor) {\n var formats = {};\n var get = function (name) {\n return name ? formats[name] : formats;\n };\n var has$1 = function (name) {\n return has(formats, name);\n };\n var register = function (name, format) {\n if (name) {\n if (typeof name !== 'string') {\n Tools.each(name, function (format, name) {\n register(name, format);\n });\n } else {\n if (!isArray(format)) {\n format = [format];\n }\n Tools.each(format, function (format) {\n if (typeof format.deep === 'undefined') {\n format.deep = !format.selector;\n }\n if (typeof format.split === 'undefined') {\n format.split = !format.selector || format.inline;\n }\n if (typeof format.remove === 'undefined' && format.selector && !format.inline) {\n format.remove = 'none';\n }\n if (format.selector && format.inline) {\n format.mixed = true;\n format.block_expand = true;\n }\n if (typeof format.classes === 'string') {\n format.classes = format.classes.split(/\\s+/);\n }\n });\n formats[name] = format;\n }\n }\n };\n var unregister = function (name) {\n if (name && formats[name]) {\n delete formats[name];\n }\n return formats;\n };\n register(DefaultFormats.get(editor.dom));\n register(editor.settings.formats);\n return {\n get: get,\n has: has$1,\n register: register,\n unregister: unregister\n };\n }\n\n var each$e = Tools.each;\n var dom = DOMUtils$1.DOM;\n var parsedSelectorToHtml = function (ancestry, editor) {\n var elm, item, fragment;\n var schema = editor && editor.schema || Schema({});\n var decorate = function (elm, item) {\n if (item.classes.length) {\n dom.addClass(elm, item.classes.join(' '));\n }\n dom.setAttribs(elm, item.attrs);\n };\n var createElement = function (sItem) {\n var elm;\n item = typeof sItem === 'string' ? {\n name: sItem,\n classes: [],\n attrs: {}\n } : sItem;\n elm = dom.create(item.name);\n decorate(elm, item);\n return elm;\n };\n var getRequiredParent = function (elm, candidate) {\n var name = typeof elm !== 'string' ? elm.nodeName.toLowerCase() : elm;\n var elmRule = schema.getElementRule(name);\n var parentsRequired = elmRule && elmRule.parentsRequired;\n if (parentsRequired && parentsRequired.length) {\n return candidate && Tools.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0];\n } else {\n return false;\n }\n };\n var wrapInHtml = function (elm, ancestry, siblings) {\n var parent, parentCandidate, parentRequired;\n var ancestor = ancestry.length > 0 && ancestry[0];\n var ancestorName = ancestor && ancestor.name;\n parentRequired = getRequiredParent(elm, ancestorName);\n if (parentRequired) {\n if (ancestorName === parentRequired) {\n parentCandidate = ancestry[0];\n ancestry = ancestry.slice(1);\n } else {\n parentCandidate = parentRequired;\n }\n } else if (ancestor) {\n parentCandidate = ancestry[0];\n ancestry = ancestry.slice(1);\n } else if (!siblings) {\n return elm;\n }\n if (parentCandidate) {\n parent = createElement(parentCandidate);\n parent.appendChild(elm);\n }\n if (siblings) {\n if (!parent) {\n parent = dom.create('div');\n parent.appendChild(elm);\n }\n Tools.each(siblings, function (sibling) {\n var siblingElm = createElement(sibling);\n parent.insertBefore(siblingElm, elm);\n });\n }\n return wrapInHtml(parent, ancestry, parentCandidate && parentCandidate.siblings);\n };\n if (ancestry && ancestry.length) {\n item = ancestry[0];\n elm = createElement(item);\n fragment = dom.create('div');\n fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), item.siblings));\n return fragment;\n } else {\n return '';\n }\n };\n var selectorToHtml = function (selector, editor) {\n return parsedSelectorToHtml(parseSelector(selector), editor);\n };\n var parseSelectorItem = function (item) {\n var tagName;\n var obj = {\n classes: [],\n attrs: {}\n };\n item = obj.selector = Tools.trim(item);\n if (item !== '*') {\n tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, function ($0, $1, $2, $3, $4) {\n switch ($1) {\n case '#':\n obj.attrs.id = $2;\n break;\n case '.':\n obj.classes.push($2);\n break;\n case ':':\n if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\n obj.attrs[$2] = $2;\n }\n break;\n }\n if ($3 === '[') {\n var m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\n if (m) {\n obj.attrs[m[1]] = m[2];\n }\n }\n return '';\n });\n }\n obj.name = tagName || 'div';\n return obj;\n };\n var parseSelector = function (selector) {\n if (!selector || typeof selector !== 'string') {\n return [];\n }\n selector = selector.split(/\\s*,\\s*/)[0];\n selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\n return Tools.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), function (item) {\n var siblings = Tools.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\n var obj = siblings.pop();\n if (siblings.length) {\n obj.siblings = siblings;\n }\n return obj;\n }).reverse();\n };\n var getCssText = function (editor, format) {\n var name, previewFrag, previewElm, items;\n var previewCss = '', parentFontSize, previewStyles;\n previewStyles = editor.settings.preview_styles;\n if (previewStyles === false) {\n return '';\n }\n if (typeof previewStyles !== 'string') {\n previewStyles = 'font-family font-size font-weight font-style text-decoration ' + 'text-transform color background-color border border-radius outline text-shadow';\n }\n var removeVars = function (val) {\n return val.replace(/%(\\w+)/g, '');\n };\n if (typeof format === 'string') {\n format = editor.formatter.get(format);\n if (!format) {\n return;\n }\n format = format[0];\n }\n if ('preview' in format) {\n previewStyles = format.preview;\n if (previewStyles === false) {\n return '';\n }\n }\n name = format.block || format.inline || 'span';\n items = parseSelector(format.selector);\n if (items.length) {\n if (!items[0].name) {\n items[0].name = name;\n }\n name = format.selector;\n previewFrag = parsedSelectorToHtml(items, editor);\n } else {\n previewFrag = parsedSelectorToHtml([name], editor);\n }\n previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\n each$e(format.styles, function (value, name) {\n value = removeVars(value);\n if (value) {\n dom.setStyle(previewElm, name, value);\n }\n });\n each$e(format.attributes, function (value, name) {\n value = removeVars(value);\n if (value) {\n dom.setAttrib(previewElm, name, value);\n }\n });\n each$e(format.classes, function (value) {\n value = removeVars(value);\n if (!dom.hasClass(previewElm, value)) {\n dom.addClass(previewElm, value);\n }\n });\n editor.fire('PreviewFormats');\n dom.setStyles(previewFrag, {\n position: 'absolute',\n left: -65535\n });\n editor.getBody().appendChild(previewFrag);\n parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true);\n parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;\n each$e(previewStyles.split(' '), function (name) {\n var value = dom.getStyle(previewElm, name, true);\n if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\n value = dom.getStyle(editor.getBody(), name, true);\n if (dom.toHex(value).toLowerCase() === '#ffffff') {\n return;\n }\n }\n if (name === 'color') {\n if (dom.toHex(value).toLowerCase() === '#000000') {\n return;\n }\n }\n if (name === 'font-size') {\n if (/em|%$/.test(value)) {\n if (parentFontSize === 0) {\n return;\n }\n var numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\n value = numValue * parentFontSize + 'px';\n }\n }\n if (name === 'border' && value) {\n previewCss += 'padding:0 2px;';\n }\n previewCss += name + ':' + value + ';';\n });\n editor.fire('AfterPreviewFormats');\n dom.remove(previewFrag);\n return previewCss;\n };\n var Preview = {\n getCssText: getCssText,\n parseSelector: parseSelector,\n selectorToHtml: selectorToHtml\n };\n\n var toggle$1 = function (editor, formats, name, vars, node) {\n var fmt = formats.get(name);\n if (MatchFormat.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\n RemoveFormat.remove(editor, name, vars, node);\n } else {\n ApplyFormat.applyFormat(editor, name, vars, node);\n }\n };\n var ToggleFormat = { toggle: toggle$1 };\n\n var setup$6 = function (editor) {\n editor.addShortcut('meta+b', '', 'Bold');\n editor.addShortcut('meta+i', '', 'Italic');\n editor.addShortcut('meta+u', '', 'Underline');\n for (var i = 1; i <= 6; i++) {\n editor.addShortcut('access+' + i, '', [\n 'FormatBlock',\n false,\n 'h' + i\n ]);\n }\n editor.addShortcut('access+7', '', [\n 'FormatBlock',\n false,\n 'p'\n ]);\n editor.addShortcut('access+8', '', [\n 'FormatBlock',\n false,\n 'div'\n ]);\n editor.addShortcut('access+9', '', [\n 'FormatBlock',\n false,\n 'address'\n ]);\n };\n var FormatShortcuts = { setup: setup$6 };\n\n var Formatter = function (editor) {\n var formats = FormatRegistry(editor);\n var formatChangeState = Cell(null);\n FormatShortcuts.setup(editor);\n setup$4(editor);\n return {\n get: formats.get,\n has: formats.has,\n register: formats.register,\n unregister: formats.unregister,\n apply: curry(ApplyFormat.applyFormat, editor),\n remove: curry(RemoveFormat.remove, editor),\n toggle: curry(ToggleFormat.toggle, editor, formats),\n match: curry(MatchFormat.match, editor),\n matchAll: curry(MatchFormat.matchAll, editor),\n matchNode: curry(MatchFormat.matchNode, editor),\n canApply: curry(MatchFormat.canApply, editor),\n formatChanged: curry(formatChanged, editor, formatChangeState),\n getCssText: curry(Preview.getCssText, editor)\n };\n };\n\n var hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n var shallow$1 = function (old, nu) {\n return nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = new Array(arguments.length);\n for (var i = 0; i < objects.length; i++)\n objects[i] = arguments[i];\n if (objects.length === 0)\n throw new Error('Can\\'t merge zero objects');\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject)\n if (hasOwnProperty$2.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n return ret;\n };\n };\n var merge = baseMerge(shallow$1);\n\n var register = function (htmlParser, settings, dom) {\n htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n node.attr('tabindex', node.attr('data-mce-tabindex'));\n node.attr(name, null);\n }\n });\n htmlParser.addAttributeFilter('src,href,style', function (nodes, name) {\n var i = nodes.length, node, value;\n var internalName = 'data-mce-' + name;\n var urlConverter = settings.url_converter;\n var urlConverterScope = settings.url_converter_scope;\n while (i--) {\n node = nodes[i];\n value = node.attr(internalName);\n if (value !== undefined) {\n node.attr(name, value.length > 0 ? value : null);\n node.attr(internalName, null);\n } else {\n value = node.attr(name);\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n } else if (urlConverter) {\n value = urlConverter.call(urlConverterScope, value, name, node.name);\n }\n node.attr(name, value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('class', function (nodes) {\n var i = nodes.length, node, value;\n while (i--) {\n node = nodes[i];\n value = node.attr('class');\n if (value) {\n value = node.attr('class').replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\n node.attr('class', value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', function (nodes, name, args) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) {\n var hasChildren = Option.from(node.firstChild).exists(function (firstChild) {\n return !Zwsp.isZwsp(firstChild.value);\n });\n if (hasChildren) {\n node.unwrap();\n } else {\n node.remove();\n }\n }\n }\n });\n htmlParser.addNodeFilter('noscript', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i].firstChild;\n if (node) {\n node.value = Entities.decode(node.value);\n }\n }\n });\n htmlParser.addNodeFilter('script,style', function (nodes, name) {\n var i = nodes.length, node, value, type;\n var trim = function (value) {\n return value.replace(/()/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*(()?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\n };\n while (i--) {\n node = nodes[i];\n value = node.firstChild ? node.firstChild.value : '';\n if (name === 'script') {\n type = node.attr('type');\n if (type) {\n node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\n }\n if (settings.element_format === 'xhtml' && value.length > 0) {\n node.firstChild.value = '// ';\n }\n } else {\n if (settings.element_format === 'xhtml' && value.length > 0) {\n node.firstChild.value = '';\n }\n }\n }\n });\n htmlParser.addNodeFilter('#comment', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.value.indexOf('[CDATA[') === 0) {\n node.name = '#cdata';\n node.type = 4;\n node.value = node.value.replace(/^\\[CDATA\\[|\\]\\]$/g, '');\n } else if (node.value.indexOf('mce:protected ') === 0) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = unescape(node.value).substr(14);\n }\n }\n });\n htmlParser.addNodeFilter('xml:namespace,input', function (nodes, name) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n if (node.type === 7) {\n node.remove();\n } else if (node.type === 1) {\n if (name === 'input' && !node.attr('type')) {\n node.attr('type', 'text');\n }\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', function (nodes) {\n each(nodes, function (node) {\n if (node.attr('data-mce-type') === 'format-caret') {\n if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\n node.remove();\n } else {\n node.unwrap();\n }\n }\n });\n });\n htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,' + 'data-mce-type,data-mce-resize', function (nodes, name) {\n var i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n };\n var trimTrailingBr = function (rootNode) {\n var brNode1, brNode2;\n var isBr = function (node) {\n return node && node.name === 'br';\n };\n brNode1 = rootNode.lastChild;\n if (isBr(brNode1)) {\n brNode2 = brNode1.prev;\n if (isBr(brNode2)) {\n brNode1.remove();\n brNode2.remove();\n }\n }\n };\n var DomSerializerFilters = {\n register: register,\n trimTrailingBr: trimTrailingBr\n };\n\n var preProcess = function (editor, node, args) {\n var impl, doc, oldDoc;\n var dom = editor.dom;\n node = node.cloneNode(true);\n impl = domGlobals.document.implementation;\n if (impl.createHTMLDocument) {\n doc = impl.createHTMLDocument('');\n Tools.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) {\n doc.body.appendChild(doc.importNode(node, true));\n });\n if (node.nodeName !== 'BODY') {\n node = doc.body.firstChild;\n } else {\n node = doc.body;\n }\n oldDoc = dom.doc;\n dom.doc = doc;\n }\n Events.firePreProcess(editor, merge(args, { node: node }));\n if (oldDoc) {\n dom.doc = oldDoc;\n }\n return node;\n };\n var shouldFireEvent = function (editor, args) {\n return editor && editor.hasEventListeners('PreProcess') && !args.no_events;\n };\n var process = function (editor, node, args) {\n return shouldFireEvent(editor, args) ? preProcess(editor, node, args) : node;\n };\n var DomSerializerPreProcess = { process: process };\n\n var removeAttrs = function (node, names) {\n each(names, function (name) {\n node.attr(name, null);\n });\n };\n var addFontToSpansFilter = function (domParser, styles, fontSizes) {\n domParser.addNodeFilter('font', function (nodes) {\n each(nodes, function (node) {\n var props = styles.parse(node.attr('style'));\n var color = node.attr('color');\n var face = node.attr('face');\n var size = node.attr('size');\n if (color) {\n props.color = color;\n }\n if (face) {\n props['font-family'] = face;\n }\n if (size) {\n props['font-size'] = fontSizes[parseInt(node.attr('size'), 10) - 1];\n }\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n removeAttrs(node, [\n 'color',\n 'face',\n 'size'\n ]);\n });\n });\n };\n var addStrikeToSpanFilter = function (domParser, styles) {\n domParser.addNodeFilter('strike', function (nodes) {\n each(nodes, function (node) {\n var props = styles.parse(node.attr('style'));\n props['text-decoration'] = 'line-through';\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n });\n });\n };\n var addFilters = function (domParser, settings) {\n var styles = Styles();\n if (settings.convert_fonts_to_spans) {\n addFontToSpansFilter(domParser, styles, Tools.explode(settings.font_size_legacy_values));\n }\n addStrikeToSpanFilter(domParser, styles);\n };\n var register$1 = function (domParser, settings) {\n if (settings.inline_styles) {\n addFilters(domParser, settings);\n }\n };\n var LegacyFilter = { register: register$1 };\n\n var paddEmptyNode = function (settings, args, blockElements, node) {\n var brPreferred = settings.padd_empty_with_br || args.insert;\n if (brPreferred && blockElements[node.name]) {\n node.empty().append(new Node$1('br', 1)).shortEnded = true;\n } else {\n node.empty().append(new Node$1('#text', 3)).value = '\\xA0';\n }\n };\n var isPaddedWithNbsp = function (node) {\n return hasOnlyChild(node, '#text') && node.firstChild.value === '\\xA0';\n };\n var hasOnlyChild = function (node, name) {\n return node && node.firstChild && node.firstChild === node.lastChild && node.firstChild.name === name;\n };\n var isPadded = function (schema, node) {\n var rule = schema.getElementRule(node.name);\n return rule && rule.paddEmpty;\n };\n var isEmpty$2 = function (schema, nonEmptyElements, whitespaceElements, node) {\n return node.isEmpty(nonEmptyElements, whitespaceElements, function (node) {\n return isPadded(schema, node);\n });\n };\n var isLineBreakNode = function (node, blockElements) {\n return node && (blockElements[node.name] || node.name === 'br');\n };\n\n var register$2 = function (parser, settings) {\n var schema = parser.schema;\n if (settings.remove_trailing_brs) {\n parser.addNodeFilter('br', function (nodes, _, args) {\n var i;\n var l = nodes.length;\n var node;\n var blockElements = Tools.extend({}, schema.getBlockElements());\n var nonEmptyElements = schema.getNonEmptyElements();\n var parent, lastParent, prev, prevName;\n var whiteSpaceElements = schema.getNonEmptyElements();\n var elementRule, textNode;\n blockElements.body = 1;\n for (i = 0; i < l; i++) {\n node = nodes[i];\n parent = node.parent;\n if (blockElements[node.parent.name] && node === parent.lastChild) {\n prev = node.prev;\n while (prev) {\n prevName = prev.name;\n if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\n if (prevName !== 'br') {\n break;\n }\n if (prevName === 'br') {\n node = null;\n break;\n }\n }\n prev = prev.prev;\n }\n if (node) {\n node.remove();\n if (isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, parent)) {\n elementRule = schema.getElementRule(parent.name);\n if (elementRule) {\n if (elementRule.removeEmpty) {\n parent.remove();\n } else if (elementRule.paddEmpty) {\n paddEmptyNode(settings, args, blockElements, parent);\n }\n }\n }\n }\n } else {\n lastParent = node;\n while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\n lastParent = parent;\n if (blockElements[parent.name]) {\n break;\n }\n parent = parent.parent;\n }\n if (lastParent === parent && settings.padd_empty_with_br !== true) {\n textNode = new Node$1('#text', 3);\n textNode.value = '\\xA0';\n node.replace(textNode);\n }\n }\n }\n });\n }\n parser.addAttributeFilter('href', function (nodes) {\n var i = nodes.length, node;\n var appendRel = function (rel) {\n var parts = rel.split(' ').filter(function (p) {\n return p.length > 0;\n });\n return parts.concat(['noopener']).sort().join(' ');\n };\n var addNoOpener = function (rel) {\n var newRel = rel ? Tools.trim(rel) : '';\n if (!/\\b(noopener)\\b/g.test(newRel)) {\n return appendRel(newRel);\n } else {\n return newRel;\n }\n };\n if (!settings.allow_unsafe_link_target) {\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.attr('target') === '_blank') {\n node.attr('rel', addNoOpener(node.attr('rel')));\n }\n }\n }\n });\n if (!settings.allow_html_in_named_anchor) {\n parser.addAttributeFilter('id,name', function (nodes) {\n var i = nodes.length, sibling, prevSibling, parent, node;\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.firstChild && !node.attr('href')) {\n parent = node.parent;\n sibling = node.lastChild;\n do {\n prevSibling = sibling.prev;\n parent.insert(sibling, node);\n sibling = prevSibling;\n } while (sibling);\n }\n }\n });\n }\n if (settings.fix_list_elements) {\n parser.addNodeFilter('ul,ol', function (nodes) {\n var i = nodes.length, node, parentNode;\n while (i--) {\n node = nodes[i];\n parentNode = node.parent;\n if (parentNode.name === 'ul' || parentNode.name === 'ol') {\n if (node.prev && node.prev.name === 'li') {\n node.prev.append(node);\n } else {\n var li = new Node$1('li', 1);\n li.attr('style', 'list-style-type: none');\n node.wrap(li);\n }\n }\n }\n });\n }\n if (settings.validate && schema.getValidClasses()) {\n parser.addAttributeFilter('class', function (nodes) {\n var i = nodes.length, node, classList, ci, className, classValue;\n var validClasses = schema.getValidClasses();\n var validClassesMap, valid;\n while (i--) {\n node = nodes[i];\n classList = node.attr('class').split(' ');\n classValue = '';\n for (ci = 0; ci < classList.length; ci++) {\n className = classList[ci];\n valid = false;\n validClassesMap = validClasses['*'];\n if (validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n validClassesMap = validClasses[node.name];\n if (!valid && validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n if (valid) {\n if (classValue) {\n classValue += ' ';\n }\n classValue += className;\n }\n }\n if (!classValue.length) {\n classValue = null;\n }\n node.attr('class', classValue);\n }\n });\n }\n };\n\n var makeMap$4 = Tools.makeMap, each$f = Tools.each, explode$2 = Tools.explode, extend$2 = Tools.extend;\n var DomParser = function (settings, schema) {\n if (schema === void 0) {\n schema = Schema();\n }\n var nodeFilters = {};\n var attributeFilters = [];\n var matchedNodes = {};\n var matchedAttributes = {};\n settings = settings || {};\n settings.validate = 'validate' in settings ? settings.validate : true;\n settings.root_name = settings.root_name || 'body';\n var fixInvalidChildren = function (nodes) {\n var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i;\n var nonEmptyElements, whitespaceElements, nonSplitableElements, textBlockElements, specialElements, sibling, nextNode;\n nonSplitableElements = makeMap$4('tr,td,th,tbody,thead,tfoot,table');\n nonEmptyElements = schema.getNonEmptyElements();\n whitespaceElements = schema.getWhiteSpaceElements();\n textBlockElements = schema.getTextBlockElements();\n specialElements = schema.getSpecialElements();\n for (ni = 0; ni < nodes.length; ni++) {\n node = nodes[ni];\n if (!node.parent || node.fixed) {\n continue;\n }\n if (textBlockElements[node.name] && node.parent.name === 'li') {\n sibling = node.next;\n while (sibling) {\n if (textBlockElements[sibling.name]) {\n sibling.name = 'li';\n sibling.fixed = true;\n node.parent.insert(sibling, node.parent);\n } else {\n break;\n }\n sibling = sibling.next;\n }\n node.unwrap(node);\n continue;\n }\n parents = [node];\n for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplitableElements[parent.name]; parent = parent.parent) {\n parents.push(parent);\n }\n if (parent && parents.length > 1) {\n parents.reverse();\n newParent = currentNode = filterNode(parents[0].clone());\n for (i = 0; i < parents.length - 1; i++) {\n if (schema.isValidChild(currentNode.name, parents[i].name)) {\n tempNode = filterNode(parents[i].clone());\n currentNode.append(tempNode);\n } else {\n tempNode = currentNode;\n }\n for (childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\n nextNode = childNode.next;\n tempNode.append(childNode);\n childNode = nextNode;\n }\n currentNode = tempNode;\n }\n if (!isEmpty$2(schema, nonEmptyElements, whitespaceElements, newParent)) {\n parent.insert(newParent, parents[0], true);\n parent.insert(node, newParent);\n } else {\n parent.insert(node, parents[0], true);\n }\n parent = parents[0];\n if (isEmpty$2(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\n parent.empty().remove();\n }\n } else if (node.parent) {\n if (node.name === 'li') {\n sibling = node.prev;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\n sibling.append(node);\n continue;\n }\n sibling = node.next;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\n sibling.insert(node, sibling.firstChild, true);\n continue;\n }\n node.wrap(filterNode(new Node$1('ul', 1)));\n continue;\n }\n if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\n node.wrap(filterNode(new Node$1('div', 1)));\n } else {\n if (specialElements[node.name]) {\n node.empty().remove();\n } else {\n node.unwrap();\n }\n }\n }\n }\n };\n var filterNode = function (node) {\n var i, name, list;\n name = node.name;\n if (name in nodeFilters) {\n list = matchedNodes[name];\n if (list) {\n list.push(node);\n } else {\n matchedNodes[name] = [node];\n }\n }\n i = attributeFilters.length;\n while (i--) {\n name = attributeFilters[i].name;\n if (name in node.attributes.map) {\n list = matchedAttributes[name];\n if (list) {\n list.push(node);\n } else {\n matchedAttributes[name] = [node];\n }\n }\n }\n return node;\n };\n var addNodeFilter = function (name, callback) {\n each$f(explode$2(name), function (name) {\n var list = nodeFilters[name];\n if (!list) {\n nodeFilters[name] = list = [];\n }\n list.push(callback);\n });\n };\n var getNodeFilters = function () {\n var out = [];\n for (var name in nodeFilters) {\n if (nodeFilters.hasOwnProperty(name)) {\n out.push({\n name: name,\n callbacks: nodeFilters[name]\n });\n }\n }\n return out;\n };\n var addAttributeFilter = function (name, callback) {\n each$f(explode$2(name), function (name) {\n var i;\n for (i = 0; i < attributeFilters.length; i++) {\n if (attributeFilters[i].name === name) {\n attributeFilters[i].callbacks.push(callback);\n return;\n }\n }\n attributeFilters.push({\n name: name,\n callbacks: [callback]\n });\n });\n };\n var getAttributeFilters = function () {\n return [].concat(attributeFilters);\n };\n var parse = function (html, args) {\n var parser, nodes, i, l, fi, fl, list, name;\n var blockElements;\n var invalidChildren = [];\n var isInWhiteSpacePreservedElement;\n var node;\n var getRootBlockName = function (name) {\n if (name === false) {\n return '';\n } else if (name === true) {\n return 'p';\n } else {\n return name;\n }\n };\n args = args || {};\n matchedNodes = {};\n matchedAttributes = {};\n blockElements = extend$2(makeMap$4('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n var nonEmptyElements = schema.getNonEmptyElements();\n var children = schema.children;\n var validate = settings.validate;\n var forcedRootBlockName = 'forced_root_block' in args ? args.forced_root_block : settings.forced_root_block;\n var rootBlockName = getRootBlockName(forcedRootBlockName);\n var whiteSpaceElements = schema.getWhiteSpaceElements();\n var startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n var endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n var allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\n var isAllWhiteSpaceRegExp = /^[ \\t\\r\\n]+$/;\n isInWhiteSpacePreservedElement = whiteSpaceElements.hasOwnProperty(args.context) || whiteSpaceElements.hasOwnProperty(settings.root_name);\n var addRootBlocks = function () {\n var node = rootNode.firstChild, next, rootBlockNode;\n var trim = function (rootBlockNode) {\n if (rootBlockNode) {\n node = rootBlockNode.firstChild;\n if (node && node.type === 3) {\n node.value = node.value.replace(startWhiteSpaceRegExp, '');\n }\n node = rootBlockNode.lastChild;\n if (node && node.type === 3) {\n node.value = node.value.replace(endWhiteSpaceRegExp, '');\n }\n }\n };\n if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\n return;\n }\n while (node) {\n next = node.next;\n if (node.type === 3 || node.type === 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type')) {\n if (!rootBlockNode) {\n rootBlockNode = createNode(rootBlockName, 1);\n rootBlockNode.attr(settings.forced_root_block_attrs);\n rootNode.insert(rootBlockNode, node);\n rootBlockNode.append(node);\n } else {\n rootBlockNode.append(node);\n }\n } else {\n trim(rootBlockNode);\n rootBlockNode = null;\n }\n node = next;\n }\n trim(rootBlockNode);\n };\n var createNode = function (name, type) {\n var node = new Node$1(name, type);\n var list;\n if (name in nodeFilters) {\n list = matchedNodes[name];\n if (list) {\n list.push(node);\n } else {\n matchedNodes[name] = [node];\n }\n }\n return node;\n };\n var removeWhitespaceBefore = function (node) {\n var textNode, textNodeNext, textVal, sibling;\n var blockElements = schema.getBlockElements();\n for (textNode = node.prev; textNode && textNode.type === 3;) {\n textVal = textNode.value.replace(endWhiteSpaceRegExp, '');\n if (textVal.length > 0) {\n textNode.value = textVal;\n return;\n }\n textNodeNext = textNode.next;\n if (textNodeNext) {\n if (textNodeNext.type === 3 && textNodeNext.value.length) {\n textNode = textNode.prev;\n continue;\n }\n if (!blockElements[textNodeNext.name] && textNodeNext.name !== 'script' && textNodeNext.name !== 'style') {\n textNode = textNode.prev;\n continue;\n }\n }\n sibling = textNode.prev;\n textNode.remove();\n textNode = sibling;\n }\n };\n var cloneAndExcludeBlocks = function (input) {\n var name;\n var output = {};\n for (name in input) {\n if (name !== 'li' && name !== 'p') {\n output[name] = input[name];\n }\n }\n return output;\n };\n parser = SaxParser$1({\n validate: validate,\n allow_script_urls: settings.allow_script_urls,\n allow_conditional_comments: settings.allow_conditional_comments,\n self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()),\n cdata: function (text) {\n node.append(createNode('#cdata', 4)).value = text;\n },\n text: function (text, raw) {\n var textNode;\n if (!isInWhiteSpacePreservedElement) {\n text = text.replace(allWhiteSpaceRegExp, ' ');\n if (isLineBreakNode(node.lastChild, blockElements)) {\n text = text.replace(startWhiteSpaceRegExp, '');\n }\n }\n if (text.length !== 0) {\n textNode = createNode('#text', 3);\n textNode.raw = !!raw;\n node.append(textNode).value = text;\n }\n },\n comment: function (text) {\n node.append(createNode('#comment', 8)).value = text;\n },\n pi: function (name, text) {\n node.append(createNode(name, 7)).value = text;\n removeWhitespaceBefore(node);\n },\n doctype: function (text) {\n var newNode;\n newNode = node.append(createNode('#doctype', 10));\n newNode.value = text;\n removeWhitespaceBefore(node);\n },\n start: function (name, attrs, empty) {\n var newNode, attrFiltersLen, elementRule, attrName, parent;\n elementRule = validate ? schema.getElementRule(name) : {};\n if (elementRule) {\n newNode = createNode(elementRule.outputName || name, 1);\n newNode.attributes = attrs;\n newNode.shortEnded = empty;\n node.append(newNode);\n parent = children[node.name];\n if (parent && children[newNode.name] && !parent[newNode.name]) {\n invalidChildren.push(newNode);\n }\n attrFiltersLen = attributeFilters.length;\n while (attrFiltersLen--) {\n attrName = attributeFilters[attrFiltersLen].name;\n if (attrName in attrs.map) {\n list = matchedAttributes[attrName];\n if (list) {\n list.push(newNode);\n } else {\n matchedAttributes[attrName] = [newNode];\n }\n }\n }\n if (blockElements[name]) {\n removeWhitespaceBefore(newNode);\n }\n if (!empty) {\n node = newNode;\n }\n if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\n isInWhiteSpacePreservedElement = true;\n }\n }\n },\n end: function (name) {\n var textNode, elementRule, text, sibling, tempNode;\n elementRule = validate ? schema.getElementRule(name) : {};\n if (elementRule) {\n if (blockElements[name]) {\n if (!isInWhiteSpacePreservedElement) {\n textNode = node.firstChild;\n if (textNode && textNode.type === 3) {\n text = textNode.value.replace(startWhiteSpaceRegExp, '');\n if (text.length > 0) {\n textNode.value = text;\n textNode = textNode.next;\n } else {\n sibling = textNode.next;\n textNode.remove();\n textNode = sibling;\n while (textNode && textNode.type === 3) {\n text = textNode.value;\n sibling = textNode.next;\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\n textNode.remove();\n textNode = sibling;\n }\n textNode = sibling;\n }\n }\n }\n textNode = node.lastChild;\n if (textNode && textNode.type === 3) {\n text = textNode.value.replace(endWhiteSpaceRegExp, '');\n if (text.length > 0) {\n textNode.value = text;\n textNode = textNode.prev;\n } else {\n sibling = textNode.prev;\n textNode.remove();\n textNode = sibling;\n while (textNode && textNode.type === 3) {\n text = textNode.value;\n sibling = textNode.prev;\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\n textNode.remove();\n textNode = sibling;\n }\n textNode = sibling;\n }\n }\n }\n }\n }\n if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\n isInWhiteSpacePreservedElement = false;\n }\n if (elementRule.removeEmpty && isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node)) {\n if (!node.attr('name') && !node.attr('id')) {\n tempNode = node.parent;\n if (blockElements[node.name]) {\n node.empty().remove();\n } else {\n node.unwrap();\n }\n node = tempNode;\n return;\n }\n }\n if (elementRule.paddEmpty && (isPaddedWithNbsp(node) || isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node))) {\n paddEmptyNode(settings, args, blockElements, node);\n }\n node = node.parent;\n }\n }\n }, schema);\n var rootNode = node = new Node$1(args.context || settings.root_name, 11);\n parser.parse(html);\n if (validate && invalidChildren.length) {\n if (!args.context) {\n fixInvalidChildren(invalidChildren);\n } else {\n args.invalid = true;\n }\n }\n if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\n addRootBlocks();\n }\n if (!args.invalid) {\n for (name in matchedNodes) {\n if (!matchedNodes.hasOwnProperty(name)) {\n continue;\n }\n list = nodeFilters[name];\n nodes = matchedNodes[name];\n fi = nodes.length;\n while (fi--) {\n if (!nodes[fi].parent) {\n nodes.splice(fi, 1);\n }\n }\n for (i = 0, l = list.length; i < l; i++) {\n list[i](nodes, name, args);\n }\n }\n for (i = 0, l = attributeFilters.length; i < l; i++) {\n list = attributeFilters[i];\n if (list.name in matchedAttributes) {\n nodes = matchedAttributes[list.name];\n fi = nodes.length;\n while (fi--) {\n if (!nodes[fi].parent) {\n nodes.splice(fi, 1);\n }\n }\n for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) {\n list.callbacks[fi](nodes, list.name, args);\n }\n }\n }\n }\n return rootNode;\n };\n var exports = {\n schema: schema,\n addAttributeFilter: addAttributeFilter,\n getAttributeFilters: getAttributeFilters,\n addNodeFilter: addNodeFilter,\n getNodeFilters: getNodeFilters,\n filterNode: filterNode,\n parse: parse\n };\n register$2(exports, settings);\n LegacyFilter.register(exports, settings);\n return exports;\n };\n\n var addTempAttr = function (htmlParser, tempAttrs, name) {\n if (Tools.inArray(tempAttrs, name) === -1) {\n htmlParser.addAttributeFilter(name, function (nodes, name) {\n var i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n tempAttrs.push(name);\n }\n };\n var postProcess$1 = function (editor, args, content) {\n if (!args.no_events && editor) {\n var outArgs = Events.firePostProcess(editor, merge(args, { content: content }));\n return outArgs.content;\n } else {\n return content;\n }\n };\n var getHtmlFromNode = function (dom, node, args) {\n var html = Zwsp.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\n return args.selection || isWsPreserveElement(Element.fromDom(node)) ? html : Tools.trim(html);\n };\n var parseHtml = function (htmlParser, html, args) {\n var parserArgs = args.selection ? merge({ forced_root_block: false }, args) : args;\n var rootNode = htmlParser.parse(html, parserArgs);\n DomSerializerFilters.trimTrailingBr(rootNode);\n return rootNode;\n };\n var serializeNode = function (settings, schema, node) {\n var htmlSerializer = Serializer(settings, schema);\n return htmlSerializer.serialize(node);\n };\n var toHtml = function (editor, settings, schema, rootNode, args) {\n var content = serializeNode(settings, schema, rootNode);\n return postProcess$1(editor, args, content);\n };\n var DomSerializer = function (settings, editor) {\n var dom, schema, htmlParser;\n var tempAttrs = ['data-mce-selected'];\n dom = editor && editor.dom ? editor.dom : DOMUtils$1.DOM;\n schema = editor && editor.schema ? editor.schema : Schema(settings);\n settings.entity_encoding = settings.entity_encoding || 'named';\n settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;\n htmlParser = DomParser(settings, schema);\n DomSerializerFilters.register(htmlParser, settings, dom);\n var serialize = function (node, parserArgs) {\n var args = merge({ format: 'html' }, parserArgs ? parserArgs : {});\n var targetNode = DomSerializerPreProcess.process(editor, node, args);\n var html = getHtmlFromNode(dom, targetNode, args);\n var rootNode = parseHtml(htmlParser, html, args);\n return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);\n };\n return {\n schema: schema,\n addNodeFilter: htmlParser.addNodeFilter,\n addAttributeFilter: htmlParser.addAttributeFilter,\n serialize: serialize,\n addRules: function (rules) {\n schema.addValidElements(rules);\n },\n setRules: function (rules) {\n schema.setValidElements(rules);\n },\n addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\n getTempAttrs: function () {\n return tempAttrs;\n }\n };\n };\n\n var Serializer$1 = function (settings, editor) {\n var domSerializer = DomSerializer(settings, editor);\n return {\n schema: domSerializer.schema,\n addNodeFilter: domSerializer.addNodeFilter,\n addAttributeFilter: domSerializer.addAttributeFilter,\n serialize: domSerializer.serialize,\n addRules: domSerializer.addRules,\n setRules: domSerializer.setRules,\n addTempAttr: domSerializer.addTempAttr,\n getTempAttrs: domSerializer.getTempAttrs\n };\n };\n\n function BookmarkManager(selection) {\n return {\n getBookmark: curry(Bookmarks.getBookmark, selection),\n moveToBookmark: curry(Bookmarks.moveToBookmark, selection)\n };\n }\n (function (BookmarkManager) {\n BookmarkManager.isBookmarkNode = Bookmarks.isBookmarkNode;\n }(BookmarkManager || (BookmarkManager = {})));\n var BookmarkManager$1 = BookmarkManager;\n\n var isContentEditableFalse$a = NodeType.isContentEditableFalse;\n var isContentEditableTrue$5 = NodeType.isContentEditableTrue;\n var getContentEditableRoot$1 = function (root, node) {\n while (node && node !== root) {\n if (isContentEditableTrue$5(node) || isContentEditableFalse$a(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var ControlSelection = function (selection, editor) {\n var dom = editor.dom, each = Tools.each;\n var selectedElm, selectedElmGhost, resizeHelper, resizeHandles, selectedHandle;\n var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;\n var width, height;\n var editableDoc = editor.getDoc(), rootDocument = domGlobals.document;\n var abs = Math.abs, round = Math.round, rootElement = editor.getBody();\n var startScrollWidth, startScrollHeight;\n resizeHandles = {\n nw: [\n 0,\n 0,\n -1,\n -1\n ],\n ne: [\n 1,\n 0,\n 1,\n -1\n ],\n se: [\n 1,\n 1,\n 1,\n 1\n ],\n sw: [\n 0,\n 1,\n -1,\n 1\n ]\n };\n var isImage = function (elm) {\n return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image'));\n };\n var isEventOnImageOutsideRange = function (evt, range) {\n return isImage(evt.target) && !RangePoint.isXYWithinRange(evt.clientX, evt.clientY, range);\n };\n var contextMenuSelectImage = function (evt) {\n var target = evt.target;\n if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\n evt.preventDefault();\n editor.selection.select(target);\n }\n };\n var getResizeTarget = function (elm) {\n return editor.dom.is(elm, 'figure.image') ? elm.querySelector('img') : elm;\n };\n var isResizable = function (elm) {\n var selector = editor.settings.object_resizing;\n if (selector === false || Env.iOS) {\n return false;\n }\n if (typeof selector !== 'string') {\n selector = 'table,img,figure.image,div';\n }\n if (elm.getAttribute('data-mce-resize') === 'false') {\n return false;\n }\n if (elm === editor.getBody()) {\n return false;\n }\n return is$1(Element.fromDom(elm), selector);\n };\n var resizeGhostElement = function (e) {\n var deltaX, deltaY, proportional;\n var resizeHelperX, resizeHelperY;\n deltaX = e.screenX - startX;\n deltaY = e.screenY - startY;\n width = deltaX * selectedHandle[2] + startW;\n height = deltaY * selectedHandle[3] + startH;\n width = width < 5 ? 5 : width;\n height = height < 5 ? 5 : height;\n if (isImage(selectedElm) && editor.settings.resize_img_proportional !== false) {\n proportional = !VK.modifierPressed(e);\n } else {\n proportional = VK.modifierPressed(e) || isImage(selectedElm) && selectedHandle[2] * selectedHandle[3] !== 0;\n }\n if (proportional) {\n if (abs(deltaX) > abs(deltaY)) {\n height = round(width * ratio);\n width = round(height / ratio);\n } else {\n width = round(height / ratio);\n height = round(width * ratio);\n }\n }\n dom.setStyles(getResizeTarget(selectedElmGhost), {\n width: width,\n height: height\n });\n resizeHelperX = selectedHandle.startPos.x + deltaX;\n resizeHelperY = selectedHandle.startPos.y + deltaY;\n resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\n resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\n dom.setStyles(resizeHelper, {\n left: resizeHelperX,\n top: resizeHelperY,\n display: 'block'\n });\n resizeHelper.innerHTML = width + ' × ' + height;\n if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {\n dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));\n }\n if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {\n dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));\n }\n deltaX = rootElement.scrollWidth - startScrollWidth;\n deltaY = rootElement.scrollHeight - startScrollHeight;\n if (deltaX + deltaY !== 0) {\n dom.setStyles(resizeHelper, {\n left: resizeHelperX - deltaX,\n top: resizeHelperY - deltaY\n });\n }\n if (!resizeStarted) {\n Events.fireObjectResizeStart(editor, selectedElm, startW, startH);\n resizeStarted = true;\n }\n };\n var endGhostResize = function () {\n resizeStarted = false;\n var setSizeProp = function (name, value) {\n if (value) {\n if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) {\n dom.setStyle(getResizeTarget(selectedElm), name, value);\n } else {\n dom.setAttrib(getResizeTarget(selectedElm), name, value);\n }\n }\n };\n setSizeProp('width', width);\n setSizeProp('height', height);\n dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\n dom.unbind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\n dom.unbind(rootDocument, 'mouseup', endGhostResize);\n }\n dom.remove(selectedElmGhost);\n dom.remove(resizeHelper);\n showResizeRect(selectedElm);\n Events.fireObjectResized(editor, selectedElm, width, height);\n dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\n editor.nodeChanged();\n };\n var showResizeRect = function (targetElm) {\n var position, targetWidth, targetHeight, e, rect;\n hideResizeRect();\n unbindResizeHandleEvents();\n position = dom.getPos(targetElm, rootElement);\n selectedElmX = position.x;\n selectedElmY = position.y;\n rect = targetElm.getBoundingClientRect();\n targetWidth = rect.width || rect.right - rect.left;\n targetHeight = rect.height || rect.bottom - rect.top;\n if (selectedElm !== targetElm) {\n selectedElm = targetElm;\n width = height = 0;\n }\n e = editor.fire('ObjectSelected', { target: targetElm });\n if (isResizable(targetElm) && !e.isDefaultPrevented()) {\n each(resizeHandles, function (handle, name) {\n var handleElm;\n var startDrag = function (e) {\n startX = e.screenX;\n startY = e.screenY;\n startW = getResizeTarget(selectedElm).clientWidth;\n startH = getResizeTarget(selectedElm).clientHeight;\n ratio = startH / startW;\n selectedHandle = handle;\n handle.startPos = {\n x: targetWidth * handle[0] + selectedElmX,\n y: targetHeight * handle[1] + selectedElmY\n };\n startScrollWidth = rootElement.scrollWidth;\n startScrollHeight = rootElement.scrollHeight;\n selectedElmGhost = selectedElm.cloneNode(true);\n dom.addClass(selectedElmGhost, 'mce-clonedresizable');\n dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\n selectedElmGhost.contentEditable = false;\n selectedElmGhost.unSelectabe = true;\n dom.setStyles(selectedElmGhost, {\n left: selectedElmX,\n top: selectedElmY,\n margin: 0\n });\n selectedElmGhost.removeAttribute('data-mce-selected');\n rootElement.appendChild(selectedElmGhost);\n dom.bind(editableDoc, 'mousemove', resizeGhostElement);\n dom.bind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.bind(rootDocument, 'mousemove', resizeGhostElement);\n dom.bind(rootDocument, 'mouseup', endGhostResize);\n }\n resizeHelper = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-helper',\n 'data-mce-bogus': 'all'\n }, startW + ' × ' + startH);\n };\n handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.remove(handleElm);\n }\n handleElm = dom.add(rootElement, 'div', {\n 'id': 'mceResizeHandle' + name,\n 'data-mce-bogus': 'all',\n 'class': 'mce-resizehandle',\n 'unselectable': true,\n 'style': 'cursor:' + name + '-resize; margin:0; padding:0'\n });\n if (Env.ie === 11) {\n handleElm.contentEditable = false;\n }\n dom.bind(handleElm, 'mousedown', function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n startDrag(e);\n });\n handle.elm = handleElm;\n dom.setStyles(handleElm, {\n left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\n top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\n });\n });\n } else {\n hideResizeRect();\n }\n selectedElm.setAttribute('data-mce-selected', '1');\n };\n var hideResizeRect = function () {\n var name, handleElm;\n unbindResizeHandleEvents();\n if (selectedElm) {\n selectedElm.removeAttribute('data-mce-selected');\n }\n for (name in resizeHandles) {\n handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.unbind(handleElm);\n dom.remove(handleElm);\n }\n }\n };\n var updateResizeRect = function (e) {\n var startElm, controlElm;\n var isChildOrEqual = function (node, parent) {\n if (node) {\n do {\n if (node === parent) {\n return true;\n }\n } while (node = node.parentNode);\n }\n };\n if (resizeStarted || editor.removed) {\n return;\n }\n each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) {\n img.removeAttribute('data-mce-selected');\n });\n controlElm = e.type === 'mousedown' ? e.target : selection.getNode();\n controlElm = dom.$(controlElm).closest('table,img,figure.image,hr')[0];\n if (isChildOrEqual(controlElm, rootElement)) {\n disableGeckoResize();\n startElm = selection.getStart(true);\n if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\n showResizeRect(controlElm);\n return;\n }\n }\n hideResizeRect();\n };\n var isWithinContentEditableFalse = function (elm) {\n return isContentEditableFalse$a(getContentEditableRoot$1(editor.getBody(), elm));\n };\n var unbindResizeHandleEvents = function () {\n for (var name in resizeHandles) {\n var handle = resizeHandles[name];\n if (handle.elm) {\n dom.unbind(handle.elm);\n delete handle.elm;\n }\n }\n };\n var disableGeckoResize = function () {\n try {\n editor.getDoc().execCommand('enableObjectResizing', false, false);\n } catch (ex) {\n }\n };\n editor.on('init', function () {\n disableGeckoResize();\n if (Env.ie && Env.ie >= 11) {\n editor.on('mousedown click', function (e) {\n var target = e.target, nodeName = target.nodeName;\n if (!resizeStarted && /^(TABLE|IMG|HR)$/.test(nodeName) && !isWithinContentEditableFalse(target)) {\n if (e.button !== 2) {\n editor.selection.select(target, nodeName === 'TABLE');\n }\n if (e.type === 'mousedown') {\n editor.nodeChanged();\n }\n }\n });\n editor.dom.bind(rootElement, 'mscontrolselect', function (e) {\n var delayedSelect = function (node) {\n Delay.setEditorTimeout(editor, function () {\n editor.selection.select(node);\n });\n };\n if (isWithinContentEditableFalse(e.target)) {\n e.preventDefault();\n delayedSelect(e.target);\n return;\n }\n if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) {\n e.preventDefault();\n if (e.target.tagName === 'IMG') {\n delayedSelect(e.target);\n }\n }\n });\n }\n var throttledUpdateResizeRect = Delay.throttle(function (e) {\n if (!editor.composing) {\n updateResizeRect(e);\n }\n });\n editor.on('nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged', throttledUpdateResizeRect);\n editor.on('keyup compositionend', function (e) {\n if (selectedElm && selectedElm.nodeName === 'TABLE') {\n throttledUpdateResizeRect(e);\n }\n });\n editor.on('hide blur', hideResizeRect);\n editor.on('contextmenu', contextMenuSelectImage);\n });\n editor.on('remove', unbindResizeHandleEvents);\n var destroy = function () {\n selectedElm = selectedElmGhost = null;\n };\n return {\n isResizable: isResizable,\n showResizeRect: showResizeRect,\n hideResizeRect: hideResizeRect,\n updateResizeRect: updateResizeRect,\n destroy: destroy\n };\n };\n\n var getPos$1 = function (elm) {\n var x = 0, y = 0;\n var offsetParent = elm;\n while (offsetParent && offsetParent.nodeType) {\n x += offsetParent.offsetLeft || 0;\n y += offsetParent.offsetTop || 0;\n offsetParent = offsetParent.offsetParent;\n }\n return {\n x: x,\n y: y\n };\n };\n var fireScrollIntoViewEvent = function (editor, elm, alignToTop) {\n var scrollEvent = {\n elm: elm,\n alignToTop: alignToTop\n };\n editor.fire('ScrollIntoView', scrollEvent);\n return scrollEvent.isDefaultPrevented();\n };\n var scrollElementIntoView = function (editor, elm, alignToTop) {\n var y, viewPort;\n var dom = editor.dom;\n var root = dom.getRoot();\n var viewPortY, viewPortH, offsetY = 0;\n if (fireScrollIntoViewEvent(editor, elm, alignToTop)) {\n return;\n }\n if (!NodeType.isElement(elm)) {\n return;\n }\n if (alignToTop === false) {\n offsetY = elm.offsetHeight;\n }\n if (root.nodeName !== 'BODY') {\n var scrollContainer = editor.selection.getScrollContainer();\n if (scrollContainer) {\n y = getPos$1(elm).y - getPos$1(scrollContainer).y + offsetY;\n viewPortH = scrollContainer.clientHeight;\n viewPortY = scrollContainer.scrollTop;\n if (y < viewPortY || y + 25 > viewPortY + viewPortH) {\n scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25;\n }\n return;\n }\n }\n viewPort = dom.getViewPort(editor.getWin());\n y = dom.getPos(elm).y + offsetY;\n viewPortY = viewPort.y;\n viewPortH = viewPort.h;\n if (y < viewPort.y || y + 25 > viewPortY + viewPortH) {\n editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25);\n }\n };\n var getViewPortRect = function (editor) {\n if (editor.inline) {\n return editor.getBody().getBoundingClientRect();\n } else {\n var win = editor.getWin();\n return {\n left: 0,\n right: win.innerWidth,\n top: 0,\n bottom: win.innerHeight,\n width: win.innerWidth,\n height: win.innerHeight\n };\n }\n };\n var scrollBy = function (editor, dx, dy) {\n if (editor.inline) {\n editor.getBody().scrollLeft += dx;\n editor.getBody().scrollTop += dy;\n } else {\n editor.getWin().scrollBy(dx, dy);\n }\n };\n var scrollRangeIntoView = function (editor, rng) {\n head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {\n var bodyRect = getViewPortRect(editor);\n var overflow = getOverflow(bodyRect, rngRect);\n var margin = 4;\n var dx = overflow.x > 0 ? overflow.x + margin : overflow.x - margin;\n var dy = overflow.y > 0 ? overflow.y + margin : overflow.y - margin;\n scrollBy(editor, overflow.x !== 0 ? dx : 0, overflow.y !== 0 ? dy : 0);\n });\n };\n var ScrollIntoView = {\n scrollElementIntoView: scrollElementIntoView,\n scrollRangeIntoView: scrollRangeIntoView\n };\n\n var hasCeProperty = function (node) {\n return NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node);\n };\n var findParent = function (node, rootNode, predicate) {\n while (node && node !== rootNode) {\n if (predicate(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var findClosestIeRange = function (clientX, clientY, doc) {\n var element, rng, rects;\n element = doc.elementFromPoint(clientX, clientY);\n rng = doc.body.createTextRange();\n if (!element || element.tagName === 'HTML') {\n element = doc.body;\n }\n rng.moveToElementText(element);\n rects = Tools.toArray(rng.getClientRects());\n rects = rects.sort(function (a, b) {\n a = Math.abs(Math.max(a.top - clientY, a.bottom - clientY));\n b = Math.abs(Math.max(b.top - clientY, b.bottom - clientY));\n return a - b;\n });\n if (rects.length > 0) {\n clientY = (rects[0].bottom + rects[0].top) / 2;\n try {\n rng.moveToPoint(clientX, clientY);\n rng.collapse(true);\n return rng;\n } catch (ex) {\n }\n }\n return null;\n };\n var moveOutOfContentEditableFalse = function (rng, rootNode) {\n var parentElement = rng && rng.parentElement ? rng.parentElement() : null;\n return NodeType.isContentEditableFalse(findParent(parentElement, rootNode, hasCeProperty)) ? null : rng;\n };\n var fromPoint$1 = function (clientX, clientY, doc) {\n var rng, point;\n var pointDoc = doc;\n if (pointDoc.caretPositionFromPoint) {\n point = pointDoc.caretPositionFromPoint(clientX, clientY);\n if (point) {\n rng = doc.createRange();\n rng.setStart(point.offsetNode, point.offset);\n rng.collapse(true);\n }\n } else if (doc.caretRangeFromPoint) {\n rng = doc.caretRangeFromPoint(clientX, clientY);\n } else if (pointDoc.body.createTextRange) {\n rng = pointDoc.body.createTextRange();\n try {\n rng.moveToPoint(clientX, clientY);\n rng.collapse(true);\n } catch (ex) {\n rng = findClosestIeRange(clientX, clientY, doc);\n }\n return moveOutOfContentEditableFalse(rng, doc.body);\n }\n return rng;\n };\n var CaretRangeFromPoint = { fromPoint: fromPoint$1 };\n\n var processRanges = function (editor, ranges) {\n return map(ranges, function (range) {\n var evt = editor.fire('GetSelectionRange', { range: range });\n return evt.range !== range ? evt.range : range;\n });\n };\n var EventProcessRanges = { processRanges: processRanges };\n\n var fromElements = function (elements, scope) {\n var doc = scope || domGlobals.document;\n var fragment = doc.createDocumentFragment();\n each(elements, function (element) {\n fragment.appendChild(element.dom());\n });\n return Element.fromDom(fragment);\n };\n\n var tableModel = Immutable('element', 'width', 'rows');\n var tableRow = Immutable('element', 'cells');\n var cellPosition = Immutable('x', 'y');\n var getSpan = function (td, key) {\n var value = parseInt(get$1(td, key), 10);\n return isNaN(value) ? 1 : value;\n };\n var fillout = function (table, x, y, tr, td) {\n var rowspan = getSpan(td, 'rowspan');\n var colspan = getSpan(td, 'colspan');\n var rows = table.rows();\n for (var y2 = y; y2 < y + rowspan; y2++) {\n if (!rows[y2]) {\n rows[y2] = tableRow(deep(tr), []);\n }\n for (var x2 = x; x2 < x + colspan; x2++) {\n var cells = rows[y2].cells();\n cells[x2] = y2 === y && x2 === x ? td : shallow(td);\n }\n }\n };\n var cellExists = function (table, x, y) {\n var rows = table.rows();\n var cells = rows[y] ? rows[y].cells() : [];\n return !!cells[x];\n };\n var skipCellsX = function (table, x, y) {\n while (cellExists(table, x, y)) {\n x++;\n }\n return x;\n };\n var getWidth = function (rows) {\n return foldl(rows, function (acc, row) {\n return row.cells().length > acc ? row.cells().length : acc;\n }, 0);\n };\n var findElementPos = function (table, element) {\n var rows = table.rows();\n for (var y = 0; y < rows.length; y++) {\n var cells = rows[y].cells();\n for (var x = 0; x < cells.length; x++) {\n if (eq(cells[x], element)) {\n return Option.some(cellPosition(x, y));\n }\n }\n }\n return Option.none();\n };\n var extractRows = function (table, sx, sy, ex, ey) {\n var newRows = [];\n var rows = table.rows();\n for (var y = sy; y <= ey; y++) {\n var cells = rows[y].cells();\n var slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\n newRows.push(tableRow(rows[y].element(), slice));\n }\n return newRows;\n };\n var subTable = function (table, startPos, endPos) {\n var sx = startPos.x(), sy = startPos.y();\n var ex = endPos.x(), ey = endPos.y();\n var newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\n return tableModel(table.element(), getWidth(newRows), newRows);\n };\n var createDomTable = function (table, rows) {\n var tableElement = shallow(table.element());\n var tableBody = Element.fromTag('tbody');\n append$1(tableBody, rows);\n append(tableElement, tableBody);\n return tableElement;\n };\n var modelRowsToDomRows = function (table) {\n return map(table.rows(), function (row) {\n var cells = map(row.cells(), function (cell) {\n var td = deep(cell);\n remove(td, 'colspan');\n remove(td, 'rowspan');\n return td;\n });\n var tr = shallow(row.element());\n append$1(tr, cells);\n return tr;\n });\n };\n var fromDom$1 = function (tableElm) {\n var table = tableModel(shallow(tableElm), 0, []);\n each(descendants$1(tableElm, 'tr'), function (tr, y) {\n each(descendants$1(tr, 'td,th'), function (td, x) {\n fillout(table, skipCellsX(table, x, y), y, tr, td);\n });\n });\n return tableModel(table.element(), getWidth(table.rows()), table.rows());\n };\n var toDom = function (table) {\n return createDomTable(table, modelRowsToDomRows(table));\n };\n var subsection = function (table, startElement, endElement) {\n return findElementPos(table, startElement).bind(function (startPos) {\n return findElementPos(table, endElement).map(function (endPos) {\n return subTable(table, startPos, endPos);\n });\n });\n };\n var SimpleTableModel = {\n fromDom: fromDom$1,\n toDom: toDom,\n subsection: subsection\n };\n\n var getRanges = function (selection) {\n var ranges = [];\n if (selection) {\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n }\n return ranges;\n };\n var getSelectedNodes = function (ranges) {\n return bind(ranges, function (range) {\n var node = getSelectedNode(range);\n return node ? [Element.fromDom(node)] : [];\n });\n };\n var hasMultipleRanges = function (selection) {\n return getRanges(selection).length > 1;\n };\n var MultiRange = {\n getRanges: getRanges,\n getSelectedNodes: getSelectedNodes,\n hasMultipleRanges: hasMultipleRanges\n };\n\n var getCellsFromRanges = function (ranges) {\n return filter(MultiRange.getSelectedNodes(ranges), isTableCell);\n };\n var getCellsFromElement = function (elm) {\n return descendants$1(elm, 'td[data-mce-selected],th[data-mce-selected]');\n };\n var getCellsFromElementOrRanges = function (ranges, element) {\n var selectedCells = getCellsFromElement(element);\n var rangeCells = getCellsFromRanges(ranges);\n return selectedCells.length > 0 ? selectedCells : rangeCells;\n };\n var getCellsFromEditor = function (editor) {\n return getCellsFromElementOrRanges(MultiRange.getRanges(editor.selection.getSel()), Element.fromDom(editor.getBody()));\n };\n var TableCellSelection = {\n getCellsFromRanges: getCellsFromRanges,\n getCellsFromElement: getCellsFromElement,\n getCellsFromElementOrRanges: getCellsFromElementOrRanges,\n getCellsFromEditor: getCellsFromEditor\n };\n\n var findParentListContainer = function (parents) {\n return find(parents, function (elm) {\n return name(elm) === 'ul' || name(elm) === 'ol';\n });\n };\n var getFullySelectedListWrappers = function (parents, rng) {\n return find(parents, function (elm) {\n return name(elm) === 'li' && hasAllContentsSelected(elm, rng);\n }).fold(constant([]), function (li) {\n return findParentListContainer(parents).map(function (listCont) {\n return [\n Element.fromTag('li'),\n Element.fromTag(name(listCont))\n ];\n }).getOr([]);\n });\n };\n var wrap$3 = function (innerElm, elms) {\n var wrapped = foldl(elms, function (acc, elm) {\n append(elm, acc);\n return elm;\n }, innerElm);\n return elms.length > 0 ? fromElements([wrapped]) : wrapped;\n };\n var directListWrappers = function (commonAnchorContainer) {\n if (isListItem(commonAnchorContainer)) {\n return parent(commonAnchorContainer).filter(isList).fold(constant([]), function (listElm) {\n return [\n commonAnchorContainer,\n listElm\n ];\n });\n } else {\n return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\n }\n };\n var getWrapElements = function (rootNode, rng) {\n var commonAnchorContainer = Element.fromDom(rng.commonAncestorContainer);\n var parents = Parents.parentsAndSelf(commonAnchorContainer, rootNode);\n var wrapElements = filter(parents, function (elm) {\n return isInline(elm) || isHeading(elm);\n });\n var listWrappers = getFullySelectedListWrappers(parents, rng);\n var allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\n return map(allWrappers, shallow);\n };\n var emptyFragment = function () {\n return fromElements([]);\n };\n var getFragmentFromRange = function (rootNode, rng) {\n return wrap$3(Element.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));\n };\n var getParentTable = function (rootElm, cell) {\n return ancestor$1(cell, 'table', curry(eq, rootElm));\n };\n var getTableFragment = function (rootNode, selectedTableCells) {\n return getParentTable(rootNode, selectedTableCells[0]).bind(function (tableElm) {\n var firstCell = selectedTableCells[0];\n var lastCell = selectedTableCells[selectedTableCells.length - 1];\n var fullTableModel = SimpleTableModel.fromDom(tableElm);\n return SimpleTableModel.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) {\n return fromElements([SimpleTableModel.toDom(sectionedTableModel)]);\n });\n }).getOrThunk(emptyFragment);\n };\n var getSelectionFragment = function (rootNode, ranges) {\n return ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]);\n };\n var read$2 = function (rootNode, ranges) {\n var selectedCells = TableCellSelection.getCellsFromElementOrRanges(ranges, rootNode);\n return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges);\n };\n var FragmentReader = { read: read$2 };\n\n var getTextContent = function (editor) {\n return Option.from(editor.selection.getRng()).map(function (rng) {\n var bin = editor.dom.add(editor.getBody(), 'div', {\n 'data-mce-bogus': 'all',\n 'style': 'overflow: hidden; opacity: 0;'\n }, rng.cloneContents());\n var text = Zwsp.trim(bin.innerText);\n editor.dom.remove(bin);\n return text;\n }).getOr('');\n };\n var getHtmlContent = function (editor, args) {\n var rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\n var sel = editor.selection.getSel();\n var fragment;\n var ranges = EventProcessRanges.processRanges(editor, MultiRange.getRanges(sel));\n fragment = args.contextual ? FragmentReader.read(Element.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents();\n if (fragment) {\n tmpElm.appendChild(fragment);\n }\n return editor.selection.serializer.serialize(tmpElm, args);\n };\n var getContent$1 = function (editor, args) {\n if (args === void 0) {\n args = {};\n }\n args.get = true;\n args.format = args.format || 'html';\n args.selection = true;\n args = editor.fire('BeforeGetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('GetContent', args);\n return args.content;\n }\n if (args.format === 'text') {\n return getTextContent(editor);\n } else {\n args.getInner = true;\n var content = getHtmlContent(editor, args);\n if (args.format === 'tree') {\n return content;\n } else {\n args.content = editor.selection.isCollapsed() ? '' : content;\n editor.fire('GetContent', args);\n return args.content;\n }\n }\n };\n var GetSelectionContent = { getContent: getContent$1 };\n\n var findParent$1 = function (node, rootNode, predicate) {\n while (node && node !== rootNode) {\n if (predicate(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var hasParent = function (node, rootNode, predicate) {\n return findParent$1(node, rootNode, predicate) !== null;\n };\n var hasParentWithName = function (node, rootNode, name) {\n return hasParent(node, rootNode, function (node) {\n return node.nodeName === name;\n });\n };\n var isTable$3 = function (node) {\n return node && node.nodeName === 'TABLE';\n };\n var isTableCell$3 = function (node) {\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\n };\n var isCeFalseCaretContainer = function (node, rootNode) {\n return isCaretContainer(node) && hasParent(node, rootNode, isCaretNode) === false;\n };\n var hasBrBeforeAfter = function (dom, node, left) {\n var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || dom.getRoot());\n while (node = walker[left ? 'prev' : 'next']()) {\n if (NodeType.isBr(node)) {\n return true;\n }\n }\n };\n var isPrevNode = function (node, name) {\n return node.previousSibling && node.previousSibling.nodeName === name;\n };\n var hasContentEditableFalseParent = function (body, node) {\n while (node && node !== body) {\n if (NodeType.isContentEditableFalse(node)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n var findTextNodeRelative = function (dom, isAfterNode, collapsed, left, startNode) {\n var lastInlineElement;\n var body = dom.getRoot();\n var node;\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n var parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body;\n if (left && NodeType.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\n return Option.some(CaretPosition(startNode.parentNode, dom.nodeIndex(startNode)));\n }\n var walker = new TreeWalker(startNode, parentBlockContainer);\n while (node = walker[left ? 'prev' : 'next']()) {\n if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\n return Option.none();\n }\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n if (hasParentWithName(node, body, 'A') === false) {\n return Option.some(CaretPosition(node, left ? node.nodeValue.length : 0));\n }\n return Option.none();\n }\n if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n return Option.none();\n }\n lastInlineElement = node;\n }\n if (collapsed && lastInlineElement) {\n return Option.some(CaretPosition(lastInlineElement, 0));\n }\n return Option.none();\n };\n var normalizeEndPoint = function (dom, collapsed, start, rng) {\n var container, offset;\n var body = dom.getRoot();\n var node, nonEmptyElementsMap;\n var directionLeft, isAfterNode, normalized = false;\n container = rng[(start ? 'start' : 'end') + 'Container'];\n offset = rng[(start ? 'start' : 'end') + 'Offset'];\n isAfterNode = NodeType.isElement(container) && offset === container.childNodes.length;\n nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n directionLeft = start;\n if (isCaretContainer(container)) {\n return Option.none();\n }\n if (NodeType.isElement(container) && offset > container.childNodes.length - 1) {\n directionLeft = false;\n }\n if (NodeType.isDocument(container)) {\n container = body;\n offset = 0;\n }\n if (container === body) {\n if (directionLeft) {\n node = container.childNodes[offset > 0 ? offset - 1 : 0];\n if (node) {\n if (isCaretContainer(node)) {\n return Option.none();\n }\n if (nonEmptyElementsMap[node.nodeName] || isTable$3(node)) {\n return Option.none();\n }\n }\n }\n if (container.hasChildNodes()) {\n offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\n container = container.childNodes[offset];\n offset = NodeType.isText(container) && isAfterNode ? container.data.length : 0;\n if (!collapsed && container === body.lastChild && isTable$3(container)) {\n return Option.none();\n }\n if (hasContentEditableFalseParent(body, container) || isCaretContainer(container)) {\n return Option.none();\n }\n if (container.hasChildNodes() && isTable$3(container) === false) {\n node = container;\n var walker = new TreeWalker(container, body);\n do {\n if (NodeType.isContentEditableFalse(node) || isCaretContainer(node)) {\n normalized = false;\n break;\n }\n if (NodeType.isText(node) && node.nodeValue.length > 0) {\n offset = directionLeft ? 0 : node.nodeValue.length;\n container = node;\n normalized = true;\n break;\n }\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCell$3(node)) {\n offset = dom.nodeIndex(node);\n container = node.parentNode;\n if (!directionLeft) {\n offset++;\n }\n normalized = true;\n break;\n }\n } while (node = directionLeft ? walker.next() : walker.prev());\n }\n }\n }\n if (collapsed) {\n if (NodeType.isText(container) && offset === 0) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n if (NodeType.isElement(container)) {\n node = container.childNodes[offset];\n if (!node) {\n node = container.childNodes[offset - 1];\n }\n if (node && NodeType.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n }\n }\n if (directionLeft && !collapsed && NodeType.isText(container) && offset === container.nodeValue.length) {\n findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(function (pos) {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n return normalized ? Option.some(CaretPosition(container, offset)) : Option.none();\n };\n var normalize$2 = function (dom, rng) {\n var collapsed = rng.collapsed, normRng = rng.cloneRange();\n var startPos = CaretPosition.fromRangeStart(rng);\n normalizeEndPoint(dom, collapsed, true, normRng).each(function (pos) {\n if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\n normRng.setStart(pos.container(), pos.offset());\n }\n });\n if (!collapsed) {\n normalizeEndPoint(dom, collapsed, false, normRng).each(function (pos) {\n normRng.setEnd(pos.container(), pos.offset());\n });\n }\n if (collapsed) {\n normRng.collapse(true);\n }\n return RangeCompare.isEq(rng, normRng) ? Option.none() : Option.some(normRng);\n };\n var NormalizeRange = { normalize: normalize$2 };\n\n var prependData = function (target, data) {\n target.insertData(0, data);\n };\n var removeEmpty = function (text) {\n if (text.dom().length === 0) {\n remove$1(text);\n return Option.none();\n }\n return Option.some(text);\n };\n var rngSetContent = function (rng, fragment) {\n var firstChild = Option.from(fragment.firstChild).map(Element.fromDom);\n var lastChild = Option.from(fragment.lastChild).map(Element.fromDom);\n rng.deleteContents();\n rng.insertNode(fragment);\n var prevText = firstChild.bind(prevSibling).filter(isText).bind(removeEmpty);\n var nextText = lastChild.bind(nextSibling).filter(isText).bind(removeEmpty);\n liftN([\n prevText,\n firstChild.filter(isText)\n ], function (prev, start) {\n prependData(start.dom(), prev.dom().data);\n remove$1(prev);\n });\n liftN([\n nextText,\n lastChild.filter(isText)\n ], function (next, end) {\n var oldLength = end.dom().length;\n end.dom().appendData(next.dom().data);\n rng.setEnd(end.dom(), oldLength);\n remove$1(next);\n });\n rng.collapse(false);\n };\n var setupArgs = function (args, content) {\n args = args || { format: 'html' };\n args.set = true;\n args.selection = true;\n args.content = content;\n return args;\n };\n var setContent$1 = function (editor, content, args) {\n args = setupArgs(args, content);\n if (!args.no_events) {\n args = editor.fire('BeforeSetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('SetContent', args);\n return;\n }\n }\n var rng = editor.selection.getRng();\n rngSetContent(rng, rng.createContextualFragment(args.content));\n editor.selection.setRng(rng);\n ScrollIntoView.scrollRangeIntoView(editor, rng);\n if (!args.no_events) {\n editor.fire('SetContent', args);\n }\n };\n var SetSelectionContent = { setContent: setContent$1 };\n\n var getEndpointElement = function (root, rng, start, real, resolve) {\n var container = start ? rng.startContainer : rng.endContainer;\n var offset = start ? rng.startOffset : rng.endOffset;\n return Option.from(container).map(Element.fromDom).map(function (elm) {\n return !real || !rng.collapsed ? child(elm, resolve(elm, offset)).getOr(elm) : elm;\n }).bind(function (elm) {\n return isElement(elm) ? Option.some(elm) : parent(elm);\n }).map(function (elm) {\n return elm.dom();\n }).getOr(root);\n };\n var getStart = function (root, rng, real) {\n return getEndpointElement(root, rng, true, real, function (elm, offset) {\n return Math.min(childNodesCount(elm), offset);\n });\n };\n var getEnd = function (root, rng, real) {\n return getEndpointElement(root, rng, false, real, function (elm, offset) {\n return offset > 0 ? offset - 1 : offset;\n });\n };\n var skipEmptyTextNodes = function (node, forwards) {\n var orig = node;\n while (node && NodeType.isText(node) && node.length === 0) {\n node = forwards ? node.nextSibling : node.previousSibling;\n }\n return node || orig;\n };\n var getNode$1 = function (root, rng) {\n var elm, startContainer, endContainer, startOffset, endOffset;\n if (!rng) {\n return root;\n }\n startContainer = rng.startContainer;\n endContainer = rng.endContainer;\n startOffset = rng.startOffset;\n endOffset = rng.endOffset;\n elm = rng.commonAncestorContainer;\n if (!rng.collapsed) {\n if (startContainer === endContainer) {\n if (endOffset - startOffset < 2) {\n if (startContainer.hasChildNodes()) {\n elm = startContainer.childNodes[startOffset];\n }\n }\n }\n if (startContainer.nodeType === 3 && endContainer.nodeType === 3) {\n if (startContainer.length === startOffset) {\n startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\n } else {\n startContainer = startContainer.parentNode;\n }\n if (endOffset === 0) {\n endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\n } else {\n endContainer = endContainer.parentNode;\n }\n if (startContainer && startContainer === endContainer) {\n return startContainer;\n }\n }\n }\n if (elm && elm.nodeType === 3) {\n return elm.parentNode;\n }\n return elm;\n };\n var getSelectedBlocks = function (dom, rng, startElm, endElm) {\n var node, root;\n var selectedBlocks = [];\n root = dom.getRoot();\n startElm = dom.getParent(startElm || getStart(root, rng, rng.collapsed), dom.isBlock);\n endElm = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);\n if (startElm && startElm !== root) {\n selectedBlocks.push(startElm);\n }\n if (startElm && endElm && startElm !== endElm) {\n node = startElm;\n var walker = new TreeWalker(startElm, root);\n while ((node = walker.next()) && node !== endElm) {\n if (dom.isBlock(node)) {\n selectedBlocks.push(node);\n }\n }\n }\n if (endElm && startElm !== endElm && endElm !== root) {\n selectedBlocks.push(endElm);\n }\n return selectedBlocks;\n };\n var select$1 = function (dom, node, content) {\n return Option.from(node).map(function (node) {\n var idx = dom.nodeIndex(node);\n var rng = dom.createRng();\n rng.setStart(node.parentNode, idx);\n rng.setEnd(node.parentNode, idx + 1);\n if (content) {\n moveEndPoint$1(dom, rng, node, true);\n moveEndPoint$1(dom, rng, node, false);\n }\n return rng;\n });\n };\n\n var deleteFromCallbackMap = function (callbackMap, selector, callback) {\n if (callbackMap && callbackMap.hasOwnProperty(selector)) {\n var newCallbacks = filter(callbackMap[selector], function (cb) {\n return cb !== callback;\n });\n if (newCallbacks.length === 0) {\n delete callbackMap[selector];\n } else {\n callbackMap[selector] = newCallbacks;\n }\n }\n };\n function SelectorChanged (dom, editor) {\n var selectorChangedData, currentSelectors;\n return {\n selectorChangedWithUnbind: function (selector, callback) {\n if (!selectorChangedData) {\n selectorChangedData = {};\n currentSelectors = {};\n editor.on('NodeChange', function (e) {\n var node = e.element, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {};\n Tools.each(selectorChangedData, function (callbacks, selector) {\n Tools.each(parents, function (node) {\n if (dom.is(node, selector)) {\n if (!currentSelectors[selector]) {\n Tools.each(callbacks, function (callback) {\n callback(true, {\n node: node,\n selector: selector,\n parents: parents\n });\n });\n currentSelectors[selector] = callbacks;\n }\n matchedSelectors[selector] = callbacks;\n return false;\n }\n });\n });\n Tools.each(currentSelectors, function (callbacks, selector) {\n if (!matchedSelectors[selector]) {\n delete currentSelectors[selector];\n Tools.each(callbacks, function (callback) {\n callback(false, {\n node: node,\n selector: selector,\n parents: parents\n });\n });\n }\n });\n });\n }\n if (!selectorChangedData[selector]) {\n selectorChangedData[selector] = [];\n }\n selectorChangedData[selector].push(callback);\n return {\n unbind: function () {\n deleteFromCallbackMap(selectorChangedData, selector, callback);\n deleteFromCallbackMap(currentSelectors, selector, callback);\n }\n };\n }\n };\n }\n\n var isNativeIeSelection = function (rng) {\n return !!rng.select;\n };\n var isAttachedToDom = function (node) {\n return !!(node && node.ownerDocument) && contains$3(Element.fromDom(node.ownerDocument), Element.fromDom(node));\n };\n var isValidRange = function (rng) {\n if (!rng) {\n return false;\n } else if (isNativeIeSelection(rng)) {\n return true;\n } else {\n return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\n }\n };\n var Selection = function (dom, win, serializer, editor) {\n var bookmarkManager, controlSelection;\n var selectedRange, explicitRange;\n var selectorChangedWithUnbind = SelectorChanged(dom, editor).selectorChangedWithUnbind;\n var setCursorLocation = function (node, offset) {\n var rng = dom.createRng();\n if (!node) {\n moveEndPoint$1(dom, rng, editor.getBody(), true);\n setRng(rng);\n } else {\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n setRng(rng);\n collapse(false);\n }\n };\n var getContent = function (args) {\n return GetSelectionContent.getContent(editor, args);\n };\n var setContent = function (content, args) {\n return SetSelectionContent.setContent(editor, content, args);\n };\n var getStart$1 = function (real) {\n return getStart(editor.getBody(), getRng(), real);\n };\n var getEnd$1 = function (real) {\n return getEnd(editor.getBody(), getRng(), real);\n };\n var getBookmark = function (type, normalized) {\n return bookmarkManager.getBookmark(type, normalized);\n };\n var moveToBookmark = function (bookmark) {\n return bookmarkManager.moveToBookmark(bookmark);\n };\n var select = function (node, content) {\n select$1(dom, node, content).each(setRng);\n return node;\n };\n var isCollapsed = function () {\n var rng = getRng(), sel = getSel();\n if (!rng || rng.item) {\n return false;\n }\n if (rng.compareEndPoints) {\n return rng.compareEndPoints('StartToEnd', rng) === 0;\n }\n return !sel || rng.collapsed;\n };\n var collapse = function (toStart) {\n var rng = getRng();\n rng.collapse(!!toStart);\n setRng(rng);\n };\n var getSel = function () {\n return win.getSelection ? win.getSelection() : win.document.selection;\n };\n var getRng = function () {\n var selection, rng, elm, doc;\n var tryCompareBoundaryPoints = function (how, sourceRange, destinationRange) {\n try {\n return sourceRange.compareBoundaryPoints(how, destinationRange);\n } catch (ex) {\n return -1;\n }\n };\n if (!win) {\n return null;\n }\n doc = win.document;\n if (typeof doc === 'undefined' || doc === null) {\n return null;\n }\n if (editor.bookmark !== undefined && EditorFocus.hasFocus(editor) === false) {\n var bookmark = SelectionBookmark.getRng(editor);\n if (bookmark.isSome()) {\n return bookmark.map(function (r) {\n return EventProcessRanges.processRanges(editor, [r])[0];\n }).getOr(doc.createRange());\n }\n }\n try {\n if (selection = getSel()) {\n if (selection.rangeCount > 0) {\n rng = selection.getRangeAt(0);\n } else {\n rng = selection.createRange ? selection.createRange() : doc.createRange();\n }\n }\n } catch (ex) {\n }\n rng = EventProcessRanges.processRanges(editor, [rng])[0];\n if (!rng) {\n rng = doc.createRange ? doc.createRange() : doc.body.createTextRange();\n }\n if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) {\n elm = dom.getRoot();\n rng.setStart(elm, 0);\n rng.setEnd(elm, 0);\n }\n if (selectedRange && explicitRange) {\n if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\n rng = explicitRange;\n } else {\n selectedRange = null;\n explicitRange = null;\n }\n }\n return rng;\n };\n var setRng = function (rng, forward) {\n var sel, node, evt;\n if (!isValidRange(rng)) {\n return;\n }\n var ieRange = isNativeIeSelection(rng) ? rng : null;\n if (ieRange) {\n explicitRange = null;\n try {\n ieRange.select();\n } catch (ex) {\n }\n return;\n }\n sel = getSel();\n evt = editor.fire('SetSelectionRange', {\n range: rng,\n forward: forward\n });\n rng = evt.range;\n if (sel) {\n explicitRange = rng;\n try {\n sel.removeAllRanges();\n sel.addRange(rng);\n } catch (ex) {\n }\n if (forward === false && sel.extend) {\n sel.collapse(rng.endContainer, rng.endOffset);\n sel.extend(rng.startContainer, rng.startOffset);\n }\n selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n }\n if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !Env.ie) {\n if (rng.endOffset - rng.startOffset < 2) {\n if (rng.startContainer.hasChildNodes()) {\n node = rng.startContainer.childNodes[rng.startOffset];\n if (node && node.tagName === 'IMG') {\n sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\n if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\n sel.setBaseAndExtent(node, 0, node, 1);\n }\n }\n }\n }\n }\n editor.fire('AfterSetSelectionRange', {\n range: rng,\n forward: forward\n });\n };\n var setNode = function (elm) {\n setContent(dom.getOuterHTML(elm));\n return elm;\n };\n var getNode = function () {\n return getNode$1(editor.getBody(), getRng());\n };\n var getSelectedBlocks$1 = function (startElm, endElm) {\n return getSelectedBlocks(dom, getRng(), startElm, endElm);\n };\n var isForward = function () {\n var sel = getSel();\n var anchorRange, focusRange;\n if (!sel || !sel.anchorNode || !sel.focusNode) {\n return true;\n }\n anchorRange = dom.createRng();\n anchorRange.setStart(sel.anchorNode, sel.anchorOffset);\n anchorRange.collapse(true);\n focusRange = dom.createRng();\n focusRange.setStart(sel.focusNode, sel.focusOffset);\n focusRange.collapse(true);\n return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\n };\n var normalize = function () {\n var rng = getRng();\n var sel = getSel();\n if (!MultiRange.hasMultipleRanges(sel) && hasAnyRanges(editor)) {\n var normRng = NormalizeRange.normalize(dom, rng);\n normRng.each(function (normRng) {\n setRng(normRng, isForward());\n });\n return normRng.getOr(rng);\n }\n return rng;\n };\n var selectorChanged = function (selector, callback) {\n selectorChangedWithUnbind(selector, callback);\n return exports;\n };\n var getScrollContainer = function () {\n var scrollContainer;\n var node = dom.getRoot();\n while (node && node.nodeName !== 'BODY') {\n if (node.scrollHeight > node.clientHeight) {\n scrollContainer = node;\n break;\n }\n node = node.parentNode;\n }\n return scrollContainer;\n };\n var scrollIntoView = function (elm, alignToTop) {\n return ScrollIntoView.scrollElementIntoView(editor, elm, alignToTop);\n };\n var placeCaretAt = function (clientX, clientY) {\n return setRng(CaretRangeFromPoint.fromPoint(clientX, clientY, editor.getDoc()));\n };\n var getBoundingClientRect = function () {\n var rng = getRng();\n return rng.collapsed ? CaretPosition$1.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\n };\n var destroy = function () {\n win = selectedRange = explicitRange = null;\n controlSelection.destroy();\n };\n var exports = {\n bookmarkManager: null,\n controlSelection: null,\n dom: dom,\n win: win,\n serializer: serializer,\n editor: editor,\n collapse: collapse,\n setCursorLocation: setCursorLocation,\n getContent: getContent,\n setContent: setContent,\n getBookmark: getBookmark,\n moveToBookmark: moveToBookmark,\n select: select,\n isCollapsed: isCollapsed,\n isForward: isForward,\n setNode: setNode,\n getNode: getNode,\n getSel: getSel,\n setRng: setRng,\n getRng: getRng,\n getStart: getStart$1,\n getEnd: getEnd$1,\n getSelectedBlocks: getSelectedBlocks$1,\n normalize: normalize,\n selectorChanged: selectorChanged,\n selectorChangedWithUnbind: selectorChangedWithUnbind,\n getScrollContainer: getScrollContainer,\n scrollIntoView: scrollIntoView,\n placeCaretAt: placeCaretAt,\n getBoundingClientRect: getBoundingClientRect,\n destroy: destroy\n };\n bookmarkManager = BookmarkManager$1(exports);\n controlSelection = ControlSelection(exports, editor);\n exports.bookmarkManager = bookmarkManager;\n exports.controlSelection = controlSelection;\n return exports;\n };\n\n var isText$8 = NodeType.isText;\n var startsWithCaretContainer$1 = function (node) {\n return isText$8(node) && node.data[0] === Zwsp.ZWSP;\n };\n var endsWithCaretContainer$1 = function (node) {\n return isText$8(node) && node.data[node.data.length - 1] === Zwsp.ZWSP;\n };\n var createZwsp = function (node) {\n return node.ownerDocument.createTextNode(Zwsp.ZWSP);\n };\n var insertBefore = function (node) {\n if (isText$8(node.previousSibling)) {\n if (endsWithCaretContainer$1(node.previousSibling)) {\n return node.previousSibling;\n } else {\n node.previousSibling.appendData(Zwsp.ZWSP);\n return node.previousSibling;\n }\n } else if (isText$8(node)) {\n if (startsWithCaretContainer$1(node)) {\n return node;\n } else {\n node.insertData(0, Zwsp.ZWSP);\n return node;\n }\n } else {\n var newNode = createZwsp(node);\n node.parentNode.insertBefore(newNode, node);\n return newNode;\n }\n };\n var insertAfter = function (node) {\n if (isText$8(node.nextSibling)) {\n if (startsWithCaretContainer$1(node.nextSibling)) {\n return node.nextSibling;\n } else {\n node.nextSibling.insertData(0, Zwsp.ZWSP);\n return node.nextSibling;\n }\n } else if (isText$8(node)) {\n if (endsWithCaretContainer$1(node)) {\n return node;\n } else {\n node.appendData(Zwsp.ZWSP);\n return node;\n }\n } else {\n var newNode = createZwsp(node);\n if (node.nextSibling) {\n node.parentNode.insertBefore(newNode, node.nextSibling);\n } else {\n node.parentNode.appendChild(newNode);\n }\n return newNode;\n }\n };\n var insertInline$1 = function (before, node) {\n return before ? insertBefore(node) : insertAfter(node);\n };\n var insertInlineBefore = curry(insertInline$1, true);\n var insertInlineAfter = curry(insertInline$1, false);\n\n var insertInlinePos = function (pos, before) {\n if (NodeType.isText(pos.container())) {\n return insertInline$1(before, pos.container());\n } else {\n return insertInline$1(before, pos.getNode());\n }\n };\n var isPosCaretContainer = function (pos, caret) {\n var caretNode = caret.get();\n return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\n };\n var renderCaret = function (caret, location) {\n return location.fold(function (element) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlineBefore(element);\n caret.set(text);\n return Option.some(CaretPosition$1(text, text.length - 1));\n }, function (element) {\n return CaretFinder.firstPositionIn(element).map(function (pos) {\n if (!isPosCaretContainer(pos, caret)) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlinePos(pos, true);\n caret.set(text);\n return CaretPosition$1(text, 1);\n } else {\n return CaretPosition$1(caret.get(), 1);\n }\n });\n }, function (element) {\n return CaretFinder.lastPositionIn(element).map(function (pos) {\n if (!isPosCaretContainer(pos, caret)) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlinePos(pos, false);\n caret.set(text);\n return CaretPosition$1(text, text.length - 1);\n } else {\n return CaretPosition$1(caret.get(), caret.get().length - 1);\n }\n });\n }, function (element) {\n CaretContainerRemove.remove(caret.get());\n var text = insertInlineAfter(element);\n caret.set(text);\n return Option.some(CaretPosition$1(text, 1));\n });\n };\n var BoundaryCaret = { renderCaret: renderCaret };\n\n var strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\n var hasStrongRtl = function (text) {\n return strongRtl.test(text);\n };\n\n var isInlineTarget = function (editor, elm) {\n var selector = getString(editor, 'inline_boundaries_selector').getOr('a[href],code');\n return is$1(Element.fromDom(elm), selector);\n };\n var isRtl$1 = function (element) {\n return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);\n };\n var findInlineParents = function (isInlineTarget, rootNode, pos) {\n return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\n };\n var findRootInline = function (isInlineTarget, rootNode, pos) {\n var parents = findInlineParents(isInlineTarget, rootNode, pos);\n return Option.from(parents[parents.length - 1]);\n };\n var hasSameParentBlock = function (rootNode, node1, node2) {\n var block1 = getParentBlock(node1, rootNode);\n var block2 = getParentBlock(node2, rootNode);\n return block1 && block1 === block2;\n };\n var isAtZwsp = function (pos) {\n return isBeforeInline(pos) || isAfterInline(pos);\n };\n var normalizePosition = function (forward, pos) {\n if (!pos) {\n return pos;\n }\n var container = pos.container(), offset = pos.offset();\n if (forward) {\n if (isCaretContainerInline(container)) {\n if (NodeType.isText(container.nextSibling)) {\n return CaretPosition$1(container.nextSibling, 0);\n } else {\n return CaretPosition$1.after(container);\n }\n } else {\n return isBeforeInline(pos) ? CaretPosition$1(container, offset + 1) : pos;\n }\n } else {\n if (isCaretContainerInline(container)) {\n if (NodeType.isText(container.previousSibling)) {\n return CaretPosition$1(container.previousSibling, container.previousSibling.data.length);\n } else {\n return CaretPosition$1.before(container);\n }\n } else {\n return isAfterInline(pos) ? CaretPosition$1(container, offset - 1) : pos;\n }\n }\n };\n var normalizeForwards = curry(normalizePosition, true);\n var normalizeBackwards = curry(normalizePosition, false);\n var InlineUtils = {\n isInlineTarget: isInlineTarget,\n findRootInline: findRootInline,\n isRtl: isRtl$1,\n isAtZwsp: isAtZwsp,\n normalizePosition: normalizePosition,\n normalizeForwards: normalizeForwards,\n normalizeBackwards: normalizeBackwards,\n hasSameParentBlock: hasSameParentBlock\n };\n\n var evaluateUntil = function (fns, args) {\n for (var i = 0; i < fns.length; i++) {\n var result = fns[i].apply(null, args);\n if (result.isSome()) {\n return result;\n }\n }\n return Option.none();\n };\n var LazyEvaluator = { evaluateUntil: evaluateUntil };\n\n var Location = Adt.generate([\n { before: ['element'] },\n { start: ['element'] },\n { end: ['element'] },\n { after: ['element'] }\n ]);\n var rescope = function (rootNode, node) {\n var parentBlock = getParentBlock(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n var before$3 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeForwards(pos);\n var scope = rescope(rootNode, nPos.container());\n return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () {\n return CaretFinder.nextPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) {\n return Location.before(inline);\n });\n }, Option.none);\n };\n var isNotInsideFormatCaretContainer = function (rootNode, elm) {\n return getParentCaretContainer(rootNode, elm) === null;\n };\n var findInsideRootInline = function (isInlineTarget, rootNode, pos) {\n return InlineUtils.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\n };\n var start$1 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeBackwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\n var prevPos = CaretFinder.prevPosition(inline, nPos);\n return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none();\n });\n };\n var end = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeForwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\n var nextPos = CaretFinder.nextPosition(inline, nPos);\n return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none();\n });\n };\n var after$2 = function (isInlineTarget, rootNode, pos) {\n var nPos = InlineUtils.normalizeBackwards(pos);\n var scope = rescope(rootNode, nPos.container());\n return InlineUtils.findRootInline(isInlineTarget, scope, nPos).fold(function () {\n return CaretFinder.prevPosition(scope, nPos).bind(curry(InlineUtils.findRootInline, isInlineTarget, scope)).map(function (inline) {\n return Location.after(inline);\n });\n }, Option.none);\n };\n var isValidLocation = function (location) {\n return InlineUtils.isRtl(getElement(location)) === false;\n };\n var readLocation = function (isInlineTarget, rootNode, pos) {\n var location = LazyEvaluator.evaluateUntil([\n before$3,\n start$1,\n end,\n after$2\n ], [\n isInlineTarget,\n rootNode,\n pos\n ]);\n return location.filter(isValidLocation);\n };\n var getElement = function (location) {\n return location.fold(identity, identity, identity, identity);\n };\n var getName = function (location) {\n return location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\n };\n var outside = function (location) {\n return location.fold(Location.before, Location.before, Location.after, Location.after);\n };\n var inside = function (location) {\n return location.fold(Location.start, Location.start, Location.end, Location.end);\n };\n var isEq$5 = function (location1, location2) {\n return getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\n };\n var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) {\n return liftN([\n InlineUtils.findRootInline(isInlineTarget, rootNode, from),\n InlineUtils.findRootInline(isInlineTarget, rootNode, to)\n ], function (fromInline, toInline) {\n if (fromInline !== toInline && InlineUtils.hasSameParentBlock(rootNode, fromInline, toInline)) {\n return Location.after(forward ? fromInline : toInline);\n } else {\n return location;\n }\n }).getOr(location);\n };\n var skipNoMovement = function (fromLocation, toLocation) {\n return fromLocation.fold(constant(true), function (fromLocation) {\n return !isEq$5(fromLocation, toLocation);\n });\n };\n var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) {\n var from = InlineUtils.normalizePosition(forward, pos);\n var to = CaretFinder.fromPosition(forward, rootNode, from).map(curry(InlineUtils.normalizePosition, forward));\n var location = to.fold(function () {\n return fromLocation.map(outside);\n }, function (to) {\n return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation));\n });\n return location.filter(isValidLocation);\n };\n var findLocationSimple = function (forward, location) {\n if (forward) {\n return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none);\n } else {\n return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end));\n }\n };\n var findLocation = function (forward, isInlineTarget, rootNode, pos) {\n var from = InlineUtils.normalizePosition(forward, pos);\n var fromLocation = readLocation(isInlineTarget, rootNode, from);\n return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () {\n return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos);\n });\n };\n var BoundaryLocation = {\n readLocation: readLocation,\n findLocation: findLocation,\n prevLocation: curry(findLocation, false),\n nextLocation: curry(findLocation, true),\n getElement: getElement,\n outside: outside,\n inside: inside\n };\n\n var hasSelectionModifyApi = function (editor) {\n return isFunction(editor.selection.getSel().modify);\n };\n var moveRel = function (forward, selection, pos) {\n var delta = forward ? 1 : -1;\n selection.setRng(CaretPosition$1(pos.container(), pos.offset() + delta).toRange());\n selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\n return true;\n };\n var moveByWord = function (forward, editor) {\n var rng = editor.selection.getRng();\n var pos = forward ? CaretPosition$1.fromRangeEnd(rng) : CaretPosition$1.fromRangeStart(rng);\n if (!hasSelectionModifyApi(editor)) {\n return false;\n } else if (forward && isBeforeInline(pos)) {\n return moveRel(true, editor.selection, pos);\n } else if (!forward && isAfterInline(pos)) {\n return moveRel(false, editor.selection, pos);\n } else {\n return false;\n }\n };\n var WordSelection = {\n hasSelectionModifyApi: hasSelectionModifyApi,\n moveByWord: moveByWord\n };\n\n var setCaretPosition = function (editor, pos) {\n var rng = editor.dom.createRng();\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n editor.selection.setRng(rng);\n };\n var isFeatureEnabled = function (editor) {\n return editor.settings.inline_boundaries !== false;\n };\n var setSelected = function (state, elm) {\n if (state) {\n elm.setAttribute('data-mce-selected', 'inline-boundary');\n } else {\n elm.removeAttribute('data-mce-selected');\n }\n };\n var renderCaretLocation = function (editor, caret, location) {\n return BoundaryCaret.renderCaret(caret, location).map(function (pos) {\n setCaretPosition(editor, pos);\n return location;\n });\n };\n var findLocation$1 = function (editor, caret, forward) {\n var rootNode = editor.getBody();\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var location = BoundaryLocation.findLocation(forward, isInlineTarget, rootNode, from);\n return location.bind(function (location) {\n return renderCaretLocation(editor, caret, location);\n });\n };\n var toggleInlines = function (isInlineTarget, dom, elms) {\n var selectedInlines = filter(dom.select('*[data-mce-selected=\"inline-boundary\"]'), isInlineTarget);\n var targetInlines = filter(elms, isInlineTarget);\n each(difference(selectedInlines, targetInlines), curry(setSelected, false));\n each(difference(targetInlines, selectedInlines), curry(setSelected, true));\n };\n var safeRemoveCaretContainer = function (editor, caret) {\n if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n if (CaretPosition$1.isTextPosition(pos) && InlineUtils.isAtZwsp(pos) === false) {\n setCaretPosition(editor, CaretContainerRemove.removeAndReposition(caret.get(), pos));\n caret.set(null);\n }\n }\n };\n var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) {\n if (editor.selection.isCollapsed()) {\n var inlines = filter(elms, isInlineTarget);\n each(inlines, function (inline) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {\n return renderCaretLocation(editor, caret, location);\n });\n });\n }\n };\n var move$1 = function (editor, caret, forward) {\n return function () {\n return isFeatureEnabled(editor) ? findLocation$1(editor, caret, forward).isSome() : false;\n };\n };\n var moveWord = function (forward, editor, caret) {\n return function () {\n return isFeatureEnabled(editor) ? WordSelection.moveByWord(forward, editor) : false;\n };\n };\n var setupSelectedState = function (editor) {\n var caret = Cell(null);\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n editor.on('NodeChange', function (e) {\n if (isFeatureEnabled(editor)) {\n toggleInlines(isInlineTarget, editor.dom, e.parents);\n safeRemoveCaretContainer(editor, caret);\n renderInsideInlineCaret(isInlineTarget, editor, caret, e.parents);\n }\n });\n return caret;\n };\n var moveNextWord = curry(moveWord, true);\n var movePrevWord = curry(moveWord, false);\n var BoundarySelection = {\n move: move$1,\n moveNextWord: moveNextWord,\n movePrevWord: movePrevWord,\n setupSelectedState: setupSelectedState,\n setCaretPosition: setCaretPosition\n };\n\n var BreakType;\n (function (BreakType) {\n BreakType[BreakType['Br'] = 0] = 'Br';\n BreakType[BreakType['Block'] = 1] = 'Block';\n BreakType[BreakType['Wrap'] = 2] = 'Wrap';\n BreakType[BreakType['Eol'] = 3] = 'Eol';\n }(BreakType || (BreakType = {})));\n var flip = function (direction, positions) {\n return direction === HDirection.Backwards ? positions.reverse() : positions;\n };\n var walk$3 = function (direction, caretWalker, pos) {\n return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);\n };\n var getBreakType = function (scope, direction, currentPos, nextPos) {\n if (NodeType.isBr(nextPos.getNode(direction === HDirection.Forwards))) {\n return BreakType.Br;\n } else if (isInSameBlock(currentPos, nextPos) === false) {\n return BreakType.Block;\n } else {\n return BreakType.Wrap;\n }\n };\n var getPositionsUntil = function (predicate, direction, scope, start) {\n var caretWalker = CaretWalker(scope);\n var currentPos = start, nextPos;\n var positions = [];\n while (currentPos) {\n nextPos = walk$3(direction, caretWalker, currentPos);\n if (!nextPos) {\n break;\n }\n if (NodeType.isBr(nextPos.getNode(false))) {\n if (direction === HDirection.Forwards) {\n return {\n positions: flip(direction, positions).concat([nextPos]),\n breakType: BreakType.Br,\n breakAt: Option.some(nextPos)\n };\n } else {\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Br,\n breakAt: Option.some(nextPos)\n };\n }\n }\n if (!nextPos.isVisible()) {\n currentPos = nextPos;\n continue;\n }\n if (predicate(currentPos, nextPos)) {\n var breakType = getBreakType(scope, direction, currentPos, nextPos);\n return {\n positions: flip(direction, positions),\n breakType: breakType,\n breakAt: Option.some(nextPos)\n };\n }\n positions.push(nextPos);\n currentPos = nextPos;\n }\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Eol,\n breakAt: Option.none()\n };\n };\n var getAdjacentLinePositions = function (direction, getPositionsUntilBreak, scope, start) {\n return getPositionsUntilBreak(scope, start).breakAt.map(function (pos) {\n var positions = getPositionsUntilBreak(scope, pos).positions;\n return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions);\n }).getOr([]);\n };\n var findClosestHorizontalPositionFromPoint = function (positions, x) {\n return foldl(positions, function (acc, newPos) {\n return acc.fold(function () {\n return Option.some(newPos);\n }, function (lastPos) {\n return liftN([\n head(lastPos.getClientRects()),\n head(newPos.getClientRects())\n ], function (lastRect, newRect) {\n var lastDist = Math.abs(x - lastRect.left);\n var newDist = Math.abs(x - newRect.left);\n return newDist <= lastDist ? newPos : lastPos;\n }).or(acc);\n });\n }, Option.none());\n };\n var findClosestHorizontalPosition = function (positions, pos) {\n return head(pos.getClientRects()).bind(function (targetRect) {\n return findClosestHorizontalPositionFromPoint(positions, targetRect.left);\n });\n };\n var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\n var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\n var isAtFirstLine = function (scope, pos) {\n return getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();\n };\n var isAtLastLine = function (scope, pos) {\n return getPositionsUntilNextLine(scope, pos).breakAt.isNone();\n };\n var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\n var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\n var getFirstLinePositions = function (scope) {\n return CaretFinder.firstPositionIn(scope).map(function (pos) {\n return [pos].concat(getPositionsUntilNextLine(scope, pos).positions);\n }).getOr([]);\n };\n var getLastLinePositions = function (scope) {\n return CaretFinder.lastPositionIn(scope).map(function (pos) {\n return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos);\n }).getOr([]);\n };\n\n var isContentEditableFalse$b = NodeType.isContentEditableFalse;\n var getSelectedNode$1 = getSelectedNode;\n var moveToCeFalseHorizontally = function (direction, editor, getNextPosFn, range) {\n var forwards = direction === HDirection.Forwards;\n var isBeforeContentEditableFalseFn = forwards ? isBeforeContentEditableFalse : isAfterContentEditableFalse;\n if (!range.collapsed) {\n var node = getSelectedNode$1(range);\n if (isContentEditableFalse$b(node)) {\n return showCaret(direction, editor, node, direction === HDirection.Backwards, true);\n }\n }\n var rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\n var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n if (isBeforeContentEditableFalseFn(caretPosition)) {\n return selectNode(editor, caretPosition.getNode(!forwards));\n }\n var nextCaretPosition = InlineUtils.normalizePosition(forwards, getNextPosFn(caretPosition));\n if (!nextCaretPosition) {\n if (rangeIsInContainerBlock) {\n return range;\n }\n return null;\n }\n if (isBeforeContentEditableFalseFn(nextCaretPosition)) {\n return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, true);\n }\n var peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, true);\n }\n }\n if (rangeIsInContainerBlock) {\n return renderRangeCaret(editor, nextCaretPosition.toRange(), true);\n }\n return null;\n };\n var moveToCeFalseVertically = function (direction, editor, walkerFn, range) {\n var caretPosition, linePositions, nextLinePositions;\n var closestNextLineRect, caretClientRect, clientX;\n var dist1, dist2, contentEditableFalseNode;\n contentEditableFalseNode = getSelectedNode$1(range);\n caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition);\n nextLinePositions = filter(linePositions, isLine(1));\n caretClientRect = ArrUtils.last(caretPosition.getClientRects());\n if (isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition)) {\n contentEditableFalseNode = caretPosition.getNode();\n }\n if (isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition)) {\n contentEditableFalseNode = caretPosition.getNode(true);\n }\n if (!caretClientRect) {\n return null;\n }\n clientX = caretClientRect.left;\n closestNextLineRect = findClosestClientRect(nextLinePositions, clientX);\n if (closestNextLineRect) {\n if (isContentEditableFalse$b(closestNextLineRect.node)) {\n dist1 = Math.abs(clientX - closestNextLineRect.left);\n dist2 = Math.abs(clientX - closestNextLineRect.right);\n return showCaret(direction, editor, closestNextLineRect.node, dist1 < dist2, true);\n }\n }\n if (contentEditableFalseNode) {\n var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode);\n closestNextLineRect = findClosestClientRect(filter(caretPositions, isLine(1)), clientX);\n if (closestNextLineRect) {\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\n }\n closestNextLineRect = ArrUtils.last(filter(caretPositions, isLine(0)));\n if (closestNextLineRect) {\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\n }\n }\n };\n var createTextBlock = function (editor) {\n var textBlock = editor.dom.create(Settings.getForcedRootBlock(editor));\n if (!Env.ie || Env.ie >= 11) {\n textBlock.innerHTML = '
    ';\n }\n return textBlock;\n };\n var exitPreBlock = function (editor, direction, range) {\n var pre, caretPos, newBlock;\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n if (range.collapsed && editor.settings.forced_root_block) {\n pre = editor.dom.getParent(range.startContainer, 'PRE');\n if (!pre) {\n return;\n }\n if (direction === 1) {\n caretPos = getNextVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\n } else {\n caretPos = getPrevVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\n }\n if (!caretPos) {\n newBlock = createTextBlock(editor);\n if (direction === 1) {\n editor.$(pre).after(newBlock);\n } else {\n editor.$(pre).before(newBlock);\n }\n editor.selection.select(newBlock, true);\n editor.selection.collapse();\n }\n }\n };\n var getHorizontalRange = function (editor, forward) {\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n var newRange;\n var direction = forward ? HDirection.Forwards : HDirection.Backwards;\n var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;\n var range = editor.selection.getRng();\n newRange = moveToCeFalseHorizontally(direction, editor, getNextPosFn, range);\n if (newRange) {\n return newRange;\n }\n newRange = exitPreBlock(editor, direction, range);\n if (newRange) {\n return newRange;\n }\n return null;\n };\n var getVerticalRange = function (editor, down) {\n var newRange;\n var direction = down ? 1 : -1;\n var walkerFn = down ? downUntil : upUntil;\n var range = editor.selection.getRng();\n newRange = moveToCeFalseVertically(direction, editor, walkerFn, range);\n if (newRange) {\n return newRange;\n }\n newRange = exitPreBlock(editor, direction, range);\n if (newRange) {\n return newRange;\n }\n return null;\n };\n var moveH = function (editor, forward) {\n return function () {\n var newRng = getHorizontalRange(editor, forward);\n if (newRng) {\n editor.selection.setRng(newRng);\n return true;\n } else {\n return false;\n }\n };\n };\n var moveV = function (editor, down) {\n return function () {\n var newRng = getVerticalRange(editor, down);\n if (newRng) {\n editor.selection.setRng(newRng);\n return true;\n } else {\n return false;\n }\n };\n };\n var isCefPosition = function (forward) {\n return function (pos) {\n return forward ? isAfterContentEditableFalse(pos) : isBeforeContentEditableFalse(pos);\n };\n };\n var moveToLineEndPoint = function (editor, forward) {\n return function () {\n var from = forward ? CaretPosition$1.fromRangeEnd(editor.selection.getRng()) : CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var result = forward ? getPositionsUntilNextLine(editor.getBody(), from) : getPositionsUntilPreviousLine(editor.getBody(), from);\n var to = forward ? last(result.positions) : head(result.positions);\n return to.filter(isCefPosition(forward)).fold(constant(false), function (pos) {\n editor.selection.setRng(pos.toRange());\n return true;\n });\n };\n };\n\n var deflate = function (rect, delta) {\n return {\n left: rect.left - delta,\n top: rect.top - delta,\n right: rect.right + delta * 2,\n bottom: rect.bottom + delta * 2,\n width: rect.width + delta,\n height: rect.height + delta\n };\n };\n var getCorners = function (getYAxisValue, tds) {\n return bind(tds, function (td) {\n var rect = deflate(clone$1(td.getBoundingClientRect()), -1);\n return [\n {\n x: rect.left,\n y: getYAxisValue(rect),\n cell: td\n },\n {\n x: rect.right,\n y: getYAxisValue(rect),\n cell: td\n }\n ];\n });\n };\n var findClosestCorner = function (corners, x, y) {\n return foldl(corners, function (acc, newCorner) {\n return acc.fold(function () {\n return Option.some(newCorner);\n }, function (oldCorner) {\n var oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\n var newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\n return Option.some(newDist < oldDist ? newCorner : oldCorner);\n });\n }, Option.none());\n };\n var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) {\n var cells = descendants$1(Element.fromDom(table), 'td,th,caption').map(function (e) {\n return e.dom();\n });\n var corners = filter(getCorners(getYAxisValue, cells), function (corner) {\n return isTargetCorner(corner, y);\n });\n return findClosestCorner(corners, x, y).map(function (corner) {\n return corner.cell;\n });\n };\n var getBottomValue = function (rect) {\n return rect.bottom;\n };\n var getTopValue = function (rect) {\n return rect.top;\n };\n var isAbove$1 = function (corner, y) {\n return corner.y < y;\n };\n var isBelow$1 = function (corner, y) {\n return corner.y > y;\n };\n var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1);\n var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1);\n var findClosestPositionInAboveCell = function (table, pos) {\n return head(pos.getClientRects()).bind(function (rect) {\n return getClosestCellAbove(table, rect.left, rect.top);\n }).bind(function (cell) {\n return findClosestHorizontalPosition(getLastLinePositions(cell), pos);\n });\n };\n var findClosestPositionInBelowCell = function (table, pos) {\n return last(pos.getClientRects()).bind(function (rect) {\n return getClosestCellBelow(table, rect.left, rect.top);\n }).bind(function (cell) {\n return findClosestHorizontalPosition(getFirstLinePositions(cell), pos);\n });\n };\n\n var moveToRange = function (editor, rng) {\n editor.selection.setRng(rng);\n ScrollIntoView.scrollRangeIntoView(editor, rng);\n };\n var hasNextBreak = function (getPositionsUntil, scope, lineInfo) {\n return lineInfo.breakAt.map(function (breakPos) {\n return getPositionsUntil(scope, breakPos).breakAt.isSome();\n }).getOr(false);\n };\n var startsWithWrapBreak = function (lineInfo) {\n return lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0;\n };\n var startsWithBrBreak = function (lineInfo) {\n return lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1;\n };\n var isAtTableCellLine = function (getPositionsUntil, scope, pos) {\n var lineInfo = getPositionsUntil(scope, pos);\n if (startsWithWrapBreak(lineInfo) || !NodeType.isBr(pos.getNode()) && startsWithBrBreak(lineInfo)) {\n return !hasNextBreak(getPositionsUntil, scope, lineInfo);\n } else {\n return lineInfo.breakAt.isNone();\n }\n };\n var isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);\n var isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);\n var isCaretAtStartOrEndOfTable = function (forward, rng, table) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n return CaretFinder.positionIn(!forward, table).map(function (pos) {\n return pos.isEqual(caretPos);\n }).getOr(false);\n };\n var navigateHorizontally = function (editor, forward, table, td) {\n var rng = editor.selection.getRng();\n var direction = forward ? 1 : -1;\n if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\n var newRng = showCaret(direction, editor, table, !forward, true);\n moveToRange(editor, newRng);\n return true;\n }\n return false;\n };\n var getClosestAbovePosition = function (root, table, start) {\n return findClosestPositionInAboveCell(table, start).orThunk(function () {\n return head(start.getClientRects()).bind(function (rect) {\n return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left);\n });\n }).getOr(CaretPosition$1.before(table));\n };\n var getClosestBelowPosition = function (root, table, start) {\n return findClosestPositionInBelowCell(table, start).orThunk(function () {\n return head(start.getClientRects()).bind(function (rect) {\n return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left);\n });\n }).getOr(CaretPosition$1.after(table));\n };\n var getTable = function (previous, pos) {\n var node = pos.getNode(previous);\n return NodeType.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none();\n };\n var renderBlock = function (down, editor, table, pos) {\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (forcedRootBlock) {\n editor.undoManager.transact(function () {\n var element = Element.fromTag(forcedRootBlock);\n setAll(element, Settings.getForcedRootBlockAttrs(editor));\n append(element, Element.fromTag('br'));\n if (down) {\n after(Element.fromDom(table), element);\n } else {\n before(Element.fromDom(table), element);\n }\n var rng = editor.dom.createRng();\n rng.setStart(element.dom(), 0);\n rng.setEnd(element.dom(), 0);\n moveToRange(editor, rng);\n });\n } else {\n moveToRange(editor, pos.toRange());\n }\n };\n var moveCaret = function (editor, down, pos) {\n var table = down ? getTable(true, pos) : getTable(false, pos);\n var last = down === false;\n table.fold(function () {\n return moveToRange(editor, pos.toRange());\n }, function (table) {\n return CaretFinder.positionIn(last, editor.getBody()).filter(function (lastPos) {\n return lastPos.isEqual(pos);\n }).fold(function () {\n return moveToRange(editor, pos.toRange());\n }, function (_) {\n return renderBlock(down, editor, table, pos);\n });\n });\n };\n var navigateVertically = function (editor, down, table, td) {\n var rng = editor.selection.getRng();\n var pos = CaretPosition$1.fromRangeStart(rng);\n var root = editor.getBody();\n if (!down && isAtFirstTableCellLine(td, pos)) {\n var newPos = getClosestAbovePosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else if (down && isAtLastTableCellLine(td, pos)) {\n var newPos = getClosestBelowPosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else {\n return false;\n }\n };\n var moveH$1 = function (editor, forward) {\n return function () {\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\n return navigateHorizontally(editor, forward, table, td);\n });\n }).getOr(false);\n };\n };\n var moveV$1 = function (editor, forward) {\n return function () {\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\n return navigateVertically(editor, forward, table, td);\n });\n }).getOr(false);\n };\n };\n\n var isTarget = function (node) {\n return contains(['figcaption'], name(node));\n };\n var rangeBefore = function (target) {\n var rng = domGlobals.document.createRange();\n rng.setStartBefore(target.dom());\n rng.setEndBefore(target.dom());\n return rng;\n };\n var insertElement = function (root, elm, forward) {\n if (forward) {\n append(root, elm);\n } else {\n prepend(root, elm);\n }\n };\n var insertBr = function (root, forward) {\n var br = Element.fromTag('br');\n insertElement(root, br, forward);\n return rangeBefore(br);\n };\n var insertBlock$1 = function (root, forward, blockName, attrs) {\n var block = Element.fromTag(blockName);\n var br = Element.fromTag('br');\n setAll(block, attrs);\n append(block, br);\n insertElement(root, block, forward);\n return rangeBefore(br);\n };\n var insertEmptyLine = function (root, rootBlockName, attrs, forward) {\n if (rootBlockName === '') {\n return insertBr(root, forward);\n } else {\n return insertBlock$1(root, forward, rootBlockName, attrs);\n }\n };\n var getClosestTargetBlock = function (pos, root) {\n var isRoot = curry(eq, root);\n return closest(Element.fromDom(pos.container()), isBlock, isRoot).filter(isTarget);\n };\n var isAtFirstOrLastLine = function (root, forward, pos) {\n return forward ? isAtLastLine(root.dom(), pos) : isAtFirstLine(root.dom(), pos);\n };\n var moveCaretToNewEmptyLine = function (editor, forward) {\n var root = Element.fromDom(editor.getBody());\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var rootBlock = Settings.getForcedRootBlock(editor);\n var rootBlockAttrs = Settings.getForcedRootBlockAttrs(editor);\n return getClosestTargetBlock(pos, root).exists(function () {\n if (isAtFirstOrLastLine(root, forward, pos)) {\n var rng = insertEmptyLine(root, rootBlock, rootBlockAttrs, forward);\n editor.selection.setRng(rng);\n return true;\n } else {\n return false;\n }\n });\n };\n var moveV$2 = function (editor, forward) {\n return function () {\n if (editor.selection.isCollapsed()) {\n return moveCaretToNewEmptyLine(editor, forward);\n } else {\n return false;\n }\n };\n };\n\n var defaultPatterns = function (patterns) {\n return map(patterns, function (pattern) {\n return merge({\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n keyCode: 0,\n action: noop\n }, pattern);\n });\n };\n var matchesEvent = function (pattern, evt) {\n return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\n };\n var match$1 = function (patterns, evt) {\n return bind(defaultPatterns(patterns), function (pattern) {\n return matchesEvent(pattern, evt) ? [pattern] : [];\n });\n };\n var action = function (f) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var args = Array.prototype.slice.call(arguments, 1);\n return function () {\n return f.apply(null, args);\n };\n };\n var execute = function (patterns, evt) {\n return find(match$1(patterns, evt), function (pattern) {\n return pattern.action();\n });\n };\n var MatchKeys = {\n match: match$1,\n action: action,\n execute: execute\n };\n\n var executeKeydownOverride = function (editor, caret, evt) {\n var os = PlatformDetection$1.detect().os;\n MatchKeys.execute([\n {\n keyCode: VK.RIGHT,\n action: moveH(editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: moveH(editor, false)\n },\n {\n keyCode: VK.UP,\n action: moveV(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV(editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: moveH$1(editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: moveH$1(editor, false)\n },\n {\n keyCode: VK.UP,\n action: moveV$1(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV$1(editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: BoundarySelection.move(editor, caret, true)\n },\n {\n keyCode: VK.LEFT,\n action: BoundarySelection.move(editor, caret, false)\n },\n {\n keyCode: VK.RIGHT,\n ctrlKey: !os.isOSX(),\n altKey: os.isOSX(),\n action: BoundarySelection.moveNextWord(editor, caret)\n },\n {\n keyCode: VK.LEFT,\n ctrlKey: !os.isOSX(),\n altKey: os.isOSX(),\n action: BoundarySelection.movePrevWord(editor, caret)\n },\n {\n keyCode: VK.UP,\n action: moveV$2(editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: moveV$2(editor, true)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$7 = function (editor, caret) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride(editor, caret, evt);\n }\n });\n };\n var ArrowKeys = { setup: setup$7 };\n\n var isBeforeRoot = function (rootNode) {\n return function (elm) {\n return eq(rootNode, Element.fromDom(elm.dom().parentNode));\n };\n };\n var getParentBlock$1 = function (rootNode, elm) {\n return contains$3(rootNode, elm) ? closest(elm, function (element) {\n return isTextBlock(element) || isListItem(element);\n }, isBeforeRoot(rootNode)) : Option.none();\n };\n var placeCaretInEmptyBody = function (editor) {\n var body = editor.getBody();\n var node = body.firstChild && editor.dom.isBlock(body.firstChild) ? body.firstChild : body;\n editor.selection.setCursorLocation(node, 0);\n };\n var paddEmptyBody = function (editor) {\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n placeCaretInEmptyBody(editor);\n }\n };\n var willDeleteLastPositionInElement = function (forward, fromPos, elm) {\n return liftN([\n CaretFinder.firstPositionIn(elm),\n CaretFinder.lastPositionIn(elm)\n ], function (firstPos, lastPos) {\n var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);\n var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);\n var normalizedFromPos = InlineUtils.normalizePosition(false, fromPos);\n if (forward) {\n return CaretFinder.nextPosition(elm, normalizedFromPos).map(function (nextPos) {\n return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos);\n }).getOr(false);\n } else {\n return CaretFinder.prevPosition(elm, normalizedFromPos).map(function (prevPos) {\n return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos);\n }).getOr(false);\n }\n }).getOr(true);\n };\n var DeleteUtils = {\n getParentBlock: getParentBlock$1,\n paddEmptyBody: paddEmptyBody,\n willDeleteLastPositionInElement: willDeleteLastPositionInElement\n };\n\n var BlockPosition = Immutable('block', 'position');\n var BlockBoundary = Immutable('from', 'to');\n var getBlockPosition = function (rootNode, pos) {\n var rootElm = Element.fromDom(rootNode);\n var containerElm = Element.fromDom(pos.container());\n return DeleteUtils.getParentBlock(rootElm, containerElm).map(function (block) {\n return BlockPosition(block, pos);\n });\n };\n var isDifferentBlocks = function (blockBoundary) {\n return eq(blockBoundary.from().block(), blockBoundary.to().block()) === false;\n };\n var hasSameParent = function (blockBoundary) {\n return parent(blockBoundary.from().block()).bind(function (parent1) {\n return parent(blockBoundary.to().block()).filter(function (parent2) {\n return eq(parent1, parent2);\n });\n }).isSome();\n };\n var isEditable = function (blockBoundary) {\n return NodeType.isContentEditableFalse(blockBoundary.from().block()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block()) === false;\n };\n var skipLastBr = function (rootNode, forward, blockPosition) {\n if (NodeType.isBr(blockPosition.position().getNode()) && Empty.isEmpty(blockPosition.block()) === false) {\n return CaretFinder.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) {\n if (lastPositionInBlock.isEqual(blockPosition.position())) {\n return CaretFinder.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) {\n return getBlockPosition(rootNode, to);\n });\n } else {\n return Option.some(blockPosition);\n }\n }).getOr(blockPosition);\n } else {\n return blockPosition;\n }\n };\n var readFromRange = function (rootNode, forward, rng) {\n var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng));\n var toBlockPos = fromBlockPos.bind(function (blockPos) {\n return CaretFinder.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) {\n return getBlockPosition(rootNode, to).map(function (blockPos) {\n return skipLastBr(rootNode, forward, blockPos);\n });\n });\n });\n return liftN([\n fromBlockPos,\n toBlockPos\n ], BlockBoundary).filter(function (blockBoundary) {\n return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary);\n });\n };\n var read$3 = function (rootNode, forward, rng) {\n return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none();\n };\n var BlockMergeBoundary = { read: read$3 };\n\n var getChildrenUntilBlockBoundary = function (block) {\n var children$1 = children(block);\n return findIndex(children$1, isBlock).fold(function () {\n return children$1;\n }, function (index) {\n return children$1.slice(0, index);\n });\n };\n var extractChildren = function (block) {\n var children = getChildrenUntilBlockBoundary(block);\n each(children, remove$1);\n return children;\n };\n var removeEmptyRoot = function (rootNode, block) {\n var parents = Parents.parentsAndSelf(block, rootNode);\n return find(parents.reverse(), Empty.isEmpty).each(remove$1);\n };\n var isEmptyBefore = function (el) {\n return filter(prevSiblings(el), function (el) {\n return !Empty.isEmpty(el);\n }).length === 0;\n };\n var nestedBlockMerge = function (rootNode, fromBlock, toBlock, insertionPoint) {\n if (Empty.isEmpty(toBlock)) {\n PaddingBr.fillWithPaddingBr(toBlock);\n return CaretFinder.firstPositionIn(toBlock.dom());\n }\n if (isEmptyBefore(insertionPoint) && Empty.isEmpty(fromBlock)) {\n before(insertionPoint, Element.fromTag('br'));\n }\n var position = CaretFinder.prevPosition(toBlock.dom(), CaretPosition$1.before(insertionPoint.dom()));\n each(extractChildren(fromBlock), function (child) {\n before(insertionPoint, child);\n });\n removeEmptyRoot(rootNode, fromBlock);\n return position;\n };\n var sidelongBlockMerge = function (rootNode, fromBlock, toBlock) {\n if (Empty.isEmpty(toBlock)) {\n remove$1(toBlock);\n if (Empty.isEmpty(fromBlock)) {\n PaddingBr.fillWithPaddingBr(fromBlock);\n }\n return CaretFinder.firstPositionIn(fromBlock.dom());\n }\n var position = CaretFinder.lastPositionIn(toBlock.dom());\n each(extractChildren(fromBlock), function (child) {\n append(toBlock, child);\n });\n removeEmptyRoot(rootNode, fromBlock);\n return position;\n };\n var findInsertionPoint = function (toBlock, block) {\n var parentsAndSelf = Parents.parentsAndSelf(block, toBlock);\n return Option.from(parentsAndSelf[parentsAndSelf.length - 1]);\n };\n var getInsertionPoint = function (fromBlock, toBlock) {\n return contains$3(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Option.none();\n };\n var trimBr = function (first, block) {\n CaretFinder.positionIn(first, block.dom()).map(function (position) {\n return position.getNode();\n }).map(Element.fromDom).filter(isBr$1).each(remove$1);\n };\n var mergeBlockInto = function (rootNode, fromBlock, toBlock) {\n trimBr(true, fromBlock);\n trimBr(false, toBlock);\n return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock), curry(nestedBlockMerge, rootNode, fromBlock, toBlock));\n };\n var mergeBlocks = function (rootNode, forward, block1, block2) {\n return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2);\n };\n var MergeBlocks = { mergeBlocks: mergeBlocks };\n\n var backspaceDelete = function (editor, forward) {\n var position;\n var rootNode = Element.fromDom(editor.getBody());\n position = BlockMergeBoundary.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) {\n return MergeBlocks.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block());\n });\n position.each(function (pos) {\n editor.selection.setRng(pos.toRange());\n });\n return position.isSome();\n };\n var BlockBoundaryDelete = { backspaceDelete: backspaceDelete };\n\n var deleteRangeMergeBlocks = function (rootNode, selection) {\n var rng = selection.getRng();\n return liftN([\n DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)),\n DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer))\n ], function (block1, block2) {\n if (eq(block1, block2) === false) {\n rng.deleteContents();\n MergeBlocks.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {\n selection.setRng(pos.toRange());\n });\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n };\n var isRawNodeInTable = function (root, rawNode) {\n var node = Element.fromDom(rawNode);\n var isRoot = curry(eq, root);\n return ancestor(node, isTableCell, isRoot).isSome();\n };\n var isSelectionInTable = function (root, rng) {\n return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\n };\n var isEverythingSelected = function (root, rng) {\n var noPrevious = CaretFinder.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone();\n var noNext = CaretFinder.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone();\n return !isSelectionInTable(root, rng) && noPrevious && noNext;\n };\n var emptyEditor = function (editor) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n return true;\n };\n var deleteRange = function (editor) {\n var rootNode = Element.fromDom(editor.getBody());\n var rng = editor.selection.getRng();\n return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection);\n };\n var backspaceDelete$1 = function (editor, forward) {\n return editor.selection.isCollapsed() ? false : deleteRange(editor);\n };\n var BlockRangeDelete = { backspaceDelete: backspaceDelete$1 };\n\n var isBr$5 = function (pos) {\n return getElementFromPosition(pos).exists(isBr$1);\n };\n var findBr = function (forward, root, pos) {\n var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n var scope = head(parentBlocks).getOr(root);\n return CaretFinder.fromPosition(forward, scope.dom(), pos).filter(isBr$5);\n };\n var isBeforeBr = function (root, pos) {\n return getElementFromPosition(pos).exists(isBr$1) || findBr(true, root, pos).isSome();\n };\n var isAfterBr = function (root, pos) {\n return getElementFromPrevPosition(pos).exists(isBr$1) || findBr(false, root, pos).isSome();\n };\n var findPreviousBr = curry(findBr, false);\n var findNextBr = curry(findBr, true);\n\n var isCompoundElement = function (node) {\n return isTableCell(Element.fromDom(node)) || isListItem(Element.fromDom(node));\n };\n var DeleteAction = Adt.generate([\n { remove: ['element'] },\n { moveToElement: ['element'] },\n { moveToPosition: ['position'] }\n ]);\n var isAtContentEditableBlockCaret = function (forward, from) {\n var elm = from.getNode(forward === false);\n var caretLocation = forward ? 'after' : 'before';\n return NodeType.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\n };\n var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) {\n var inSameBlock = function (elm) {\n return isInline(Element.fromDom(elm)) && !isInSameBlock(from, to, root);\n };\n return getRelativeCefElm(!forward, from).fold(function () {\n return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock);\n }, inSameBlock);\n };\n var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) {\n var toCefElm = to.getNode(forward === false);\n return DeleteUtils.getParentBlock(Element.fromDom(root), Element.fromDom(from.getNode())).map(function (blockElm) {\n return Empty.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm);\n }).orThunk(function () {\n return Option.some(DeleteAction.moveToElement(toCefElm));\n });\n };\n var findCefPosition = function (root, forward, from) {\n return CaretFinder.fromPosition(forward, root, from).bind(function (to) {\n if (isCompoundElement(to.getNode())) {\n return Option.none();\n } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) {\n return Option.none();\n } else if (forward && NodeType.isContentEditableFalse(to.getNode())) {\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n } else if (forward === false && NodeType.isContentEditableFalse(to.getNode(true))) {\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\n } else if (forward && isAfterContentEditableFalse(from)) {\n return Option.some(DeleteAction.moveToPosition(to));\n } else if (forward === false && isBeforeContentEditableFalse(from)) {\n return Option.some(DeleteAction.moveToPosition(to));\n } else {\n return Option.none();\n }\n });\n };\n var getContentEditableBlockAction = function (forward, elm) {\n if (forward && NodeType.isContentEditableFalse(elm.nextSibling)) {\n return Option.some(DeleteAction.moveToElement(elm.nextSibling));\n } else if (forward === false && NodeType.isContentEditableFalse(elm.previousSibling)) {\n return Option.some(DeleteAction.moveToElement(elm.previousSibling));\n } else {\n return Option.none();\n }\n };\n var skipMoveToActionFromInlineCefToContent = function (root, from, deleteAction) {\n return deleteAction.fold(function (elm) {\n return Option.some(DeleteAction.remove(elm));\n }, function (elm) {\n return Option.some(DeleteAction.moveToElement(elm));\n }, function (to) {\n if (isInSameBlock(from, to, root)) {\n return Option.none();\n } else {\n return Option.some(DeleteAction.moveToPosition(to));\n }\n });\n };\n var getContentEditableAction = function (root, forward, from) {\n if (isAtContentEditableBlockCaret(forward, from)) {\n return getContentEditableBlockAction(forward, from.getNode(forward === false)).fold(function () {\n return findCefPosition(root, forward, from);\n }, Option.some);\n } else {\n return findCefPosition(root, forward, from).bind(function (deleteAction) {\n return skipMoveToActionFromInlineCefToContent(root, from, deleteAction);\n });\n }\n };\n var read$4 = function (root, forward, rng) {\n var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\n var from = CaretPosition$1.fromRangeStart(normalizedRange);\n var rootElement = Element.fromDom(root);\n if (forward === false && isAfterContentEditableFalse(from)) {\n return Option.some(DeleteAction.remove(from.getNode(true)));\n } else if (forward && isBeforeContentEditableFalse(from)) {\n return Option.some(DeleteAction.remove(from.getNode()));\n } else if (forward === false && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from)) {\n return findPreviousBr(rootElement, from).map(function (br) {\n return DeleteAction.remove(br.getNode());\n });\n } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr(rootElement, from)) {\n return findNextBr(rootElement, from).map(function (br) {\n return DeleteAction.remove(br.getNode());\n });\n } else {\n return getContentEditableAction(root, forward, from);\n }\n };\n\n var deleteElement$1 = function (editor, forward) {\n return function (element) {\n editor._selectionOverrides.hideFakeCaret();\n DeleteElement.deleteElement(editor, forward, Element.fromDom(element));\n return true;\n };\n };\n var moveToElement = function (editor, forward) {\n return function (element) {\n var pos = forward ? CaretPosition$1.before(element) : CaretPosition$1.after(element);\n editor.selection.setRng(pos.toRange());\n return true;\n };\n };\n var moveToPosition = function (editor) {\n return function (pos) {\n editor.selection.setRng(pos.toRange());\n return true;\n };\n };\n var backspaceDeleteCaret = function (editor, forward) {\n var result = read$4(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) {\n return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor));\n });\n return result.getOr(false);\n };\n var deleteOffscreenSelection = function (rootElement) {\n each(descendants$1(rootElement, '.mce-offscreen-selection'), remove$1);\n };\n var backspaceDeleteRange = function (editor, forward) {\n var selectedElement = editor.selection.getNode();\n if (NodeType.isContentEditableFalse(selectedElement)) {\n deleteOffscreenSelection(Element.fromDom(editor.getBody()));\n DeleteElement.deleteElement(editor, forward, Element.fromDom(editor.selection.getNode()));\n DeleteUtils.paddEmptyBody(editor);\n return true;\n } else {\n return false;\n }\n };\n var getContentEditableRoot$2 = function (root, node) {\n while (node && node !== root) {\n if (NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n var paddEmptyElement = function (editor) {\n var br;\n var ceRoot = getContentEditableRoot$2(editor.getBody(), editor.selection.getNode());\n if (NodeType.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) {\n br = editor.dom.create('br', { 'data-mce-bogus': '1' });\n editor.dom.setHTML(ceRoot, '');\n ceRoot.appendChild(br);\n editor.selection.setRng(CaretPosition$1.before(br).toRange());\n }\n return true;\n };\n var backspaceDelete$2 = function (editor, forward) {\n if (editor.selection.isCollapsed()) {\n return backspaceDeleteCaret(editor, forward);\n } else {\n return backspaceDeleteRange(editor, forward);\n }\n };\n var CefDelete = {\n backspaceDelete: backspaceDelete$2,\n paddEmptyElement: paddEmptyElement\n };\n\n var trimEmptyTextNode$1 = function (dom, node) {\n if (NodeType.isText(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n var deleteContentAndShowCaret = function (editor, range, node, direction, forward, peekCaretPosition) {\n var caretRange = showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true);\n if (range.collapsed) {\n var deleteRange = range.cloneRange();\n if (forward) {\n deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset);\n } else {\n deleteRange.setStart(caretRange.endContainer, caretRange.endOffset);\n }\n deleteRange.deleteContents();\n } else {\n range.deleteContents();\n }\n editor.selection.setRng(caretRange);\n trimEmptyTextNode$1(editor.dom, node);\n return true;\n };\n var deleteCefBoundaryText = function (editor, forward) {\n var range = editor.selection.getRng();\n if (!NodeType.isText(range.commonAncestorContainer)) {\n return false;\n }\n var direction = forward ? HDirection.Forwards : HDirection.Backwards;\n var caretWalker = CaretWalker(editor.getBody());\n var getNextVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.next);\n var getPrevVisualCaretPosition = curry(getVisualCaretPosition, caretWalker.prev);\n var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;\n var isBeforeContentEditableFalseFn = forward ? isBeforeContentEditableFalse : isAfterContentEditableFalse;\n var caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n var nextCaretPosition = InlineUtils.normalizePosition(forward, getNextPosFn(caretPosition));\n if (!nextCaretPosition) {\n return false;\n } else if (isBeforeContentEditableFalseFn(nextCaretPosition)) {\n return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, nextCaretPosition);\n }\n var peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeContentEditableFalseFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition);\n }\n }\n return false;\n };\n var backspaceDelete$3 = function (editor, forward) {\n return deleteCefBoundaryText(editor, forward);\n };\n var CefBoundaryDelete = { backspaceDelete: backspaceDelete$3 };\n\n var isFeatureEnabled$1 = function (editor) {\n return editor.settings.inline_boundaries !== false;\n };\n var rangeFromPositions = function (from, to) {\n var range = domGlobals.document.createRange();\n range.setStart(from.container(), from.offset());\n range.setEnd(to.container(), to.offset());\n return range;\n };\n var hasOnlyTwoOrLessPositionsLeft = function (elm) {\n return liftN([\n CaretFinder.firstPositionIn(elm),\n CaretFinder.lastPositionIn(elm)\n ], function (firstPos, lastPos) {\n var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);\n var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);\n return CaretFinder.nextPosition(elm, normalizedFirstPos).map(function (pos) {\n return pos.isEqual(normalizedLastPos);\n }).getOr(true);\n }).getOr(true);\n };\n var setCaretLocation = function (editor, caret) {\n return function (location) {\n return BoundaryCaret.renderCaret(caret, location).map(function (pos) {\n BoundarySelection.setCaretPosition(editor, pos);\n return true;\n }).getOr(false);\n };\n };\n var deleteFromTo = function (editor, caret, from, to) {\n var rootNode = editor.getBody();\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n editor.undoManager.ignore(function () {\n editor.selection.setRng(rangeFromPositions(from, to));\n editor.execCommand('Delete');\n BoundaryLocation.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map(BoundaryLocation.inside).map(setCaretLocation(editor, caret));\n });\n editor.nodeChanged();\n };\n var rescope$1 = function (rootNode, node) {\n var parentBlock = getParentBlock(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n var backspaceDeleteCollapsed = function (editor, caret, forward, from) {\n var rootNode = rescope$1(editor.getBody(), from.container());\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var fromLocation = BoundaryLocation.readLocation(isInlineTarget, rootNode, from);\n return fromLocation.bind(function (location) {\n if (forward) {\n return location.fold(constant(Option.some(BoundaryLocation.inside(location))), Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none);\n } else {\n return location.fold(Option.none, constant(Option.some(BoundaryLocation.outside(location))), Option.none, constant(Option.some(BoundaryLocation.inside(location))));\n }\n }).map(setCaretLocation(editor, caret)).getOrThunk(function () {\n var toPosition = CaretFinder.navigate(forward, rootNode, from);\n var toLocation = toPosition.bind(function (pos) {\n return BoundaryLocation.readLocation(isInlineTarget, rootNode, pos);\n });\n if (fromLocation.isSome() && toLocation.isSome()) {\n return InlineUtils.findRootInline(isInlineTarget, rootNode, from).map(function (elm) {\n if (hasOnlyTwoOrLessPositionsLeft(elm)) {\n DeleteElement.deleteElement(editor, forward, Element.fromDom(elm));\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n } else {\n return toLocation.bind(function (_) {\n return toPosition.map(function (to) {\n if (forward) {\n deleteFromTo(editor, caret, from, to);\n } else {\n deleteFromTo(editor, caret, to, from);\n }\n return true;\n });\n }).getOr(false);\n }\n });\n };\n var backspaceDelete$4 = function (editor, caret, forward) {\n if (editor.selection.isCollapsed() && isFeatureEnabled$1(editor)) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return backspaceDeleteCollapsed(editor, caret, forward, from);\n }\n return false;\n };\n var BoundaryDelete = { backspaceDelete: backspaceDelete$4 };\n\n var getParentInlines = function (rootElm, startElm) {\n var parents = Parents.parentsAndSelf(startElm, rootElm);\n return findIndex(parents, isBlock).fold(constant(parents), function (index) {\n return parents.slice(0, index);\n });\n };\n var hasOnlyOneChild = function (elm) {\n return children(elm).length === 1;\n };\n var deleteLastPosition = function (forward, editor, target, parentInlines) {\n var isFormatElement$1 = curry(isFormatElement, editor);\n var formatNodes = map(filter(parentInlines, isFormatElement$1), function (elm) {\n return elm.dom();\n });\n if (formatNodes.length === 0) {\n DeleteElement.deleteElement(editor, forward, target);\n } else {\n var pos = replaceWithCaretFormat(target.dom(), formatNodes);\n editor.selection.setRng(pos.toRange());\n }\n };\n var deleteCaret = function (editor, forward) {\n var rootElm = Element.fromDom(editor.getBody());\n var startElm = Element.fromDom(editor.selection.getStart());\n var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild);\n return last(parentInlines).map(function (target) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n if (DeleteUtils.willDeleteLastPositionInElement(forward, fromPos, target.dom()) && !isEmptyCaretFormatElement(target)) {\n deleteLastPosition(forward, editor, target, parentInlines);\n return true;\n } else {\n return false;\n }\n }).getOr(false);\n };\n var backspaceDelete$5 = function (editor, forward) {\n return editor.selection.isCollapsed() ? deleteCaret(editor, forward) : false;\n };\n var InlineFormatDelete = { backspaceDelete: backspaceDelete$5 };\n\n var tableCellRng = Immutable('start', 'end');\n var tableSelection = Immutable('rng', 'table', 'cells');\n var deleteAction = Adt.generate([\n { removeTable: ['element'] },\n { emptyCells: ['cells'] }\n ]);\n var isRootFromElement = function (root) {\n return curry(eq, root);\n };\n var getClosestCell$1 = function (container, isRoot) {\n return closest$1(Element.fromDom(container), 'td,th', isRoot);\n };\n var getClosestTable = function (cell, isRoot) {\n return ancestor$1(cell, 'table', isRoot);\n };\n var isExpandedCellRng = function (cellRng) {\n return eq(cellRng.start(), cellRng.end()) === false;\n };\n var getTableFromCellRng = function (cellRng, isRoot) {\n return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) {\n return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) {\n return eq(startParentTable, endParentTable) ? Option.some(startParentTable) : Option.none();\n });\n });\n };\n var getTableCells = function (table) {\n return descendants$1(table, 'td,th');\n };\n var getCellRangeFromStartTable = function (cellRng, isRoot) {\n return getClosestTable(cellRng.start(), isRoot).bind(function (table) {\n return last(getTableCells(table)).map(function (endCell) {\n return tableCellRng(cellRng.start(), endCell);\n });\n });\n };\n var partialSelection = function (isRoot, rng) {\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\n return rng.collapsed ? Option.none() : liftN([\n startCell,\n endCell\n ], tableCellRng).fold(function () {\n return startCell.fold(function () {\n return endCell.bind(function (endCell) {\n return getClosestTable(endCell, isRoot).bind(function (table) {\n return head(getTableCells(table)).map(function (startCell) {\n return tableCellRng(startCell, endCell);\n });\n });\n });\n }, function (startCell) {\n return getClosestTable(startCell, isRoot).bind(function (table) {\n return last(getTableCells(table)).map(function (endCell) {\n return tableCellRng(startCell, endCell);\n });\n });\n });\n }, function (cellRng) {\n return isWithinSameTable(isRoot, cellRng) ? Option.none() : getCellRangeFromStartTable(cellRng, isRoot);\n });\n };\n var isWithinSameTable = function (isRoot, cellRng) {\n return getTableFromCellRng(cellRng, isRoot).isSome();\n };\n var getCellRng = function (rng, isRoot) {\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\n return liftN([\n startCell,\n endCell\n ], tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {\n return isWithinSameTable(isRoot, cellRng);\n }).orThunk(function () {\n return partialSelection(isRoot, rng);\n });\n };\n var getTableSelectionFromCellRng = function (cellRng, isRoot) {\n return getTableFromCellRng(cellRng, isRoot).map(function (table) {\n return tableSelection(cellRng, table, getTableCells(table));\n });\n };\n var getTableSelectionFromRng = function (root, rng) {\n var isRoot = isRootFromElement(root);\n return getCellRng(rng, isRoot).bind(function (cellRng) {\n return getTableSelectionFromCellRng(cellRng, isRoot);\n });\n };\n var getCellIndex = function (cells, cell) {\n return findIndex(cells, function (x) {\n return eq(x, cell);\n });\n };\n var getSelectedCells = function (tableSelection) {\n return liftN([\n getCellIndex(tableSelection.cells(), tableSelection.rng().start()),\n getCellIndex(tableSelection.cells(), tableSelection.rng().end())\n ], function (startIndex, endIndex) {\n return tableSelection.cells().slice(startIndex, endIndex + 1);\n });\n };\n var getAction = function (tableSelection) {\n return getSelectedCells(tableSelection).map(function (selected) {\n var cells = tableSelection.cells();\n return selected.length === cells.length ? deleteAction.removeTable(tableSelection.table()) : deleteAction.emptyCells(selected);\n });\n };\n var getActionFromCells = function (cells) {\n return deleteAction.emptyCells(cells);\n };\n var getActionFromRange = function (root, rng) {\n return getTableSelectionFromRng(root, rng).bind(getAction);\n };\n var TableDeleteAction = {\n getActionFromRange: getActionFromRange,\n getActionFromCells: getActionFromCells\n };\n\n var emptyCells = function (editor, cells) {\n each(cells, PaddingBr.fillWithPaddingBr);\n editor.selection.setCursorLocation(cells[0].dom(), 0);\n return true;\n };\n var deleteTableElement = function (editor, table) {\n DeleteElement.deleteElement(editor, false, table);\n return true;\n };\n var deleteCellRange = function (editor, rootElm, rng) {\n return TableDeleteAction.getActionFromRange(rootElm, rng).map(function (action) {\n return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor));\n });\n };\n var deleteCaptionRange = function (editor, caption) {\n return emptyElement(editor, caption);\n };\n var deleteTableRange = function (editor, rootElm, rng, startElm) {\n return getParentCaption(rootElm, startElm).fold(function () {\n return deleteCellRange(editor, rootElm, rng);\n }, function (caption) {\n return deleteCaptionRange(editor, caption);\n }).getOr(false);\n };\n var deleteRange$1 = function (editor, startElm) {\n var rootNode = Element.fromDom(editor.getBody());\n var rng = editor.selection.getRng();\n var selectedCells = TableCellSelection.getCellsFromEditor(editor);\n return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm);\n };\n var getParentCell = function (rootElm, elm) {\n return find(Parents.parentsAndSelf(elm, rootElm), isTableCell);\n };\n var getParentCaption = function (rootElm, elm) {\n return find(Parents.parentsAndSelf(elm, rootElm), function (elm) {\n return name(elm) === 'caption';\n });\n };\n var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) {\n return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) {\n return getParentCell(rootElm, Element.fromDom(to.getNode())).map(function (toCell) {\n return eq(toCell, fromCell) === false;\n });\n });\n };\n var emptyElement = function (editor, elm) {\n PaddingBr.fillWithPaddingBr(elm);\n editor.selection.setCursorLocation(elm.dom(), 0);\n return Option.some(true);\n };\n var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) {\n return CaretFinder.firstPositionIn(fromCaption.dom()).bind(function (first) {\n return CaretFinder.lastPositionIn(fromCaption.dom()).map(function (last) {\n return forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first);\n });\n }).getOr(true);\n };\n var emptyCaretCaption = function (editor, elm) {\n return emptyElement(editor, elm);\n };\n var validateCaretCaption = function (rootElm, fromCaption, to) {\n return getParentCaption(rootElm, Element.fromDom(to.getNode())).map(function (toCaption) {\n return eq(toCaption, fromCaption) === false;\n });\n };\n var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) {\n return CaretFinder.navigate(forward, editor.getBody(), from).bind(function (to) {\n return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to);\n }).or(Option.some(true));\n };\n var deleteCaretCells = function (editor, forward, rootElm, startElm) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return getParentCell(rootElm, startElm).bind(function (fromCell) {\n return Empty.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);\n }).getOr(false);\n };\n var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) {\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return Empty.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\n };\n var isNearTable = function (forward, pos) {\n return forward ? isBeforeTable(pos) : isAfterTable(pos);\n };\n var isBeforeOrAfterTable = function (editor, forward) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return isNearTable(forward, fromPos) || CaretFinder.fromPosition(forward, editor.getBody(), fromPos).map(function (pos) {\n return isNearTable(forward, pos);\n }).getOr(false);\n };\n var deleteCaret$1 = function (editor, forward, startElm) {\n var rootElm = Element.fromDom(editor.getBody());\n return getParentCaption(rootElm, startElm).fold(function () {\n return deleteCaretCells(editor, forward, rootElm, startElm) || isBeforeOrAfterTable(editor, forward);\n }, function (fromCaption) {\n return deleteCaretCaption(editor, forward, rootElm, fromCaption).getOr(false);\n });\n };\n var backspaceDelete$6 = function (editor, forward) {\n var startElm = Element.fromDom(editor.selection.getStart(true));\n var cells = TableCellSelection.getCellsFromEditor(editor);\n return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$1(editor, forward, startElm) : deleteRange$1(editor, startElm);\n };\n var TableDelete = { backspaceDelete: backspaceDelete$6 };\n\n var deleteCaret$2 = function (editor, forward) {\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return CaretFinder.fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) {\n return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos);\n }).bind(function (pos) {\n return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, pos));\n }).map(function (elm) {\n editor.selection.select(elm);\n return true;\n }).getOr(false);\n };\n var backspaceDelete$7 = function (editor, forward) {\n return editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : false;\n };\n var PageBreakDelete = { backspaceDelete: backspaceDelete$7 };\n\n var executeKeydownOverride$1 = function (editor, caret, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefBoundaryDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BoundaryDelete.backspaceDelete, editor, caret, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(TableDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(TableDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(BlockBoundaryDelete.backspaceDelete, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(InlineFormatDelete.backspaceDelete, editor, true)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var executeKeyupOverride = function (editor, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.BACKSPACE,\n action: MatchKeys.action(CefDelete.paddEmptyElement, editor)\n },\n {\n keyCode: VK.DELETE,\n action: MatchKeys.action(CefDelete.paddEmptyElement, editor)\n }\n ], evt);\n };\n var setup$8 = function (editor, caret) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$1(editor, caret, evt);\n }\n });\n editor.on('keyup', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeyupOverride(editor, evt);\n }\n });\n };\n var DeleteBackspaceKeys = { setup: setup$8 };\n\n var firstNonWhiteSpaceNodeSibling = function (node) {\n while (node) {\n if (node.nodeType === 1 || node.nodeType === 3 && node.data && /[\\r\\n\\s]/.test(node.data)) {\n return node;\n }\n node = node.nextSibling;\n }\n };\n var moveToCaretPosition = function (editor, root) {\n var node, rng, lastNode = root;\n var dom = editor.dom;\n var moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\n if (!root) {\n return;\n }\n if (/^(LI|DT|DD)$/.test(root.nodeName)) {\n var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n root.insertBefore(dom.doc.createTextNode('\\xA0'), root.firstChild);\n }\n }\n rng = dom.createRng();\n root.normalize();\n if (root.hasChildNodes()) {\n var walker = new TreeWalker(root, root);\n while (node = walker.current()) {\n if (NodeType.isText(node)) {\n rng.setStart(node, 0);\n rng.setEnd(node, 0);\n break;\n }\n if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n rng.setStartBefore(node);\n rng.setEndBefore(node);\n break;\n }\n lastNode = node;\n node = walker.next();\n }\n if (!node) {\n rng.setStart(lastNode, 0);\n rng.setEnd(lastNode, 0);\n }\n } else {\n if (NodeType.isBr(root)) {\n if (root.nextSibling && dom.isBlock(root.nextSibling)) {\n rng.setStartBefore(root);\n rng.setEndBefore(root);\n } else {\n rng.setStartAfter(root);\n rng.setEndAfter(root);\n }\n } else {\n rng.setStart(root, 0);\n rng.setEnd(root, 0);\n }\n }\n editor.selection.setRng(rng);\n editor.selection.scrollIntoView(root);\n };\n var getEditableRoot = function (dom, node) {\n var root = dom.getRoot();\n var parent, editableRoot;\n parent = node;\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n var getParentBlock$2 = function (editor) {\n return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\n };\n var getParentBlockName = function (editor) {\n return getParentBlock$2(editor).fold(constant(''), function (parentBlock) {\n return parentBlock.nodeName.toUpperCase();\n });\n };\n var isListItemParentBlock = function (editor) {\n return getParentBlock$2(editor).filter(function (elm) {\n return isListItem(Element.fromDom(elm));\n }).isSome();\n };\n var NewLineUtils = {\n moveToCaretPosition: moveToCaretPosition,\n getEditableRoot: getEditableRoot,\n getParentBlock: getParentBlock$2,\n getParentBlockName: getParentBlockName,\n isListItemParentBlock: isListItemParentBlock\n };\n\n var hasFirstChild = function (elm, name) {\n return elm.firstChild && elm.firstChild.nodeName === name;\n };\n var hasParent$1 = function (elm, parentName) {\n return elm && elm.parentNode && elm.parentNode.nodeName === parentName;\n };\n var isListBlock = function (elm) {\n return elm && /^(OL|UL|LI)$/.test(elm.nodeName);\n };\n var isNestedList = function (elm) {\n return isListBlock(elm) && isListBlock(elm.parentNode);\n };\n var getContainerBlock = function (containerBlock) {\n var containerBlockParent = containerBlock.parentNode;\n if (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) {\n return containerBlockParent;\n }\n return containerBlock;\n };\n var isFirstOrLastLi = function (containerBlock, parentBlock, first) {\n var node = containerBlock[first ? 'firstChild' : 'lastChild'];\n while (node) {\n if (NodeType.isElement(node)) {\n break;\n }\n node = node[first ? 'nextSibling' : 'previousSibling'];\n }\n return node === parentBlock;\n };\n var insert = function (editor, createNewBlock, containerBlock, parentBlock, newBlockName) {\n var dom = editor.dom;\n var rng = editor.selection.getRng();\n if (containerBlock === editor.getBody()) {\n return;\n }\n if (isNestedList(containerBlock)) {\n newBlockName = 'LI';\n }\n var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR');\n if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\n if (hasParent$1(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n } else {\n dom.replace(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\n if (hasParent$1(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n newBlock.appendChild(dom.doc.createTextNode(' '));\n newBlock.appendChild(containerBlock);\n } else {\n containerBlock.parentNode.insertBefore(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n } else {\n containerBlock = getContainerBlock(containerBlock);\n var tmpRng = rng.cloneRange();\n tmpRng.setStartAfter(parentBlock);\n tmpRng.setEndAfter(containerBlock);\n var fragment = tmpRng.extractContents();\n if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, containerBlock);\n } else {\n dom.insertAfter(fragment, containerBlock);\n dom.insertAfter(newBlock, containerBlock);\n }\n }\n dom.remove(parentBlock);\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n };\n var InsertLi = { insert: insert };\n\n var trimZwsp = function (fragment) {\n each(descendants(Element.fromDom(fragment), isText), function (text) {\n var rawNode = text.dom();\n rawNode.nodeValue = Zwsp.trim(rawNode.nodeValue);\n });\n };\n var isEmptyAnchor = function (dom, elm) {\n return elm && elm.nodeName === 'A' && dom.isEmpty(elm);\n };\n var isTableCell$4 = function (node) {\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\n };\n var emptyBlock = function (elm) {\n elm.innerHTML = '
    ';\n };\n var containerAndSiblingName = function (container, nodeName) {\n return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\n };\n var canSplitBlock = function (dom, node) {\n return node && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true';\n };\n var trimInlineElementsOnLeftSideOfBlock = function (dom, nonEmptyElementsMap, block) {\n var node = block;\n var firstChilds = [];\n var i;\n if (!node) {\n return;\n }\n while (node = node.firstChild) {\n if (dom.isBlock(node)) {\n return;\n }\n if (NodeType.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n firstChilds.push(node);\n }\n }\n i = firstChilds.length;\n while (i--) {\n node = firstChilds[i];\n if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') {\n dom.remove(node);\n } else {\n if (isEmptyAnchor(dom, node)) {\n dom.remove(node);\n }\n }\n }\n };\n var normalizeZwspOffset = function (start, container, offset) {\n if (NodeType.isText(container) === false) {\n return offset;\n } else if (start) {\n return offset === 1 && container.data.charAt(offset - 1) === Zwsp.ZWSP ? 0 : offset;\n } else {\n return offset === container.data.length - 1 && container.data.charAt(offset) === Zwsp.ZWSP ? container.data.length : offset;\n }\n };\n var includeZwspInRange = function (rng) {\n var newRng = rng.cloneRange();\n newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\n newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\n return newRng;\n };\n var trimLeadingLineBreaks = function (node) {\n do {\n if (NodeType.isText(node)) {\n node.nodeValue = node.nodeValue.replace(/^[\\r\\n]+/, '');\n }\n node = node.firstChild;\n } while (node);\n };\n var getEditableRoot$1 = function (dom, node) {\n var root = dom.getRoot();\n var parent, editableRoot;\n parent = node;\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n var setForcedBlockAttrs = function (editor, node) {\n var forcedRootBlockName = Settings.getForcedRootBlock(editor);\n if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n editor.dom.setAttribs(node, Settings.getForcedRootBlockAttrs(editor));\n }\n };\n var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) {\n var newBlock, parentBlock, startNode, node, next, rootBlockName;\n var blockName = newBlockName || 'P';\n var dom = editor.dom, editableRoot = getEditableRoot$1(dom, container);\n parentBlock = dom.getParent(container, dom.isBlock);\n if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\n parentBlock = parentBlock || editableRoot;\n if (parentBlock === editor.getBody() || isTableCell$4(parentBlock)) {\n rootBlockName = parentBlock.nodeName.toLowerCase();\n } else {\n rootBlockName = parentBlock.parentNode.nodeName.toLowerCase();\n }\n if (!parentBlock.hasChildNodes()) {\n newBlock = dom.create(blockName);\n setForcedBlockAttrs(editor, newBlock);\n parentBlock.appendChild(newBlock);\n rng.setStart(newBlock, 0);\n rng.setEnd(newBlock, 0);\n return newBlock;\n }\n node = container;\n while (node.parentNode !== parentBlock) {\n node = node.parentNode;\n }\n while (node && !dom.isBlock(node)) {\n startNode = node;\n node = node.previousSibling;\n }\n if (startNode && editor.schema.isValidChild(rootBlockName, blockName.toLowerCase())) {\n newBlock = dom.create(blockName);\n setForcedBlockAttrs(editor, newBlock);\n startNode.parentNode.insertBefore(newBlock, startNode);\n node = startNode;\n while (node && !dom.isBlock(node)) {\n next = node.nextSibling;\n newBlock.appendChild(node);\n node = next;\n }\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n }\n }\n return container;\n };\n var addBrToBlockIfNeeded = function (dom, block) {\n var lastChild;\n block.normalize();\n lastChild = block.lastChild;\n if (!lastChild || /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\n dom.add(block, 'br');\n }\n };\n var insert$1 = function (editor, evt) {\n var tmpRng, editableRoot, container, offset, parentBlock, shiftKey;\n var newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer;\n var dom = editor.dom;\n var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\n var rng = editor.selection.getRng();\n var createNewBlock = function (name) {\n var node = container, block, clonedNode, caretNode;\n var textInlineElements = schema.getTextInlineElements();\n if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\n block = dom.create(name || newBlockName);\n setForcedBlockAttrs(editor, block);\n } else {\n block = parentBlock.cloneNode(false);\n }\n caretNode = block;\n if (Settings.shouldKeepStyles(editor) === false) {\n dom.setAttrib(block, 'style', null);\n dom.setAttrib(block, 'class', null);\n } else {\n do {\n if (textInlineElements[node.nodeName]) {\n if (isCaretNode(node) || Bookmarks.isBookmarkNode(node)) {\n continue;\n }\n clonedNode = node.cloneNode(false);\n dom.setAttrib(clonedNode, 'id', '');\n if (block.hasChildNodes()) {\n clonedNode.appendChild(block.firstChild);\n block.appendChild(clonedNode);\n } else {\n caretNode = clonedNode;\n block.appendChild(clonedNode);\n }\n }\n } while ((node = node.parentNode) && node !== editableRoot);\n }\n emptyBlock(caretNode);\n return block;\n };\n var isCaretAtStartOrEndOfBlock = function (start) {\n var node, name;\n var normalizedOffset = normalizeZwspOffset(start, container, offset);\n if (NodeType.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {\n return false;\n }\n if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) {\n return true;\n }\n if (start && NodeType.isElement(container) && container === parentBlock.firstChild) {\n return true;\n }\n if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) {\n return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\n }\n var walker = new TreeWalker(container, parentBlock);\n if (NodeType.isText(container)) {\n if (start && normalizedOffset === 0) {\n walker.prev();\n } else if (!start && normalizedOffset === container.nodeValue.length) {\n walker.next();\n }\n }\n while (node = walker.current()) {\n if (NodeType.isElement(node)) {\n if (!node.getAttribute('data-mce-bogus')) {\n name = node.nodeName.toLowerCase();\n if (nonEmptyElementsMap[name] && name !== 'br') {\n return false;\n }\n }\n } else if (NodeType.isText(node) && !/^[ \\t\\r\\n]*$/.test(node.nodeValue)) {\n return false;\n }\n if (start) {\n walker.prev();\n } else {\n walker.next();\n }\n }\n return true;\n };\n var insertNewBlockAfter = function () {\n if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\n newBlock = createNewBlock(newBlockName);\n } else {\n newBlock = createNewBlock();\n }\n if (Settings.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {\n newBlock = dom.split(containerBlock, parentBlock);\n } else {\n dom.insertAfter(newBlock, parentBlock);\n }\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n };\n NormalizeRange.normalize(dom, rng).each(function (normRng) {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n container = rng.startContainer;\n offset = rng.startOffset;\n newBlockName = Settings.getForcedRootBlock(editor);\n shiftKey = !!(evt && evt.shiftKey);\n var ctrlKey = !!(evt && evt.ctrlKey);\n if (NodeType.isElement(container) && container.hasChildNodes()) {\n isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && NodeType.isText(container)) {\n offset = container.nodeValue.length;\n } else {\n offset = 0;\n }\n }\n editableRoot = getEditableRoot$1(dom, container);\n if (!editableRoot) {\n return;\n }\n if (newBlockName && !shiftKey || !newBlockName && shiftKey) {\n container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\n }\n parentBlock = dom.getParent(container, dom.isBlock);\n containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n if (containerBlockName === 'LI' && !ctrlKey) {\n parentBlock = containerBlock;\n containerBlock = containerBlock.parentNode;\n parentBlockName = containerBlockName;\n }\n if (/^(LI|DT|DD)$/.test(parentBlockName)) {\n if (dom.isEmpty(parentBlock)) {\n InsertLi.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName);\n return;\n }\n }\n if (newBlockName && parentBlock === editor.getBody()) {\n return;\n }\n newBlockName = newBlockName || 'P';\n if (isCaretContainerBlock(parentBlock)) {\n newBlock = showCaretContainerBlock(parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n } else if (isCaretAtStartOrEndOfBlock()) {\n insertNewBlockAfter();\n } else if (isCaretAtStartOrEndOfBlock(true)) {\n newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock);\n NewLineUtils.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);\n } else {\n tmpRng = includeZwspInRange(rng).cloneRange();\n tmpRng.setEndAfter(parentBlock);\n fragment = tmpRng.extractContents();\n trimZwsp(fragment);\n trimLeadingLineBreaks(fragment);\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, parentBlock);\n trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\n addBrToBlockIfNeeded(dom, parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n newBlock.normalize();\n if (dom.isEmpty(newBlock)) {\n dom.remove(newBlock);\n insertNewBlockAfter();\n } else {\n NewLineUtils.moveToCaretPosition(editor, newBlock);\n }\n }\n dom.setAttrib(newBlock, 'id', '');\n editor.fire('NewBlock', { newBlock: newBlock });\n };\n var InsertBlock = { insert: insert$1 };\n\n var hasRightSideContent = function (schema, container, parentBlock) {\n var walker = new TreeWalker(container, parentBlock);\n var node;\n var nonEmptyElementsMap = schema.getNonEmptyElements();\n while (node = walker.next()) {\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) {\n return true;\n }\n }\n };\n var scrollToBr = function (dom, selection, brElm) {\n var marker = dom.create('span', {}, ' ');\n brElm.parentNode.insertBefore(marker, brElm);\n selection.scrollIntoView(marker);\n dom.remove(marker);\n };\n var moveSelectionToBr = function (dom, selection, brElm, extraBr) {\n var rng = dom.createRng();\n if (!extraBr) {\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n } else {\n rng.setStartBefore(brElm);\n rng.setEndBefore(brElm);\n }\n selection.setRng(rng);\n };\n var insertBrAtCaret = function (editor, evt) {\n var selection = editor.selection;\n var dom = editor.dom;\n var rng = selection.getRng();\n var brElm;\n var extraBr;\n NormalizeRange.normalize(dom, rng).each(function (normRng) {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n var offset = rng.startOffset;\n var container = rng.startContainer;\n if (container.nodeType === 1 && container.hasChildNodes()) {\n var isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && container.nodeType === 3) {\n offset = container.nodeValue.length;\n } else {\n offset = 0;\n }\n }\n var parentBlock = dom.getParent(container, dom.isBlock);\n var containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n var containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n var isControlKey = !!(evt && evt.ctrlKey);\n if (containerBlockName === 'LI' && !isControlKey) {\n parentBlock = containerBlock;\n }\n if (container && container.nodeType === 3 && offset >= container.nodeValue.length) {\n if (!hasRightSideContent(editor.schema, container, parentBlock)) {\n brElm = dom.create('br');\n rng.insertNode(brElm);\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n extraBr = true;\n }\n }\n brElm = dom.create('br');\n rangeInsertNode(dom, rng, brElm);\n scrollToBr(dom, selection, brElm);\n moveSelectionToBr(dom, selection, brElm, extraBr);\n editor.undoManager.add();\n };\n var insertBrBefore = function (editor, inline) {\n var br = Element.fromTag('br');\n before(Element.fromDom(inline), br);\n editor.undoManager.add();\n };\n var insertBrAfter = function (editor, inline) {\n if (!hasBrAfter(editor.getBody(), inline)) {\n after(Element.fromDom(inline), Element.fromTag('br'));\n }\n var br = Element.fromTag('br');\n after(Element.fromDom(inline), br);\n scrollToBr(editor.dom, editor.selection, br.dom());\n moveSelectionToBr(editor.dom, editor.selection, br.dom(), false);\n editor.undoManager.add();\n };\n var isBeforeBr$1 = function (pos) {\n return NodeType.isBr(pos.getNode());\n };\n var hasBrAfter = function (rootNode, startNode) {\n if (isBeforeBr$1(CaretPosition$1.after(startNode))) {\n return true;\n } else {\n return CaretFinder.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) {\n return NodeType.isBr(pos.getNode());\n }).getOr(false);\n }\n };\n var isAnchorLink = function (elm) {\n return elm && elm.nodeName === 'A' && 'href' in elm;\n };\n var isInsideAnchor = function (location) {\n return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false));\n };\n var readInlineAnchorLocation = function (editor) {\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var position = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor);\n };\n var insertBrOutsideAnchor = function (editor, location) {\n location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\n };\n var insert$2 = function (editor, evt) {\n var anchorLocation = readInlineAnchorLocation(editor);\n if (anchorLocation.isSome()) {\n anchorLocation.each(curry(insertBrOutsideAnchor, editor));\n } else {\n insertBrAtCaret(editor, evt);\n }\n };\n var InsertBr = { insert: insert$2 };\n\n var matchesSelector = function (editor, selector) {\n return NewLineUtils.getParentBlock(editor).filter(function (parentBlock) {\n return selector.length > 0 && is$1(Element.fromDom(parentBlock), selector);\n }).isSome();\n };\n var shouldInsertBr = function (editor) {\n return matchesSelector(editor, Settings.getBrNewLineSelector(editor));\n };\n var shouldBlockNewLine = function (editor) {\n return matchesSelector(editor, Settings.getNoNewLineSelector(editor));\n };\n var ContextSelectors = {\n shouldInsertBr: shouldInsertBr,\n shouldBlockNewLine: shouldBlockNewLine\n };\n\n var newLineAction = Adt.generate([\n { br: [] },\n { block: [] },\n { none: [] }\n ]);\n var shouldBlockNewLine$1 = function (editor, shiftKey) {\n return ContextSelectors.shouldBlockNewLine(editor);\n };\n var isBrMode = function (requiredState) {\n return function (editor, shiftKey) {\n var brMode = Settings.getForcedRootBlock(editor) === '';\n return brMode === requiredState;\n };\n };\n var inListBlock = function (requiredState) {\n return function (editor, shiftKey) {\n return NewLineUtils.isListItemParentBlock(editor) === requiredState;\n };\n };\n var inBlock = function (blockName, requiredState) {\n return function (editor, shiftKey) {\n var state = NewLineUtils.getParentBlockName(editor) === blockName.toUpperCase();\n return state === requiredState;\n };\n };\n var inPreBlock = function (requiredState) {\n return inBlock('pre', requiredState);\n };\n var inSummaryBlock = function () {\n return inBlock('summary', true);\n };\n var shouldPutBrInPre$1 = function (requiredState) {\n return function (editor, shiftKey) {\n return Settings.shouldPutBrInPre(editor) === requiredState;\n };\n };\n var inBrContext = function (editor, shiftKey) {\n return ContextSelectors.shouldInsertBr(editor);\n };\n var hasShiftKey = function (editor, shiftKey) {\n return shiftKey;\n };\n var canInsertIntoEditableRoot = function (editor) {\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n var rootEditable = NewLineUtils.getEditableRoot(editor.dom, editor.selection.getStart());\n return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P');\n };\n var match$2 = function (predicates, action) {\n return function (editor, shiftKey) {\n var isMatch = foldl(predicates, function (res, p) {\n return res && p(editor, shiftKey);\n }, true);\n return isMatch ? Option.some(action) : Option.none();\n };\n };\n var getAction$1 = function (editor, evt) {\n return LazyEvaluator.evaluateUntil([\n match$2([shouldBlockNewLine$1], newLineAction.none()),\n match$2([inSummaryBlock()], newLineAction.br()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(false),\n hasShiftKey\n ], newLineAction.br()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(false)\n ], newLineAction.block()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(true),\n hasShiftKey\n ], newLineAction.block()),\n match$2([\n inPreBlock(true),\n shouldPutBrInPre$1(true)\n ], newLineAction.br()),\n match$2([\n inListBlock(true),\n hasShiftKey\n ], newLineAction.br()),\n match$2([inListBlock(true)], newLineAction.block()),\n match$2([\n isBrMode(true),\n hasShiftKey,\n canInsertIntoEditableRoot\n ], newLineAction.block()),\n match$2([isBrMode(true)], newLineAction.br()),\n match$2([inBrContext], newLineAction.br()),\n match$2([\n isBrMode(false),\n hasShiftKey\n ], newLineAction.br()),\n match$2([canInsertIntoEditableRoot], newLineAction.block())\n ], [\n editor,\n !!(evt && evt.shiftKey)\n ]).getOr(newLineAction.none());\n };\n var NewLineAction = { getAction: getAction$1 };\n\n var insert$3 = function (editor, evt) {\n NewLineAction.getAction(editor, evt).fold(function () {\n InsertBr.insert(editor, evt);\n }, function () {\n InsertBlock.insert(editor, evt);\n }, noop);\n };\n var InsertNewLine = { insert: insert$3 };\n\n var endTypingLevel = function (undoManager) {\n if (undoManager.typing) {\n undoManager.typing = false;\n undoManager.add();\n }\n };\n var handleEnterKeyEvent = function (editor, event) {\n if (event.isDefaultPrevented()) {\n return;\n }\n event.preventDefault();\n endTypingLevel(editor.undoManager);\n editor.undoManager.transact(function () {\n if (editor.selection.isCollapsed() === false) {\n editor.execCommand('Delete');\n }\n InsertNewLine.insert(editor, event);\n });\n };\n var setup$9 = function (editor) {\n editor.on('keydown', function (event) {\n if (event.keyCode === VK.ENTER) {\n handleEnterKeyEvent(editor, event);\n }\n });\n };\n var EnterKey = { setup: setup$9 };\n\n var insertTextAtPosition = function (text, pos) {\n var container = pos.container();\n var offset = pos.offset();\n if (NodeType.isText(container)) {\n container.insertData(offset, text);\n return Option.some(CaretPosition(container, offset + text.length));\n } else {\n return getElementFromPosition(pos).map(function (elm) {\n var textNode = Element.fromText(text);\n if (pos.isAtEnd()) {\n after(elm, textNode);\n } else {\n before(elm, textNode);\n }\n return CaretPosition(textNode.dom(), text.length);\n });\n }\n };\n var insertNbspAtPosition = curry(insertTextAtPosition, '\\xA0');\n var insertSpaceAtPosition = curry(insertTextAtPosition, ' ');\n\n var navigateIgnoreEmptyTextNodes = function (forward, root, from) {\n return CaretFinder.navigateIgnore(forward, root, from, isEmptyText);\n };\n var isAtBlockBoundary = function (forward, root, pos) {\n var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n return head(parentBlocks).fold(function () {\n return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {\n return isInSameBlock(newPos, pos, root.dom()) === false;\n });\n }, function (parent) {\n return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone();\n });\n };\n var isAtStartOfBlock = curry(isAtBlockBoundary, false);\n var isAtEndOfBlock = curry(isAtBlockBoundary, true);\n\n var nbsp = '\\xA0';\n var isInMiddleOfText = function (pos) {\n return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();\n };\n var getClosestBlock = function (root, pos) {\n var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);\n return head(parentBlocks).getOr(root);\n };\n var hasSpaceBefore = function (root, pos) {\n if (isInMiddleOfText(pos)) {\n return isAfterSpace(pos);\n } else {\n return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock(root, pos).dom(), pos).exists(isAfterSpace);\n }\n };\n var hasSpaceAfter = function (root, pos) {\n if (isInMiddleOfText(pos)) {\n return isBeforeSpace(pos);\n } else {\n return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock(root, pos).dom(), pos).exists(isBeforeSpace);\n }\n };\n var isPreValue = function (value) {\n return contains([\n 'pre',\n 'pre-line',\n 'pre-wrap'\n ], value);\n };\n var isInPre = function (pos) {\n return getElementFromPosition(pos).bind(function (elm) {\n return closest(elm, isElement);\n }).exists(function (elm) {\n return isPreValue(get$2(elm, 'white-space'));\n });\n };\n var isAtBeginningOfBody = function (root, pos) {\n return CaretFinder.prevPosition(root.dom(), pos).isNone();\n };\n var isAtEndOfBody = function (root, pos) {\n return CaretFinder.nextPosition(root.dom(), pos).isNone();\n };\n var isAtLineBoundary = function (root, pos) {\n return isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos) || isAtEndOfBlock(root, pos) || isAfterBr(root, pos) || isBeforeBr(root, pos);\n };\n var needsToHaveNbsp = function (root, pos) {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtLineBoundary(root, pos) || hasSpaceBefore(root, pos) || hasSpaceAfter(root, pos);\n }\n };\n var needsToBeNbspLeft = function (root, pos) {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtStartOfBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos);\n }\n };\n var leanRight = function (pos) {\n var container = pos.container();\n var offset = pos.offset();\n if (NodeType.isText(container) && offset < container.data.length) {\n return CaretPosition(container, offset + 1);\n } else {\n return pos;\n }\n };\n var needsToBeNbspRight = function (root, pos) {\n var afterPos = leanRight(pos);\n if (isInPre(afterPos)) {\n return false;\n } else {\n return isAtEndOfBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos);\n }\n };\n var needsToBeNbsp = function (root, pos) {\n return needsToBeNbspLeft(root, pos) || needsToBeNbspRight(root, pos);\n };\n var isNbspAt = function (text, offset) {\n return isNbsp(text.charAt(offset));\n };\n var hasNbsp = function (pos) {\n var container = pos.container();\n return NodeType.isText(container) && contains$2(container.data, nbsp);\n };\n var normalizeNbspMiddle = function (text) {\n return map(text.split(''), function (chr, i, chars) {\n if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) {\n return ' ';\n } else {\n return chr;\n }\n }).join('');\n };\n var normalizeNbspAtStart = function (root, node) {\n var text = node.data;\n var firstPos = CaretPosition(node, 0);\n if (isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos)) {\n node.data = ' ' + text.slice(1);\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbspInMiddleOfTextNode = function (node) {\n var text = node.data;\n var newText = normalizeNbspMiddle(text);\n if (newText !== text) {\n node.data = newText;\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbspAtEnd = function (root, node) {\n var text = node.data;\n var lastPos = CaretPosition(node, text.length - 1);\n if (isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos)) {\n node.data = text.slice(0, -1) + ' ';\n return true;\n } else {\n return false;\n }\n };\n var normalizeNbsps = function (root, pos) {\n return Option.some(pos).filter(hasNbsp).bind(function (pos) {\n var container = pos.container();\n var normalized = normalizeNbspAtStart(root, container) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container);\n return normalized ? Option.some(pos) : Option.none();\n });\n };\n var normalizeNbspsInEditor = function (editor) {\n var root = Element.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n normalizeNbsps(root, CaretPosition.fromRangeStart(editor.selection.getRng())).each(function (pos) {\n editor.selection.setRng(pos.toRange());\n });\n }\n };\n\n var locationToCaretPosition = function (root) {\n return function (location) {\n return location.fold(function (element) {\n return CaretFinder.prevPosition(root.dom(), CaretPosition$1.before(element));\n }, function (element) {\n return CaretFinder.firstPositionIn(element);\n }, function (element) {\n return CaretFinder.lastPositionIn(element);\n }, function (element) {\n return CaretFinder.nextPosition(root.dom(), CaretPosition$1.after(element));\n });\n };\n };\n var insertInlineBoundarySpaceOrNbsp = function (root, pos) {\n return function (checkPos) {\n return needsToHaveNbsp(root, checkPos) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n };\n };\n var setSelection$1 = function (editor) {\n return function (pos) {\n editor.selection.setRng(pos.toRange());\n editor.nodeChanged();\n return true;\n };\n };\n var insertSpaceOrNbspAtSelection = function (editor) {\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n var root = Element.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n var isInlineTarget = curry(InlineUtils.isInlineTarget, editor);\n var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng());\n return BoundaryLocation.readLocation(isInlineTarget, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor));\n } else {\n return false;\n }\n };\n\n var executeKeydownOverride$2 = function (editor, evt) {\n MatchKeys.execute([{\n keyCode: VK.SPACEBAR,\n action: MatchKeys.action(insertSpaceOrNbspAtSelection, editor)\n }], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$a = function (editor) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$2(editor, evt);\n }\n });\n };\n var SpaceKey = { setup: setup$a };\n\n var findBlockCaretContainer = function (editor) {\n return descendant(Element.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) {\n return elm.dom();\n });\n };\n var removeIeControlRect = function (editor) {\n editor.selection.setRng(editor.selection.getRng());\n };\n var showBlockCaretContainer = function (editor, blockCaretContainer) {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n removeIeControlRect(editor);\n editor.selection.scrollIntoView(blockCaretContainer);\n }\n };\n var handleBlockContainer = function (editor, e) {\n var blockCaretContainer = findBlockCaretContainer(editor);\n if (!blockCaretContainer) {\n return;\n }\n if (e.type === 'compositionstart') {\n e.preventDefault();\n e.stopPropagation();\n showBlockCaretContainer(editor, blockCaretContainer);\n return;\n }\n if (hasContent(blockCaretContainer)) {\n showBlockCaretContainer(editor, blockCaretContainer);\n editor.undoManager.add();\n }\n };\n var setup$b = function (editor) {\n editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\n };\n var CaretContainerInput = { setup: setup$b };\n\n var browser$4 = PlatformDetection$1.detect().browser;\n var setupIeInput = function (editor) {\n var keypressThrotter = first(function () {\n if (!editor.composing) {\n normalizeNbspsInEditor(editor);\n }\n }, 0);\n if (browser$4.isIE()) {\n editor.on('keypress', function (e) {\n keypressThrotter.throttle();\n });\n editor.on('remove', function (e) {\n keypressThrotter.cancel();\n });\n }\n };\n var setup$c = function (editor) {\n setupIeInput(editor);\n editor.on('input', function (e) {\n if (e.isComposing === false) {\n normalizeNbspsInEditor(editor);\n }\n });\n };\n\n var executeKeydownOverride$3 = function (editor, evt) {\n MatchKeys.execute([\n {\n keyCode: VK.END,\n action: moveToLineEndPoint(editor, true)\n },\n {\n keyCode: VK.HOME,\n action: moveToLineEndPoint(editor, false)\n }\n ], evt).each(function (_) {\n evt.preventDefault();\n });\n };\n var setup$d = function (editor) {\n editor.on('keydown', function (evt) {\n if (evt.isDefaultPrevented() === false) {\n executeKeydownOverride$3(editor, evt);\n }\n });\n };\n var HomeEndKeys = { setup: setup$d };\n\n var setup$e = function (editor) {\n var caret = BoundarySelection.setupSelectedState(editor);\n CaretContainerInput.setup(editor);\n ArrowKeys.setup(editor, caret);\n DeleteBackspaceKeys.setup(editor, caret);\n EnterKey.setup(editor);\n SpaceKey.setup(editor);\n setup$c(editor);\n HomeEndKeys.setup(editor);\n };\n var KeyboardOverrides = { setup: setup$e };\n\n var Quirks = function (editor) {\n var each = Tools.each;\n var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser;\n var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit;\n var mceInternalUrlPrefix = 'data:text/mce-internal,';\n var mceInternalDataType = isIE ? 'Text' : 'URL';\n var setEditorCommandState = function (cmd, state) {\n try {\n editor.getDoc().execCommand(cmd, false, state);\n } catch (ex) {\n }\n };\n var isDefaultPrevented = function (e) {\n return e.isDefaultPrevented();\n };\n var setMceInternalContent = function (e) {\n var selectionHtml, internalContent;\n if (e.dataTransfer) {\n if (editor.selection.isCollapsed() && e.target.tagName === 'IMG') {\n selection.select(e.target);\n }\n selectionHtml = editor.selection.getContent();\n if (selectionHtml.length > 0) {\n internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml);\n e.dataTransfer.setData(mceInternalDataType, internalContent);\n }\n }\n };\n var getMceInternalContent = function (e) {\n var internalContent;\n if (e.dataTransfer) {\n internalContent = e.dataTransfer.getData(mceInternalDataType);\n if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) {\n internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(',');\n return {\n id: unescape(internalContent[0]),\n html: unescape(internalContent[1])\n };\n }\n }\n return null;\n };\n var insertClipboardContents = function (content, internal) {\n if (editor.queryCommandSupported('mceInsertClipboardContent')) {\n editor.execCommand('mceInsertClipboardContent', false, {\n content: content,\n internal: internal\n });\n } else {\n editor.execCommand('mceInsertContent', false, content);\n }\n };\n var emptyEditorWhenDeleting = function () {\n var serializeRng = function (rng) {\n var body = dom.create('body');\n var contents = rng.cloneContents();\n body.appendChild(contents);\n return selection.serializer.serialize(body, { format: 'html' });\n };\n var allContentsSelected = function (rng) {\n var selection = serializeRng(rng);\n var allRng = dom.createRng();\n allRng.selectNode(editor.getBody());\n var allSelection = serializeRng(allRng);\n return selection === allSelection;\n };\n editor.on('keydown', function (e) {\n var keyCode = e.keyCode;\n var isCollapsed, body;\n if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) {\n isCollapsed = editor.selection.isCollapsed();\n body = editor.getBody();\n if (isCollapsed && !dom.isEmpty(body)) {\n return;\n }\n if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n return;\n }\n e.preventDefault();\n editor.setContent('');\n if (body.firstChild && dom.isBlock(body.firstChild)) {\n editor.selection.setCursorLocation(body.firstChild, 0);\n } else {\n editor.selection.setCursorLocation(body, 0);\n }\n editor.nodeChanged();\n }\n });\n };\n var selectAll = function () {\n editor.shortcuts.add('meta+a', null, 'SelectAll');\n };\n var inputMethodFocus = function () {\n if (!editor.inline) {\n dom.bind(editor.getDoc(), 'mousedown mouseup', function (e) {\n var rng;\n if (e.target === editor.getDoc().documentElement) {\n rng = selection.getRng();\n editor.getBody().focus();\n if (e.type === 'mousedown') {\n if (isCaretContainer(rng.startContainer)) {\n return;\n }\n selection.placeCaretAt(e.clientX, e.clientY);\n } else {\n selection.setRng(rng);\n }\n }\n });\n }\n };\n var removeHrOnBackspace = function () {\n editor.on('keydown', function (e) {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (!editor.getBody().getElementsByTagName('hr').length) {\n return;\n }\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n var node = selection.getNode();\n var previousSibling = node.previousSibling;\n if (node.nodeName === 'HR') {\n dom.remove(node);\n e.preventDefault();\n return;\n }\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\n dom.remove(previousSibling);\n e.preventDefault();\n }\n }\n }\n });\n };\n var focusBody = function () {\n if (!domGlobals.Range.prototype.getClientRects) {\n editor.on('mousedown', function (e) {\n if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\n var body_1 = editor.getBody();\n body_1.blur();\n Delay.setEditorTimeout(editor, function () {\n body_1.focus();\n });\n }\n });\n }\n };\n var selectControlElements = function () {\n editor.on('click', function (e) {\n var target = e.target;\n if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') {\n e.preventDefault();\n editor.selection.select(target);\n editor.nodeChanged();\n }\n if (target.nodeName === 'A' && dom.hasClass(target, 'mce-item-anchor')) {\n e.preventDefault();\n selection.select(target);\n }\n });\n };\n var removeStylesWhenDeletingAcrossBlockElements = function () {\n var getAttributeApplyFunction = function () {\n var template = dom.getAttribs(selection.getStart().cloneNode(false));\n return function () {\n var target = selection.getStart();\n if (target !== editor.getBody()) {\n dom.setAttrib(target, 'style', null);\n each(template, function (attr) {\n target.setAttributeNode(attr.cloneNode(true));\n });\n }\n };\n };\n var isSelectionAcrossElements = function () {\n return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\n };\n editor.on('keypress', function (e) {\n var applyAttributes;\n if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n editor.getDoc().execCommand('delete', false, null);\n applyAttributes();\n e.preventDefault();\n return false;\n }\n });\n dom.bind(editor.getDoc(), 'cut', function (e) {\n var applyAttributes;\n if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n Delay.setEditorTimeout(editor, function () {\n applyAttributes();\n });\n }\n });\n };\n var disableBackspaceIntoATable = function () {\n editor.on('keydown', function (e) {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n var previousSibling = selection.getNode().previousSibling;\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\n e.preventDefault();\n return false;\n }\n }\n }\n });\n };\n var removeBlockQuoteOnBackSpace = function () {\n editor.on('keydown', function (e) {\n var rng, container, offset, root, parent;\n if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) {\n return;\n }\n rng = selection.getRng();\n container = rng.startContainer;\n offset = rng.startOffset;\n root = dom.getRoot();\n parent = container;\n if (!rng.collapsed || offset !== 0) {\n return;\n }\n while (parent && parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {\n parent = parent.parentNode;\n }\n if (parent.tagName === 'BLOCKQUOTE') {\n editor.formatter.toggle('blockquote', null, parent);\n rng = dom.createRng();\n rng.setStart(container, 0);\n rng.setEnd(container, 0);\n selection.setRng(rng);\n }\n });\n };\n var setGeckoEditingOptions = function () {\n var setOpts = function () {\n setEditorCommandState('StyleWithCSS', false);\n setEditorCommandState('enableInlineTableEditing', false);\n if (!settings.object_resizing) {\n setEditorCommandState('enableObjectResizing', false);\n }\n };\n if (!settings.readonly) {\n editor.on('BeforeExecCommand mousedown', setOpts);\n }\n };\n var addBrAfterLastLinks = function () {\n var fixLinks = function () {\n each(dom.select('a'), function (node) {\n var parentNode = node.parentNode;\n var root = dom.getRoot();\n if (parentNode.lastChild === node) {\n while (parentNode && !dom.isBlock(parentNode)) {\n if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) {\n return;\n }\n parentNode = parentNode.parentNode;\n }\n dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\n }\n });\n };\n editor.on('SetContent ExecCommand', function (e) {\n if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\n fixLinks();\n }\n });\n };\n var setDefaultBlockType = function () {\n if (settings.forced_root_block) {\n editor.on('init', function () {\n setEditorCommandState('DefaultParagraphSeparator', Settings.getForcedRootBlock(editor));\n });\n }\n };\n var normalizeSelection = function () {\n editor.on('keyup focusin mouseup', function (e) {\n if (!VK.modifierPressed(e)) {\n selection.normalize();\n }\n }, true);\n };\n var showBrokenImageIcon = function () {\n editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\n };\n var restoreFocusOnKeyDown = function () {\n if (!editor.inline) {\n editor.on('keydown', function () {\n if (domGlobals.document.activeElement === domGlobals.document.body) {\n editor.getWin().focus();\n }\n });\n }\n };\n var bodyHeight = function () {\n if (!editor.inline) {\n editor.contentStyles.push('body {min-height: 150px}');\n editor.on('click', function (e) {\n var rng;\n if (e.target.nodeName === 'HTML') {\n if (Env.ie > 11) {\n editor.getBody().focus();\n return;\n }\n rng = editor.selection.getRng();\n editor.getBody().focus();\n editor.selection.setRng(rng);\n editor.selection.normalize();\n editor.nodeChanged();\n }\n });\n }\n };\n var blockCmdArrowNavigation = function () {\n if (Env.mac) {\n editor.on('keydown', function (e) {\n if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\n e.preventDefault();\n var selection_1 = editor.selection.getSel();\n selection_1.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\n }\n });\n }\n };\n var disableAutoUrlDetect = function () {\n setEditorCommandState('AutoUrlDetect', false);\n };\n var tapLinksAndImages = function () {\n editor.on('click', function (e) {\n var elm = e.target;\n do {\n if (elm.tagName === 'A') {\n e.preventDefault();\n return;\n }\n } while (elm = elm.parentNode);\n });\n editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n };\n var blockFormSubmitInsideEditor = function () {\n editor.on('init', function () {\n editor.dom.bind(editor.getBody(), 'submit', function (e) {\n e.preventDefault();\n });\n });\n };\n var removeAppleInterchangeBrs = function () {\n parser.addNodeFilter('br', function (nodes) {\n var i = nodes.length;\n while (i--) {\n if (nodes[i].attr('class') === 'Apple-interchange-newline') {\n nodes[i].remove();\n }\n }\n });\n };\n var ieInternalDragAndDrop = function () {\n editor.on('dragstart', function (e) {\n setMceInternalContent(e);\n });\n editor.on('drop', function (e) {\n if (!isDefaultPrevented(e)) {\n var internalContent = getMceInternalContent(e);\n if (internalContent && internalContent.id !== editor.id) {\n e.preventDefault();\n var rng = CaretRangeFromPoint.fromPoint(e.x, e.y, editor.getDoc());\n selection.setRng(rng);\n insertClipboardContents(internalContent.html, true);\n }\n }\n });\n };\n var refreshContentEditable = function () {\n };\n var isHidden = function () {\n var sel;\n if (!isGecko || editor.removed) {\n return false;\n }\n sel = editor.selection.getSel();\n return !sel || !sel.rangeCount || sel.rangeCount === 0;\n };\n removeBlockQuoteOnBackSpace();\n emptyEditorWhenDeleting();\n if (!Env.windowsPhone) {\n normalizeSelection();\n }\n if (isWebKit) {\n inputMethodFocus();\n selectControlElements();\n setDefaultBlockType();\n blockFormSubmitInsideEditor();\n disableBackspaceIntoATable();\n removeAppleInterchangeBrs();\n if (Env.iOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n } else {\n selectAll();\n }\n }\n if (Env.ie >= 11) {\n bodyHeight();\n disableBackspaceIntoATable();\n }\n if (Env.ie) {\n selectAll();\n disableAutoUrlDetect();\n ieInternalDragAndDrop();\n }\n if (isGecko) {\n removeHrOnBackspace();\n focusBody();\n removeStylesWhenDeletingAcrossBlockElements();\n setGeckoEditingOptions();\n addBrAfterLastLinks();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n disableBackspaceIntoATable();\n }\n return {\n refreshContentEditable: refreshContentEditable,\n isHidden: isHidden\n };\n };\n\n var isTextBlockNode = function (node) {\n return NodeType.isElement(node) && isTextBlock(Element.fromDom(node));\n };\n var normalizeSelection$1 = function (editor) {\n var rng = editor.selection.getRng();\n var startPos = CaretPosition.fromRangeStart(rng);\n var endPos = CaretPosition.fromRangeEnd(rng);\n if (CaretPosition.isElementPosition(startPos)) {\n var container = startPos.container();\n if (isTextBlockNode(container)) {\n CaretFinder.firstPositionIn(container).each(function (pos) {\n return rng.setStart(pos.container(), pos.offset());\n });\n }\n }\n if (CaretPosition.isElementPosition(endPos)) {\n var container = startPos.container();\n if (isTextBlockNode(container)) {\n CaretFinder.lastPositionIn(container).each(function (pos) {\n return rng.setEnd(pos.container(), pos.offset());\n });\n }\n }\n editor.selection.setRng(RangeNormalizer.normalize(rng));\n };\n var setup$f = function (editor) {\n editor.on('click', function (e) {\n if (e.detail >= 3) {\n normalizeSelection$1(editor);\n }\n });\n };\n\n var preventSummaryToggle = function (editor) {\n editor.on('click', function (e) {\n if (editor.dom.getParent(e.target, 'details')) {\n e.preventDefault();\n }\n });\n };\n var filterDetails = function (editor) {\n editor.parser.addNodeFilter('details', function (elms) {\n each(elms, function (details) {\n details.attr('data-mce-open', details.attr('open'));\n details.attr('open', 'open');\n });\n });\n editor.serializer.addNodeFilter('details', function (elms) {\n each(elms, function (details) {\n var open = details.attr('data-mce-open');\n details.attr('open', isString(open) ? open : null);\n details.attr('data-mce-open', null);\n });\n });\n };\n var setup$g = function (editor) {\n preventSummaryToggle(editor);\n filterDetails(editor);\n };\n\n var DOM$2 = DOMUtils$1.DOM;\n var appendStyle = function (editor, text) {\n var head = Element.fromDom(editor.getDoc().head);\n var tag = Element.fromTag('style');\n set(tag, 'type', 'text/css');\n append(tag, Element.fromText(text));\n append(head, tag);\n };\n var createParser = function (editor) {\n var parser = DomParser(editor.settings, editor.schema);\n parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name) {\n var i = nodes.length, node;\n var dom = editor.dom;\n var value, internalName;\n while (i--) {\n node = nodes[i];\n value = node.attr(name);\n internalName = 'data-mce-' + name;\n if (!node.attr(internalName)) {\n if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\n continue;\n }\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n if (!value.length) {\n value = null;\n }\n node.attr(internalName, value);\n node.attr(name, value);\n } else if (name === 'tabindex') {\n node.attr(internalName, value);\n node.attr(name, null);\n } else {\n node.attr(internalName, editor.convertURL(value, name, node.name));\n }\n }\n }\n });\n parser.addNodeFilter('script', function (nodes) {\n var i = nodes.length, node, type;\n while (i--) {\n node = nodes[i];\n type = node.attr('type') || 'no/type';\n if (type.indexOf('mce-') !== 0) {\n node.attr('type', 'mce-' + type);\n }\n }\n });\n parser.addNodeFilter('#cdata', function (nodes) {\n var i = nodes.length, node;\n while (i--) {\n node = nodes[i];\n node.type = 8;\n node.name = '#comment';\n node.value = '[CDATA[' + node.value + ']]';\n }\n });\n parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function (nodes) {\n var i = nodes.length, node;\n var nonEmptyElements = editor.schema.getNonEmptyElements();\n while (i--) {\n node = nodes[i];\n if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\n node.append(new Node$1('br', 1)).shortEnded = true;\n }\n }\n });\n return parser;\n };\n var autoFocus = function (editor) {\n if (editor.settings.auto_focus) {\n Delay.setEditorTimeout(editor, function () {\n var focusEditor;\n if (editor.settings.auto_focus === true) {\n focusEditor = editor;\n } else {\n focusEditor = editor.editorManager.get(editor.settings.auto_focus);\n }\n if (!focusEditor.destroyed) {\n focusEditor.focus();\n }\n }, 100);\n }\n };\n var initEditor = function (editor) {\n editor.bindPendingEventDelegates();\n editor.initialized = true;\n editor.fire('init');\n editor.focus(true);\n editor.nodeChanged({ initial: true });\n editor.execCallback('init_instance_callback', editor);\n autoFocus(editor);\n };\n var getStyleSheetLoader = function (editor) {\n return editor.inline ? DOM$2.styleSheetLoader : editor.dom.styleSheetLoader;\n };\n var initContentBody = function (editor, skipWrite) {\n var settings = editor.settings;\n var targetElm = editor.getElement();\n var doc = editor.getDoc(), body, contentCssText;\n if (!settings.inline) {\n editor.getElement().style.visibility = editor.orgVisibility;\n }\n if (!skipWrite && !editor.inline) {\n doc.open();\n doc.write(editor.iframeHTML);\n doc.close();\n }\n if (editor.inline) {\n editor.on('remove', function () {\n var bodyEl = this.getBody();\n DOM$2.removeClass(bodyEl, 'mce-content-body');\n DOM$2.removeClass(bodyEl, 'mce-edit-focus');\n DOM$2.setAttrib(bodyEl, 'contentEditable', null);\n });\n DOM$2.addClass(targetElm, 'mce-content-body');\n editor.contentDocument = doc = settings.content_document || domGlobals.document;\n editor.contentWindow = settings.content_window || domGlobals.window;\n editor.bodyElement = targetElm;\n editor.contentAreaContainer = targetElm;\n settings.content_document = settings.content_window = null;\n settings.root_name = targetElm.nodeName.toLowerCase();\n }\n body = editor.getBody();\n body.disabled = true;\n editor.readonly = settings.readonly;\n if (!editor.readonly) {\n if (editor.inline && DOM$2.getStyle(body, 'position', true) === 'static') {\n body.style.position = 'relative';\n }\n body.contentEditable = editor.getParam('content_editable_state', true);\n }\n body.disabled = false;\n editor.editorUpload = EditorUpload(editor);\n editor.schema = Schema(settings);\n editor.dom = DOMUtils$1(doc, {\n keep_values: true,\n url_converter: editor.convertURL,\n url_converter_scope: editor,\n hex_colors: settings.force_hex_style_colors,\n update_styles: true,\n root_element: editor.inline ? editor.getBody() : null,\n collect: function () {\n return editor.inline;\n },\n schema: editor.schema,\n contentCssCors: Settings.shouldUseContentCssCors(editor),\n onSetAttrib: function (e) {\n editor.fire('SetAttrib', e);\n }\n });\n editor.parser = createParser(editor);\n editor.serializer = Serializer$1(settings, editor);\n editor.selection = Selection(editor.dom, editor.getWin(), editor.serializer, editor);\n editor.annotator = Annotator(editor);\n editor.formatter = Formatter(editor);\n editor.undoManager = UndoManager(editor);\n editor._nodeChangeDispatcher = new NodeChange(editor);\n editor._selectionOverrides = SelectionOverrides(editor);\n setup$g(editor);\n setup$f(editor);\n KeyboardOverrides.setup(editor);\n ForceBlocks.setup(editor);\n editor.fire('PreInit');\n if (!settings.browser_spellcheck && !settings.gecko_spellcheck) {\n doc.body.spellcheck = false;\n DOM$2.setAttrib(body, 'spellcheck', 'false');\n }\n editor.quirks = Quirks(editor);\n editor.fire('PostRender');\n if (settings.directionality) {\n body.dir = settings.directionality;\n }\n if (settings.protect) {\n editor.on('BeforeSetContent', function (e) {\n Tools.each(settings.protect, function (pattern) {\n e.content = e.content.replace(pattern, function (str) {\n return '';\n });\n });\n });\n }\n editor.on('SetContent', function () {\n editor.addVisual(editor.getBody());\n });\n editor.load({\n initial: true,\n format: 'html'\n });\n editor.startContent = editor.getContent({ format: 'raw' });\n editor.on('compositionstart compositionend', function (e) {\n editor.composing = e.type === 'compositionstart';\n });\n if (editor.contentStyles.length > 0) {\n contentCssText = '';\n Tools.each(editor.contentStyles, function (style) {\n contentCssText += style + '\\r\\n';\n });\n editor.dom.addStyle(contentCssText);\n }\n getStyleSheetLoader(editor).loadAll(editor.contentCSS, function (_) {\n initEditor(editor);\n }, function (urls) {\n initEditor(editor);\n });\n if (settings.content_style) {\n appendStyle(editor, settings.content_style);\n }\n };\n var InitContentBody = { initContentBody: initContentBody };\n\n var DOM$3 = DOMUtils$1.DOM;\n var relaxDomain = function (editor, ifr) {\n if (domGlobals.document.domain !== domGlobals.window.location.hostname && Env.ie && Env.ie < 12) {\n var bodyUuid = Uuid.uuid('mce');\n editor[bodyUuid] = function () {\n InitContentBody.initContentBody(editor);\n };\n var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain=\"' + domGlobals.document.domain + '\";' + 'var ed = window.parent.tinymce.get(\"' + editor.id + '\");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()';\n DOM$3.setAttrib(ifr, 'src', domainRelaxUrl);\n return true;\n }\n return false;\n };\n var createIframeElement = function (id, title, height, customAttrs) {\n var iframe = Element.fromTag('iframe');\n setAll(iframe, customAttrs);\n setAll(iframe, {\n id: id + '_ifr',\n frameBorder: '0',\n allowTransparency: 'true',\n title: title\n });\n add$3(iframe, 'tox-edit-area__iframe');\n return iframe;\n };\n var getIframeHtml = function (editor) {\n var bodyId, bodyClass, iframeHTML;\n iframeHTML = Settings.getDocType(editor) + '';\n if (Settings.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\n iframeHTML += '';\n }\n iframeHTML += '';\n bodyId = Settings.getBodyId(editor);\n bodyClass = Settings.getBodyClass(editor);\n if (Settings.getContentSecurityPolicy(editor)) {\n iframeHTML += '';\n }\n iframeHTML += '
    ';\n return iframeHTML;\n };\n var createIframe = function (editor, o) {\n var title = editor.editorManager.translate('Rich Text Area. Press ALT-0 for help.');\n var ifr = createIframeElement(editor.id, title, o.height, Settings.getIframeAttrs(editor)).dom();\n ifr.onload = function () {\n ifr.onload = null;\n editor.fire('load');\n };\n var isDomainRelaxed = relaxDomain(editor, ifr);\n editor.contentAreaContainer = o.iframeContainer;\n editor.iframeElement = ifr;\n editor.iframeHTML = getIframeHtml(editor);\n DOM$3.add(o.iframeContainer, ifr);\n return isDomainRelaxed;\n };\n var init$1 = function (editor, boxInfo) {\n var isDomainRelaxed = createIframe(editor, boxInfo);\n if (boxInfo.editorContainer) {\n DOM$3.get(boxInfo.editorContainer).style.display = editor.orgDisplay;\n editor.hidden = DOM$3.isHidden(boxInfo.editorContainer);\n }\n editor.getElement().style.display = 'none';\n DOM$3.setAttrib(editor.id, 'aria-hidden', 'true');\n if (!isDomainRelaxed) {\n InitContentBody.initContentBody(editor);\n }\n };\n var InitIframe = { init: init$1 };\n\n var isContentCssSkinName = function (url) {\n return /^[a-z0-9\\-]+$/i.test(url);\n };\n var getContentCssUrls = function (editor) {\n var contentCss = Settings.getContentCss(editor);\n var skinUrl = editor.editorManager.baseURL + '/skins/content';\n var suffix = editor.editorManager.suffix;\n var contentCssFile = 'content' + suffix + '.css';\n var inline = editor.inline === true;\n return map(contentCss, function (url) {\n if (isContentCssSkinName(url) && !inline) {\n return skinUrl + '/' + url + '/' + contentCssFile;\n } else {\n return editor.documentBaseURI.toAbsolute(url);\n }\n });\n };\n var appendContentCssFromSettings = function (editor) {\n editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor));\n };\n\n var DOM$4 = DOMUtils$1.DOM;\n var initPlugin = function (editor, initializedPlugins, plugin) {\n var Plugin = PluginManager$1.get(plugin);\n var pluginUrl = PluginManager$1.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\n plugin = Tools.trim(plugin);\n if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) {\n Tools.each(PluginManager$1.dependencies(plugin), function (dep) {\n initPlugin(editor, initializedPlugins, dep);\n });\n if (editor.plugins[plugin]) {\n return;\n }\n try {\n var pluginInstance = new Plugin(editor, pluginUrl, editor.$);\n editor.plugins[plugin] = pluginInstance;\n if (pluginInstance.init) {\n pluginInstance.init(editor, pluginUrl);\n initializedPlugins.push(plugin);\n }\n } catch (e) {\n ErrorReporter.pluginInitError(editor, plugin, e);\n }\n }\n };\n var trimLegacyPrefix = function (name) {\n return name.replace(/^\\-/, '');\n };\n var initPlugins = function (editor) {\n var initializedPlugins = [];\n Tools.each(editor.settings.plugins.split(/[ ,]/), function (name) {\n initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\n });\n };\n var initIcons = function (editor) {\n var iconPackName = Tools.trim(editor.settings.icons);\n var currentIcons = editor.ui.registry.getAll().icons;\n var defaultIcons = getAll();\n var loadIcons = __assign({}, defaultIcons, IconManager.get(iconPackName).icons);\n each$3(loadIcons, function (svgData, icon) {\n if (!has(currentIcons, icon)) {\n editor.ui.registry.addIcon(icon, svgData);\n }\n });\n };\n var initTheme = function (editor) {\n var theme = editor.settings.theme;\n if (isString(theme)) {\n editor.settings.theme = trimLegacyPrefix(theme);\n var Theme = ThemeManager.get(theme);\n editor.theme = new Theme(editor, ThemeManager.urls[theme]);\n if (editor.theme.init) {\n editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''), editor.$);\n }\n } else {\n editor.theme = {};\n }\n };\n var renderFromLoadedTheme = function (editor) {\n return editor.theme.renderUI();\n };\n var renderFromThemeFunc = function (editor) {\n var elm = editor.getElement();\n var theme = editor.settings.theme;\n var info = theme(editor, elm);\n if (info.editorContainer.nodeType) {\n info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\n }\n if (info.iframeContainer && info.iframeContainer.nodeType) {\n info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\n }\n info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\n return info;\n };\n var createThemeFalseResult = function (element) {\n return {\n editorContainer: element,\n iframeContainer: element\n };\n };\n var renderThemeFalseIframe = function (targetElement) {\n var iframeContainer = DOM$4.create('div');\n DOM$4.insertAfter(iframeContainer, targetElement);\n return createThemeFalseResult(iframeContainer);\n };\n var renderThemeFalse = function (editor) {\n var targetElement = editor.getElement();\n return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\n };\n var renderThemeUi = function (editor) {\n var elm = editor.getElement();\n editor.orgDisplay = elm.style.display;\n if (isString(editor.settings.theme)) {\n return renderFromLoadedTheme(editor);\n } else if (isFunction(editor.settings.theme)) {\n return renderFromThemeFunc(editor);\n } else {\n return renderThemeFalse(editor);\n }\n };\n var init$2 = function (editor) {\n editor.fire('ScriptsLoaded');\n initIcons(editor);\n initTheme(editor);\n initPlugins(editor);\n var boxInfo = renderThemeUi(editor);\n editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null;\n appendContentCssFromSettings(editor);\n if (editor.inline) {\n return InitContentBody.initContentBody(editor);\n } else {\n return InitIframe.init(editor, boxInfo);\n }\n };\n var Init = { init: init$2 };\n\n var DOM$5 = DOMUtils$1.DOM;\n var hasSkipLoadPrefix = function (name) {\n return name.charAt(0) === '-';\n };\n var loadLanguage = function (scriptLoader, editor) {\n var languageCode = Settings.getLanguageCode(editor);\n var languageUrl = Settings.getLanguageUrl(editor);\n if (I18n.hasCode(languageCode) === false && languageCode !== 'en') {\n if (languageUrl !== '') {\n scriptLoader.add(languageUrl);\n } else {\n scriptLoader.add(editor.editorManager.baseURL + '/langs/' + languageCode + '.js');\n }\n }\n };\n var loadTheme = function (scriptLoader, editor, suffix, callback) {\n var settings = editor.settings, theme = settings.theme;\n if (isString(theme)) {\n if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) {\n var themeUrl = settings.theme_url;\n if (themeUrl) {\n ThemeManager.load(theme, editor.documentBaseURI.toAbsolute(themeUrl));\n } else {\n ThemeManager.load(theme, 'themes/' + theme + '/theme' + suffix + '.js');\n }\n }\n scriptLoader.loadQueue(function () {\n ThemeManager.waitFor(theme, callback);\n });\n } else {\n callback();\n }\n };\n var loadIcons = function (editor) {\n var iconPackName = Tools.trim(editor.getParam('icons', '', 'string'));\n if (iconPackName.length > 0 && !IconManager.has(iconPackName)) {\n var urlString = editor.editorManager.baseURL + '/icons/' + iconPackName + '/icons.js';\n ScriptLoader.ScriptLoader.add(urlString);\n }\n };\n var loadPlugins = function (settings, suffix) {\n if (Tools.isArray(settings.plugins)) {\n settings.plugins = settings.plugins.join(' ');\n }\n Tools.each(settings.external_plugins, function (url, name) {\n PluginManager$1.load(name, url);\n settings.plugins += ' ' + name;\n });\n Tools.each(settings.plugins.split(/[ ,]/), function (plugin) {\n plugin = Tools.trim(plugin);\n if (plugin && !PluginManager$1.urls[plugin]) {\n if (hasSkipLoadPrefix(plugin)) {\n plugin = plugin.substr(1, plugin.length);\n var dependencies = PluginManager$1.dependencies(plugin);\n Tools.each(dependencies, function (dep) {\n var defaultSettings = {\n prefix: 'plugins/',\n resource: dep,\n suffix: '/plugin' + suffix + '.js'\n };\n dep = PluginManager$1.createUrl(defaultSettings, dep);\n PluginManager$1.load(dep.resource, dep);\n });\n } else {\n PluginManager$1.load(plugin, {\n prefix: 'plugins/',\n resource: plugin,\n suffix: '/plugin' + suffix + '.js'\n });\n }\n }\n });\n };\n var loadScripts = function (editor, suffix) {\n var scriptLoader = ScriptLoader.ScriptLoader;\n loadTheme(scriptLoader, editor, suffix, function () {\n loadLanguage(scriptLoader, editor);\n loadIcons(editor);\n loadPlugins(editor.settings, suffix);\n scriptLoader.loadQueue(function () {\n if (!editor.removed) {\n Init.init(editor);\n }\n }, editor, function (urls) {\n ErrorReporter.pluginLoadError(editor, urls[0]);\n if (!editor.removed) {\n Init.init(editor);\n }\n });\n });\n };\n var render = function (editor) {\n var settings = editor.settings, id = editor.id;\n I18n.setCode(Settings.getLanguageCode(editor));\n var readyHandler = function () {\n DOM$5.unbind(domGlobals.window, 'ready', readyHandler);\n editor.render();\n };\n if (!EventUtils.Event.domLoaded) {\n DOM$5.bind(domGlobals.window, 'ready', readyHandler);\n return;\n }\n if (!editor.getElement()) {\n return;\n }\n if (!Env.contentEditable) {\n return;\n }\n if (!settings.inline) {\n editor.orgVisibility = editor.getElement().style.visibility;\n editor.getElement().style.visibility = 'hidden';\n } else {\n editor.inline = true;\n }\n var form = editor.getElement().form || DOM$5.getParent(id, 'form');\n if (form) {\n editor.formElement = form;\n if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(editor.getElement().nodeName)) {\n DOM$5.insertAfter(DOM$5.create('input', {\n type: 'hidden',\n name: id\n }), id);\n editor.hasHiddenInput = true;\n }\n editor.formEventDelegate = function (e) {\n editor.fire(e.type, e);\n };\n DOM$5.bind(form, 'submit reset', editor.formEventDelegate);\n editor.on('reset', function () {\n editor.resetContent();\n });\n if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\n form._mceOldSubmit = form.submit;\n form.submit = function () {\n editor.editorManager.triggerSave();\n editor.setDirty(false);\n return form._mceOldSubmit(form);\n };\n }\n }\n editor.windowManager = WindowManager(editor);\n editor.notificationManager = NotificationManager(editor);\n if (settings.encoding === 'xml') {\n editor.on('GetContent', function (e) {\n if (e.save) {\n e.content = DOM$5.encode(e.content);\n }\n });\n }\n if (settings.add_form_submit_trigger) {\n editor.on('submit', function () {\n if (editor.initialized) {\n editor.save();\n }\n });\n }\n if (settings.add_unload_trigger) {\n editor._beforeUnload = function () {\n if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\n editor.save({\n format: 'raw',\n no_events: true,\n set_dirty: false\n });\n }\n };\n editor.editorManager.on('BeforeUnload', editor._beforeUnload);\n }\n editor.editorManager.add(editor);\n loadScripts(editor, editor.suffix);\n };\n var Render = { render: render };\n\n var toggleClass = function (elm, cls, state) {\n if (has$2(elm, cls) && state === false) {\n remove$4(elm, cls);\n } else if (state) {\n add$3(elm, cls);\n }\n };\n var create$3 = function (editor) {\n var activeMode = 'design';\n var defaultModes = [\n 'design',\n 'readonly'\n ];\n var availableModes = {\n design: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: false\n },\n readonly: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: true\n }\n };\n var setEditorCommandState = function (cmd, state) {\n try {\n editor.getDoc().execCommand(cmd, false, state);\n } catch (ex) {\n }\n };\n var toggleReadOnly = function (state) {\n toggleClass(Element.fromDom(editor.getBody()), 'mce-content-readonly', state);\n if (state) {\n editor.selection.controlSelection.hideResizeRect();\n editor.readonly = true;\n editor.getBody().contentEditable = 'false';\n } else {\n editor.readonly = false;\n editor.getBody().contentEditable = 'true';\n setEditorCommandState('StyleWithCSS', false);\n setEditorCommandState('enableInlineTableEditing', false);\n setEditorCommandState('enableObjectResizing', false);\n editor.focus();\n editor.nodeChanged();\n }\n };\n var switchToMode = function (mode) {\n var oldMode = availableModes[activeMode];\n var newMode = availableModes[mode];\n try {\n newMode.activate();\n } catch (e) {\n domGlobals.console.error('problem while activating editor mode ' + mode + ':', e);\n return;\n }\n oldMode.deactivate();\n if (oldMode.editorReadOnly !== newMode.editorReadOnly) {\n toggleReadOnly(newMode.editorReadOnly);\n }\n activeMode = mode;\n Events.fireSwitchMode(editor, mode);\n };\n var set = function (mode) {\n if (mode === activeMode) {\n return;\n } else if (!has(availableModes, mode)) {\n throw new Error('Editor mode \\'' + mode + '\\' is invalid');\n }\n if (editor.initialized) {\n switchToMode(mode);\n } else {\n editor.on('init', function () {\n return switchToMode(mode);\n });\n }\n };\n var get = function () {\n return activeMode;\n };\n var isReadOnly = function () {\n return editor.readonly === true;\n };\n var register = function (mode, api) {\n if (contains(defaultModes, mode)) {\n throw new Error('Cannot override default mode ' + mode);\n }\n availableModes[mode] = __assign({}, api, {\n deactivate: function () {\n try {\n api.deactivate();\n } catch (e) {\n domGlobals.console.error('problem while deactivating editor mode ' + mode + ':');\n domGlobals.console.error(e);\n }\n }\n });\n };\n return {\n isReadOnly: isReadOnly,\n set: set,\n get: get,\n register: register\n };\n };\n\n var hasOnlyOneChild$1 = function (node) {\n return node.firstChild && node.firstChild === node.lastChild;\n };\n var isPaddingNode = function (node) {\n return node.name === 'br' || node.value === '\\xA0';\n };\n var isPaddedEmptyBlock = function (schema, node) {\n var blockElements = schema.getBlockElements();\n return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild);\n };\n var isEmptyFragmentElement = function (schema, node) {\n var nonEmptyElements = schema.getNonEmptyElements();\n return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\n };\n var isListFragment = function (schema, fragment) {\n var firstChild = fragment.firstChild;\n var lastChild = fragment.lastChild;\n if (firstChild && firstChild.name === 'meta') {\n firstChild = firstChild.next;\n }\n if (lastChild && lastChild.attr('id') === 'mce_marker') {\n lastChild = lastChild.prev;\n }\n if (isEmptyFragmentElement(schema, lastChild)) {\n lastChild = lastChild.prev;\n }\n if (!firstChild || firstChild !== lastChild) {\n return false;\n }\n return firstChild.name === 'ul' || firstChild.name === 'ol';\n };\n var cleanupDomFragment = function (domFragment) {\n var firstChild = domFragment.firstChild;\n var lastChild = domFragment.lastChild;\n if (firstChild && firstChild.nodeName === 'META') {\n firstChild.parentNode.removeChild(firstChild);\n }\n if (lastChild && lastChild.id === 'mce_marker') {\n lastChild.parentNode.removeChild(lastChild);\n }\n return domFragment;\n };\n var toDomFragment = function (dom, serializer, fragment) {\n var html = serializer.serialize(fragment);\n var domFragment = dom.createFragment(html);\n return cleanupDomFragment(domFragment);\n };\n var listItems$1 = function (elm) {\n return Tools.grep(elm.childNodes, function (child) {\n return child.nodeName === 'LI';\n });\n };\n var isPadding = function (node) {\n return node.data === '\\xA0' || NodeType.isBr(node);\n };\n var isListItemPadded = function (node) {\n return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild);\n };\n var isEmptyOrPadded = function (elm) {\n return !elm.firstChild || isListItemPadded(elm);\n };\n var trimListItems = function (elms) {\n return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n };\n var getParentLi = function (dom, node) {\n var parentBlock = dom.getParent(node, dom.isBlock);\n return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n };\n var isParentBlockLi = function (dom, node) {\n return !!getParentLi(dom, node);\n };\n var getSplit = function (parentNode, rng) {\n var beforeRng = rng.cloneRange();\n var afterRng = rng.cloneRange();\n beforeRng.setStartBefore(parentNode);\n afterRng.setEndAfter(parentNode);\n return [\n beforeRng.cloneContents(),\n afterRng.cloneContents()\n ];\n };\n var findFirstIn = function (node, rootNode) {\n var caretPos = CaretPosition$1.before(node);\n var caretWalker = CaretWalker(rootNode);\n var newCaretPos = caretWalker.next(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n var findLastOf = function (node, rootNode) {\n var caretPos = CaretPosition$1.after(node);\n var caretWalker = CaretWalker(rootNode);\n var newCaretPos = caretWalker.prev(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n var insertMiddle = function (target, elms, rootNode, rng) {\n var parts = getSplit(target, rng);\n var parentElm = target.parentNode;\n parentElm.insertBefore(parts[0], target);\n Tools.each(elms, function (li) {\n parentElm.insertBefore(li, target);\n });\n parentElm.insertBefore(parts[1], target);\n parentElm.removeChild(target);\n return findLastOf(elms[elms.length - 1], rootNode);\n };\n var insertBefore$1 = function (target, elms, rootNode) {\n var parentElm = target.parentNode;\n Tools.each(elms, function (elm) {\n parentElm.insertBefore(elm, target);\n });\n return findFirstIn(target, rootNode);\n };\n var insertAfter$1 = function (target, elms, rootNode, dom) {\n dom.insertAfter(elms.reverse(), target);\n return findLastOf(elms[0], rootNode);\n };\n var insertAtCaret = function (serializer, dom, rng, fragment) {\n var domFragment = toDomFragment(dom, serializer, fragment);\n var liTarget = getParentLi(dom, rng.startContainer);\n var liElms = trimListItems(listItems$1(domFragment.firstChild));\n var BEGINNING = 1, END = 2;\n var rootNode = dom.getRoot();\n var isAt = function (location) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n var caretWalker = CaretWalker(dom.getRoot());\n var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;\n };\n if (isAt(BEGINNING)) {\n return insertBefore$1(liTarget, liElms, rootNode);\n } else if (isAt(END)) {\n return insertAfter$1(liTarget, liElms, rootNode, dom);\n }\n return insertMiddle(liTarget, liElms, rootNode, rng);\n };\n var InsertList = {\n isListFragment: isListFragment,\n insertAtCaret: insertAtCaret,\n isParentBlockLi: isParentBlockLi,\n trimListItems: trimListItems,\n listItems: listItems$1\n };\n\n var isAfterNbsp = function (container, offset) {\n return NodeType.isText(container) && container.nodeValue[offset - 1] === '\\xA0';\n };\n var trimOrPadLeftRight = function (rng, html) {\n var container, offset;\n container = rng.startContainer;\n offset = rng.startOffset;\n var hasSiblingText = function (siblingName) {\n return container[siblingName] && container[siblingName].nodeType === 3;\n };\n if (container.nodeType === 3) {\n if (offset > 0) {\n html = html.replace(/^ /, ' ');\n } else if (!hasSiblingText('previousSibling')) {\n html = html.replace(/^ /, ' ');\n }\n if (offset < container.length) {\n html = html.replace(/ (
    |)$/, ' ');\n } else if (!hasSiblingText('nextSibling')) {\n html = html.replace(/( | )(
    |)$/, ' ');\n }\n }\n return html;\n };\n var trimNbspAfterDeleteAndPadValue = function (rng, value) {\n var container, offset;\n container = rng.startContainer;\n offset = rng.startOffset;\n if (container.nodeType === 3 && rng.collapsed) {\n if (container.data[offset] === '\\xA0') {\n container.deleteData(offset, 1);\n if (!/[\\u00a0| ]$/.test(value)) {\n value += ' ';\n }\n } else if (container.data[offset - 1] === '\\xA0') {\n container.deleteData(offset - 1, 1);\n if (!/[\\u00a0| ]$/.test(value)) {\n value = ' ' + value;\n }\n }\n }\n return value;\n };\n\n var isTableCell$5 = NodeType.matchNodeNames('td th');\n var selectionSetContent = function (editor, content) {\n var rng = editor.selection.getRng();\n var container = rng.startContainer;\n var offset = rng.startOffset;\n if (rng.collapsed && isAfterNbsp(container, offset) && NodeType.isText(container)) {\n container.insertData(offset - 1, ' ');\n container.deleteData(offset, 1);\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n editor.selection.setRng(rng);\n }\n editor.selection.setContent(content);\n };\n var validInsertion = function (editor, value, parentNode) {\n if (parentNode.getAttribute('data-mce-bogus') === 'all') {\n parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode);\n } else {\n var node = parentNode.firstChild;\n var node2 = parentNode.lastChild;\n if (!node || node === node2 && node.nodeName === 'BR') {\n editor.dom.setHTML(parentNode, value);\n } else {\n selectionSetContent(editor, value);\n }\n }\n };\n var trimBrsFromTableCell = function (dom, elm) {\n Option.from(dom.getParent(elm, 'td,th')).map(Element.fromDom).each(PaddingBr.trimBlockTrailingBr);\n };\n var reduceInlineTextElements = function (editor, merge) {\n var textInlineElements = editor.schema.getTextInlineElements();\n var dom = editor.dom;\n if (merge) {\n var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom);\n Tools.each(dom.select('*[data-mce-fragment]'), function (node) {\n for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) {\n if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) {\n dom.remove(node, true);\n }\n }\n });\n }\n };\n var markFragmentElements = function (fragment) {\n var node = fragment;\n while (node = node.walk()) {\n if (node.type === 1) {\n node.attr('data-mce-fragment', '1');\n }\n }\n };\n var umarkFragmentElements = function (elm) {\n Tools.each(elm.getElementsByTagName('*'), function (elm) {\n elm.removeAttribute('data-mce-fragment');\n });\n };\n var isPartOfFragment = function (node) {\n return !!node.getAttribute('data-mce-fragment');\n };\n var canHaveChildren = function (editor, node) {\n return node && !editor.schema.getShortEndedElements()[node.nodeName];\n };\n var moveSelectionToMarker = function (editor, marker) {\n var parentEditableFalseElm, parentBlock, nextRng;\n var dom = editor.dom, selection = editor.selection;\n var node, node2;\n var getContentEditableFalseParent = function (node) {\n var root = editor.getBody();\n for (; node && node !== root; node = node.parentNode) {\n if (editor.dom.getContentEditable(node) === 'false') {\n return node;\n }\n }\n return null;\n };\n if (!marker) {\n return;\n }\n editor.selection.scrollIntoView(marker);\n parentEditableFalseElm = getContentEditableFalseParent(marker);\n if (parentEditableFalseElm) {\n dom.remove(marker);\n selection.select(parentEditableFalseElm);\n return;\n }\n var rng = dom.createRng();\n node = marker.previousSibling;\n if (node && node.nodeType === 3) {\n rng.setStart(node, node.nodeValue.length);\n if (!Env.ie) {\n node2 = marker.nextSibling;\n if (node2 && node2.nodeType === 3) {\n node.appendData(node2.data);\n node2.parentNode.removeChild(node2);\n }\n }\n } else {\n rng.setStartBefore(marker);\n rng.setEndBefore(marker);\n }\n var findNextCaretRng = function (rng) {\n var caretPos = CaretPosition$1.fromRangeStart(rng);\n var caretWalker = CaretWalker(editor.getBody());\n caretPos = caretWalker.next(caretPos);\n if (caretPos) {\n return caretPos.toRange();\n }\n };\n parentBlock = dom.getParent(marker, dom.isBlock);\n dom.remove(marker);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n editor.$(parentBlock).empty();\n rng.setStart(parentBlock, 0);\n rng.setEnd(parentBlock, 0);\n if (!isTableCell$5(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n rng = nextRng;\n dom.remove(parentBlock);\n } else {\n dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' }));\n }\n }\n selection.setRng(rng);\n };\n var insertHtmlAtCaret = function (editor, value, details) {\n var parser, serializer, parentNode, rootNode, fragment, args;\n var marker, rng, node, bookmarkHtml, merge;\n var selection = editor.selection, dom = editor.dom;\n if (/^ | $/.test(value)) {\n value = trimOrPadLeftRight(selection.getRng(), value);\n }\n parser = editor.parser;\n merge = details.merge;\n serializer = Serializer({ validate: editor.settings.validate }, editor.schema);\n bookmarkHtml = '​';\n args = {\n content: value,\n format: 'html',\n selection: true,\n paste: details.paste\n };\n args = editor.fire('BeforeSetContent', args);\n if (args.isDefaultPrevented()) {\n editor.fire('SetContent', {\n content: args.content,\n format: 'html',\n selection: true,\n paste: details.paste\n });\n return;\n }\n value = args.content;\n if (value.indexOf('{$caret}') === -1) {\n value += '{$caret}';\n }\n value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n rng = selection.getRng();\n var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null);\n var body = editor.getBody();\n if (caretElement === body && selection.isCollapsed()) {\n if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) {\n rng = dom.createRng();\n rng.setStart(body.firstChild, 0);\n rng.setEnd(body.firstChild, 0);\n selection.setRng(rng);\n }\n }\n if (!selection.isCollapsed()) {\n editor.selection.setRng(RangeNormalizer.normalize(editor.selection.getRng()));\n editor.getDoc().execCommand('Delete', false, null);\n value = trimNbspAfterDeleteAndPadValue(editor.selection.getRng(), value);\n }\n parentNode = selection.getNode();\n var parserArgs = {\n context: parentNode.nodeName.toLowerCase(),\n data: details.data,\n insert: true\n };\n fragment = parser.parse(value, parserArgs);\n if (details.paste === true && InsertList.isListFragment(editor.schema, fragment) && InsertList.isParentBlockLi(dom, parentNode)) {\n rng = InsertList.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment);\n editor.selection.setRng(rng);\n editor.fire('SetContent', args);\n return;\n }\n markFragmentElements(fragment);\n node = fragment.lastChild;\n if (node.attr('id') === 'mce_marker') {\n marker = node;\n for (node = node.prev; node; node = node.walk(true)) {\n if (node.type === 3 || !dom.isBlock(node.name)) {\n if (editor.schema.isValidChild(node.parent.name, 'span')) {\n node.parent.insert(marker, node, node.name === 'br');\n }\n break;\n }\n }\n }\n editor._selectionOverrides.showBlockCaretContainer(parentNode);\n if (!parserArgs.invalid) {\n value = serializer.serialize(fragment);\n validInsertion(editor, value, parentNode);\n } else {\n selectionSetContent(editor, bookmarkHtml);\n parentNode = selection.getNode();\n rootNode = editor.getBody();\n if (parentNode.nodeType === 9) {\n parentNode = node = rootNode;\n } else {\n node = parentNode;\n }\n while (node !== rootNode) {\n parentNode = node;\n node = node.parentNode;\n }\n value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n value = serializer.serialize(parser.parse(value.replace(//i, function () {\n return serializer.serialize(fragment);\n })));\n if (parentNode === rootNode) {\n dom.setHTML(rootNode, value);\n } else {\n dom.setOuterHTML(parentNode, value);\n }\n }\n reduceInlineTextElements(editor, merge);\n moveSelectionToMarker(editor, dom.get('mce_marker'));\n umarkFragmentElements(editor.getBody());\n trimBrsFromTableCell(editor.dom, editor.selection.getStart());\n editor.fire('SetContent', args);\n editor.addVisual();\n };\n var processValue = function (value) {\n var details;\n if (typeof value !== 'string') {\n details = Tools.extend({\n paste: value.paste,\n data: { paste: value.paste }\n }, value);\n return {\n content: value.content,\n details: details\n };\n }\n return {\n content: value,\n details: {}\n };\n };\n var insertAtCaret$1 = function (editor, value) {\n var result = processValue(value);\n insertHtmlAtCaret(editor, result.content, result.details);\n };\n var InsertContent = { insertAtCaret: insertAtCaret$1 };\n\n var nativeCommand = function (editor, command) {\n editor.getDoc().execCommand(command, false, null);\n };\n var deleteCommand = function (editor) {\n if (CefDelete.backspaceDelete(editor, false)) {\n return;\n } else if (CefBoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (BoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (BlockBoundaryDelete.backspaceDelete(editor, false)) {\n return;\n } else if (TableDelete.backspaceDelete(editor)) {\n return;\n } else if (BlockRangeDelete.backspaceDelete(editor, false)) {\n return;\n } else if (InlineFormatDelete.backspaceDelete(editor, false)) {\n return;\n } else {\n nativeCommand(editor, 'Delete');\n DeleteUtils.paddEmptyBody(editor);\n }\n };\n var forwardDeleteCommand = function (editor) {\n if (CefDelete.backspaceDelete(editor, true)) {\n return;\n } else if (CefBoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (BoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (BlockBoundaryDelete.backspaceDelete(editor, true)) {\n return;\n } else if (TableDelete.backspaceDelete(editor)) {\n return;\n } else if (BlockRangeDelete.backspaceDelete(editor, true)) {\n return;\n } else if (InlineFormatDelete.backspaceDelete(editor, true)) {\n return;\n } else {\n nativeCommand(editor, 'ForwardDelete');\n }\n };\n var DeleteCommands = {\n deleteCommand: deleteCommand,\n forwardDeleteCommand: forwardDeleteCommand\n };\n\n var getSpecifiedFontProp = function (propName, rootElm, elm) {\n var getProperty = function (elm) {\n return getRaw(elm, propName);\n };\n var isRoot = function (elm) {\n return eq(Element.fromDom(rootElm), elm);\n };\n return closest(Element.fromDom(elm), function (elm) {\n return getProperty(elm).isSome();\n }, isRoot).bind(getProperty);\n };\n var round$1 = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n }\n return fontSize;\n };\n var normalizeFontFamily = function (fontFamily) {\n return fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\n };\n var getComputedFontProp = function (propName, elm) {\n return Option.from(DOMUtils$1.DOM.getStyle(elm, propName, true));\n };\n var getFontProp = function (propName) {\n return function (rootElm, elm) {\n return Option.from(elm).map(Element.fromDom).filter(isElement).bind(function (element) {\n return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom()));\n }).getOr('');\n };\n };\n var FontInfo = {\n getFontSize: getFontProp('font-size'),\n getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')),\n toPt: toPt\n };\n\n var findFirstCaretElement = function (editor) {\n return CaretFinder.firstPositionIn(editor.getBody()).map(function (caret) {\n var container = caret.container();\n return NodeType.isText(container) ? container.parentNode : container;\n });\n };\n var isRangeAtStartOfNode = function (rng, root) {\n return rng.startContainer === root && rng.startOffset === 0;\n };\n var getCaretElement = function (editor) {\n return Option.from(editor.selection.getRng()).bind(function (rng) {\n var root = editor.getBody();\n return isRangeAtStartOfNode(rng, root) ? Option.none() : Option.from(editor.selection.getStart(true));\n });\n };\n var fromFontSizeNumber = function (editor, value) {\n if (/^[0-9\\.]+$/.test(value)) {\n var fontSizeNumber = parseInt(value, 10);\n if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\n var fontSizes = Settings.getFontStyleValues(editor);\n var fontClasses = Settings.getFontSizeClasses(editor);\n if (fontClasses) {\n return fontClasses[fontSizeNumber - 1] || value;\n } else {\n return fontSizes[fontSizeNumber - 1] || value;\n }\n } else {\n return value;\n }\n } else {\n return value;\n }\n };\n var fontNameAction = function (editor, value) {\n editor.formatter.toggle('fontname', { value: fromFontSizeNumber(editor, value) });\n editor.nodeChanged();\n };\n var fontNameQuery = function (editor) {\n return getCaretElement(editor).fold(function () {\n return findFirstCaretElement(editor).map(function (caretElement) {\n return FontInfo.getFontFamily(editor.getBody(), caretElement);\n }).getOr('');\n }, function (caretElement) {\n return FontInfo.getFontFamily(editor.getBody(), caretElement);\n });\n };\n var fontSizeAction = function (editor, value) {\n editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\n editor.nodeChanged();\n };\n var fontSizeQuery = function (editor) {\n return getCaretElement(editor).fold(function () {\n return findFirstCaretElement(editor).map(function (caretElement) {\n return FontInfo.getFontSize(editor.getBody(), caretElement);\n }).getOr('');\n }, function (caretElement) {\n return FontInfo.getFontSize(editor.getBody(), caretElement);\n });\n };\n\n var isEditable$1 = function (target) {\n return closest(target, function (elm) {\n return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom());\n }).exists(function (elm) {\n return NodeType.isContentEditableTrue(elm.dom());\n });\n };\n var parseIndentValue = function (value) {\n var number = parseInt(value, 10);\n return isNaN(number) ? 0 : number;\n };\n var getIndentStyleName = function (useMargin, element) {\n var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';\n var suffix = get$2(element, 'direction') === 'rtl' ? '-right' : '-left';\n return indentStyleName + suffix;\n };\n var indentElement = function (dom, command, useMargin, value, unit, element) {\n var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element));\n if (command === 'outdent') {\n var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value);\n dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\n } else {\n var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit;\n dom.setStyle(element, indentStyleName, styleValue);\n }\n };\n var validateBlocks = function (editor, blocks) {\n return forall(blocks, function (block) {\n var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block);\n var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);\n var contentEditable = editor.dom.getContentEditable(block.dom());\n return contentEditable !== 'false' && intentValue > 0;\n });\n };\n var canOutdent = function (editor) {\n var blocks = getBlocksToIndent(editor);\n return editor.readonly !== true && (blocks.length > 1 || validateBlocks(editor, blocks));\n };\n var isListComponent = function (el) {\n return isList(el) || isListItem(el);\n };\n var parentIsListComponent = function (el) {\n return parent(el).map(isListComponent).getOr(false);\n };\n var getBlocksToIndent = function (editor) {\n return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) {\n return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el);\n });\n };\n var handle = function (editor, command) {\n var dom = editor.dom, selection = editor.selection, formatter = editor.formatter;\n var indentation = Settings.getIndentation(editor);\n var indentUnit = /[a-z%]+$/i.exec(indentation)[0];\n var indentValue = parseInt(indentation, 10);\n var useMargin = Settings.shouldIndentUseMargin(editor);\n var forcedRootBlock = Settings.getForcedRootBlock(editor);\n if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) {\n if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) {\n formatter.apply('div');\n }\n }\n each(getBlocksToIndent(editor), function (block) {\n indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom());\n });\n };\n\n var each$g = Tools.each;\n var map$3 = Tools.map, inArray$2 = Tools.inArray;\n var EditorCommands = function () {\n function EditorCommands(editor) {\n this.commands = {\n state: {},\n exec: {},\n value: {}\n };\n this.editor = editor;\n this.setupCommands(editor);\n }\n EditorCommands.prototype.execCommand = function (command, ui, value, args) {\n var func, customCommand, state = false;\n var self = this;\n if (self.editor.removed) {\n return;\n }\n if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) {\n self.editor.focus();\n } else {\n SelectionBookmark.restore(self.editor);\n }\n args = self.editor.fire('BeforeExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n if (args.isDefaultPrevented()) {\n return false;\n }\n customCommand = command.toLowerCase();\n if (func = self.commands.exec[customCommand]) {\n func(customCommand, ui, value);\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n each$g(this.editor.plugins, function (p) {\n if (p.execCommand && p.execCommand(command, ui, value)) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n state = true;\n return false;\n }\n });\n if (state) {\n return state;\n }\n if (self.editor.theme && self.editor.theme.execCommand && self.editor.theme.execCommand(command, ui, value)) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n try {\n state = self.editor.getDoc().execCommand(command, ui, value);\n } catch (ex) {\n }\n if (state) {\n self.editor.fire('ExecCommand', {\n command: command,\n ui: ui,\n value: value\n });\n return true;\n }\n return false;\n };\n EditorCommands.prototype.queryCommandState = function (command) {\n var func;\n if (this.editor.quirks.isHidden() || this.editor.removed) {\n return;\n }\n command = command.toLowerCase();\n if (func = this.commands.state[command]) {\n return func(command);\n }\n try {\n return this.editor.getDoc().queryCommandState(command);\n } catch (ex) {\n }\n return false;\n };\n EditorCommands.prototype.queryCommandValue = function (command) {\n var func;\n if (this.editor.quirks.isHidden() || this.editor.removed) {\n return;\n }\n command = command.toLowerCase();\n if (func = this.commands.value[command]) {\n return func(command);\n }\n try {\n return this.editor.getDoc().queryCommandValue(command);\n } catch (ex) {\n }\n };\n EditorCommands.prototype.addCommands = function (commandList, type) {\n var self = this;\n type = type || 'exec';\n each$g(commandList, function (callback, command) {\n each$g(command.toLowerCase().split(','), function (command) {\n self.commands[type][command] = callback;\n });\n });\n };\n EditorCommands.prototype.addCommand = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.exec[command] = function (command, ui, value, args) {\n return callback.call(scope || _this.editor, ui, value, args);\n };\n };\n EditorCommands.prototype.queryCommandSupported = function (command) {\n command = command.toLowerCase();\n if (this.commands.exec[command]) {\n return true;\n }\n try {\n return this.editor.getDoc().queryCommandSupported(command);\n } catch (ex) {\n }\n return false;\n };\n EditorCommands.prototype.addQueryStateHandler = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.state[command] = function () {\n return callback.call(scope || _this.editor);\n };\n };\n EditorCommands.prototype.addQueryValueHandler = function (command, callback, scope) {\n var _this = this;\n command = command.toLowerCase();\n this.commands.value[command] = function () {\n return callback.call(scope || _this.editor);\n };\n };\n EditorCommands.prototype.hasCustomCommand = function (command) {\n command = command.toLowerCase();\n return !!this.commands.exec[command];\n };\n EditorCommands.prototype.execNativeCommand = function (command, ui, value) {\n if (ui === undefined) {\n ui = false;\n }\n if (value === undefined) {\n value = null;\n }\n return this.editor.getDoc().execCommand(command, ui, value);\n };\n EditorCommands.prototype.isFormatMatch = function (name) {\n return this.editor.formatter.match(name);\n };\n EditorCommands.prototype.toggleFormat = function (name, value) {\n this.editor.formatter.toggle(name, value ? { value: value } : undefined);\n this.editor.nodeChanged();\n };\n EditorCommands.prototype.storeSelection = function (type) {\n this.selectionBookmark = this.editor.selection.getBookmark(type);\n };\n EditorCommands.prototype.restoreSelection = function () {\n this.editor.selection.moveToBookmark(this.selectionBookmark);\n };\n EditorCommands.prototype.setupCommands = function (editor) {\n var self = this;\n this.addCommands({\n 'mceResetDesignMode,mceBeginUndoLevel': function () {\n },\n 'mceEndUndoLevel,mceAddUndoLevel': function () {\n editor.undoManager.add();\n },\n 'Cut,Copy,Paste': function (command) {\n var doc = editor.getDoc();\n var failed;\n try {\n self.execNativeCommand(command);\n } catch (ex) {\n failed = true;\n }\n if (command === 'paste' && !doc.queryCommandEnabled(command)) {\n failed = true;\n }\n if (failed || !doc.queryCommandSupported(command)) {\n var msg = editor.translate('Your browser doesn\\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\n if (Env.mac) {\n msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n }\n editor.notificationManager.open({\n text: msg,\n type: 'error'\n });\n }\n },\n 'unlink': function () {\n if (editor.selection.isCollapsed()) {\n var elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n if (elm) {\n editor.dom.remove(elm, true);\n }\n return;\n }\n editor.formatter.remove('link');\n },\n 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function (command) {\n var align = command.substring(7);\n if (align === 'full') {\n align = 'justify';\n }\n each$g('left,center,right,justify'.split(','), function (name) {\n if (align !== name) {\n editor.formatter.remove('align' + name);\n }\n });\n if (align !== 'none') {\n self.toggleFormat('align' + align);\n }\n },\n 'InsertUnorderedList,InsertOrderedList': function (command) {\n var listElm, listParent;\n self.execNativeCommand(command);\n listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');\n if (listElm) {\n listParent = listElm.parentNode;\n if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {\n self.storeSelection();\n editor.dom.split(listParent, listElm);\n self.restoreSelection();\n }\n }\n },\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\n self.toggleFormat(command);\n },\n 'ForeColor,HiliteColor': function (command, ui, value) {\n self.toggleFormat(command, value);\n },\n 'FontName': function (command, ui, value) {\n fontNameAction(editor, value);\n },\n 'FontSize': function (command, ui, value) {\n fontSizeAction(editor, value);\n },\n 'RemoveFormat': function (command) {\n editor.formatter.remove(command);\n },\n 'mceBlockQuote': function () {\n self.toggleFormat('blockquote');\n },\n 'FormatBlock': function (command, ui, value) {\n return self.toggleFormat(value || 'p');\n },\n 'mceCleanup': function () {\n var bookmark = editor.selection.getBookmark();\n editor.setContent(editor.getContent());\n editor.selection.moveToBookmark(bookmark);\n },\n 'mceRemoveNode': function (command, ui, value) {\n var node = value || editor.selection.getNode();\n if (node !== editor.getBody()) {\n self.storeSelection();\n editor.dom.remove(node, true);\n self.restoreSelection();\n }\n },\n 'mceSelectNodeDepth': function (command, ui, value) {\n var counter = 0;\n editor.dom.getParent(editor.selection.getNode(), function (node) {\n if (node.nodeType === 1 && counter++ === value) {\n editor.selection.select(node);\n return false;\n }\n }, editor.getBody());\n },\n 'mceSelectNode': function (command, ui, value) {\n editor.selection.select(value);\n },\n 'mceInsertContent': function (command, ui, value) {\n InsertContent.insertAtCaret(editor, value);\n },\n 'mceInsertRawHTML': function (command, ui, value) {\n editor.selection.setContent('tiny_mce_marker');\n var content = editor.getContent();\n editor.setContent(content.replace(/tiny_mce_marker/g, function () {\n return value;\n }));\n },\n 'mceInsertNewLine': function (command, ui, value) {\n InsertNewLine.insert(editor, value);\n },\n 'mceToggleFormat': function (command, ui, value) {\n self.toggleFormat(value);\n },\n 'mceSetContent': function (command, ui, value) {\n editor.setContent(value);\n },\n 'Indent,Outdent': function (command) {\n handle(editor, command);\n },\n 'mceRepaint': function () {\n },\n 'InsertHorizontalRule': function () {\n editor.execCommand('mceInsertContent', false, '
    ');\n },\n 'mceToggleVisualAid': function () {\n editor.hasVisual = !editor.hasVisual;\n editor.addVisual();\n },\n 'mceReplaceContent': function (command, ui, value) {\n editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, editor.selection.getContent({ format: 'text' })));\n },\n 'mceInsertLink': function (command, ui, value) {\n var anchor;\n if (typeof value === 'string') {\n value = { href: value };\n }\n anchor = editor.dom.getParent(editor.selection.getNode(), 'a');\n value.href = value.href.replace(' ', '%20');\n if (!anchor || !value.href) {\n editor.formatter.remove('link');\n }\n if (value.href) {\n editor.formatter.apply('link', value, anchor);\n }\n },\n 'selectAll': function () {\n var editingHost = editor.dom.getParent(editor.selection.getStart(), NodeType.isContentEditableTrue);\n if (editingHost) {\n var rng = editor.dom.createRng();\n rng.selectNodeContents(editingHost);\n editor.selection.setRng(rng);\n }\n },\n 'delete': function () {\n DeleteCommands.deleteCommand(editor);\n },\n 'forwardDelete': function () {\n DeleteCommands.forwardDeleteCommand(editor);\n },\n 'mceNewDocument': function () {\n editor.setContent('');\n },\n 'InsertLineBreak': function (command, ui, value) {\n InsertBr.insert(editor, value);\n return true;\n }\n });\n var alignStates = function (name) {\n return function () {\n var nodes = editor.selection.isCollapsed() ? [editor.dom.getParent(editor.selection.getNode(), editor.dom.isBlock)] : editor.selection.getSelectedBlocks();\n var matches = map$3(nodes, function (node) {\n return !!editor.formatter.matchNode(node, name);\n });\n return inArray$2(matches, true) !== -1;\n };\n };\n self.addCommands({\n 'JustifyLeft': alignStates('alignleft'),\n 'JustifyCenter': alignStates('aligncenter'),\n 'JustifyRight': alignStates('alignright'),\n 'JustifyFull': alignStates('alignjustify'),\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\n return self.isFormatMatch(command);\n },\n 'mceBlockQuote': function () {\n return self.isFormatMatch('blockquote');\n },\n 'Outdent': function () {\n return canOutdent(editor);\n },\n 'InsertUnorderedList,InsertOrderedList': function (command) {\n var list = editor.dom.getParent(editor.selection.getNode(), 'ul,ol');\n return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL');\n }\n }, 'state');\n self.addCommands({\n Undo: function () {\n editor.undoManager.undo();\n },\n Redo: function () {\n editor.undoManager.redo();\n }\n });\n self.addQueryValueHandler('FontName', function () {\n return fontNameQuery(editor);\n }, this);\n self.addQueryValueHandler('FontSize', function () {\n return fontSizeQuery(editor);\n }, this);\n };\n return EditorCommands;\n }();\n\n var nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend', ' ');\n var returnFalse$1 = function () {\n return false;\n };\n var returnTrue$1 = function () {\n return true;\n };\n var EventDispatcher = function () {\n function EventDispatcher(settings) {\n this.bindings = {};\n this.settings = settings || {};\n this.scope = this.settings.scope || this;\n this.toggleEvent = this.settings.toggleEvent || returnFalse$1;\n }\n EventDispatcher.isNative = function (name) {\n return !!nativeEvents[name.toLowerCase()];\n };\n EventDispatcher.prototype.fire = function (name, args) {\n var handlers, i, l, callback;\n name = name.toLowerCase();\n args = args || {};\n args.type = name;\n if (!args.target) {\n args.target = this.scope;\n }\n if (!args.preventDefault) {\n args.preventDefault = function () {\n args.isDefaultPrevented = returnTrue$1;\n };\n args.stopPropagation = function () {\n args.isPropagationStopped = returnTrue$1;\n };\n args.stopImmediatePropagation = function () {\n args.isImmediatePropagationStopped = returnTrue$1;\n };\n args.isDefaultPrevented = returnFalse$1;\n args.isPropagationStopped = returnFalse$1;\n args.isImmediatePropagationStopped = returnFalse$1;\n }\n if (this.settings.beforeFire) {\n this.settings.beforeFire(args);\n }\n handlers = this.bindings[name];\n if (handlers) {\n for (i = 0, l = handlers.length; i < l; i++) {\n callback = handlers[i];\n if (callback.once) {\n this.off(name, callback.func);\n }\n if (args.isImmediatePropagationStopped()) {\n args.stopPropagation();\n return args;\n }\n if (callback.func.call(this.scope, args) === false) {\n args.preventDefault();\n return args;\n }\n }\n }\n return args;\n };\n EventDispatcher.prototype.on = function (name, callback, prepend, extra) {\n var handlers, names, i;\n if (callback === false) {\n callback = returnFalse$1;\n }\n if (callback) {\n var wrappedCallback = { func: callback };\n if (extra) {\n Tools.extend(wrappedCallback, extra);\n }\n names = name.toLowerCase().split(' ');\n i = names.length;\n while (i--) {\n name = names[i];\n handlers = this.bindings[name];\n if (!handlers) {\n handlers = this.bindings[name] = [];\n this.toggleEvent(name, true);\n }\n if (prepend) {\n handlers.unshift(wrappedCallback);\n } else {\n handlers.push(wrappedCallback);\n }\n }\n }\n return this;\n };\n EventDispatcher.prototype.off = function (name, callback) {\n var i, handlers, bindingName, names, hi;\n if (name) {\n names = name.toLowerCase().split(' ');\n i = names.length;\n while (i--) {\n name = names[i];\n handlers = this.bindings[name];\n if (!name) {\n for (bindingName in this.bindings) {\n this.toggleEvent(bindingName, false);\n delete this.bindings[bindingName];\n }\n return this;\n }\n if (handlers) {\n if (!callback) {\n handlers.length = 0;\n } else {\n hi = handlers.length;\n while (hi--) {\n if (handlers[hi].func === callback) {\n handlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1));\n this.bindings[name] = handlers;\n }\n }\n }\n if (!handlers.length) {\n this.toggleEvent(name, false);\n delete this.bindings[name];\n }\n }\n }\n } else {\n for (name in this.bindings) {\n this.toggleEvent(name, false);\n }\n this.bindings = {};\n }\n return this;\n };\n EventDispatcher.prototype.once = function (name, callback, prepend) {\n return this.on(name, callback, prepend, { once: true });\n };\n EventDispatcher.prototype.has = function (name) {\n name = name.toLowerCase();\n return !(!this.bindings[name] || this.bindings[name].length === 0);\n };\n return EventDispatcher;\n }();\n\n var getEventDispatcher = function (obj) {\n if (!obj._eventDispatcher) {\n obj._eventDispatcher = new EventDispatcher({\n scope: obj,\n toggleEvent: function (name, state) {\n if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n obj.toggleNativeEvent(name, state);\n }\n }\n });\n }\n return obj._eventDispatcher;\n };\n var Observable = {\n fire: function (name, args, bubble) {\n var self = this;\n if (self.removed && name !== 'remove' && name !== 'detach') {\n return args;\n }\n var dispatcherArgs = getEventDispatcher(self).fire(name, args);\n if (bubble !== false && self.parent) {\n var parent = self.parent();\n while (parent && !dispatcherArgs.isPropagationStopped()) {\n parent.fire(name, dispatcherArgs, false);\n parent = parent.parent();\n }\n }\n return dispatcherArgs;\n },\n on: function (name, callback, prepend) {\n return getEventDispatcher(this).on(name, callback, prepend);\n },\n off: function (name, callback) {\n return getEventDispatcher(this).off(name, callback);\n },\n once: function (name, callback) {\n return getEventDispatcher(this).once(name, callback);\n },\n hasEventListeners: function (name) {\n return getEventDispatcher(this).has(name);\n }\n };\n\n var DOM$6 = DOMUtils$1.DOM;\n var customEventRootDelegates;\n var getEventTarget = function (editor, eventName) {\n if (eventName === 'selectionchange') {\n return editor.getDoc();\n }\n if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) {\n return editor.getDoc().documentElement;\n }\n if (editor.settings.event_root) {\n if (!editor.eventRoot) {\n editor.eventRoot = DOM$6.select(editor.settings.event_root)[0];\n }\n return editor.eventRoot;\n }\n return editor.getBody();\n };\n var isListening = function (editor) {\n return !editor.hidden && !editor.readonly;\n };\n var fireEvent = function (editor, eventName, e) {\n if (isListening(editor)) {\n editor.fire(eventName, e);\n } else if (editor.readonly) {\n e.preventDefault();\n }\n };\n var bindEventDelegate = function (editor, eventName) {\n var eventRootElm, delegate;\n if (!editor.delegates) {\n editor.delegates = {};\n }\n if (editor.delegates[eventName] || editor.removed) {\n return;\n }\n eventRootElm = getEventTarget(editor, eventName);\n if (editor.settings.event_root) {\n if (!customEventRootDelegates) {\n customEventRootDelegates = {};\n editor.editorManager.on('removeEditor', function () {\n var name;\n if (!editor.editorManager.activeEditor) {\n if (customEventRootDelegates) {\n for (name in customEventRootDelegates) {\n editor.dom.unbind(getEventTarget(editor, name));\n }\n customEventRootDelegates = null;\n }\n }\n });\n }\n if (customEventRootDelegates[eventName]) {\n return;\n }\n delegate = function (e) {\n var target = e.target;\n var editors = editor.editorManager.get();\n var i = editors.length;\n while (i--) {\n var body = editors[i].getBody();\n if (body === target || DOM$6.isChildOf(target, body)) {\n fireEvent(editors[i], eventName, e);\n }\n }\n };\n customEventRootDelegates[eventName] = delegate;\n DOM$6.bind(eventRootElm, eventName, delegate);\n } else {\n delegate = function (e) {\n fireEvent(editor, eventName, e);\n };\n DOM$6.bind(eventRootElm, eventName, delegate);\n editor.delegates[eventName] = delegate;\n }\n };\n var EditorObservable = __assign({}, Observable, {\n bindPendingEventDelegates: function () {\n var self = this;\n Tools.each(self._pendingNativeEvents, function (name) {\n bindEventDelegate(self, name);\n });\n },\n toggleNativeEvent: function (name, state) {\n var self = this;\n if (name === 'focus' || name === 'blur') {\n return;\n }\n if (state) {\n if (self.initialized) {\n bindEventDelegate(self, name);\n } else {\n if (!self._pendingNativeEvents) {\n self._pendingNativeEvents = [name];\n } else {\n self._pendingNativeEvents.push(name);\n }\n }\n } else if (self.initialized) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n delete self.delegates[name];\n }\n },\n unbindAllNativeEvents: function () {\n var self = this;\n var body = self.getBody();\n var dom = self.dom;\n var name;\n if (self.delegates) {\n for (name in self.delegates) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n }\n delete self.delegates;\n }\n if (!self.inline && body && dom) {\n body.onload = null;\n dom.unbind(self.getWin());\n dom.unbind(self.getDoc());\n }\n if (dom) {\n dom.unbind(body);\n dom.unbind(self.getContainer());\n }\n }\n });\n\n var each$h = Tools.each, explode$3 = Tools.explode;\n var keyCodeLookup = {\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123\n };\n var modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');\n var Shortcuts = function () {\n function Shortcuts(editor) {\n this.shortcuts = {};\n this.pendingPatterns = [];\n this.editor = editor;\n var self = this;\n editor.on('keyup keypress keydown', function (e) {\n if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) {\n each$h(self.shortcuts, function (shortcut) {\n if (self.matchShortcut(e, shortcut)) {\n self.pendingPatterns = shortcut.subpatterns.slice(0);\n if (e.type === 'keydown') {\n self.executeShortcutAction(shortcut);\n }\n return true;\n }\n });\n if (self.matchShortcut(e, self.pendingPatterns[0])) {\n if (self.pendingPatterns.length === 1) {\n if (e.type === 'keydown') {\n self.executeShortcutAction(self.pendingPatterns[0]);\n }\n }\n self.pendingPatterns.shift();\n }\n }\n });\n }\n Shortcuts.prototype.add = function (pattern, desc, cmdFunc, scope) {\n var self = this;\n var cmd;\n cmd = cmdFunc;\n if (typeof cmdFunc === 'string') {\n cmdFunc = function () {\n self.editor.execCommand(cmd, false, null);\n };\n } else if (Tools.isArray(cmd)) {\n cmdFunc = function () {\n self.editor.execCommand(cmd[0], cmd[1], cmd[2]);\n };\n }\n each$h(explode$3(Tools.trim(pattern.toLowerCase())), function (pattern) {\n var shortcut = self.createShortcut(pattern, desc, cmdFunc, scope);\n self.shortcuts[shortcut.id] = shortcut;\n });\n return true;\n };\n Shortcuts.prototype.remove = function (pattern) {\n var shortcut = this.createShortcut(pattern);\n if (this.shortcuts[shortcut.id]) {\n delete this.shortcuts[shortcut.id];\n return true;\n }\n return false;\n };\n Shortcuts.prototype.parseShortcut = function (pattern) {\n var id, key;\n var shortcut = {};\n each$h(explode$3(pattern, '+'), function (value) {\n if (value in modifierNames) {\n shortcut[value] = true;\n } else {\n if (/^[0-9]{2,}$/.test(value)) {\n shortcut.keyCode = parseInt(value, 10);\n } else {\n shortcut.charCode = value.charCodeAt(0);\n shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\n }\n }\n });\n id = [shortcut.keyCode];\n for (key in modifierNames) {\n if (shortcut[key]) {\n id.push(key);\n } else {\n shortcut[key] = false;\n }\n }\n shortcut.id = id.join(',');\n if (shortcut.access) {\n shortcut.alt = true;\n if (Env.mac) {\n shortcut.ctrl = true;\n } else {\n shortcut.shift = true;\n }\n }\n if (shortcut.meta) {\n if (Env.mac) {\n shortcut.meta = true;\n } else {\n shortcut.ctrl = true;\n shortcut.meta = false;\n }\n }\n return shortcut;\n };\n Shortcuts.prototype.createShortcut = function (pattern, desc, cmdFunc, scope) {\n var shortcuts;\n shortcuts = Tools.map(explode$3(pattern, '>'), this.parseShortcut);\n shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {\n func: cmdFunc,\n scope: scope || this.editor\n });\n return Tools.extend(shortcuts[0], {\n desc: this.editor.translate(desc),\n subpatterns: shortcuts.slice(1)\n });\n };\n Shortcuts.prototype.hasModifier = function (e) {\n return e.altKey || e.ctrlKey || e.metaKey;\n };\n Shortcuts.prototype.isFunctionKey = function (e) {\n return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\n };\n Shortcuts.prototype.matchShortcut = function (e, shortcut) {\n if (!shortcut) {\n return false;\n }\n if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\n return false;\n }\n if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\n return false;\n }\n if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\n e.preventDefault();\n return true;\n }\n return false;\n };\n Shortcuts.prototype.executeShortcutAction = function (shortcut) {\n return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\n };\n return Shortcuts;\n }();\n\n var each$i = Tools.each, trim$4 = Tools.trim;\n var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' ');\n var DEFAULT_PORTS = {\n ftp: 21,\n http: 80,\n https: 443,\n mailto: 25\n };\n var URI = function () {\n function URI(url, settings) {\n url = trim$4(url);\n this.settings = settings || {};\n var baseUri = this.settings.base_uri;\n var self = this;\n if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n self.source = url;\n return;\n }\n var isProtocolRelative = url.indexOf('//') === 0;\n if (url.indexOf('/') === 0 && !isProtocolRelative) {\n url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n }\n if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n var baseUrl = this.settings.base_uri ? this.settings.base_uri.path : new URI(domGlobals.document.location.href).directory;\n if (this.settings.base_uri.protocol == '') {\n url = '//mce_host' + self.toAbsPath(baseUrl, url);\n } else {\n var match = /([^#?]*)([#?]?.*)/.exec(url);\n url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2];\n }\n }\n url = url.replace(/@@/g, '(mce_at)');\n var urlMatch = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n each$i(queryParts, function (v, i) {\n var part = urlMatch[i];\n if (part) {\n part = part.replace(/\\(mce_at\\)/g, '@@');\n }\n self[v] = part;\n });\n if (baseUri) {\n if (!self.protocol) {\n self.protocol = baseUri.protocol;\n }\n if (!self.userInfo) {\n self.userInfo = baseUri.userInfo;\n }\n if (!self.port && self.host === 'mce_host') {\n self.port = baseUri.port;\n }\n if (!self.host || self.host === 'mce_host') {\n self.host = baseUri.host;\n }\n self.source = '';\n }\n if (isProtocolRelative) {\n self.protocol = '';\n }\n }\n URI.parseDataUri = function (uri) {\n var type;\n var uriComponents = decodeURIComponent(uri).split(',');\n var matches = /data:([^;]+)/.exec(uriComponents[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type: type,\n data: uriComponents[1]\n };\n };\n URI.getDocumentBaseUrl = function (loc) {\n var baseUrl;\n if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n baseUrl = loc.href;\n } else {\n baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n }\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(baseUrl)) {\n baseUrl += '/';\n }\n }\n return baseUrl;\n };\n URI.prototype.setPath = function (path) {\n var pathMatch = /^(.*?)\\/?(\\w+)?$/.exec(path);\n this.path = pathMatch[0];\n this.directory = pathMatch[1];\n this.file = pathMatch[2];\n this.source = '';\n this.getURI();\n };\n URI.prototype.toRelative = function (uri) {\n var output;\n if (uri === './') {\n return uri;\n }\n var relativeUri = new URI(uri, { base_uri: this });\n if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') {\n return relativeUri.getURI();\n }\n var tu = this.getURI(), uu = relativeUri.getURI();\n if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\n return tu;\n }\n output = this.toRelPath(this.path, relativeUri.path);\n if (relativeUri.query) {\n output += '?' + relativeUri.query;\n }\n if (relativeUri.anchor) {\n output += '#' + relativeUri.anchor;\n }\n return output;\n };\n URI.prototype.toAbsolute = function (uri, noHost) {\n var absoluteUri = new URI(uri, { base_uri: this });\n return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri));\n };\n URI.prototype.isSameOrigin = function (uri) {\n if (this.host == uri.host && this.protocol == uri.protocol) {\n if (this.port == uri.port) {\n return true;\n }\n var defaultPort = DEFAULT_PORTS[this.protocol];\n if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\n return true;\n }\n }\n return false;\n };\n URI.prototype.toRelPath = function (base, path) {\n var items, breakPoint = 0, out = '', i, l;\n var normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/');\n items = path.split('/');\n if (normalizedBase.length >= items.length) {\n for (i = 0, l = normalizedBase.length; i < l; i++) {\n if (i >= items.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (normalizedBase.length < items.length) {\n for (i = 0, l = items.length; i < l; i++) {\n if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (breakPoint === 1) {\n return path;\n }\n for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) {\n out += '../';\n }\n for (i = breakPoint - 1, l = items.length; i < l; i++) {\n if (i !== breakPoint - 1) {\n out += '/' + items[i];\n } else {\n out += items[i];\n }\n }\n return out;\n };\n URI.prototype.toAbsPath = function (base, path) {\n var i, nb = 0, o = [], tr, outPath;\n tr = /\\/$/.test(path) ? '/' : '';\n var normalizedBase = base.split('/');\n var normalizedPath = path.split('/');\n each$i(normalizedBase, function (k) {\n if (k) {\n o.push(k);\n }\n });\n normalizedBase = o;\n for (i = normalizedPath.length - 1, o = []; i >= 0; i--) {\n if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') {\n continue;\n }\n if (normalizedPath[i] === '..') {\n nb++;\n continue;\n }\n if (nb > 0) {\n nb--;\n continue;\n }\n o.push(normalizedPath[i]);\n }\n i = normalizedBase.length - nb;\n if (i <= 0) {\n outPath = o.reverse().join('/');\n } else {\n outPath = normalizedBase.slice(0, i).join('/') + '/' + o.reverse().join('/');\n }\n if (outPath.indexOf('/') !== 0) {\n outPath = '/' + outPath;\n }\n if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n outPath += tr;\n }\n return outPath;\n };\n URI.prototype.getURI = function (noProtoHost) {\n if (noProtoHost === void 0) {\n noProtoHost = false;\n }\n var s;\n if (!this.source || noProtoHost) {\n s = '';\n if (!noProtoHost) {\n if (this.protocol) {\n s += this.protocol + '://';\n } else {\n s += '//';\n }\n if (this.userInfo) {\n s += this.userInfo + '@';\n }\n if (this.host) {\n s += this.host;\n }\n if (this.port) {\n s += ':' + this.port;\n }\n }\n if (this.path) {\n s += this.path;\n }\n if (this.query) {\n s += '?' + this.query;\n }\n if (this.anchor) {\n s += '#' + this.anchor;\n }\n this.source = s;\n }\n return this.source;\n };\n return URI;\n }();\n\n var create$4 = function () {\n var buttons = {};\n var menuItems = {};\n var popups = {};\n var icons = {};\n var contextMenus = {};\n var contextToolbars = {};\n var sidebars = {};\n var add = function (collection, type) {\n return function (name, spec) {\n return collection[name.toLowerCase()] = merge({ type: type }, spec);\n };\n };\n var addIcon = function (name, svgData) {\n return icons[name.toLowerCase()] = svgData;\n };\n return {\n addButton: add(buttons, 'button'),\n addToggleButton: add(buttons, 'togglebutton'),\n addMenuButton: add(buttons, 'menubutton'),\n addSplitButton: add(buttons, 'splitbutton'),\n addMenuItem: add(menuItems, 'menuitem'),\n addNestedMenuItem: add(menuItems, 'nestedmenuitem'),\n addToggleMenuItem: add(menuItems, 'togglemenuitem'),\n addAutocompleter: add(popups, 'autocompleter'),\n addContextMenu: add(contextMenus, 'contextmenu'),\n addContextToolbar: add(contextToolbars, 'contexttoolbar'),\n addContextForm: add(contextToolbars, 'contextform'),\n addSidebar: add(sidebars, 'sidebar'),\n addIcon: addIcon,\n getAll: function () {\n return {\n buttons: buttons,\n menuItems: menuItems,\n icons: icons,\n popups: popups,\n contextMenus: contextMenus,\n contextToolbars: contextToolbars,\n sidebars: sidebars\n };\n }\n };\n };\n\n var registry = function () {\n var bridge = create$4();\n return {\n addAutocompleter: bridge.addAutocompleter,\n addButton: bridge.addButton,\n addContextForm: bridge.addContextForm,\n addContextMenu: bridge.addContextMenu,\n addContextToolbar: bridge.addContextToolbar,\n addIcon: bridge.addIcon,\n addMenuButton: bridge.addMenuButton,\n addMenuItem: bridge.addMenuItem,\n addNestedMenuItem: bridge.addNestedMenuItem,\n addSidebar: bridge.addSidebar,\n addSplitButton: bridge.addSplitButton,\n addToggleButton: bridge.addToggleButton,\n addToggleMenuItem: bridge.addToggleMenuItem,\n getAll: bridge.getAll\n };\n };\n\n var DOM$7 = DOMUtils$1.DOM;\n var extend$3 = Tools.extend, each$j = Tools.each;\n var resolve$4 = Tools.resolve;\n var ie$2 = Env.ie;\n var Editor = function () {\n function Editor(id, settings, editorManager) {\n var _this = this;\n this.plugins = {};\n this.contentCSS = [];\n this.contentStyles = [];\n this.loadedCSS = {};\n this.isNotDirty = false;\n this.editorManager = editorManager;\n this.documentBaseUrl = editorManager.documentBaseURL;\n this.baseUri = editorManager.baseURI;\n extend$3(this, EditorObservable);\n this.settings = getEditorSettings(this, id, this.documentBaseUrl, editorManager.defaultSettings, settings);\n AddOnManager$1.languageLoad = this.settings.language_load;\n AddOnManager$1.baseURL = editorManager.baseURL;\n this.id = id;\n this.setDirty(false);\n this.documentBaseURI = new URI(this.settings.document_base_url, { base_uri: this.baseUri });\n this.baseURI = this.baseUri;\n this.inline = this.settings.inline;\n this.suffix = editorManager.suffix;\n this.shortcuts = new Shortcuts(this);\n this.editorCommands = new EditorCommands(this);\n if (this.settings.cache_suffix) {\n Env.cacheSuffix = this.settings.cache_suffix.replace(/^[\\?\\&]+/, '');\n }\n if (this.settings.override_viewport === false) {\n Env.overrideViewPort = false;\n }\n this.ui = { registry: registry() };\n var self = this;\n var modeInstance = create$3(self);\n this.mode = modeInstance;\n this.setMode = modeInstance.set;\n editorManager.fire('SetupEditor', { editor: this });\n this.execCallback('setup', this);\n this.$ = DomQuery.overrideDefaults(function () {\n return {\n context: _this.inline ? _this.getBody() : _this.getDoc(),\n element: _this.getBody()\n };\n });\n }\n Editor.prototype.render = function () {\n Render.render(this);\n };\n Editor.prototype.focus = function (skipFocus) {\n EditorFocus.focus(this, skipFocus);\n };\n Editor.prototype.hasFocus = function () {\n return EditorFocus.hasFocus(this);\n };\n Editor.prototype.execCallback = function (name) {\n var x = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n x[_i - 1] = arguments[_i];\n }\n var self = this;\n var callback = self.settings[name], scope;\n if (!callback) {\n return;\n }\n if (self.callbackLookup && (scope = self.callbackLookup[name])) {\n callback = scope.func;\n scope = scope.scope;\n }\n if (typeof callback === 'string') {\n scope = callback.replace(/\\.\\w+$/, '');\n scope = scope ? resolve$4(scope) : 0;\n callback = resolve$4(callback);\n self.callbackLookup = self.callbackLookup || {};\n self.callbackLookup[name] = {\n func: callback,\n scope: scope\n };\n }\n return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1));\n };\n Editor.prototype.translate = function (text) {\n return I18n.translate(text);\n };\n Editor.prototype.getParam = function (name, defaultVal, type) {\n return getParam(this, name, defaultVal, type);\n };\n Editor.prototype.nodeChanged = function (args) {\n this._nodeChangeDispatcher.nodeChanged(args);\n };\n Editor.prototype.addCommand = function (name, callback, scope) {\n this.editorCommands.addCommand(name, callback, scope);\n };\n Editor.prototype.addQueryStateHandler = function (name, callback, scope) {\n this.editorCommands.addQueryStateHandler(name, callback, scope);\n };\n Editor.prototype.addQueryValueHandler = function (name, callback, scope) {\n this.editorCommands.addQueryValueHandler(name, callback, scope);\n };\n Editor.prototype.addShortcut = function (pattern, desc, cmdFunc, scope) {\n this.shortcuts.add(pattern, desc, cmdFunc, scope);\n };\n Editor.prototype.execCommand = function (cmd, ui, value, args) {\n return this.editorCommands.execCommand(cmd, ui, value, args);\n };\n Editor.prototype.queryCommandState = function (cmd) {\n return this.editorCommands.queryCommandState(cmd);\n };\n Editor.prototype.queryCommandValue = function (cmd) {\n return this.editorCommands.queryCommandValue(cmd);\n };\n Editor.prototype.queryCommandSupported = function (cmd) {\n return this.editorCommands.queryCommandSupported(cmd);\n };\n Editor.prototype.show = function () {\n var self = this;\n if (self.hidden) {\n self.hidden = false;\n if (self.inline) {\n self.getBody().contentEditable = 'true';\n } else {\n DOM$7.show(self.getContainer());\n DOM$7.hide(self.id);\n }\n self.load();\n self.fire('show');\n }\n };\n Editor.prototype.hide = function () {\n var self = this, doc = self.getDoc();\n if (!self.hidden) {\n if (ie$2 && doc && !self.inline) {\n doc.execCommand('SelectAll');\n }\n self.save();\n if (self.inline) {\n self.getBody().contentEditable = 'false';\n if (self === self.editorManager.focusedEditor) {\n self.editorManager.focusedEditor = null;\n }\n } else {\n DOM$7.hide(self.getContainer());\n DOM$7.setStyle(self.id, 'display', self.orgDisplay);\n }\n self.hidden = true;\n self.fire('hide');\n }\n };\n Editor.prototype.isHidden = function () {\n return !!this.hidden;\n };\n Editor.prototype.setProgressState = function (state, time) {\n this.fire('ProgressState', {\n state: state,\n time: time\n });\n };\n Editor.prototype.load = function (args) {\n var self = this;\n var elm = self.getElement(), html;\n if (self.removed) {\n return '';\n }\n if (elm) {\n args = args || {};\n args.load = true;\n var value = elm.value;\n html = self.setContent(value !== undefined ? value : elm.innerHTML, args);\n args.element = elm;\n if (!args.no_events) {\n self.fire('LoadContent', args);\n }\n args.element = elm = null;\n return html;\n }\n };\n Editor.prototype.save = function (args) {\n var self = this;\n var elm = self.getElement(), html, form;\n if (!elm || !self.initialized || self.removed) {\n return;\n }\n args = args || {};\n args.save = true;\n args.element = elm;\n html = args.content = self.getContent(args);\n if (!args.no_events) {\n self.fire('SaveContent', args);\n }\n if (args.format === 'raw') {\n self.fire('RawSaveContent', args);\n }\n html = args.content;\n if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) {\n if (args.is_removing || !self.inline) {\n elm.innerHTML = html;\n }\n if (form = DOM$7.getParent(self.id, 'form')) {\n each$j(form.elements, function (elm) {\n if (elm.name === self.id) {\n elm.value = html;\n return false;\n }\n });\n }\n } else {\n elm.value = html;\n }\n args.element = elm = null;\n if (args.set_dirty !== false) {\n self.setDirty(false);\n }\n return html;\n };\n Editor.prototype.setContent = function (content, args) {\n return setContent(this, content, args);\n };\n Editor.prototype.getContent = function (args) {\n return getContent(this, args);\n };\n Editor.prototype.insertContent = function (content, args) {\n if (args) {\n content = extend$3({ content: content }, args);\n }\n this.execCommand('mceInsertContent', false, content);\n };\n Editor.prototype.resetContent = function (initialContent) {\n if (initialContent === undefined) {\n setContent(this, this.startContent, { format: 'raw' });\n } else {\n setContent(this, initialContent);\n }\n this.undoManager.reset();\n this.setDirty(false);\n this.nodeChanged();\n };\n Editor.prototype.isDirty = function () {\n return !this.isNotDirty;\n };\n Editor.prototype.setDirty = function (state) {\n var oldState = !this.isNotDirty;\n this.isNotDirty = !state;\n if (state && state !== oldState) {\n this.fire('dirty');\n }\n };\n Editor.prototype.getContainer = function () {\n var self = this;\n if (!self.container) {\n self.container = DOM$7.get(self.editorContainer || self.id + '_parent');\n }\n return self.container;\n };\n Editor.prototype.getContentAreaContainer = function () {\n return this.contentAreaContainer;\n };\n Editor.prototype.getElement = function () {\n if (!this.targetElm) {\n this.targetElm = DOM$7.get(this.id);\n }\n return this.targetElm;\n };\n Editor.prototype.getWin = function () {\n var self = this;\n var elm;\n if (!self.contentWindow) {\n elm = self.iframeElement;\n if (elm) {\n self.contentWindow = elm.contentWindow;\n }\n }\n return self.contentWindow;\n };\n Editor.prototype.getDoc = function () {\n var self = this;\n var win;\n if (!self.contentDocument) {\n win = self.getWin();\n if (win) {\n self.contentDocument = win.document;\n }\n }\n return self.contentDocument;\n };\n Editor.prototype.getBody = function () {\n var doc = this.getDoc();\n return this.bodyElement || (doc ? doc.body : null);\n };\n Editor.prototype.convertURL = function (url, name, elm) {\n var self = this, settings = self.settings;\n if (settings.urlconverter_callback) {\n return self.execCallback('urlconverter_callback', url, elm, true, name);\n }\n if (!settings.convert_urls || elm && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\n return url;\n }\n if (settings.relative_urls) {\n return self.documentBaseURI.toRelative(url);\n }\n url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host);\n return url;\n };\n Editor.prototype.addVisual = function (elm) {\n var self = this;\n var settings = self.settings;\n var dom = self.dom;\n var cls;\n elm = elm || self.getBody();\n if (self.hasVisual === undefined) {\n self.hasVisual = settings.visual;\n }\n each$j(dom.select('table,a', elm), function (elm) {\n var value;\n switch (elm.nodeName) {\n case 'TABLE':\n cls = settings.visual_table_class || 'mce-item-table';\n value = dom.getAttrib(elm, 'border');\n if ((!value || value === '0') && self.hasVisual) {\n dom.addClass(elm, cls);\n } else {\n dom.removeClass(elm, cls);\n }\n return;\n case 'A':\n if (!dom.getAttrib(elm, 'href')) {\n value = dom.getAttrib(elm, 'name') || elm.id;\n cls = settings.visual_anchor_class || 'mce-item-anchor';\n if (value && self.hasVisual) {\n dom.addClass(elm, cls);\n } else {\n dom.removeClass(elm, cls);\n }\n }\n return;\n }\n });\n self.fire('VisualAid', {\n element: elm,\n hasVisual: self.hasVisual\n });\n };\n Editor.prototype.remove = function () {\n remove$6(this);\n };\n Editor.prototype.destroy = function (automatic) {\n destroy(this, automatic);\n };\n Editor.prototype.uploadImages = function (callback) {\n return this.editorUpload.uploadImages(callback);\n };\n Editor.prototype._scanForImages = function () {\n return this.editorUpload.scanForImages();\n };\n Editor.prototype.addButton = function () {\n throw new Error('editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead');\n };\n Editor.prototype.addSidebar = function () {\n throw new Error('editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead');\n };\n Editor.prototype.addMenuItem = function () {\n throw new Error('editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead');\n };\n Editor.prototype.addContextToolbar = function () {\n throw new Error('editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead');\n };\n return Editor;\n }();\n\n var isEditorUIElement = function (elm) {\n return elm.className.toString().indexOf('tox-') !== -1 || elm.className.toString().indexOf('mce-') !== -1;\n };\n var FocusManager = { isEditorUIElement: isEditorUIElement };\n\n var isManualNodeChange = function (e) {\n return e.type === 'nodechange' && e.selectionChange;\n };\n var registerPageMouseUp = function (editor, throttledStore) {\n var mouseUpPage = function () {\n throttledStore.throttle();\n };\n DOMUtils$1.DOM.bind(domGlobals.document, 'mouseup', mouseUpPage);\n editor.on('remove', function () {\n DOMUtils$1.DOM.unbind(domGlobals.document, 'mouseup', mouseUpPage);\n });\n };\n var registerFocusOut = function (editor) {\n editor.on('focusout', function () {\n SelectionBookmark.store(editor);\n });\n };\n var registerMouseUp = function (editor, throttledStore) {\n editor.on('mouseup touchend', function (e) {\n throttledStore.throttle();\n });\n };\n var registerEditorEvents = function (editor, throttledStore) {\n var browser = PlatformDetection$1.detect().browser;\n if (browser.isIE()) {\n registerFocusOut(editor);\n } else {\n registerMouseUp(editor, throttledStore);\n }\n editor.on('keyup NodeChange', function (e) {\n if (!isManualNodeChange(e)) {\n SelectionBookmark.store(editor);\n }\n });\n };\n var register$3 = function (editor) {\n var throttledStore = first(function () {\n SelectionBookmark.store(editor);\n }, 0);\n if (editor.inline) {\n registerPageMouseUp(editor, throttledStore);\n }\n editor.on('init', function () {\n registerEditorEvents(editor, throttledStore);\n });\n editor.on('remove', function () {\n throttledStore.cancel();\n });\n };\n var SelectionRestore = { register: register$3 };\n\n var documentFocusInHandler;\n var DOM$8 = DOMUtils$1.DOM;\n var isEditorUIElement$1 = function (elm) {\n return FocusManager.isEditorUIElement(elm);\n };\n var isUIElement = function (editor, elm) {\n var customSelector = editor ? editor.settings.custom_ui_selector : '';\n var parent = DOM$8.getParent(elm, function (elm) {\n return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\n });\n return parent !== null;\n };\n var getActiveElement = function () {\n try {\n return domGlobals.document.activeElement;\n } catch (ex) {\n return domGlobals.document.body;\n }\n };\n var registerEvents = function (editorManager, e) {\n var editor = e.editor;\n SelectionRestore.register(editor);\n editor.on('focusin', function () {\n var self = this;\n var focusedEditor = editorManager.focusedEditor;\n if (focusedEditor !== self) {\n if (focusedEditor) {\n focusedEditor.fire('blur', { focusedEditor: self });\n }\n editorManager.setActive(self);\n editorManager.focusedEditor = self;\n self.fire('focus', { blurredEditor: focusedEditor });\n self.focus(true);\n }\n });\n editor.on('focusout', function () {\n var self = this;\n Delay.setEditorTimeout(self, function () {\n var focusedEditor = editorManager.focusedEditor;\n if (!isUIElement(self, getActiveElement()) && focusedEditor === self) {\n self.fire('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n });\n });\n if (!documentFocusInHandler) {\n documentFocusInHandler = function (e) {\n var activeEditor = editorManager.activeEditor;\n var target;\n target = e.target;\n if (activeEditor && target.ownerDocument === domGlobals.document) {\n if (target !== domGlobals.document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) {\n activeEditor.fire('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n }\n };\n DOM$8.bind(domGlobals.document, 'focusin', documentFocusInHandler);\n }\n };\n var unregisterDocumentEvents = function (editorManager, e) {\n if (editorManager.focusedEditor === e.editor) {\n editorManager.focusedEditor = null;\n }\n if (!editorManager.activeEditor) {\n DOM$8.unbind(domGlobals.document, 'focusin', documentFocusInHandler);\n documentFocusInHandler = null;\n }\n };\n var setup$h = function (editorManager) {\n editorManager.on('AddEditor', curry(registerEvents, editorManager));\n editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\n };\n var FocusController = {\n setup: setup$h,\n isEditorUIElement: isEditorUIElement$1,\n isUIElement: isUIElement\n };\n\n var DOM$9 = DOMUtils$1.DOM;\n var explode$4 = Tools.explode, each$k = Tools.each, extend$4 = Tools.extend;\n var instanceCounter = 0, beforeUnloadDelegate, boundGlobalEvents = false;\n var legacyEditors = [];\n var editors = [];\n var isValidLegacyKey = function (id) {\n return id !== 'length';\n };\n var globalEventDelegate = function (e) {\n var type = e.type;\n each$k(EditorManager.get(), function (editor) {\n switch (type) {\n case 'scroll':\n editor.fire('ScrollWindow', e);\n break;\n case 'resize':\n editor.fire('ResizeWindow', e);\n break;\n }\n });\n };\n var toggleGlobalEvents = function (state) {\n if (state !== boundGlobalEvents) {\n if (state) {\n DomQuery(window).on('resize scroll', globalEventDelegate);\n } else {\n DomQuery(window).off('resize scroll', globalEventDelegate);\n }\n boundGlobalEvents = state;\n }\n };\n var removeEditorFromList = function (targetEditor) {\n var oldEditors = editors;\n delete legacyEditors[targetEditor.id];\n for (var i = 0; i < legacyEditors.length; i++) {\n if (legacyEditors[i] === targetEditor) {\n legacyEditors.splice(i, 1);\n break;\n }\n }\n editors = filter(editors, function (editor) {\n return targetEditor !== editor;\n });\n if (EditorManager.activeEditor === targetEditor) {\n EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\n }\n if (EditorManager.focusedEditor === targetEditor) {\n EditorManager.focusedEditor = null;\n }\n return oldEditors.length !== editors.length;\n };\n var purgeDestroyedEditor = function (editor) {\n if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n removeEditorFromList(editor);\n editor.unbindAllNativeEvents();\n editor.destroy(true);\n editor.removed = true;\n editor = null;\n }\n return editor;\n };\n var EditorManager = __assign({}, Observable, {\n _beforeUnloadHandler: null,\n baseURI: null,\n baseURL: null,\n defaultSettings: {},\n documentBaseURL: null,\n suffix: null,\n $: DomQuery,\n majorVersion: '5',\n minorVersion: '0.4',\n releaseDate: '2019-04-23',\n editors: legacyEditors,\n i18n: I18n,\n activeEditor: null,\n focusedEditor: null,\n settings: {},\n setup: function () {\n var self = this;\n var baseURL, documentBaseURL, suffix = '', preInit, src;\n documentBaseURL = URI.getDocumentBaseUrl(domGlobals.document.location);\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(documentBaseURL)) {\n documentBaseURL += '/';\n }\n }\n preInit = window.tinymce || window.tinyMCEPreInit;\n if (preInit) {\n baseURL = preInit.base || preInit.baseURL;\n suffix = preInit.suffix;\n } else {\n var scripts = domGlobals.document.getElementsByTagName('script');\n for (var i = 0; i < scripts.length; i++) {\n src = scripts[i].src;\n var srcScript = src.substring(src.lastIndexOf('/'));\n if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n if (srcScript.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n break;\n }\n }\n if (!baseURL && domGlobals.document.currentScript) {\n src = domGlobals.document.currentScript.src;\n if (src.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n }\n }\n self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n self.documentBaseURL = documentBaseURL;\n self.baseURI = new URI(self.baseURL);\n self.suffix = suffix;\n FocusController.setup(self);\n },\n overrideDefaults: function (defaultSettings) {\n var baseUrl, suffix;\n baseUrl = defaultSettings.base_url;\n if (baseUrl) {\n this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n this.baseURI = new URI(this.baseURL);\n }\n suffix = defaultSettings.suffix;\n if (defaultSettings.suffix) {\n this.suffix = suffix;\n }\n this.defaultSettings = defaultSettings;\n var pluginBaseUrls = defaultSettings.plugin_base_urls;\n for (var name in pluginBaseUrls) {\n AddOnManager$1.PluginManager.urls[name] = pluginBaseUrls[name];\n }\n },\n init: function (settings) {\n var self = this;\n var result, invalidInlineTargets;\n invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' ');\n var isInvalidInlineTarget = function (settings, elm) {\n return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n };\n var createId = function (elm) {\n var id = elm.id;\n if (!id) {\n id = elm.name;\n if (id && !DOM$9.get(id)) {\n id = elm.name;\n } else {\n id = DOM$9.uniqueId();\n }\n elm.setAttribute('id', id);\n }\n return id;\n };\n var execCallback = function (name) {\n var callback = settings[name];\n if (!callback) {\n return;\n }\n return callback.apply(self, Array.prototype.slice.call(arguments, 2));\n };\n var hasClass = function (elm, className) {\n return className.constructor === RegExp ? className.test(elm.className) : DOM$9.hasClass(elm, className);\n };\n var findTargets = function (settings) {\n var l, targets = [];\n if (Env.ie && Env.ie < 11) {\n ErrorReporter.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');\n return [];\n }\n if (settings.types) {\n each$k(settings.types, function (type) {\n targets = targets.concat(DOM$9.select(type.selector));\n });\n return targets;\n } else if (settings.selector) {\n return DOM$9.select(settings.selector);\n } else if (settings.target) {\n return [settings.target];\n }\n switch (settings.mode) {\n case 'exact':\n l = settings.elements || '';\n if (l.length > 0) {\n each$k(explode$4(l), function (id) {\n var elm;\n if (elm = DOM$9.get(id)) {\n targets.push(elm);\n } else {\n each$k(domGlobals.document.forms, function (f) {\n each$k(f.elements, function (e) {\n if (e.name === id) {\n id = 'mce_editor_' + instanceCounter++;\n DOM$9.setAttrib(e, 'id', id);\n targets.push(e);\n }\n });\n });\n }\n });\n }\n break;\n case 'textareas':\n case 'specific_textareas':\n each$k(DOM$9.select('textarea'), function (elm) {\n if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {\n return;\n }\n if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) {\n targets.push(elm);\n }\n });\n break;\n }\n return targets;\n };\n var provideResults = function (editors) {\n result = editors;\n };\n var initEditors = function () {\n var initCount = 0;\n var editors = [];\n var targets;\n var createEditor = function (id, settings, targetElm) {\n var editor = new Editor(id, settings, self);\n editors.push(editor);\n editor.on('init', function () {\n if (++initCount === targets.length) {\n provideResults(editors);\n }\n });\n editor.targetElm = editor.targetElm || targetElm;\n editor.render();\n };\n DOM$9.unbind(window, 'ready', initEditors);\n execCallback('onpageload');\n targets = DomQuery.unique(findTargets(settings));\n if (settings.types) {\n each$k(settings.types, function (type) {\n Tools.each(targets, function (elm) {\n if (DOM$9.is(elm, type.selector)) {\n createEditor(createId(elm), extend$4({}, settings, type), elm);\n return false;\n }\n return true;\n });\n });\n return;\n }\n Tools.each(targets, function (elm) {\n purgeDestroyedEditor(self.get(elm.id));\n });\n targets = Tools.grep(targets, function (elm) {\n return !self.get(elm.id);\n });\n if (targets.length === 0) {\n provideResults([]);\n } else {\n each$k(targets, function (elm) {\n if (isInvalidInlineTarget(settings, elm)) {\n ErrorReporter.initError('Could not initialize inline editor on invalid inline target element', elm);\n } else {\n createEditor(createId(elm), settings, elm);\n }\n });\n }\n };\n self.settings = settings;\n DOM$9.bind(window, 'ready', initEditors);\n return new promiseObj(function (resolve) {\n if (result) {\n resolve(result);\n } else {\n provideResults = function (editors) {\n resolve(editors);\n };\n }\n });\n },\n get: function (id) {\n if (arguments.length === 0) {\n return editors.slice(0);\n } else if (isString(id)) {\n return find(editors, function (editor) {\n return editor.id === id;\n }).getOr(null);\n } else if (isNumber(id)) {\n return editors[id] ? editors[id] : null;\n } else {\n return null;\n }\n },\n add: function (editor) {\n var self = this;\n var existingEditor;\n existingEditor = legacyEditors[editor.id];\n if (existingEditor === editor) {\n return editor;\n }\n if (self.get(editor.id) === null) {\n if (isValidLegacyKey(editor.id)) {\n legacyEditors[editor.id] = editor;\n }\n legacyEditors.push(editor);\n editors.push(editor);\n }\n toggleGlobalEvents(true);\n self.activeEditor = editor;\n self.fire('AddEditor', { editor: editor });\n if (!beforeUnloadDelegate) {\n beforeUnloadDelegate = function () {\n self.fire('BeforeUnload');\n };\n DOM$9.bind(window, 'beforeunload', beforeUnloadDelegate);\n }\n return editor;\n },\n createEditor: function (id, settings) {\n return this.add(new Editor(id, settings, this));\n },\n remove: function (selector) {\n var self = this;\n var i, editor;\n if (!selector) {\n for (i = editors.length - 1; i >= 0; i--) {\n self.remove(editors[i]);\n }\n return;\n }\n if (isString(selector)) {\n each$k(DOM$9.select(selector), function (elm) {\n editor = self.get(elm.id);\n if (editor) {\n self.remove(editor);\n }\n });\n return;\n }\n editor = selector;\n if (isNull(self.get(editor.id))) {\n return null;\n }\n if (removeEditorFromList(editor)) {\n self.fire('RemoveEditor', { editor: editor });\n }\n if (editors.length === 0) {\n DOM$9.unbind(window, 'beforeunload', beforeUnloadDelegate);\n }\n editor.remove();\n toggleGlobalEvents(editors.length > 0);\n return editor;\n },\n execCommand: function (cmd, ui, value) {\n var self = this, editor = self.get(value);\n switch (cmd) {\n case 'mceAddEditor':\n if (!self.get(value)) {\n new Editor(value, self.settings, self).render();\n }\n return true;\n case 'mceRemoveEditor':\n if (editor) {\n editor.remove();\n }\n return true;\n case 'mceToggleEditor':\n if (!editor) {\n self.execCommand('mceAddEditor', 0, value);\n return true;\n }\n if (editor.isHidden()) {\n editor.show();\n } else {\n editor.hide();\n }\n return true;\n }\n if (self.activeEditor) {\n return self.activeEditor.execCommand(cmd, ui, value);\n }\n return false;\n },\n triggerSave: function () {\n each$k(editors, function (editor) {\n editor.save();\n });\n },\n addI18n: function (code, items) {\n I18n.add(code, items);\n },\n translate: function (text) {\n return I18n.translate(text);\n },\n setActive: function (editor) {\n var activeEditor = this.activeEditor;\n if (this.activeEditor !== editor) {\n if (activeEditor) {\n activeEditor.fire('deactivate', { relatedTarget: editor });\n }\n editor.fire('activate', { relatedTarget: activeEditor });\n }\n this.activeEditor = editor;\n }\n });\n EditorManager.setup();\n\n function RangeUtils(dom) {\n var walk = function (rng, callback) {\n return RangeWalk.walk(dom, rng, callback);\n };\n var split = split$1;\n var normalize = function (rng) {\n return NormalizeRange.normalize(dom, rng).fold(constant(false), function (normalizedRng) {\n rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\n rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\n return true;\n });\n };\n return {\n walk: walk,\n split: split,\n normalize: normalize\n };\n }\n (function (RangeUtils) {\n RangeUtils.compareRanges = RangeCompare.isEq;\n RangeUtils.getCaretRangeFromPoint = CaretRangeFromPoint.fromPoint;\n RangeUtils.getSelectedNode = getSelectedNode;\n RangeUtils.getNode = getNode;\n }(RangeUtils || (RangeUtils = {})));\n var RangeUtils$1 = RangeUtils;\n\n var min = Math.min, max = Math.max, round$2 = Math.round;\n var relativePosition = function (rect, targetRect, rel) {\n var x, y, w, h, targetW, targetH;\n x = targetRect.x;\n y = targetRect.y;\n w = rect.w;\n h = rect.h;\n targetW = targetRect.w;\n targetH = targetRect.h;\n rel = (rel || '').split('');\n if (rel[0] === 'b') {\n y += targetH;\n }\n if (rel[1] === 'r') {\n x += targetW;\n }\n if (rel[0] === 'c') {\n y += round$2(targetH / 2);\n }\n if (rel[1] === 'c') {\n x += round$2(targetW / 2);\n }\n if (rel[3] === 'b') {\n y -= h;\n }\n if (rel[4] === 'r') {\n x -= w;\n }\n if (rel[3] === 'c') {\n y -= round$2(h / 2);\n }\n if (rel[4] === 'c') {\n x -= round$2(w / 2);\n }\n return create$5(x, y, w, h);\n };\n var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) {\n var pos, i;\n for (i = 0; i < rels.length; i++) {\n pos = relativePosition(rect, targetRect, rels[i]);\n if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\n return rels[i];\n }\n }\n return null;\n };\n var inflate = function (rect, w, h) {\n return create$5(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\n };\n var intersect = function (rect, cropRect) {\n var x1, y1, x2, y2;\n x1 = max(rect.x, cropRect.x);\n y1 = max(rect.y, cropRect.y);\n x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\n y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\n if (x2 - x1 < 0 || y2 - y1 < 0) {\n return null;\n }\n return create$5(x1, y1, x2 - x1, y2 - y1);\n };\n var clamp$1 = function (rect, clampRect, fixedSize) {\n var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2;\n x1 = rect.x;\n y1 = rect.y;\n x2 = rect.x + rect.w;\n y2 = rect.y + rect.h;\n cx2 = clampRect.x + clampRect.w;\n cy2 = clampRect.y + clampRect.h;\n underflowX1 = max(0, clampRect.x - x1);\n underflowY1 = max(0, clampRect.y - y1);\n overflowX2 = max(0, x2 - cx2);\n overflowY2 = max(0, y2 - cy2);\n x1 += underflowX1;\n y1 += underflowY1;\n if (fixedSize) {\n x2 += underflowX1;\n y2 += underflowY1;\n x1 -= overflowX2;\n y1 -= overflowY2;\n }\n x2 -= overflowX2;\n y2 -= overflowY2;\n return create$5(x1, y1, x2 - x1, y2 - y1);\n };\n var create$5 = function (x, y, w, h) {\n return {\n x: x,\n y: y,\n w: w,\n h: h\n };\n };\n var fromClientRect = function (clientRect) {\n return create$5(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n };\n var Rect = {\n inflate: inflate,\n relativePosition: relativePosition,\n findBestRelativePosition: findBestRelativePosition,\n intersect: intersect,\n clamp: clamp$1,\n create: create$5,\n fromClientRect: fromClientRect\n };\n\n var each$l = Tools.each, extend$5 = Tools.extend;\n var extendClass, initializing;\n var Class = function () {\n };\n Class.extend = extendClass = function (prop) {\n var self = this;\n var _super = self.prototype;\n var prototype, name, member;\n var Class = function () {\n var i, mixins, mixin;\n var self = this;\n if (!initializing) {\n if (self.init) {\n self.init.apply(self, arguments);\n }\n mixins = self.Mixins;\n if (mixins) {\n i = mixins.length;\n while (i--) {\n mixin = mixins[i];\n if (mixin.init) {\n mixin.init.apply(self, arguments);\n }\n }\n }\n }\n };\n var dummy = function () {\n return this;\n };\n var createMethod = function (name, fn) {\n return function () {\n var self = this;\n var tmp = self._super;\n var ret;\n self._super = _super[name];\n ret = fn.apply(self, arguments);\n self._super = tmp;\n return ret;\n };\n };\n initializing = true;\n prototype = new self();\n initializing = false;\n if (prop.Mixins) {\n each$l(prop.Mixins, function (mixin) {\n for (var name_1 in mixin) {\n if (name_1 !== 'init') {\n prop[name_1] = mixin[name_1];\n }\n }\n });\n if (_super.Mixins) {\n prop.Mixins = _super.Mixins.concat(prop.Mixins);\n }\n }\n if (prop.Methods) {\n each$l(prop.Methods.split(','), function (name) {\n prop[name] = dummy;\n });\n }\n if (prop.Properties) {\n each$l(prop.Properties.split(','), function (name) {\n var fieldName = '_' + name;\n prop[name] = function (value) {\n var self = this;\n if (value !== undefined) {\n self[fieldName] = value;\n return self;\n }\n return self[fieldName];\n };\n });\n }\n if (prop.Statics) {\n each$l(prop.Statics, function (func, name) {\n Class[name] = func;\n });\n }\n if (prop.Defaults && _super.Defaults) {\n prop.Defaults = extend$5({}, _super.Defaults, prop.Defaults);\n }\n for (name in prop) {\n member = prop[name];\n if (typeof member === 'function' && _super[name]) {\n prototype[name] = createMethod(name, member);\n } else {\n prototype[name] = member;\n }\n }\n Class.prototype = prototype;\n Class.constructor = Class;\n Class.extend = extendClass;\n return Class;\n };\n\n var min$1 = Math.min, max$1 = Math.max, round$3 = Math.round;\n var Color = function (value) {\n var self = {};\n var r = 0, g = 0, b = 0;\n var rgb2hsv = function (r, g, b) {\n var h, s, v, d, minRGB, maxRGB;\n h = 0;\n s = 0;\n v = 0;\n r = r / 255;\n g = g / 255;\n b = b / 255;\n minRGB = min$1(r, min$1(g, b));\n maxRGB = max$1(r, max$1(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return {\n h: 0,\n s: 0,\n v: v * 100\n };\n }\n d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return {\n h: round$3(h),\n s: round$3(s * 100),\n v: round$3(v * 100)\n };\n };\n var hsvToRgb = function (hue, saturation, brightness) {\n var side, chroma, x, match;\n hue = (parseInt(hue, 10) || 0) % 360;\n saturation = parseInt(saturation, 10) / 100;\n brightness = parseInt(brightness, 10) / 100;\n saturation = max$1(0, min$1(saturation, 1));\n brightness = max$1(0, min$1(brightness, 1));\n if (saturation === 0) {\n r = g = b = round$3(255 * brightness);\n return;\n }\n side = hue / 60;\n chroma = brightness * saturation;\n x = chroma * (1 - Math.abs(side % 2 - 1));\n match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round$3(255 * (r + match));\n g = round$3(255 * (g + match));\n b = round$3(255 * (b + match));\n };\n var toHex = function () {\n var hex = function (val) {\n val = parseInt(val, 10).toString(16);\n return val.length > 1 ? val : '0' + val;\n };\n return '#' + hex(r) + hex(g) + hex(b);\n };\n var toRgb = function () {\n return {\n r: r,\n g: g,\n b: b\n };\n };\n var toHsv = function () {\n return rgb2hsv(r, g, b);\n };\n var parse = function (value) {\n var matches;\n if (typeof value === 'object') {\n if ('r' in value) {\n r = value.r;\n g = value.g;\n b = value.b;\n } else if ('v' in value) {\n hsvToRgb(value.h, value.s, value.v);\n }\n } else {\n if (matches = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)[^\\)]*\\)/gi.exec(value)) {\n r = parseInt(matches[1], 10);\n g = parseInt(matches[2], 10);\n b = parseInt(matches[3], 10);\n } else if (matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value)) {\n r = parseInt(matches[1], 16);\n g = parseInt(matches[2], 16);\n b = parseInt(matches[3], 16);\n } else if (matches = /#([0-F])([0-F])([0-F])/gi.exec(value)) {\n r = parseInt(matches[1] + matches[1], 16);\n g = parseInt(matches[2] + matches[2], 16);\n b = parseInt(matches[3] + matches[3], 16);\n }\n }\n r = r < 0 ? 0 : r > 255 ? 255 : r;\n g = g < 0 ? 0 : g > 255 ? 255 : g;\n b = b < 0 ? 0 : b > 255 ? 255 : b;\n return self;\n };\n if (value) {\n parse(value);\n }\n self.toRgb = toRgb;\n self.toHsv = toHsv;\n self.toHex = toHex;\n self.parse = parse;\n return self;\n };\n\n var serialize = function (obj) {\n var data = JSON.stringify(obj);\n if (!isString(data)) {\n return data;\n }\n return data.replace(/[\\u0080-\\uFFFF]/g, function (match) {\n var hexCode = match.charCodeAt(0).toString(16);\n return '\\\\u' + '0000'.substring(hexCode.length) + hexCode;\n });\n };\n var JSONUtils = {\n serialize: serialize,\n parse: function (text) {\n try {\n return JSON.parse(text);\n } catch (ex) {\n }\n }\n };\n\n var JSONP = {\n callbacks: {},\n count: 0,\n send: function (settings) {\n var self = this, dom = DOMUtils$1.DOM, count = settings.count !== undefined ? settings.count : self.count;\n var id = 'tinymce_jsonp_' + count;\n self.callbacks[count] = function (json) {\n dom.remove(id);\n delete self.callbacks[count];\n settings.callback(json);\n };\n dom.add(dom.doc.body, 'script', {\n id: id,\n src: settings.url,\n type: 'text/javascript'\n });\n self.count++;\n }\n };\n\n var XHR = __assign({}, Observable, {\n send: function (settings) {\n var xhr, count = 0;\n var ready = function () {\n if (!settings.async || xhr.readyState === 4 || count++ > 10000) {\n if (settings.success && count < 10000 && xhr.status === 200) {\n settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings);\n } else if (settings.error) {\n settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings);\n }\n xhr = null;\n } else {\n Delay.setTimeout(ready, 10);\n }\n };\n settings.scope = settings.scope || this;\n settings.success_scope = settings.success_scope || settings.scope;\n settings.error_scope = settings.error_scope || settings.scope;\n settings.async = settings.async !== false;\n settings.data = settings.data || '';\n XHR.fire('beforeInitialize', { settings: settings });\n xhr = XMLHttpRequest();\n if (xhr) {\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(settings.content_type);\n }\n xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async);\n if (settings.crossDomain) {\n xhr.withCredentials = true;\n }\n if (settings.content_type) {\n xhr.setRequestHeader('Content-Type', settings.content_type);\n }\n if (settings.requestheaders) {\n Tools.each(settings.requestheaders, function (header) {\n xhr.setRequestHeader(header.key, header.value);\n });\n }\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n xhr = XHR.fire('beforeSend', {\n xhr: xhr,\n settings: settings\n }).xhr;\n xhr.send(settings.data);\n if (!settings.async) {\n return ready();\n }\n Delay.setTimeout(ready, 10);\n }\n }\n });\n\n var extend$6 = Tools.extend;\n var JSONRequest = function () {\n function JSONRequest(settings) {\n this.settings = extend$6({}, settings);\n this.count = 0;\n }\n JSONRequest.sendRPC = function (o) {\n return new JSONRequest().send(o);\n };\n JSONRequest.prototype.send = function (args) {\n var ecb = args.error, scb = args.success;\n var xhrArgs = extend$6(this.settings, args);\n xhrArgs.success = function (c, x) {\n c = JSONUtils.parse(c);\n if (typeof c === 'undefined') {\n c = { error: 'JSON Parse error.' };\n }\n if (c.error) {\n ecb.call(xhrArgs.error_scope || xhrArgs.scope, c.error, x);\n } else {\n scb.call(xhrArgs.success_scope || xhrArgs.scope, c.result);\n }\n };\n xhrArgs.error = function (ty, x) {\n if (ecb) {\n ecb.call(xhrArgs.error_scope || xhrArgs.scope, ty, x);\n }\n };\n xhrArgs.data = JSONUtils.serialize({\n id: args.id || 'c' + this.count++,\n method: args.method,\n params: args.params\n });\n xhrArgs.content_type = 'application/json';\n XHR.send(xhrArgs);\n };\n return JSONRequest;\n }();\n\n var create$6 = function () {\n return function () {\n var data = {};\n var keys = [];\n var storage = {\n getItem: function (key) {\n var item = data[key];\n return item ? item : null;\n },\n setItem: function (key, value) {\n keys.push(key);\n data[key] = String(value);\n },\n key: function (index) {\n return keys[index];\n },\n removeItem: function (key) {\n keys = keys.filter(function (k) {\n return k === key;\n });\n delete data[key];\n },\n clear: function () {\n keys = [];\n data = {};\n },\n length: 0\n };\n Object.defineProperty(storage, 'length', {\n get: function () {\n return keys.length;\n },\n configurable: false,\n enumerable: false\n });\n return storage;\n }();\n };\n\n var localStorage;\n try {\n localStorage = domGlobals.window.localStorage;\n } catch (e) {\n localStorage = create$6();\n }\n var LocalStorage = localStorage;\n\n var publicApi = {\n geom: { Rect: Rect },\n util: {\n Promise: promiseObj,\n Delay: Delay,\n Tools: Tools,\n VK: VK,\n URI: URI,\n Class: Class,\n EventDispatcher: EventDispatcher,\n Observable: Observable,\n I18n: I18n,\n XHR: XHR,\n JSON: JSONUtils,\n JSONRequest: JSONRequest,\n JSONP: JSONP,\n LocalStorage: LocalStorage,\n Color: Color\n },\n dom: {\n EventUtils: EventUtils,\n Sizzle: Sizzle,\n DomQuery: DomQuery,\n TreeWalker: TreeWalker,\n DOMUtils: DOMUtils$1,\n ScriptLoader: ScriptLoader,\n RangeUtils: RangeUtils$1,\n Serializer: Serializer$1,\n ControlSelection: ControlSelection,\n BookmarkManager: BookmarkManager$1,\n Selection: Selection,\n Event: EventUtils.Event\n },\n html: {\n Styles: Styles,\n Entities: Entities,\n Node: Node$1,\n Schema: Schema,\n SaxParser: SaxParser$1,\n DomParser: DomParser,\n Writer: Writer,\n Serializer: Serializer\n },\n Env: Env,\n AddOnManager: AddOnManager$1,\n Annotator: Annotator,\n Formatter: Formatter,\n UndoManager: UndoManager,\n EditorCommands: EditorCommands,\n WindowManager: WindowManager,\n NotificationManager: NotificationManager,\n EditorObservable: EditorObservable,\n Shortcuts: Shortcuts,\n Editor: Editor,\n FocusManager: FocusManager,\n EditorManager: EditorManager,\n DOM: DOMUtils$1.DOM,\n ScriptLoader: ScriptLoader.ScriptLoader,\n PluginManager: AddOnManager$1.PluginManager,\n ThemeManager: AddOnManager$1.ThemeManager,\n IconManager: IconManager,\n trim: Tools.trim,\n isArray: Tools.isArray,\n is: Tools.is,\n toArray: Tools.toArray,\n makeMap: Tools.makeMap,\n each: Tools.each,\n map: Tools.map,\n grep: Tools.grep,\n inArray: Tools.inArray,\n extend: Tools.extend,\n create: Tools.create,\n walk: Tools.walk,\n createNS: Tools.createNS,\n resolve: Tools.resolve,\n explode: Tools.explode,\n _addCacheSuffix: Tools._addCacheSuffix,\n isOpera: Env.opera,\n isWebKit: Env.webkit,\n isIE: Env.ie,\n isGecko: Env.gecko,\n isMac: Env.mac\n };\n var tinymce = Tools.extend(EditorManager, publicApi);\n\n var exportToModuleLoaders = function (tinymce) {\n if (typeof module === 'object') {\n try {\n module.exports = tinymce;\n } catch (_) {\n }\n }\n };\n var exportToWindowGlobal = function (tinymce) {\n window.tinymce = tinymce;\n window.tinyMCE = tinymce;\n };\n exportToWindowGlobal(tinymce);\n exportToModuleLoaders(tinymce);\n\n}(window));\n})();\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar wordcount = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n var regExps = {\n aletter: '[A-Za-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05F3\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u10a0-\\u10c5\\u10d0-\\u10fa\\u10fc\\u1100-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1a00-\\u1a16\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bc0-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u24B6-\\u24E9\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2d00-\\u2d25\\u2d30-\\u2d65\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005\\u303b\\u303c\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790\\ua791\\ua7a0-\\ua7a9\\ua7fa-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]',\n midnumlet: '[-\\'\\\\.\\u2018\\u2019\\u2024\\uFE52\\uFF07\\uFF0E]',\n midletter: '[:\\xB7\\xB7\\u05F4\\u2027\\uFE13\\uFE55\\uFF1A]',\n midnum: '[\\xB1+*/,;;\\u0589\\u060C\\u060D\\u066C\\u07F8\\u2044\\uFE10\\uFE14\\uFE50\\uFE54\\uFF0C\\uFF1B]',\n numeric: '[0-9\\u0660-\\u0669\\u066B\\u06f0-\\u06f9\\u07c0-\\u07c9\\u0966-\\u096f\\u09e6-\\u09ef\\u0a66-\\u0a6f\\u0ae6-\\u0aef\\u0b66-\\u0b6f\\u0be6-\\u0bef\\u0c66-\\u0c6f\\u0ce6-\\u0cef\\u0d66-\\u0d6f\\u0e50-\\u0e59\\u0ed0-\\u0ed9\\u0f20-\\u0f29\\u1040-\\u1049\\u1090-\\u1099\\u17e0-\\u17e9\\u1810-\\u1819\\u1946-\\u194f\\u19d0-\\u19d9\\u1a80-\\u1a89\\u1a90-\\u1a99\\u1b50-\\u1b59\\u1bb0-\\u1bb9\\u1c40-\\u1c49\\u1c50-\\u1c59\\ua620-\\ua629\\ua8d0-\\ua8d9\\ua900-\\ua909\\ua9d0-\\ua9d9\\uaa50-\\uaa59\\uabf0-\\uabf9]',\n cr: '\\\\r',\n lf: '\\\\n',\n newline: '[\\x0B\\f\\x85\\u2028\\u2029]',\n extend: '[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f\\u109a-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b6-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u19b0-\\u19c0\\u19c8\\u19c9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1baa\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\uA672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe3-\\uabea\\uabec\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]',\n format: '[\\xAD\\u0600-\\u0603\\u06DD\\u070F\\u17b4\\u17b5\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u206A-\\u206F\\uFEFF\\uFFF9-\\uFFFB]',\n katakana: '[\\u3031-\\u3035\\u309B\\u309C\\u30A0-\\u30fa\\u30fc-\\u30ff\\u31f0-\\u31ff\\u32D0-\\u32FE\\u3300-\\u3357\\uff66-\\uff9d]',\n extendnumlet: '[=_\\u203f\\u2040\\u2054\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff3f\\u2200-\\u22FF<>]',\n punctuation: '[!-#%-*,-\\\\/:;?@\\\\[-\\\\]_{}\\xA1\\xAB\\xB7\\xBB\\xBF;\\xB7\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1361-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u3008\\u3009\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30\\u2E31\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uff3f\\uFF5B\\uFF5D\\uFF5F-\\uFF65]'\n };\n var characterIndices = {\n ALETTER: 0,\n MIDNUMLET: 1,\n MIDLETTER: 2,\n MIDNUM: 3,\n NUMERIC: 4,\n CR: 5,\n LF: 6,\n NEWLINE: 7,\n EXTEND: 8,\n FORMAT: 9,\n KATAKANA: 10,\n EXTENDNUMLET: 11,\n AT: 12,\n OTHER: 13\n };\n var SETS = [\n new RegExp(regExps.aletter),\n new RegExp(regExps.midnumlet),\n new RegExp(regExps.midletter),\n new RegExp(regExps.midnum),\n new RegExp(regExps.numeric),\n new RegExp(regExps.cr),\n new RegExp(regExps.lf),\n new RegExp(regExps.newline),\n new RegExp(regExps.extend),\n new RegExp(regExps.format),\n new RegExp(regExps.katakana),\n new RegExp(regExps.extendnumlet),\n new RegExp('@')\n ];\n var EMPTY_STRING = '';\n var PUNCTUATION = new RegExp('^' + regExps.punctuation + '$');\n var WHITESPACE = /^\\s+$/;\n\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n var never = constant(false);\n var always = constant(true);\n\n var never$1 = never;\n var always$1 = always;\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var noop = function () {\n };\n var nul = function () {\n return null;\n };\n var undef = function () {\n return undefined;\n };\n var me = {\n fold: function (n, s) {\n return n();\n },\n is: never$1,\n isSome: never$1,\n isNone: always$1,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: nul,\n getOrUndefined: undef,\n or: id,\n orThunk: call,\n map: none,\n ap: none,\n each: noop,\n bind: none,\n flatten: none,\n exists: never$1,\n forall: always$1,\n filter: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n if (Object.freeze)\n Object.freeze(me);\n return me;\n }();\n\n var typeOf = function (x) {\n if (x === null)\n return 'null';\n var t = typeof x;\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\n return 'array';\n if (t === 'object' && String.prototype.isPrototypeOf(x))\n return 'string';\n return t;\n };\n var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isFunction = isType('function');\n\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i, xs);\n }\n return r;\n };\n var slice = Array.prototype.slice;\n var from = isFunction(Array.from) ? Array.from : function (x) {\n return slice.call(x);\n };\n\n var SETS$1 = SETS;\n var OTHER = characterIndices.OTHER;\n var getType = function (char) {\n var type = OTHER;\n var setsLength = SETS$1.length;\n for (var j = 0; j < setsLength; ++j) {\n var set = SETS$1[j];\n if (set && set.test(char)) {\n type = j;\n break;\n }\n }\n return type;\n };\n var memoize = function (func) {\n var cache = {};\n return function (char) {\n if (cache[char]) {\n return cache[char];\n } else {\n var result = func(char);\n cache[char] = result;\n return result;\n }\n };\n };\n var classify = function (characters) {\n var memoized = memoize(getType);\n return map(characters, memoized);\n };\n\n var isWordBoundary = function (map, index) {\n var prevType;\n var type = map[index];\n var nextType = map[index + 1];\n var nextNextType;\n if (index < 0 || index > map.length - 1 && index !== 0) {\n return false;\n }\n if (type === characterIndices.ALETTER && nextType === characterIndices.ALETTER) {\n return false;\n }\n nextNextType = map[index + 2];\n if (type === characterIndices.ALETTER && (nextType === characterIndices.MIDLETTER || nextType === characterIndices.MIDNUMLET || nextType === characterIndices.AT) && nextNextType === characterIndices.ALETTER) {\n return false;\n }\n prevType = map[index - 1];\n if ((type === characterIndices.MIDLETTER || type === characterIndices.MIDNUMLET || nextType === characterIndices.AT) && nextType === characterIndices.ALETTER && prevType === characterIndices.ALETTER) {\n return false;\n }\n if ((type === characterIndices.NUMERIC || type === characterIndices.ALETTER) && (nextType === characterIndices.NUMERIC || nextType === characterIndices.ALETTER)) {\n return false;\n }\n if ((type === characterIndices.MIDNUM || type === characterIndices.MIDNUMLET) && nextType === characterIndices.NUMERIC && prevType === characterIndices.NUMERIC) {\n return false;\n }\n if (type === characterIndices.NUMERIC && (nextType === characterIndices.MIDNUM || nextType === characterIndices.MIDNUMLET) && nextNextType === characterIndices.NUMERIC) {\n return false;\n }\n if (type === characterIndices.EXTEND || type === characterIndices.FORMAT || prevType === characterIndices.EXTEND || prevType === characterIndices.FORMAT || nextType === characterIndices.EXTEND || nextType === characterIndices.FORMAT) {\n return false;\n }\n if (type === characterIndices.CR && nextType === characterIndices.LF) {\n return false;\n }\n if (type === characterIndices.NEWLINE || type === characterIndices.CR || type === characterIndices.LF) {\n return true;\n }\n if (nextType === characterIndices.NEWLINE || nextType === characterIndices.CR || nextType === characterIndices.LF) {\n return true;\n }\n if (type === characterIndices.KATAKANA && nextType === characterIndices.KATAKANA) {\n return false;\n }\n if (nextType === characterIndices.EXTENDNUMLET && (type === characterIndices.ALETTER || type === characterIndices.NUMERIC || type === characterIndices.KATAKANA || type === characterIndices.EXTENDNUMLET)) {\n return false;\n }\n if (type === characterIndices.EXTENDNUMLET && (nextType === characterIndices.ALETTER || nextType === characterIndices.NUMERIC || nextType === characterIndices.KATAKANA)) {\n return false;\n }\n if (type === characterIndices.AT) {\n return false;\n }\n return true;\n };\n\n var EMPTY_STRING$1 = EMPTY_STRING;\n var WHITESPACE$1 = WHITESPACE;\n var PUNCTUATION$1 = PUNCTUATION;\n var isProtocol = function (str) {\n return str === 'http' || str === 'https';\n };\n var findWordEnd = function (characters, startIndex) {\n var i;\n for (i = startIndex; i < characters.length; i++) {\n if (WHITESPACE$1.test(characters[i])) {\n break;\n }\n }\n return i;\n };\n var findUrlEnd = function (characters, startIndex) {\n var endIndex = findWordEnd(characters, startIndex + 1);\n var peakedWord = characters.slice(startIndex + 1, endIndex).join(EMPTY_STRING$1);\n return peakedWord.substr(0, 3) === '://' ? endIndex : startIndex;\n };\n var findWords = function (chars, sChars, characterMap, options) {\n var words = [];\n var word = [];\n for (var i = 0; i < characterMap.length; ++i) {\n word.push(chars[i]);\n if (isWordBoundary(characterMap, i)) {\n var ch = sChars[i];\n if ((options.includeWhitespace || !WHITESPACE$1.test(ch)) && (options.includePunctuation || !PUNCTUATION$1.test(ch))) {\n var startOfWord = i - word.length + 1;\n var endOfWord = i + 1;\n var str = sChars.slice(startOfWord, endOfWord).join(EMPTY_STRING$1);\n if (isProtocol(str)) {\n var endOfUrl = findUrlEnd(sChars, i);\n var url = chars.slice(endOfWord, endOfUrl);\n Array.prototype.push.apply(word, url);\n i = endOfUrl;\n }\n words.push(word);\n }\n word = [];\n }\n }\n return words;\n };\n var getDefaultOptions = function () {\n return {\n includeWhitespace: false,\n includePunctuation: false\n };\n };\n var getWords = function (chars, extract, options) {\n options = __assign({}, getDefaultOptions(), options);\n var filteredChars = [];\n var extractedChars = [];\n for (var i = 0; i < chars.length; i++) {\n var ch = extract(chars[i]);\n if (ch !== '\\uFEFF') {\n filteredChars.push(chars[i]);\n extractedChars.push(ch);\n }\n }\n var characterMap = classify(extractedChars);\n return findWords(filteredChars, extractedChars, characterMap, options);\n };\n\n var getWords$1 = getWords;\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var getText = function (node, schema) {\n var blockElements = schema.getBlockElements();\n var shortEndedElements = schema.getShortEndedElements();\n var whiteSpaceElements = schema.getWhiteSpaceElements();\n var isSeparator = function (node) {\n return blockElements[node.nodeName] || shortEndedElements[node.nodeName] || whiteSpaceElements[node.nodeName];\n };\n var txt = '';\n var treeWalker = new global$1(node, node);\n while (node = treeWalker.next()) {\n if (node.nodeType === 3) {\n txt += node.data;\n } else if (txt.length !== 0 && isSeparator(node)) {\n txt += ' ';\n }\n }\n return txt;\n };\n var getTextContent = function (editor) {\n return editor.removed ? '' : getText(editor.getBody(), editor.schema);\n };\n var getCount = function (textContent) {\n return {\n words: getWords$1(textContent.split(''), identity).length,\n characters: textContent.length,\n charactersNoSpace: textContent.replace(/\\s/g, '').length\n };\n };\n var getEditorWordcount = function (editor) {\n return getCount(getTextContent(editor));\n };\n var getSelectionWordcount = function (editor) {\n var selectedText = getText(editor.selection.getRng().cloneContents(), editor.schema);\n return editor.selection.isCollapsed() ? getCount('') : getCount(selectedText);\n };\n\n var get = function (editor) {\n var getCount = function () {\n return getEditorWordcount(editor).words;\n };\n return { getCount: getCount };\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var fireWordCountUpdate = function (editor, wordCount) {\n editor.fire('wordCountUpdate', { wordCount: wordCount });\n };\n\n var updateCount = function (editor) {\n var wordCount = getEditorWordcount(editor);\n fireWordCountUpdate(editor, wordCount);\n };\n var setup = function (editor) {\n var debouncedUpdate = global$2.debounce(function () {\n return updateCount(editor);\n }, 300);\n editor.on('init', function () {\n updateCount(editor);\n global$2.setEditorTimeout(editor, function () {\n editor.on('SetContent BeforeAddUndo Undo Redo keyup', debouncedUpdate);\n }, 0);\n });\n };\n\n var open = function (editor) {\n var documentCount = getEditorWordcount(editor);\n var selectionCount = getSelectionWordcount(editor);\n editor.windowManager.open({\n title: 'Word Count',\n body: {\n type: 'panel',\n items: [{\n type: 'table',\n header: [\n 'Count',\n 'Document',\n 'Selection'\n ],\n cells: [\n [\n 'Words',\n String(documentCount.words),\n String(selectionCount.words)\n ],\n [\n 'Characters (no spaces)',\n String(documentCount.charactersNoSpace),\n String(selectionCount.charactersNoSpace)\n ],\n [\n 'Characters',\n String(documentCount.characters),\n String(selectionCount.characters)\n ]\n ]\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'close',\n text: 'Close',\n primary: true\n }]\n });\n };\n\n var register = function (editor) {\n editor.ui.registry.addButton('wordcount', {\n tooltip: 'Word count',\n icon: 'character-count',\n onAction: function () {\n return open(editor);\n }\n });\n editor.ui.registry.addMenuItem('wordcount', {\n text: 'Word count',\n icon: 'character-count',\n onAction: function () {\n return open(editor);\n }\n });\n };\n\n global.add('wordcount', function (editor) {\n register(editor);\n setup(editor);\n return get(editor);\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","require('../../modules/es6.symbol');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertySymbols;\n","// Exports the \"nonbreaking\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/nonbreaking')\n// ES2015:\n// import 'tinymce/plugins/nonbreaking'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.0.4 (2019-04-23)\n */\n(function () {\nvar code = (function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var setContent = function (editor, html) {\n editor.focus();\n editor.undoManager.transact(function () {\n editor.setContent(html);\n });\n editor.selection.setCursorLocation();\n editor.nodeChanged();\n };\n var getContent = function (editor) {\n return editor.getContent({ source_view: true });\n };\n var Content = {\n setContent: setContent,\n getContent: getContent\n };\n\n var open = function (editor) {\n var editorContent = Content.getContent(editor);\n editor.windowManager.open({\n title: 'Source Code',\n size: 'large',\n body: {\n type: 'panel',\n items: [{\n type: 'textarea',\n name: 'code'\n }]\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: { code: editorContent },\n onSubmit: function (api) {\n Content.setContent(editor, api.getData().code);\n api.close();\n }\n });\n };\n var Dialog = { open: open };\n\n var register = function (editor) {\n editor.addCommand('mceCodeEditor', function () {\n Dialog.open(editor);\n });\n };\n var Commands = { register: register };\n\n var register$1 = function (editor) {\n editor.ui.registry.addButton('code', {\n icon: 'sourcecode',\n tooltip: 'Source code',\n onAction: function () {\n return Dialog.open(editor);\n }\n });\n editor.ui.registry.addMenuItem('code', {\n icon: 'sourcecode',\n text: 'Source code',\n onAction: function () {\n return Dialog.open(editor);\n }\n });\n };\n var Buttons = { register: register$1 };\n\n global.add('code', function (editor) {\n Commands.register(editor);\n Buttons.register(editor);\n return {};\n });\n function Plugin () {\n }\n\n return Plugin;\n\n}());\n})();\n","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","// Exports the \"autosave\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/autosave')\n// ES2015:\n// import 'tinymce/plugins/autosave'\nrequire('./plugin.js');"],"sourceRoot":""}