{"version":3,"sources":["webpack:///./node_modules/tinymce/themes/silver/theme.js","webpack:///./node_modules/tinymce/plugins/table/index.js","webpack:///./src/api/newLesston.js","webpack:///./node_modules/tinymce/plugins/lists/plugin.js","webpack:///./src/views/newLession/course-detail/unit-detail/UnitInterpretation.vue?1a08","webpack:///./src/assets/dymb.png","webpack:///./node_modules/tinymce/plugins/image/index.js","webpack:///./src/assets/dyjg.png","webpack:///./src/assets/link.png","webpack:///./node_modules/tinymce/plugins/paste/plugin.js","webpack:///./node_modules/tinymce/plugins/lists/index.js","webpack:///./src/components/UnitInterpretionMenuItem.vue?cbf2","webpack:///src/components/UnitInterpretionMenuItem.vue","webpack:///./src/components/UnitInterpretionMenuItem.vue?9ada","webpack:///./src/components/UnitInterpretionMenuItem.vue","webpack:///./node_modules/tinymce/plugins/table/plugin.js","webpack:///./src/assets/dybj.png","webpack:///./node_modules/tinymce/plugins/paste/index.js","webpack:///./src/assets/ksgh.png","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/TinyMCE.js","webpack:///./node_modules/tinymce/plugins/image/plugin.js","webpack:///./src/assets/ksjy.png","webpack:///./src/views/newLession/course-detail/unit-detail/UnitInterpretation.vue?a967","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/Utils.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/ScriptLoader.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/EditorPropTypes.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/index.js","webpack:///src/views/newLession/course-detail/unit-detail/UnitInterpretation.vue","webpack:///./src/views/newLession/course-detail/unit-detail/UnitInterpretation.vue?41a1","webpack:///./src/views/newLession/course-detail/unit-detail/UnitInterpretation.vue","webpack:///./node_modules/tinymce/tinymce.js","webpack:///./src/components/UnitInterpretionMenuItem.vue?bcc1"],"names":["typeOf","x","t","Array","prototype","isPrototypeOf","constructor","name","String","isType$1","type","value","isSimpleType","eq$1","a","isString","isObject","isArray","isNull","isBoolean","isUndefined","undefined","isNullable","isNonNullable","isFunction","isNumber","isArrayOf","pred","i","len","length","noop","noarg","f","compose","fa","fb","args","_i","arguments","apply","compose1","fbc","fab","constant$1","identity$1","tripleEquals","b","curry","fn","initialArgs","restArgs","all","concat","not","die","msg","Error","never","always","global$g","tinymce","util","Tools","resolve","__assign","Object","assign","s","n","p","hasOwnProperty","call","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__spreadArray","to","from","pack","ar","l","slice","none","NONE","thunk","id","me","fold","_s","isSome","isNone","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","or","orThunk","map","each","bind","exists","forall","filter","toArray","toString","some","constant_a","self","from$1","Optional","nativeSlice","nativeIndexOf","nativePush","push","rawIndexOf","ts","xs","r","contains$2","range$2","num","chunk$1","array","size","map$2","each$1","eachr","partition$3","pass","fail","arr","filter$2","foldr","acc","foldl","findUntil","until","find$5","findIndex$1","flatten","bind$3","reverse","difference","a1","a2","mapToObject","pure$2","sort","comparator","copy","get$f","head","last$2","findMap","keys","hasOwnProperty$1","obj","props","k","map$1","tupleMap","v","tuple","objAcc","internalFilter","onTrue","onFalse","filter$1","mapToArray","find$4","values","get$e","key","has$2","hasNonNullableKey","is$1","lhs","rhs","left","equals","lift2","cat","sequence","oa","ob","lift3","oc","mapFrom","someIf","addToEnd","str","suffix","removeFromStart","numChars","substring","checkRange","substr","start","removeLeading","prefix","startsWith","ensureTrailing","endsWith","contains$1","blank","replace","trim$1","isNotEmpty","isEmpty","isSupported$1","dom","style","getPropertyValue","fromHtml$2","html","scope","doc","document","div","createElement","innerHTML","hasChildNodes","childNodes","console","error","fromDom","fromTag","tag","node","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","SugarElement","fromHtml","window","Function","SimpleResultType","DOCUMENT","DOCUMENT_FRAGMENT","ELEMENT","TEXT","name$2","element","nodeName","toLowerCase","nodeType","isType","isElement$2","isText$1","isDocument","isDocumentFragment","cached","called","DeviceType","os","browser","userAgent","mediaMatch","isiPad","isiOS","test","isiPhone","isMobile","isAndroid","isTouch","isTablet","isPhone","iOSwebview","isSafari","isDesktop","isWebView","firstMatch","regexes","find$3","agent","major","minor","group","Number","nu$d","detect$4","versionRegexes","cleanedAgent","unknown$3","Version","nu","detect","unknown","detectBrowser$1","browsers","userAgentData","brands","uaBrand","lcBrand","brand","_a","info","current","version","parseInt","detect$3","candidates","candidate","search","detectBrowser","detectOs","oses","normalVersionRegex","checkContains","target","uastring","PlatformInfo","edge","chrome","ie","opera","firefox","safari","unknown$2","nu$c","isBrowser","isEdge","isChrome","isIE","isOpera","isFirefox","Browser","windows","ios","android","linux","osx","solaris","freebsd","chromeos","unknown$1","nu$b","isOS","isWindows","isOSX","isLinux","isSolaris","isFreeBSD","isChromeOS","OperatingSystem","detect$2","userAgentDataOpt","deviceType","PlatformDetection","query","matchMedia","matches","platform","navigator","detect$1","compareDocumentPosition","match","documentPositionContainedBy","Node","DOCUMENT_POSITION_CONTAINED_BY","is","selector","elem","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","all$3","base","querySelectorAll","one","querySelector","eq","e1","e2","regularContains","d1","d2","contains","ieContains","owner$4","ownerDocument","documentOrOwner","dos","documentElement","defaultView","parent","parentNode","offsetParent","nextSibling","children","child$2","index","cs","firstChild","spot","offset","leaf","isShadowRoot","host","supported","Element","attachShadow","getRootNode","isSupported","getContentContainer","body","isInShadowRoot","getShadowRoot","getShadowHost","getOriginalEventTarget","event","el","isOpenShadowHost","composed","composedPath","shadowRoot","inBody","getBody","rawSet","setAttribute","set$8","setAll$1","attrs","get$d","getAttribute","getOpt","has$1","hasAttribute","remove$7","removeAttribute","internalSet","property","setProperty","internalRemove","removeProperty","set$7","setAll","css","setOptions","get$c","styles","getComputedStyle","getUnsafeProperty","getRaw","raw","getAllRaw","ruleName","item","isValidValue","remove$6","reflow","offsetWidth","Dimension","getOffset","set","h","get","parseFloat","getOuter","aggregate","properties","val","isNaN","max","cumulativeInclusions","absoluteMax","api$3","getBoundingClientRect","height","offsetHeight","get$b","getOuter$2","setMax$1","inclusions","absMax","r$1","top","translate","SugarPosition","boxPosition","box","firstDefinedOrZero","absolute$3","win","offsetLeft","offsetTop","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","viewport$1","api$2","set$6","get$a","getOuter$1","setMax","mkEvent","stop","prevent","kill","fromRawEvent$1","rawEvent","stopPropagation","preventDefault","clientX","clientY","handle","handler","binder","useCapture","wrapped","addEventListener","unbind","bind$2","capture$1","removeEventListener","before$2","marker","parent$1","insertBefore","after$2","sibling","append$2","prepend$1","firstChild$1","appendChild","appendAt","before$1","elements","append$1","empty","textContent","rogue","remove$5","removeChild","unwrap","wrapper","children$1","get$9","_DOC","scrollTo","get$8","_win","bounds$1","width","right","bottom","getBounds$3","scroll","clientWidth","clientHeight","visualViewport","Math","pageLeft","pageTop","walkUp","navigation","frame","view","owner","rest","pathTo","d","paths","frameElement","owner$3","Navigation","freeze","__proto__","find$2","path","frames","loc","pointed","point","rect","bounds","box$1","xy","w","absolute$2","position","value$3","o","_opt","_f","mapError","_","onValue","toOptional","isValue","isError","error$1","message","onError","fromOption","opt","err","Result","fold$1","res","stype","serror","svalue","partition$2","results","errors","Value","bind$1","bindError","toResult$1","fromResult$1","SimpleResult","fromResult","toResult","partition","field$2","newKey","presence","prop","customField$1","instantiator","ifField","ifCustom","shallow$1","old","deep","bothObjects","deepMerge","baseMerge","merger","objects","ret","j","curObject","merge$1","required$2","process","defaultedThunk","fallbackThunk","defaulted$1","fallback","asOption","mergeWithThunk","baseThunk","mergeWith","mergeValues$1","mergeErrors$1","consolidateObj","consolidateArr","partitions","ResultCombine","formatObj","input","JSON","stringify","formatErrors","es","getErrorInfo","join","nu$a","missingRequired","missingKey","missingBranch","branches","branch","unsupportedFields","unsupported","custom","value$2","validator","extract","anyValue$1","requiredAccess","bundle","fallbackAccess","optionAccess","optionDefaultedAccess","extractField","field","av","bundleAsOption","optValue","ov","result","extractFields","fields","success","fields_1","valueThunk","getDelegate","getSetKeys","objOfOnly","delegate","objOf","fieldNames","extra","fieldStrings","_okey","_presence","_instantiator","arrOf","oneOf","props_1","setOf$1","validateKeys","keys$1","validatedKeys","validKeys","schema","vk","_desc","processor","getP","arrOfObj","anyValue","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","isPostMessageable","every","postMessageable","chooseFrom","ch","vp","choose$2","choice","chosen","arrOfVal","valueOf","setOf","extractValue","label","errs","asRaw","extraction","errInfo","formatError","asRawOrDie$1","choose$1","thunkOf","desc","field$1","customField","validateEnum","required$1","requiredOf","requiredNumber","requiredString","requiredStringEnum","requiredBoolean","requiredFunction","forbid","_v","requiredObjOf","objSchema","requiredArrayOfObj","objFields","requiredArrayOf","option","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","optionObjOfOnly","defaulted","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedPostMsg","defaultedArrayOf","defaultedObjOf","Cell","initial","generate$7","cases","constructors","adt","acase","count","argLength","branchKeys","allReqd","reqKey","foldArgs","log","params","Adt","generate","bothErrors","firstError","secondError","bothValues","_a$2","partition$1","exclude$1","wrap$2","wrapAll$1","keyvalues","kv","exclude","wrap$1","wrapAll","mergeValues","mergeErrors","consolidate","objs","ensureIsRoot","isRoot","ancestor$2","transform","transformed","closest$4","isSource","component","simulatedEvent","defaultEventHandler","can","abort","run","nu$9","parts","all$2","handlers","any","read$2","fuse$1","constant","touchstart","touchmove","touchend","touchcancel","mousedown","mousemove","mouseout","mouseup","mouseover","focusin","focusout","keydown","keyup","change","click","transitioncancel","transitionend","transitionstart","selectstart","prefixName","alloy","tap","focus$4","postBlur","postPaste","receive","execute$5","focusItem","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight$1","dehighlight$1","emit","dispatchWith","emitWith","emitExecute","dispatch","data","getSystem","triggerEvent","dispatchEvent","derive$2","configs","predicate","run$1","runActionExtra","action","runOnName","runOnSourceName","redirectToUid","uid","getByUid","redirectee","redirectToPart","detail","partName","partUids","runWithTarget","ev","getByDom","closest","cutter","cut","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute$1","fromHtml$1","get$7","set$5","content","docDom","fragment","createDocumentFragment","contentElements","container","clone","cloneNode","clone$2","original","isDeep","shallow","getHtml","isRecursive","originator","events$i","warn","DefaultEvents","events","unique","generate$6","date","Date","time","getTime","random","floor","prefix$1","idAttr$1","idAttr","write","writeOnly","defineProperty","writable","read$1","generate$5","make$8","NoContextApi","getComp","getMessage","debugInfo","triggerFocus","triggerEscape","broadcast","broadcastOn","broadcastEvent","build","addToWorld","removeFromWorld","addToGui","removeFromGui","isConnected","singleton$1","markAsBehaviourApi","apiName","apiFunction","endIndex","openBracketIndex","parameters","split","toFunctionAnnotation","cleanParameters","markAsExtraApi","extraName","markAsSketchApi","premadeTag","premade$1","comp","getPremade","spec","makeApi","getApis","NoState","init","nu$8","readState","generateFrom$1","validated","behaviours","list","optBlobThunk","output","blob","config","state","getBehaviours$3","bData","getData$2","byInnerKey","indexKey","chain","nu$7","classes","attributes","merge","defnA","mod","combine$2","baseMod","modsByBehaviour","behaviour","exhibit","byAspect","modification","combineObjects","combinedClasses","combinedAttributes","combinedStyles","sortKeys","keyName","order","sorted","aKey","bKey","aIndex","bIndex","uncurried","purpose","curried","cHandler","curryArgs","descHandler","extraArgs","getCurried","behaviourTuple","nameToHandlers","groupByEvents","behaviourEvents","combine$1","eventOrder","byEventName","combineGroups","assemble","rawHandler","missingOrderError","eventName","tuples","c","fuse","sortedTuples","combined","assembled","baseBehaviour","schema$z","toInfo","toDefinition","domChildren","components","toModification","domModification","toEvents","read","attr","add$4","remove$4","supports","classList","get$6","add$3","clazz","remove$3","add$2","add","cleanClass","remove$2","remove","has","add$1","remove$1","hasAll","get$5","set$4","renderToDom","definition","subject","innerHtml","getBehaviours$2","generateFrom","generate$4","getDomDefinition","bList","infoModification","baseModification","getEvents","baseEvents","build$2","getMe","systemApi","bBlob","modDefinition","subcomponents","connect","newApi","disconnect","syncComponents","subs","child","hasConfigured","apis","behaviourName","buildSubcomponents","build$1","buildFromSpec","userSpec","specEvents","completeSpec","text$1","external$2","extSpec","uids","isSketchSpec$1","userSpecWithUid","premade","ClosestOrAncestor","ancestor","EventConfiguration","ancestor$1","closest$3","child$1","descendant$1","descend","child_1","closest$2","descendant","closest$1","find$1","queryElem","dependent","dep","manager","ariaId","link","unlink","isAriaPartOf","isPartOf$1","eventConfig","makeEventLogger","initialTarget","startTime","logEventCut","_name","outcome","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","processEvent","status","patterns","NORMAL","noLogger","LOGGING","logger","STOP","getTrace","stack","lines","line","ignoreEvent","monitorEvent","menuFields","itemFields","itemSchema$3","_initSize","itemMarkers","tieredMenuMarkers","markers$1","required","onPresenceHandler","fieldName","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","output$1","snapshot","initSize","nu$6","bubble","direction","placement","boundsRestriction","labelPrefix","alwaysFit","restriction","adt$a","southeast","southwest","northeast","northwest","south","north","east","west","cata$2","cataVertical","middle","cataHorizontal","southeast$3","southwest$3","northeast$3","northwest$3","south$3","north$3","east$3","west$3","cycleBy","delta","min","clamp$1","getRestriction","anchor","restrictions","dir","adjustBounds","bubbleOffset","applyRestriction","pos","isVerticalAxis","newPos","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","labelPrefix$2","eastX$1","middleX$1","westX$1","northY$2","southY$2","centreY$1","eastEdgeX$1","westEdgeX$1","southeast$2","bubbles","southwest$2","northeast$2","northwest$2","north$2","south$2","east$2","west$2","all$1","allRtl$1","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","chooseChannels","channels","universal","events$h","receiveConfig","channelMap","receivingData","targetChannels","channelInfo","channelSchema","onReceive","ActiveReceiving","ReceivingSchema","executeEvent","bConfig","bState","executor","loadEvent","_simulatedEvent","create$9","active","configSchema","schemaSchema","doCreate","createModes$1","modes","wrapApi","bName","revokeBehaviour","getConfig","wrappedApis","apiF","wrappedExtra","extraF","revoke","prepared","configAsRaw","initialConfig","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$8","modeSchema","createModes","branchKey","Receiving","exhibit$6","posConfig","useFixed","ActivePosition","getDocument","focus$3","focus","blur$1","blur","hasFocus","root","activeElement","preserve$1","refocus","focused","oldFocus","newFocus","NuPositionCss","toPx","toOptions","applyPositionCss","adt$9","relative","fixed","positionWithDirection","posName","decision","decisionRect","decisionX","decisionY","decisionWidth","decisionHeight","decisionRight","decisionBottom","reposition","origin","toBox","rel","viewport","getBounds","translate$2","removeScroll","outerScroll","cata$1","onNone","onRelative","onFixed","AttributeValue","relative$1","fixed$1","anchorBox","placementAttribute","setPlacement$1","getPlacement","reset$2","adt$8","fit","nofit","determinePosition","boundsX","boundsY","boundsRight","boundsBottom","xInBounds","yInBounds","originInBounds","rightInBounds","bottomInBounds","sizeInBounds","visibleW","visibleH","calcReposition","maxX","maxY","restrictedX","restrictedY","restrictedWidth","restrictedHeight","calcMaxSizes","upAvailable","downAvailable","maxHeight","westAvailable","eastAvailable","maxWidth","attempt","adjustedBounds","newX","newY","fits","fittedBox","isPartlyVisible","_b","on","classesOn","off","classesOff","layout","testY","attempts","elementBox","panelWidth","panelHeight","attemptBestFit","isVisible","next","attemptLayout","newReposition","newVisibleW","newVisibleH","newIsVisible","improved","abc","bestNext","singleton","doRevoke","clear","isSet","destroyable","destroy","unbindable","api$1","value$1","capture","fromRawEvent","timerAttr","isTransitioning$1","transition","shouldApplyTransitionCss","lastPlacement","placer","mode","hasChanges","intermediate","round","toFixed","newValue","getTransitionDuration","times","parse","delay","duration","dur","setupTransitionListeners","timer","transitionEnd","transitionCancel","isSourceTransition","pseudoElement","propertyName","transitionDone","clearTimeout","transitionStarted","transitionStart_1","requestAnimationFrame","setTimeout","startTransitioning","timerId","applyTransitionCss","shouldTransition","intermediatePosition_1","intermediateCssOptions","elementSize","options","preference","setClasses","classInfo","setHeight","maxHeightFunction","setWidth","maxWidthFunction","position$2","positionCss","setPlacement","setMaxHeight","anchored","available","expandable$1","defaultOr","dephault","simple","layouts","overrideOptions","go","allAlignments","nu$5","xOffset","yOffset","insetModifier","insetXOffset","insetYOffset","getClasses","make","xDelta","yDelta","alignmentsOn","alignmentsOff","insetNortheast","insetNorthwest","insetNorth","insetSoutheast","insetSouthwest","insetSouth","insetEast","insetWest","nu$4","onDirection","isLtr","isRtl","getDirection","Attribute","isBottomToTopDir","BottomToTop","schema$y","get$4","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","ls","onLtr","customRtl","onRtl","ltr","onBottomLtr","rtl","onBottomRtl","placement$4","anchorInfo","hotspot","overrides","HotspotAnchor","placement$3","MakeshiftAnchor","adt$7","screen","absolute","toAbsolute","sum","points","sumAsFixed","positions","sumAsAbsolute","absolute$1","hasSameOwner","frameOwner","compOwner","getRootPoint","getBox","calcNewAnchor","optBox","rootPoint","topLeft","layoutsLtr","showAbove","layoutsRtl","placement$2","nodeBox","NodeAnchor","zeroWidth","nbsp","create$7","soffset","finish","foffset","SimRange","create","adt$6","before","after","cata","onBefore","onOn","onAfter","getStart$1","situ","on$1","after$1","Situ","getStart","adt$5","domRange","exact","exactFromRange","simRange","selection","rng","startContainer","startSitu","_finishSitu","_soffset","_finish","_foffset","getWin","range$1","SimSelection","range","setStart","setStartBefore","setStartAfter","setFinish","setEndBefore","setEnd","setEndAfter","relativeToNative","finishSitu","createRange","exactToNative","toRect","getFirstRect$1","rects","getClientRects","getBounds$2","adt$4","fromRange","startOffset","endContainer","endOffset","getRanges","doDiagnose","ranges","collapsed","reversed","rev","diagnose","asLtrRange","diagnosis","FocusInsideModes","NodeValue","getOption","nodeValue","api","get$3","getEnd","isTextNodeWithCursorPosition","trim","elementsWithCursorPosition","isCursorPosition","hasCursorPosition","last$1","descendantRtl","descendants","makeRange","same","getNativeSelection","getSelection","readRange","rangeCount","firstRng","getRangeAt","lastRng","doGetExact","anchorNode","focusNode","focus_1","anchorOffset","focusOffset","getExact","sel","getFirstRect","getBounds$1","point$1","descendOnce$1","last","descendOnce","getAnchorSelection","modStart","modFinish","placement$1","selectionBox","optRect","rawRect","targetElement","SelectionAnchor","labelPrefix$1","eastX","westX","northY$1","southY$1","southeast$1","southwest$1","northeast$1","northwest$1","allRtl","submenuInfo","SubmenuAnchor","AnchorSchema","submenu","makeshift","TransitionSchema","PositionSchema","PlacementSchema","getFixedOrigin","getRelativeOrigin","place","anchoring","placee","lastPlace","position$1","posState","placementSpec","positionWithin","boxElement","boundsBox","positionWithinBounds","placeeDetail","anchorage","placeeState","oldVisibility","doPlace","newState","vis","getMode","pConfig","_pState","reset$1","PositionApis","reset","init$g","PositioningState","Positioning","fireDetaching","fireAttaching","attach$1","detachChildren$1","childComp","replaceChildren","newChildren","deleted","attach","attachWith","insertion","doDetach","detach","detachChildren","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","_data","getAttachPoint","built","open$1","onOpen","setContent","openWhileCloaked","transaction","cloak","decloak","close$1","onClose","isOpen$1","_sandbox","_sConfig","isOpen","isPartOf","getState$2","store","cssKey","restore","oldValue","_sState","sink","cloakVisibilityAttr","hasPosition","SandboxApis","open","close","getState","events$g","sandboxConfig","sandboxState","ActiveSandbox","SandboxSchema","init$f","contents","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$x","receivingChannel$1","rawSpec","isPart","isExtraPart","fireEventInstead","fe","schema$w","receivingChannel","doReposition","onLoad$5","repConfig","repState","onLoad","onUnload$2","onUnload","setValue$3","setValue","getValue$3","getValue","getState$1","RepresentApis","events$f","resetOnDom","_se","ActiveRepresenting","memory$1","isNotSet","manual","dataset","dataByValue","dataByText","lookup","itemString","update","items","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","init$e","RepresentState","memory","setValue$2","onSetValue","getValue$2","getDataKey","getFallbackEntry","onLoad$4","initialValue","onUnload$1","DatasetStore","getValue$1","_repState","setValue$1","onLoad$3","ManualStore","onLoad$2","initVal","MemoryStore","RepresentSchema","Representing","setValueFrom","source","forbidden","get$2","dump","augment","SketchBehaviours","_placeholder","adt$3","single","multiple","isSubstituted","subPlaceholder","compSpec","placeholders","newSpec","scan","uiType","substitute","req","childSpecs","substituted","valuesThunk","preprocessor","preprocess","substituteAll","oneReplace","replacements","used","substitutePlaces","ps","ph","single$2","placeholder","adt$2","external","optional","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","partSpec","partValidated","defaults","internals","externals","pname","factory","_partSpec","_partValidated","units","u","generate$3","np","g","doGenerateOne","generateOne$1","schemas","names","substitutes","components$1","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","_k","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","generateOne","partSchemas","partUidsSchemas","asRawOrDie","baseS","single$1","specWithUid","supplyUid","composite$1","partUidsSchema","hasUid","isSketchSpec","singleSchema","compositeSchema","rawConfig","configFields","extraApis","composite","partFields","inside","getCurrent","composeConfig","_composeState","find","ComposeApis","ComposeSchema","Composing","nativeDisabled","onLoad$1","disableConfig","disableState","disabled","disable$1","enable$1","hasNative","useNative","nativeIsDisabled","nativeDisable","nativeEnable","ariaIsDisabled","ariaDisable","ariaEnable","_disableState","disableClass","onDisabled","onEnabled","isDisabled","set$3","DisableApis","enable","disable","exhibit$5","events$e","ActiveDisable","DisableSchema","Disabling","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","dehighlightAll","dehighlight","isHighlighted","highlight","onHighlight","highlightFirst","getFirst","firstComp","highlightLast","getLast","lastComp","highlightAt","getByIndex","highlightBy","getCandidates","targetComp","queryTarget","getHighlighted","_hState","itemClass","getDelta$2","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","transitions","reportFocusShifting","prevFocus","noChange","dom$2","focusee","highlights","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","rules","onFocusHandler","focusInside","OnFocusMode","focusIn","tryGoInsideComponent","isEnterOrSpace","OnEnterOrSpaceMode","keyboardEvents","create$6","cyclicField","tabbingConfig","visibilitySelector","findInitial","tabstops","visibles","firstTabstop","findCurrent","focusManager","isTabstop","useTabstopAt","_tabbingState","goFromTabstop","stopIndex","cycle","cyclic","tabstop","optStopIndex","goBackwards","navigate","goForwards","execute","onEnter","exit","onEscape","AcyclicType","CyclicType","doDefaultExecute","defaultExecute","isComplex","stopEventForFirefox","_component","schema$v","execute$4","executeConfig","getKeydownRules$5","_executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","getKeyupRules$5","ExecutionType","flatgrid$1","dimensions","setGridSize","numRows","numColumns","getNumRows","getNumColumns","init$d","KeyingState","flatgrid","useH","movement","move","use","west$1","moveLeft","moveRight","east$1","useV","north$1","south$1","move$1","isHidden$1","locate","locateVisible","visible","findIndex","withGrid","numCols","oldRow","oldColumn","address","newIndex","row","column","cycleHorizontal$1","onLastRow","colsInRow","newColumn","cycleVertical$1","newRow","newCol","cycleRight$1","cycleLeft$1","cycleUp$1","cycleDown$1","schema$u","focusIn$3","gridConfig","_gridState","first","findCurrent$1","execute$3","doMove$2","gridState","identified","handleTab","captureTab","doEscape$1","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$4","getKeyupRules$4","FlatgridType","horizontal","isDisabledButton","tryCycle","schema$t","flowConfig","execute$2","focusIn$2","_state","getInitial","moveLeft$2","moveRight$2","doMove$1","flowState","executeOnMove","doEscape","getKeydownRules$3","_flowState","westMovers","allowVertical","eastMovers","getKeyupRules$3","FlowType","toCell","matrix","rowIndex","columnIndex","cell","cycleHorizontal","startCol","deltaCol","newColIndex","cycleVertical","colIndex","startRow","deltaRow","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","cycleRight","cycleLeft","cycleUp","cycleDown","moveLeft$1","moveRight$1","moveUp$1","moveDown$1","schema$s","focusIn$1","matrixConfig","previousSelector","selectors","execute$1","toMatrix","rows","doMove","ifCycle","ifMove","cycles","inRow","cellsInRow","allRows","moveNorth","moveSouth","getKeydownRules$2","getKeyupRules$2","MatrixType","schema$r","menuConfig","moveUp","moveDown","fireShiftTab","menuState","moveOnTab","fireTab","getKeydownRules$1","getKeyupRules$1","MenuType","schema$q","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","stopSpaceKeyup","SpecialType","acyclic","flow","execution","menu","special","KeyboardBranches","isFlatgridState","keyState","Keying","keyConfig","sendFocusIn","set$2","replaceConfig","replaceState","insert","childSpec","append","appendee","prepend","prependee","removee","foundChild","_replaceConfig","replaceAt","replaceeIndex","replacer","replacee","replaceBy","replaceePred","ReplaceApis","Replacing","events$d","eventHandlers","focus$2","focusConfig","ignore","onFocus","isFocused","FocusApis","exhibit$4","tabindex","events$c","stopMousedown","ActiveFocus","FocusSchema","Focusing","SetupBehaviourCellState","initialState","updateAriaState","toggleConfig","toggleState","ariaInfo","aria","updateClass","toggleClass","toggle$2","set$1","isOn","ToggleApis","toggle","exhibit$3","events$b","load","toggleOnExecute","ActiveToggle","updatePressed","syncWithExpanded","updateExpanded","updateSelected","updateChecked","ToggleSchema","pressed","checked","expanded","Toggling","pointerEvents","onClick","events$a","optAction","executeHandler","hoverEvent","focusEvent","onHover","onFocus$1","hover","focus$1","builder$2","toggling","hasSubmenu","itemBehaviours","tConfig","ignoreFocus","schema$p","builder$1","schema$o","owner$2","parts$h","builder","focusWidget","widget","onHorizontalArrow","autofocus","setSource","_widget","widgetBehaviours","schema$n","itemSchema$2","separator","configureGrid","movementInfo","markers","configureMatrix","rowSelector","configureMenu","parts$g","itemInfo","unit","fakeFocus","schema$m","grid","make$7","_spec","_externals","menuBehaviours","selectedItem","role","Menu","transpose$1","trace","byItem","byMenu","triggerItem","triggerMenu","generate$2","menus","expansions","menuItems","menuPaths","_triggerItem","init$c","primary","directory","isClear","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","getTriggeringItem","menuValue","getTriggerData","getItemByValue","getPreparedMenu","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","getTriggeringPath","itemValue","extraPath","lookupItem","revPath","triggers","menuIndex","expand","collapse","refresh","lookupMenu","extractPreparedMenu","otherMenus","menuValues","getPrimary","getMenus","prep","LayeredState","make$6","_rawUiSpec","ExpandHighlightDecision","submenuParentItems","buildMenus","primaryName","makeSketch","nbMenu","layeredState","setup","componentMap","toDirectory","getItemValue","_container","_menuName","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","getActiveItem","collapseMenuApi","currentItem","highlightPrimary","extractMenuFromContainer","repositionMenus","maybeActivePrimary","allMenus","preparedMenus","primaryMenu","onRepositionMenu","collapseMenu","tmenuBehaviours","_keyInfo","selectedMenu","collapseItem$1","tieredData","singleData","collapseItem","tieredMenu","tmenu","makeMenu","menuSandbox","menuSpec","lazySink","isFirstTierSubmenu","triggeringPaths","getSubmenuLayouts","submenuTriggers","st","submenuLayouts","factory$m","isPartOfRelated","related","getRelated","thing","showAt","showWithin","showWithinBounds","showMenuAt","showMenuWithinBounds","hide","getContent","inlineBehaviours","onShow","onHide","fireDismissalEventInstead","fireRepositionEventInstead","InlineView","westEdgeX","middleX","eastEdgeX","northY","southY","centreY","lookupPreserveLayout","preserve","lookupFlippedLayout","flip$2","global$f","factory$l","lookupAttr","getModAttributes","roleAttrs","buttonBehaviours","Button","record","anyInSystem","asSpec","global$e","rtlTransform","defaultIconName","defaultIcon","icons","getIconName","lcName","rtlName","lookupIcon","get$1","iconProvider","fallbackIcon","needsRtlTransform","iconName","addFocusableBehaviour","svg","renderIcon$2","rtlIconClasses","iconHtml","render$3","renderFirst","iconNames","notificationIconMap","warning","factory$k","memBannerText","translationProvider","renderPercentBar","percent","renderPercentText","memBannerProgress","progress","updateProgress","updateText","banner","iconChoices","icon","level","memButton","onAction","notificationIconSpec","notificationBodySpec","closeButton","Notification","NotificationManagerImpl","editor","extras","uiMothership","sharedBackstage","backstage","shared","getLayoutDirection","notifications","notification","moveRel","getEl","settings","closeCallback","hideCloseButton","timeout","notificationWrapper","progressBar","providers","getSink","header","isPositionedAtTop","contentArea","getContentAreaContainer","win$1","moveTo","notificationSpec","anchorOverrides","layoutDirection_1","nodeAnchor","anchors","nuText","getArgs","ItemResponse","rate","cancel","throttle","global$d","isBoundary","isBlock","getContentEditable","repeatLeft","rootNode","backwards","autocompleteSelector","create$5","getNode","getDoc","extractContents","insertNode","elm","normalize","setCursorLocation","isValidTextRange","getText","isWhitespace","chr","stripTriggerChar","triggerCh","findChar","char","charAt","findStart","initRange","minChars","findTriggerChIndex","getParent","getRoot","cloneRange","triggerCharIndex","lastIndexOf","triggerChar","getContext","createRng","selectNode","setup$e","onKeypress","redirectKeyToItem","getItem","getView","isActive","cancelIfNecessary","isMenuOpen","stopImmediatePropagation","isProcessingAction","AutocompleterEditorEvents","global$c","isText","isElement$1","toLast","toLeaf","isPreviousCharContent","isStartOfWord","getTriggerContext","database","triggerChars","lookup$2","getDatabase","getRng","context","lookupWithContext","fetchOptions","startText","autocompleters","lookupByChar","autocompleter","lookupData","ac","fetchResult","fetch","maxResults","then","matchText","columns","highlightOn","separatorMenuItemSchema","createSeparatorMenuItem","autocompleterItemSchema","autocompleterSchema","createSeparatorItem","createAutocompleterItem","createAutocompleter","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","createContextForm","contextToolbarSchema","createContextToolbar","stringArray","register$b","popups","ui","registry","getAll","popup","datasetValues","dv","ToolbarMode","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","normal","color","tickedClass","groupHeadingClass","iconClass","textClass","accessoryClass","caretClass","checkmarkClass","activeClass","containerClass","containerColumnClass","containerRowClass","containerAlignRightClass","containerAlignLeftClass","containerValignTopClass","containerValignMiddleClass","containerValignBottomClass","classForPreset","presets","forMenu","hasIcons","menuClasses","dom$1","chunk","rowDom","chunks","forSwatch","forToolbar","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","_hasIcons","_item","forHorizontalCollection","menuHasIcons","handleError","createHorizontalPartialMenuWithAlloyItems","_columns","_presets","structure","createPartialMenuWithAlloyItems","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$1","cardimage","cardtext","cardcontainer","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","createCardMenuItem","choiceMenuItemSchema","createChoiceMenuItem","baseFields","insertTableFields","colorSwatchFields","fancyMenuItemSchema","inserttable","colorswatch","createFancyMenuItem","menuItemSchema","createMenuItem","nestedMenuItemSchema","createNestedMenuItem","toggleMenuItemSchema","createToggleMenuItem","detectSize","margin","selectorClass","descendants$1","columnLength","thisTop","cTop","abs","ceil","namedEvents","unnamedEvents","SimpleBehaviours","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","_tConfig","_tState","setComponents","tState","specs","getTooltip","tooltip","TooltippingApis","events$9","tooltipConfig","clearTooltip","clearTimer","show","isShowing","tooltipDom","tooltipComponents","setTooltip","resetTimer","ActiveTooltipping","TooltippingSchema","init$b","TooltippingState","Tooltipping","escape","global$b","global$a","getSkinUrl","skin","getParam","skinUrl","skinName","documentBaseURI","baseURL","isReadOnly","isSkinDisabled","getHeightSetting","getElement","getWidthSetting","DOM","getStyle","getMinWidthSetting","getMinHeightSetting","getMaxWidthSetting","getMaxHeightSetting","getUserStyleFormats","isMergeStyleFormats","getLineHeightFormats","getContentLanguages","getRemovedMenuItems","isMenubarEnabled","isToolbarEnabled","toolbar","isToolbarTrue","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsSetting","toolbars","toolbarArray","ToolbarLocation","getToolbarMode","_a$1","getToolbarGroups","getToolbarLocation","auto","isToolbarLocationBottom","fixedContainerSelector","fixedToolbarContainerTarget","isToolbarPersist","fixedContainerTarget","inline","useFixedContainer","getUiContainer","fixedContainer","isDistractionFree","isStickyToolbar","getStickyToolbarOffset","isDraggableModal$1","getMenubar","getToolbar","getFilePickerCallback","getFilePickerTypes","getFileBrowserCallbackTypes","noTypeaheadUrls","getAnchorTop","getAnchorBottom","getFilePickerValidatorHandler","ReadOnlyChannel","ReadOnlyDataSchema","broadcastReadonly","uiComponents","readonly","outerContainer","mothership","setupReadonlyModeSwitch","setMode","receivingConfig","button","splitButton","toolbarButton","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onDestroy","onSetup","onControlDetached","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersbackstage","optComponents","buildData","global$9","convertText","mac","alt","ctrl","shift","access","other","shortcut","updated","segment","renderIcon$1","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderSubmenuCaret","renderDownwardsCaret","renderContainer","directionClass","alignClass","align","getValignClass","valign","renderImage","src","renderColorStructure","providerBackstage","colorPickerCommand","removeColorCommand","itemText","ariaLabel","iconSvg","iconContent","getDom","common","title","baseDom","renderItemDomStructure","domTitle","renderNormalItemStructure","providersBackstage","renderIcons","iconSpec","renderIcon","renderEmptyIcon","leftIcon","checkmark","checkMark","textRender","htmlContent","menuItem","shortcutContent","caret","renderItemStructure","tooltipBehaviour","tooltipWorker","_tooltip","encodeText","encode","replaceText","translated","encoded","escapedMatchRegex","RegExp","renderAutocompleteItem","useText","onItemValueHandler","_api","render$2","shouldHighlight","cardText","renderCardMenuItem","setDisabled","renderChoiceItem","isSelected","setActive","parts$f","hexColour","shorthandRegex","longformRegex","isHexString","hex","normalizeHex","toUpperCase","fromString$1","getLongForm","hexString","m","extractValues","longForm","splitForm","exec","toHex","fromRgba","rgbaColour","red","green","blue","round$1","rgbRegex","rgbaRegex","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","fireSkinLoaded$1","fire","fireSkinLoadError$1","fireResizeEditor","fireResizeContent","fireScrollContent","fireTextColorChange","hsvColour","fromRgb","minRGB","maxRGB","hexToHsv","hsvToHex","anyToHex","canvas","canvasContext","clearRect","fillStyle","fillRect","getImageData","global$8","storageName","ColorCache","storageString","localstorage","prune","diff","cache","unshift","pop","setItem","idx","splice","FocusMode","choiceItem","defaultColors","colorCache","mapColors","colorMap","colors","getColorCols$2","defaultCols","hasCustomColors$1","getColorMap","getColors$2","unmapped","getCurrentColors","addColor","fallbackColor","getCurrentColor","format","getParents","applyFormat","undoManager","transact","formatter","nodeChanged","removeFormat","registerCommands","addCommand","calcCols","sqrt","getColorCols$1","getAdditionalColors","hasCustom","applyColor","onChoice","dialog","colorPickerDialog","colorOpt","execCommand","getColors$1","getFetch$1","callback","setIconColor","splitButtonApi","newColor","setIconFill","registerTextColorButton","lastColor","addSplitButton","select","optCurrentRgb","currentRgb","currentHex","_splitButtonApi","onItemAction","registerTextColorMenuItem","addNestedMenuItem","getSubmenuItems","fancytype","isValid","onSubmit","getData","colorpicker","windowManager","alert","details","initialData","buttons","onCancel","register$a","lastForeColor","lastBackColor","createPartialChoiceMenu","presetItemTypes","alloyItems","createChoiceItems","itemPresets","deriveMenuMovement","menuMarkers","rowClass","deriveCollectionMovement","renderColorSwatchItem","getColorItems","colorinput","getColorCols","widgetSpec","useCustomColors","initData","allowCustomColors","hasCustomColors","getColors","cellOverEvent","cellExecuteEvent","makeCell","col","labelId","emitCellOver","se","makeCells","cells","selectCells","selectedRow","selectedColumn","makeComponents","cellRow","makeLabelText","renderInsertTableMenuItem","sizeLabelId","emptyLabelText","memLabel","fancyMenuItems","renderFancyMenuItem","render","renderNestedItem","downwardsCaret","renderNormalItem","renderSeparatorItem","renderToggleMenuItem","autocomplete","separator$3","nested","toggle$1","fancy","card","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createAutocompleteItems","createPartialMenu","itemHasIcon","createItem","createPartial","createTieredDataFrom","partialMenu","createMenuFrom","focusMode","ContentFocus","register$9","activeAutocompleter","processingAction","hideIfNecessary","lastElement","getAutocompleters","getCombinedItems","choices","itemMeta","nr","autocompleterApi","reload","BUBBLE_TO_SANDBOX","commenceIfNecessary","matchLength","display","ld","doLookup","newContext","lookupInfo","combinedItems","autocompleterUiApi","hasPlugin","Autocompleter","register","DelayedFunction","fun","ref","schedule","SIGNIFICANT_MOVE","LONGPRESS_DELAY","getTouch","touches","isFarEnough","touch","distX","distY","monitor","startData","longpressFired","longpress$1","handleTouchstart","handleTouchmove","handleTouchend","isSame","fireIfReady","isDangerous","keyEv","bindFocus","bindBlur","setup$d","rawSettings","stopBackspace","tapEvent","simpleEvents","tapStopped","stopped","pasteTimeout","onPaste","onKeydown","onFocusIn","focusoutTimeout","onFocusOut","derive","rawTarget","fromSource","isStopped","isCut","fromExternal","adt$1","resume","complete","doTriggerHandler","eventType","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerHandler","listeners","_logger","listener","triggerUntilStopped","triggerOnUntilStopped","broadcastHandler","EventRegistry","registerId","findHandler","filterByType","isAboveRoot","unregisterId","handlersById","_eventName","Registry","readOrTag","failOnDuplicate","tagId","conflict","unregister","getById","factory$j","domWithoutAttributes","containerBehaviours","Container","takeover","domEvents","_alloyId","broadcast$1","broadcastData","receivers","receiver","renderBar","interpreter","schema$l","parts$e","excludeFactory","factory$i","fieldBehaviours","descriptor","descriptorId","getField","getLabel","FormField","exhibit$2","tabConfig","tabAttr","ActiveTabstopping","TabstopSchema","Tabstopping","global$7","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormField","renderFormFieldDomWith","renderFormFieldDom","renderLabel$2","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","htmlLines","mapItemName","disabledClass","encodeAllRaw","tgt","collectionEvents","currentActive","iterCollectionItems","applyAttributes","childElm","schema$k","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","inputAttributes","inputStyles","inputClasses","factory$h","Input","exports$1","module","exports","define","require","global","amd","globalThis","EphoxContactWrapper","commonjsGlobal","promise","setTimeoutFunc","thisArg","Promise","TypeError","_handled","_value","_deferreds","doResolve","deferred","_immediateFn","cb","onFulfilled","onRejected","reject","finale","_unhandledRejectionFn","Handler","done","reason","ex","prom","remaining","race","setImmediate","_setImmediateFn","_setUnhandledRejectionFn","promisePolyfill","Global","promisePolyfill_1","boltExport","HighlightOnOpen","Promise$1","nu$3","baseFn","callbacks","nCallback","isReady","cbs","pure$1","LazyValue","pure","errorReporter","make$5","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","nu$2","Future","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notify","notifyInfo","getContainer","validHtml","onValid","markInvalid","invalidState","onInvalid","_invalidState","validatorInfo","validate","onValidate","valid","isInvalid","InvalidateApis","events$8","onEvent","validateOnLoad","ActiveInvalidate","InvalidateSchema","Invalidating","validation","getCoupled","coupleConfig","coupleState","getOrCreate","CouplingApis","CouplingSchema","init$a","coupled","CouplingState","Coupling","partType$1","getAnchor","getHotspot","getAnchorOverrides","mapFetch","fetcher","openF","highlightOnOpen","futureData","getLazySink","tdata","HighlightFirst","onOpenSync","processed","_onOpenSync","_highlightOnOpen","togglePopup","showing","matchWidth","useMinWidth","buttonWidth","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox$1","ariaOwner","sandboxClasses","sandboxBehaviours","sandboxFields","schema$j","parts$d","factory$g","switchToMenu","HighlightNone","triggerExecute","dropdownBehaviours","Dropdown","exhibit$1","unselectable","events$7","ActiveUnselecting","Unselecting","renderPanelButton","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","span","emitSwatchChange","colorBit","memColorButton","colorPicker","valueOpt","colorButton","_field","labelPart","edgePart","model","edgeActions","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","modelDetail","getValueFromEvent","spectrum","SliderParts","_sliderChangeEvent","sliderChangeEvent","isTouchEvent$2","evt","getEventSource","touchEvent","mouseEvent","minX","minY","min1X","min1Y","max1X","max1Y","xRange","yRange","halfX","halfY","step","stepSize","snap","snapToGrid","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","currentValue","xValue","yValue","xyValue","fireSliderChange$3","setToTLEdgeXY","setToTEdge","setToTEdgeXY","setToTREdgeXY","setToREdge","setToREdgeXY","setToBREdgeXY","setToBEdge","setToBEdgeXY","setToBLEdgeXY","setToLEdge","setToLEdgeXY","reduceBy","increaseBy","capValue","snapValueOf","initValue","extraValue","remainder","adjustment","rawSteps","maxSteps","numSteps","findOffsetOf","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOfValue$2","maxOffset","centerMinEdge","centerMaxEdge","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$2","sliderValue$2","findValueOfOffset$1","setValueFrom$2","sliderVal","setToMin$2","setToMax$2","moveBy$2","handleMovement$2","getValueFromEvent$2","findOffsetOfValue$1","minEdge","maxEdge","minOffset","findPositionOfValue$1","slider","setPositionFromValue$2","thumb","edges","getSpectrum","getLeftEdge","getRightEdge","thumbRadius","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","HorizontalModel","setToMin","setToMax","findValueOfOffset","findPositionOfValue","setPositionFromValue","fireSliderChange$1","sliderValue$1","setValueFrom$1","setToMin$1","setToMax$1","moveBy$1","handleMovement$1","getValueFromEvent$1","findOffsetOfValue","setPositionFromValue$1","getTopEdge","getBottomEdge","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange","sliderValue","moveBy","isVerticalMovement","handleMovement","mX","mY","xPos","yPos","thumbXRadius","thumbYRadius","TwoDModel","SliderSchema","sketch$2","getThumb","changeValue","onChange","resetToMin","resetToMax","fireOnChoose","onChoose","wasDown","onDragStart","onDragEnd","sliderBehaviours","getInitialValue","onInit","Slider","fieldsUpdate","sliderUpdate","paletteUpdate","sliderFactory","getClass","_thumb","owner$1","schema$i","getPartName$1","sketch$1","fSpec","fieldParts","make$4","formBehaviours","form","resPs","resPThunk","pName","Form","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","renderTextField","description","helptext","comps","concats","copyRgbToHex","hexField","copyRgbToForm","rgb","memPreview","updatePreview","preview","copyHexToRgb","setValueRgb","getValueRgb","onInvalidInput","onValidHex","onValidRgb","isHexInputEvent","onValidInput","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","rgbFormSketcher","paletteFactory","_translate","setColour","ctx","grdWhite","createLinearGradient","addColorStop","grdBlack","setPaletteHue","setPaletteThumb","_detail","_slider","saturationBrightnessPaletteSketcher","setHue","_apis","setThumb","makeFactory","rgbForm","onInvalidHex","sbPalette","hueSliderToDegrees","hueDegreesToSlider","paletteRgba","paletteHue","memSlider","memPalette","memRgb","updatePalette","_hex","palette","updateFields","updateSlider","updatePaletteThumb","updateState","runUpdates","updates","onPaletteUpdate","oldHue","newHsv","newHex","onSliderUpdate","oldRgb","oldHsv","onFieldsUpdate","colourPickerSketcher","self$1","memento$1","mem","childAt","ComposingConfigs","memento","english","getEnglishText","translate$1","renderColorPicker","colourPickerFactory","memPicker","picker","optRgbForm","optHex","formValues","pattern","global$6","isOldCustomEditor","renderCustomEditor","editorApi","memReplaced","ta","scriptId","scriptUrl","ea","cvalue","ed","global$5","processors","rawProcessors","rawValue","postprocess","withComp","optInitialValue","getter","setter","withElement","domValue","domHtml","RepresentingConfigs","defaultImageFileTypes","filterByExtension","files","allowedImageFileTypes","explode","getSetting","isFileInAllowedTypes","file","renderDropZone","actions","onDrop","transferEvent","handleFiles","dataTransfer","onSelect","memInput","accept","renderField","inputComp","renderGrid","beforeObject","afterObject","craftWithClasses","outline","craft","triggerTab","isPseudoStop","platformNeedsSandboxing","getDynamicSource","isSandbox","cachedValue","_frameComponent","frameComponent","contentWindow","renderIFrame","sandboxed","sourcing","create$4","resize$3","clone$1","tCanvas","get2dContext","drawImage","getWidth$1","image","naturalWidth","getHeight$1","naturalHeight","blobToImage","blobUrl","URL","createObjectURL","Image","removeListeners","loaded","dataUriToBlobSync","uri","mimetype","base64","sliceSize","byteCharacters","atob","bytesLength","slicesCount","byteArrays","sliceIndex","begin","end","bytes","charCodeAt","Uint8Array","Blob","dataUriToBlob","canvasToBlob","quality","HTMLCanvasElement","toBlob","toDataURL","canvasToDataURL","blobToCanvas","revokeImageUrl","blobToDataUri","reader","FileReader","onloadend","readAsDataURL","revokeObjectURL","create$3","getCanvas","initialType","getType","toBase64","toAdjustedBlob","toAdjustedDataURL","toAdjustedBase64","dataurl","toCanvas","fromBlob","fromCanvas","blobToImageResult","clamp","parsedValue","identity","DELTA_INDEX","multiply","matrix1","matrix2","out","adjustContrast","adjustBrightness","adjustColors","adjustR","adjustG","adjustB","colorFilter","ir","applyColorFilter","applyMatrix","pixelsData","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","pixels","putImageData","convoluteFilter","applyConvoluteFilter","pIn","pOut","aMatrix","halfSide","drgba","cy","cx","scx","scy","innerOffset","wt","pixelsIn","pixelsOut","functionColorFilter","colorFn","filterImpl","applyLookup","complexAdjustableColorFilter","matrixAdjustFn","adjust","basicColorFilter","basicConvolutionFilter","kernel","invert$1","brightness$1","contrast$1","colorize$1","sharpen$1","gamma$1","pow","scale","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","_scale","ceilWithPrecision","precision","mul","upper","rotate$1","angle","applyRotate","degrees","rad","PI","sin","cos","newWidth","newHeight","rotate","flip$1","axis","applyFlip","crop$1","applyCrop","resize$2","newCanvas","invert","sharpen","gamma","colorize","contrast","flip","crop","resize$1","iconsProvider","renderIconFromPack","renderReplacableIconFromPack","renderLabel$1","internalToolbarButtonExecute","onToolbarButtonExecute","itemApi","buttonApi","toolbarButtonEventOrder","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","tooltipAttributes","translatedTooltip","memDropdown","displayText","displayIcon","isMenuItemReference","isSeparator$1","isExpandingMenuItem","separator$2","unwrapReferences","realItems","getFromExpandingItem","submenuItems","newMenus","newExpansions","getFromItem","generateValueIfRequired","itemWithValue","newData","mainMenu","submenus","getMenuButtonApi","renderMenuButton","_comp","getFetch","getButton","getMenuItemAction","storage","orig","getMenuItemSetup","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","renderIconButton","iconButtonSpec","renderButtonSpec","translatedText","borderless","renderButton","buttonSpec","getAction","buttonType","isMenuFooterButtonSpec","isNormalFooterButtonSpec","renderFooterButton","memButton_1","menuButtonSpec","fixedSpec","renderDialogButton","schema$h","coupledPart","selfName","otherName","lock","onLockedChange","parts$c","locked","lockClass","factory$f","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","FormCoupledInputs","formatSize","unitDec","maxDecimal","numText","parseSize","sizeText","numPattern","convertUnit","inInch","noSizeConversion","_input","ratioSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","renderSizeInput","converter","ratioEvent","makeIcon","pLock","formGroup","getFieldPart","isField1","widthField","heightField","_lock","newSize","optCurrent","optOther","value1","value2","undo","redo","zoom","back","apply$1","swap","transform$1","tempTransform","transformApply","internal","saveState","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","panel","cropPanelUpdate","_anyInSystem","showCrop","resizePanelUpdate","measurements","getMeasurements","sharpenTransform","invertTransform","buttonPanelComponents","getApplyButton","global$4","global$3","global$2","getDocumentSize","scrollWidth","scrollHeight","isTouchEvent$1","changedTouches","updateWithTouchData","DragHelper","_c","eventOverlay","downButton","startX","startY","handleEvents","overlayEvents","sugarDoc","handleElement","getElementById","docSize","screenX","screenY","cursor","drag","deltaX","deltaY","create$2","currentRect","viewPortRect","clampRect","containerElm","dragHelpers","handles","xMul","yMul","deltaW","deltaH","blockers","getAbsoluteRect","outerRect","relativeRect","getRelativeRect","innerRect","getInnerRect","moveRect","startRect","instance","setInnerRect","createDragHelper","cropContainer","blocker","blockerElm","cropBlocker","handleElm","cropHandle","repaint","handleFocus","handleKeydown","activeHandle","moveAndBlock","keyCode","SPACEBAR","toggleVisibility","elems","updateElementRect","newRect","setRect","setViewPortRect","setClampRect","helper","CropRect","loadImage","renderImagePanel","initialUrl","memBg","zoomState","cropRect","rectState","viewRectState","repaintImg","img","panelW","panelH","bg","cRect","zoomFit","updateSrc","url","aImg","lastViewRect","viewRect","inflate","currentZoom","newZoom","setButtonEnabled","enabled","renderSideBar","updateButtonUndoStates","undoEnabled","redoEnabled","memUndo","memRedo","UndoStack","removed","canUndo","canRedo","Delimiter","makeState","blobState","tempState","undoStack","getBlobState","setBlobState","getTempState","updateTempState","newTempState","createState","destroyTempState","destroyState","destroyStates","states","addBlobState","addTempState","applyTempState","postApply","temp","currentState","getHistoryStates","renderImageTools","historyStates","sideBar","disableUndoRedo","_oImg","unblock","imageResultToBlob","block","editPanel","applyButton","blobManipulate","catch","manipulate","tempManipulate","manipulateApply","currentUrl","renderLabel","backstageShared","isSingleListItem","dataAttribute","fetchItems","dropdownComp","selectedValue","findItemByValue","renderListBox","initialItem","sketchSpec","listBoxWrap","renderPanel","factory$e","initialValues","selectClasses","selectAttributes","selectBehaviours","found","HtmlSelect","renderSelectBox","translatedOptions","chevron","selectWrap","renderTable","renderTh","renderHeader","renderTd","renderTr","renderRows","baseInputBehaviours","multiline","validatingBehaviours","vl","inputMode","inputmode","classname","flex","extraClasses2","maximized","renderInput","renderTextarea","events$6","streamConfig","streamState","streams","stream","cancelEvent","ActiveStreaming","_config","setTimer","init$9","StreamingState","setup$c","streamInfo","sInfo","throttler","onStream","stopEvent","StreamingSchema","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","setSelectionToEnd","attemptSelectOver","selectsOver","inputDisplay_1","getDisplayText","itemDisplay","itemExecute","make$3","navigateList","highlighter","previewing","focusBehaviours$1","responseTime","focusInInput","previousValue_1","pv","sandboxIsOpen","openClass","onItemExecute","dismissOnBlur","typeahead","typeaheadBehaviours","schema$g","parts$b","populateFromBrowse","Typeahead","wrap","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","nu$1","worker","fromFuture","future","fromPromise","completer","FutureResult","separator$1","toMenuItem","staticMenuItem","toMenuItems","targets","filterLinkTargets","filteredTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","historyTargets","history","joinMenuLists","bothEmpty","filterByQuery","term","lowerCaseTerm","getItems","fileType","urlBackstage","urlInputValue","getLinkInformation","getHistory","errorId","renderUrlInput","updateHistory","urlEntry","addToHistory","filetype","memUrlBox","_newValue","getValidationHandler","memInvalidIcon","invalidComp","_menu","_entry","errId","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","controlHWrapper","openUrlPicker","componentData","urlData","fieldname","chosenData","renderAlertBanner","iconTooltip","renderCheckbox","repBehaviour","toggleCheckboxHandler","className","memIcons","renderHtmlPanel","make$2","makeIframe","iframeSpec","factories","bar","collection","alertbanner","textarea","iframe","checkbox","dropzone","listbox","selectbox","sizeinput","urlinput","customeditor","htmlpanel","imagetools","table","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","bubbleAlignments$2","valignCentre","alignCentre","alignLeft","alignRight","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","bubbleSize","editableAreaAnchor","standardAnchor","getBannerAnchor","getCursorAnchor","bodyElement","getNodeAnchor$1","getAnchors","isToolbarTop","useFixedToolbarContainer","inlineDialog","ColorInputBackstage","isDraggableModal","DialogBackstage","HeaderBackstage","getDockingMode","setDockingMode","defaultStyleFormats","isNestedFormat","isBlockFormat","isInlineFormat","isSelectorFormat","mapFormats","userFormats","fmt","customFormats","formats","formatName","formatNameWithPrefix","registerCustomFormats","registerFormats","getStyleFormats","registeredUserFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","getStylePreview","register$8","enrichSupported","enrichMenu","submenuSpec","enrichCustom","customSpec","newItem","doEnrich","newItems","getStyleItems","init$8","parseStyle","getCssText","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","_e","enriched","modifications","fromSettings","fromEvents","getFlattenedKeys","isElement","hasContentEditableState","contentEditable","isContentEditableTrue","isContentEditableFalse","create$1","isChildOfContentEditableTrue","getElementText","innerText","getOrGenerateId","isAnchor","isValidAnchor","isEditable","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","elms","getAnchorTargets","getTargetElements","hasTitle","LinkTargets","STORAGE_KEY","HISTORY_LENGTH","isHttpUrl","isArrayOfUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","SyntaxError","setAllHistory","itemsWithoutUrl","isTruthy","makeMap","getPicker","getPickerTypes","optFileTypes","optLegacyTypes","optTypes","_picker","types","getPickerSetting","pickerTypes","entry","getTextSetting","UrlInputBackstage","init$7","contextMenuState","styleselect","isContextMenuOpen","setContextMenuState","setup$b","ship","channel","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onContentMousedown","editorManager","loopEditor","relatedTarget","onWindowScroll","onWindowResize","onEditorResize","onEditorProgress","onDismissPopups","parts$a","partType","schema$f","customListDetail","itemsPart","parts$9","factory$d","_external","setItems","getListContainer","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","shell","listBehaviours","CustomList","schema$e","enhanceGroups","parts$8","factory$c","setGroups","groups","getGroupContainer","toolbarBehaviours","Toolbar","setup$a","isDocked$2","getBehaviours$1","StaticHeader","isDocked","getBehaviours","getOffsetParent","isFixed","offsetParent$1","getOrigin","morphAdt","static","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","disappear","isPartiallyVisible","isTopCompletelyVisible","isBottomCompletelyVisible","isVisibleForModes","getPrior","getInitialPos","storePrior","setInitialPos","revertToOriginal","clearInitialPos","offsetBox_1","_left","_top","_right","_bottom","morphToOriginal","getModes","morphToFixed","winBox","top_1","isTop","getMorph","getMorphToOriginal","morphToStatic","setDocked","onUndocked","morphToCoord","method","onDocked","updateVisibility","morphToDocked","contextual","contextInfo","lazyContext","setVisible","refreshInternal","lazyViewport","morph","resetInternal","refresh$4","isDocked$1","setModes","DockingApis","events$5","dockInfo","dockState","onShown","onHidden","ActiveDocking","DockingSchema","init$6","docked","initialBounds","DockingState","Docking","toolbarHeightChange","visibility","editorStickyOnClass","editorStickyOffClass","scrollFromBehindHeader","containerHeader","viewHeight","innerHeight","scrollPos","markerElement","markerPos","markerHeight","markerTop","markerBottom","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","isDockedMode","updateIframeContentFlow","getOccupiedHeight","parentElem","padding","parentWidth","updateSinkVisibility","sinkElem","updateEditorClasses","editorContainer","restoreFocus","headerElem","focusedElem","ownerDoc","activeElm","findFocusedElem","rootElm","setup$9","lazyHeader","getIframeBehaviours","focusedElm","runOnSinkElement","onDockingSwitch","additionalBehaviours","headerHeight","boxHeight","topBound","StickyHeader","sticky","groupToolbarButtonSchema","createGroupToolbarButton","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","createSplitButton","factory$b","setMenus","activeButton","hoveredButton","activeComp","hoveredComp","prev","SilverMenubar","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","refresh$3","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isCollapsed","isGrowing","_slideState","isShrinking","isTransitioning","toggleGrow","SlidingApis","events$4","onGrown","ActiveSliding","SlidingSchema","init$5","SlidingState","Sliding","schema$d","getPartName","sSpec","slot","make$1","getSlotNames","getSlot","onSlot","def","onSlots","doShowing","_key","doShow","doHide","hideSlot","hideSlots","hideAllSlots","showSlot","slotBehaviours","slotApis","SlotContainer","sidebarSchema","createSidebar","setup$8","sidebars","queryCommandValue","addToggleButton","handleToggle","makePanels","panelConfigs","bridged","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","setSidebar","sidebar","optSlider","toggleSidebar","optSlotContainer","whichSidebar","sidebarOpen","fixSize","autoSize","renderSidebar","getBusySpec","blockerBehaviours","blockSpec","isBlocked","onBlock","blockWith","onUnblock","BlockingApis","BlockingSchema","init$4","BlockingState","Blocking","getAttrs","getBusySpec$1","_root","_behaviours","focusBusyComponent","throbber","toggleEditorTabIndex","tabIndexAttr","dataTabIndexAttr","iframeElement","tabIndex","toggleThrobber","throbberFocus","busyComp","renderThrobber","isFocusEvent","isPasteBinTarget","targetElm","setup$7","lazyThrobber","throbberState","stealFocus","command","setEditorTimeout","generate$1","within","withinWidth","apportion","total","parray","toUnit","fitLast","overflow","overflower","fitAll","tryFit","divide","setGroups$1","storedGroups","bGroups","findFocusedComp","refresh$2","setOverflow","builtGroups","overflowGroup","focusedComp","availableWidth","overflows","schema$c","schema$b","parts$7","expandable","schema$a","parts$6","toggledClass","toolbarSandbox","bounder","makeSandbox","factory$a","FloatingToolbarButton","schema$9","parts$5","factory$9","tgroupBehaviours","itemSelector","ToolbarGroup","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","factory$8","getOverflowBounds","overflowToggledClass","splitToolbarBehaviours","getOverflow","SplitFloatingToolbar","schema$8","parts$4","onClosed","onOpened","toggleToolbar","overf","factory$7","toolbarToggleEvent","doSetGroups","_button","SplitSlidingToolbar","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","renderFloatingMoreToolbar","baseSpec","overflowXOffset","moreDrawerData","headerBounds","docElem","docBounds","renderSlidingMoreToolbar","renderToolbar","scrolling","factory$6","getSocket","getHeader","setToolbar","setToolbars","mToolbar","refreshToolbar","toggleToolbarDrawer","isToolbarDrawerToggled","getThrobber","focusToolbar","optToolbar","setMenubar","menubar","focusMenubar","partMenubar","toolbarFactory","sliding","floating","partMultipleToolbar","_mToolbar","tc","_index","partToolbar","renderer","lazyToolbar","lazyMoreButton","partHeader","partSocket","partSidebar","partThrobber","OuterContainer","grps","grp","renderedToolbars","defaultMenubar","defaultMenus","edit","tools","help","removedMenuItems","itemName","removedMenuItem","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","isDefaultMenu","menuData","isNotSeparator","fireSkinLoaded","_skinLoaded","initialized","fireSkinLoadError","loadStylesheet","stylesheetUrl","styleSheetLoader","unload","loadUiSkins","skinUiCss","loadShadowDomUiSkins","isInShadowRoot$1","shadowDomSkinCss","loadSkin","isInline","contentCSS","onSetupFormatToggle","boundCallback","binding","formatChanged","once","onSetupEvent","handleEvent","onActionToggleFormat$1","rawItem","onActionExecCommand","generateSelectItems","_editor","generateItem","response","si","invalid","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","getComponent","rawFormats","buildBasicStaticDataset","ResizeTypes","delimiter","SemiColon","buildBasicSettingsDataset","settingName","alignMenuItems","getSpec$4","getMatchingValue","_format","updateSelectMenuIcon","alignment","canApply","createAlignSelect","alignSelectMenu","defaultFontsFormats","systemStackFonts","splitFonts","fontFamily","fonts","font","isSystemFontStack","matchesSystemStack","getSpec$3","systemFont","getFirstFont","matchOpt","updateSelectMenuText","createFontSelect","fontSelectMenu","defaultFontsizeFormats","legacyFontSizes","keywordFontSizes","factor","toPt","fontSize","toLegacy","getSpec$2","_loop_1","pt","legacy","Space","createFontsizeSelect","fontsizeSelectMenu","findNearest","getStyles","defaultBlocks","getSpec$1","fallbackFormat","detectedFormat","createFormatSelect","formatSelectMenu","getSpec","getFormatItems","flattenedItems","createStyleSelect","styleSelectMenu","events$3","reflectingConfig","reflectingState","renderComponents","newComponents","rawData","ActiveReflecting","reflectState","ReflectingApis","ReflectingSchema","init$3","ReflectingState","Reflecting","schema$7","arrowPart","arrow","buttonPart","btn","splitDropdown","parts$3","factory$5","openMenu","executeOnButton","buttonEvents","ariaDescriptor","splitDropdownBehaviours","SplitDropdown","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","_d","renderFloatingToolbarButton","identifyButtons","renderCommonToolbarButton","specialisation","toolbarButtonBehaviours","renderToolbarButton","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButton","renderToolbarToggleButtonWith","fetchChoices","renderSplitButton","displayChannel","underlinePath","setIconStroke","buttonComp","defaultToolbar","renderFromBridge","bridgeBuilder","togglebutton","menubutton","splitbutton","grouptoolbarbutton","identify","allowToolbarGroups","TopToBottom","styleSelectButton","fontsizeSelectButton","fontSelectButton","formatButton","alignMenuButton","extractFrom","bespokeButtons","fontsizeselect","fontselect","formatselect","removeUnusedDefaults","filteredItemGroups","subItem","convertStringToolbar","strToolbar","groupsStrings","isToolbarGroupSettingArray","createToolbar","toolbarConfig","lookupButton","toolbarItem","prefixes","toolbarGroups","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","setupEvents$1","initialDocEle","lastWindowDimensions","innerWidth","lastDocumentDimensions","resizeWindow","outer","resizeDocument","docEle","inner","elementLoad","render$1","lastToolbarWidth","eTargetNode","targetNode","uiRoot","socket","limit","unbinder","_ui","addQueryValueHandler","toolbarMode","refreshDrawer","iframeContainer","Iframe","parseToInt","re","numToPx","calcCappedSize","minSize","maxSize","minOverride","maxOverride","getHeight","baseHeight","minHeight","getHeightWithFallback","getWidth","baseWidth","minWidth","getWidthWithFallback","InlineHeader","floatContainer","isSticky","editorMaxWidthOpt","headerBackstage","isSplitToolbar","calcToolbarOffset","tbar","calcMode","toolbar_1","toolbarHeight","targetBounds","roomAtTop","docHeight","roomAtBottom","winBounds","isRoomAtBottomViewport","setupMode","verticalDir","updateChromeWidth","bodyMargin","updateChromePosition","repositionPopups$1","updateChromeUi","resetDocking","floatContainerComp","updateMode","updateUi","currentMode","newMode","addClass","removeClass","getTargetPosAndBounds","setupEvents","toolbarPersist","prevPosAndBounds","resizeContent","prevPos","prevBounds","hasResized","uiContainer","Inline","showContextToolbarEvent","hideContextToolbarEvent","getFormApi","runOnExecute","formApi","renderContextButton","renderContextToggleButton","mementos","asSpecs","findPrimary","compInSystem","buildInitGroups","commands","renderContextForm","toolbarType","ContextForm","isVerticalOverlap","threshold","getRangeRect","leaf$1","getSelectionBounds","scroll_1","bodyPos","getAnchorElementBounds","getHorizontalBounds","contentAreaBox","viewportBounds","getVerticalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getContextToolbarBounds","toolbarOrMenubarEnabled","bubbleSize$1","bubbleAlignments$1","inset","isEntireElementSelected","preservePosition","currentPosition","shouldUseInsetLayouts","determineInsetLayout","contextbar","selectionBounds","isSameAnchorElement","isOverlapping","isReposition","yBounds","contextbarHeight","getAnchorSpec$2","mobile","smartInsetLayout","newAnchor","getInsetLayouts","desktopAnchorSpecLayouts","mobileAnchorSpecLayouts","getAnchorLayout","matchTargetWith","ctxs","toolbarApi","contextToolbars","contextForms","filterByPositionForStartNode","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForAncestorNode","findPosition_1","basePosition","matchStartNode","nodeCandidates","editorCandidates","nodeMatches","editorMatches","matchAncestor","startNode","scopes","ancestorElem","inNodeScope","lookup$1","rootElem","isOutsideRoot","inEditorScope","categorise","forms","formNavigators","lookupTable","registerForm","contextForm","launch","registerToolbar","contextToolbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","renderContextToolbar","currentWidth","newContents","oldContents","forwardContents","register$7","registryContextToolbars","lastTrigger","lastContextPosition","canLaunchToolbar","isSameLaunchElement","shouldContextToolbarHide","contextToolbarBounds","anchorBounds","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","shortcuts","getScopes","alloySpec","buildToolbar","buildContextToolbarGroups","allButtons","buildContextFormGroups","default","anchorLayout","launchContext","launchContextToolbar","toolbarKey","register$6","alignToolbarButtons","cmd","addButton","unsupportedLength","decimalDigits","signedInteger","exponentPart","dot","unsignedDecimalLiteral","float","isUnit","accepted","check","unitRaw","normalise","registerController","getMenuItems","getOptions","hash","oldApi","unbindWatcher","watcher","setCurrent","addMenuButton","onToolbarSetup","onMenuSetup","lineHeightSpec","languageSpec","settingsOpt","customCode","code","customValue","ele","codeOpt","lang","register$5","register$4","onSetupOutdentState","queryCommandState","registerButtons$2","register$3","onActionToggleFormat","registerFormatButtons","_idx","name_1","registerCommandButtons","registerCommandToggleButtons","registerButtons$1","registerMenuItems$2","addMenuItem","register$2","onSetupUndoRedoState","registerMenuItems$1","registerButtons","register$1","onSetupVisualAidState","hasVisual","registerMenuItems","addToggleMenuItem","registerToolbarButton","setup$6","transpose","dx","dy","isTouchEvent","fromPageXY","pageX","pageY","fromClientXY","transposeContentAreaContainer","containerPos","getPos","getPointAnchor","getSelectionAnchor","getNodeAnchor","getAnchorSpec$1","anchorType","initAndShow$1","buildMenu","contextmenu","anchorSpec","bubbleAlignments","isTouchWithinSelection","touch_1","rngRectOpt","rngRect","setupiOSOverrides","originalSelection","selectionReset","setRng","unbindEventListeners","preventMousedown","clearSelectionReset","getAnchorSpec","bubbleYOffset","initAndShow","shouldHighlightImmediately","openiOS_1","patchPipeConfig","shouldNeverUseNative","defaultItems","contextMenus","isContextMenuDisabled","getContextMenu","getAvoidOverlapSelector","makeContextItem","commonMenuItem","addContextMenuGroup","groupItems","lastMenuItem","generateContextMenu","selectedElement","sections","allItems","isNativeOverrideKeyEvent","isTriggeredByKeyboard","pointerType","getSelectedElement","getAnchorType","selectorExists","setup$5","hideContextMenu","showContextMenu","initAndShow$2","hideEvents","subtract","changes","asFixed","coord","asAbsolute","asOffset","withinRange","coord1","coord2","getDeltas","toStyles","stylesOpt","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","NaN","snapsInfo","leftAttr","topAttr","getCoords","snapInfo","moveOrSnap","newCoord","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","stopDrag","findMatchingSnap","snaps","sensor","inRange","getSnapPoints","matchSnap","bestSnap","deltas","bestDeltas","currAvg","bestAvg","snapTo$1","snapTo","dragConfig","getTarget","repositionTarget","origin_1","snapPin","DraggingApis","initialAttribute","resetZIndex","zIndex","changeZIndex","zindex","instigate","anyComponent","discard","createComponent","blockerClass","blockerEvents","SnapSchema","schema$6","getCurrentCoord","location","clampCoords","coords","absoluteCoord","newCoords","offset$1","calcNewCoord","optSnaps","currentCoord","snapping","onSensor","dragBy","onDrag","calcStartData","dragState","dragMode","dragStartData","getStartData","dlt","updateStartState","setStartData","init$2","dragApi","forceDrop","drop","delayDrop","getData$1","getDelta$1","MouseData","getDelta","events$2","stop$1","schema$5","init$1","getDataFrom","TouchData","events$1","blockerSingleton","stopBlocking","schema$4","schema$3","mouse","mouseOrTouch","DraggingBranches","previous","calculateDelta","dragEvent","nuData","DragState","Dragging","dragger","snapWidth","snapOffset","calcSnap","selectorOpt","td","selectorHandle","sensorLeft","sensorTop","sensorWidth","sensorHeight","getSnapsConfig","isSameCell","cellOpt","currentTd","createSelector","setup$4","tlTds","brTds","startCell","finishCell","getTopLeftSnap","memTopLeft","getTopLeftSnaps","getBottomRightSnap","memBottomRight","getBottomRightSnaps","topLeftSnaps","bottomRightSnaps","bottomRight","showOrHideHandle","isAbove","isBelow","cellRect","viewportHeight","aboveViewport","belowViewport","getSnapConfig","snapTopLeft","snapLastTopLeft","snapBottomRight","snapLastBottomRight","otherCells","upOrLeftCells","downOrRightCells","isHidden","renderElementPath","getDataPath","newPathElements","_btn","divider","newAcc","updatePath","parents","newPath","parent_1","isDefaultPrevented","isPropagationStopped","getDimensions","resizeType","originalHeight","originalWidth","Both","resize","dim","getResizeType","None","Vertical","keyboardHandler","renderResizeHandler","_target","renderWordCount","replaceCountText","words","characters","currentVal","wordCount","renderStatusbar","renderBranding","linkHtml","getTextComponents","getComponents","resizeHandler","setup$3","lazyOuterContainer","platformClasses","touchPlatformClass","deviceClasses","isToolbarBottom","dirAttributes","verticalDirAttributes","isHeaderDocked","resizeUiMothership","makeSinkDefinition","isGridUiContainer","sinkSpec","reactiveWidthSpec","memAnchorBar","lazyAnchorBar","sb","statusbar","socketSidebarContainer","hasMultipleToolbar","hasToolbar","hasMenubar","getPartToolbar","editorComponents","containerComponents","opacity","border","addQueryStateHandler","getUi","broadcastAll","setEditorSize","parsedHeight","parsedWidth","renderUI","toolbarGroupButtonConfig","addGroupToolbarButton","toolbarOpt","describedBy","describedElement","describeElement","describeId","labelledBy","labelledElement","labelElement","schema$2","basic","parts$2","dragBlockClass","getDragBounds","factory$4","dialogComp","showDialog","externalBlocker","hideDialog","blockerDom","getDialogBody","getDialogFooter","setBusy","setIdle","modalEventsId","getFooter","modalBehaviours","ModalDialog","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","dialogFooterButtonSchema","submit","alertBannerFields","alertBannerSchema","createBarFields","itemsField","buttonFields","buttonSchema","checkboxFields","checkboxSchema","checkboxDataProcessor","formComponentFields","formComponentWithLabelFields","collectionFields","collectionSchema","collectionDataProcessor","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerFields","colorPickerSchema","colorPickerDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imageToolsFields","imageToolsSchema","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","createDialog","urlDialogButtonSchema","urlDialogSchema","createUrlDialog","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","getDataProcessor","getNamedItems","createDataValidator","namedItems","internalDialog","dataValidator","DialogManager","openUrl","redial","toValidValues","renderBodyPanel","memForm","formValue","factory$3","tabButtonBehaviours","TabButton","schema$1","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$1","factory$2","tabbarBehaviours","selectedClass","tab","Tabbar","factory$1","tabviewBehaviours","Tabview","barPart","tabs","viewPart","tabValue","tabview","tabWithValue","tabData","onChangeTab","changeTabBy","section","byPred","tabSectionBehaviours","selectFirst","onDismissTab","getViewItems","showTab","tabKey","getTabIfNotActive","optTab","TabSection","measureHeights","allTabs","tabviewComp","_tab","getMaxHeight","heights","getMaxTabviewHeight","tablist","documentElement$1","tabviewHeight","isTabListBeside","currentTabHeight","dialogTopMargin","dialogBottomMargin","dialogHeight","chromeHeight","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","getTabview","smartTabHeight","extraEvents","maxTabHeightOpt","oldHeight","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","currentData","setDataOnForm","oldTab","tabMode","_viewItems","oldName","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","ariaAttrs","incoming","isTabPanel","ariaAttributes","renderInlineBody","contentId","renderModalBody","bodySpec","renderIframeBody","_typeof","Symbol","iterator","_setPrototypeOf","setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_construct","Parent","Class","Constructor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","arr2","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","seal","_ref","thisValue","Func","arrayForEach","unapply","forEach","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","unconstruct","func","_len","_len2","_key2","addToSet","lcElement","object","newObject","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","ATTR_NAME","currentScript","policyName","createHTML","createDOMPurify","DOMPurify","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","PARSER_MEDIA_TYPE","transformCaseFunc","MUSTACHE_EXPR$1","ERB_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","namespaceURI","parentTagName","_forceRemove","outerHTML","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_basicCustomElementTest","childCount","_isValidAttribute","lcTag","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","nodeIterator","shadowroot","serializedHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","purify","sanitizeHtmlString","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","footer","pFooterGroup","startButtons","endButtons","renderDialog$1","dialogClass","blockerBackdropClass","scrollLockClass","extraStyles","dialogEvents","renderClose","renderTitle","renderDragHandle","renderInlineHeader","titleId","renderModalHeader","pTitle","pHandle","draghandle","draggable","bs","getEventExtras","lazyDialog","closeWindow","blockEvent","renderModalDialog","mapMenuButtons","mapItems","extractCellsToObject","menuButton","innerAcc","initCommonEvents","fireApiEvent","_event","initUrlDialog","getInstanceApi","withSpec","currentDialog","initDialog","currentDialogInit","cur","onTabChange","newTabName","oldTabName","SilverDialogEvents","makeButton","footerButtons","buttonName","buttonGroups","makeGroup","renderFooter","initSpec","lookupByName","renderInlineFooter","renderModalFooter","getCompByName","form_1","getFormWrapper","footerState","validateData$1","dialogState","getDialogApi","doRedial","menuItemStates","withRoot","valueComp","representedValues","menuItemCurrentState","setData","prevData","instanceApi","mergedData","newInternalData","bodyState","tabSection","dialogInit","getDialogSizeClasses","renderDialog","storagedMenuButtons","objOfCells","dialogSize","modalAccess","getForm","outerForm","renderInlineDialog","dialogLabelId","dialogContentId","memHeader","memBody","memFooter","global$1","getUrlDialogApi","sendMessage","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","isCustomMessage","handleMessage","insertContent","renderUrlDialog","iframeUri","base_uri","href","iframeDomain","protocol","port","messageHandlerUnbinder","isSameOrigin","onMessage","iframeEle","iframeWin","postMessage","setup$2","closeDialog","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","setup$1","confirmDialog","memFooterYes","footerNo","footerYesButton","validateData","isAlertOrConfirmDialog","inlineAdditionalBehaviours","isStickyToolbar$1","openInlineDialog","openModalDialog","openModalUrlDialog","internalInitialData","config$1","refreshDocking","dialogUi","inlineDialogComp","confirm","Theme","windowMgr","getWindowManagerImpl","getNotificationManagerImpl","UnitExplain","RemoveApx","GetUnitApxList","DelReUnitApx","AddUnitApx","UpdateUnit","SectionInfo","UpdateMySection","CreateMyAction","DelMyAction","DelReSectionApx","DelReLessonApx","UpdataActionInfo","ActionSort","AddLessonApx","AddSectionApx","MissingSectionApxList","MissingActionList","DelAliYunFile","ReAction","GetBsIdeas","SetUnitSelect","getBsIdeas","parameter","request","reAction","missingActionList","missingSectionApxList","addSectionApx","addLessonApx","actionSort","updataActionInfo","delReLessonApx","delReSectionApx","delMyAction","getUnitExplainById","getUnitApxList","delReUnitApx","addUnitApx","updateUnit","removeApx","getSectionById","updateMySection","createMyAction","setUnitSelect","groupBy","wasType","isEmpty$1","is$2","isTag","lastChild","shallowAs","mutate","matchNodeName","matchNodeNames","regex","isTextNode","isListNode","isOlUlNode","isOlNode","isListItemNode","isDlItemNode","isTableCellNode","isBr","isFirstChild","isTextBlock","getTextBlockElements","blockElements","isBogusBr","previousSibling","keepBookmarks","isChildOfBody","isChildOf","shouldIndentOnTab","getForcedRootBlock","getForcedRootBlockAttrs","createTextBlock","contentNode","textBlock","hasContentNode","getBlockElements","createFragment","blockName","setAttribs","DOM$2","splitList","li","removeAndKeepBookmarks","bookmarks","newBlock","tmpRng","insertAfter","isDescriptionDetail","isDescriptionTerm","outdentDlItem","dl","indentDlItem","dlIndentation","indentation","dlItems","getNormalizedPoint","normalizeRange","outRng","rangeStart","rangeEnd","getParentList","selectionStart","getClosestListRootElm","isParentListSelected","parentList","selectedBlocks","findSubLists","getSelectedSubLists","getSelectedBlocks","findParentListItemsNodes","listItemsElms","parentLi","getSelectedListItems","getSelectedDlItems","parentTableCell","findLastParentListNode","parentLists","getSelectedLists","firstList","subsequentLists","getSelectedListRoots","selectedLists","getUniqueListRoots","lists","listRoots","fromElements","fireListEvent","joinSegment","joinSegments","segments","appendSegments","head$1","tail","createSegment","listType","createSegments","populateSegments","listAttributes","itemAttributes","normalizeSegment","appendItem","writeShallow","cast","newCast","depth","writeDeep","composeList","entries","isList","hasFirstChildList","hasLastChildList","isIndented","cloneItemContent","createEntry","indentEntry","cloneListProperties","cleanListProperties","closestSiblingEntry","normalizeEntries","matchingEntry","parseItem","itemSelection","selectionState","currentItemEntry","childListEntries","parseList","parser","newDepth","parseLists","initialDepth","sourceList","outdentedComposer","normalizedEntries","indentedComposer","contentDocument","composeEntries","groupIsIndented","indentSelectedEntries","getItemSelection","selectedListItems","listIndentation","entrySets","entrySet","composedLists","composedList","selectionIndentation","isHandled","bookmark","getBookmark","moveToBookmark","indentListSelection","outdentListSelection","flattenListSelection","DOM$1","createBookmark","setupEndPoint","offsetNode","resolveBookmark","restoreEndPoint","nodeIndex","listToggleActionFromListName","listName","isCustomList","listState","activate","nodeChangeHandler","inList","updateListStyle","setStyle","updateListAttrs","updateListWithDetails","removeStyles","getEndPointNode","getSelectedTextBlocks","textBlocks","endNode","siblings","isBookmarkNode","hasCompatibleStyle","sib","sibStyle","detailStyle","applyList","listItemName","selectedTextBlocks","listBlock","rename","mergeWithAdjacentLists","isValidLists","list1","list2","hasSameListStyle","targetStyle","hasSameClasses","elm1","elm2","shouldMerge","updateList$1","newList","toggleMultipleLists","parentIsList","hasListStyleDetail","allLists","toggleSingleList","toggleList","selectedSubLists","normalizeList","normalizeLists","grep","findNextCaretContainer","isForward","nonEmptyBlocks","getNonEmptyElements","walker","hasOnlyOneBlockChild","unwrapSingleBlockChild","moveChildren","fromElm","toElm","mergeLiElements","listNode","ul","$","nestedLists","mergeIntoEmptyLi","fromLi","toLi","mergeForward","mergeBackward","resolvedBookmark","backspaceDeleteFromListToListCaret","selectionStartElm","rng_1","otherLi_1","removeBlock","parentBlock","backspaceDeleteIntoListCaret","otherLi_2","backspaceDeleteCaret","backspaceDeleteRange","startListParent","backspaceDelete","DELETE","updateList","setStyles","setAttrib","parseAlphabeticBase26","chars","charValue","composeAlphabeticBase26","quotient","fromCharCode","isUppercase","isLowercase","isNumeric","deduceListType","parseStartValue","listStyleType","parseDetail","currentList","getAttrib","queryListCommandState","registerDialog","setupTabKey","metaKeyPressed","listProperties","addContextMenu","Plugin","hasProPlugin","clipboard","repeat","firePastePreProcess","isWordHtml","wordContent","firePastePostProcess","firePastePlainTextToggle","firePaste","ieFake","shouldBlockDrop","shouldPasteDataImages","shouldFilterDrop","getPreProcess","getPostProcess","getWebkitStyles","shouldRemoveWebKitStyles","shouldMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getRetainStyleProps","getWordValidElements","defaultValidElements","shouldConvertWordFakeLists","shouldUseDefaultFilters","getValidate","getAllowHtmlDataUrls","getPasteDataImages","getImagesDataImgFilter","getImagesReuseFilename","getTabSpaces","getAllowedImageFileTypes","internalMimeType","internalMark","mark","unmark","isMarked","internalHtmlMime","isPlainText","toBRs","openContainer","rootTag","rootAttrs","toBlockElements","blocks","tagOpen","tagClose","paragraphs","stitch","isRegExp","domParser","shortEndedElements","getShortEndedElements","ignoreElements","walk","shortEnded","trimHtml","trimSpaces","s1","s2","createIdGenerator","getImageMimeType","ext","lowerExt","mimeOverrides","jpg","jpe","jfi","jif","jfif","pjpeg","pjp","hasOwn","isWordContent","isNumericList","isBulletList","convertFakeListsToProperLists","currentListNode","prevListNode","lastLevel","txt","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","_listLevel","nodeText","filterStyles","validStyles","styleValue","outputStyles","outputStyle","serializeStyle","filterWordContent","retainStyleProperties","spaces","validElements","valid_elements","valid_children","class","attributesOrder","addAttributeFilter","nodes","addNodeFilter","serialize","preProcess$1","preProcess","forced_root_block","isRootContent","processResult","cancelled","postProcessFilter","tempBody","postProcessArgs","filterContent","preProcessArgs","filteredContent","hasEventListeners","pasteHtml$1","paste","isAbsoluteUrl","isImageUrl","createImage","pasteHtmlFn","createLink","linkSelection","insertImage","smartInsertContent","pasteAsText","isCollapsibleWhitespace","isNewLineChar","isNewline","normalizeWhitespace","tabSpace","normalizedText","pcIsSpace","doPaste","pasteHtml","internalFlag","pasteText","encodedText","getDataTransferItems","mceInternalUrlPrefix","legacyText","contentType","getClipboardContent","clipboardEvent","clipboardData","hasContentType","clipboardContent","mimeType","hasHtmlOrText","parseDataUri","decodeURIComponent","isValidDataUriImage","imgElm","extractFilename","uniqueId","pasteImage","imageItem","blobCache","editorUpload","blobInfo","existingBlobInfo","getByData","useFileName","filename","blobUri","isClipboardEvent","isDataTransferItem","getAsFile","readFilesAsDataUris","onload","isImage","allowedExtensions","extension","getImagesFromDataTransfer","kind","pasteImageData","images","fileResults","isBrokenAndroidClipboardEvent","isKeyboardPasteEvent","registerEventHandlers","pasteBin","pasteFormat","keyboardPastePlainTextState","keyboardPasteEvent","keyboardPastePressed","removePasteBinOnKeyUp","webkit","insertClipboardContent","isKeyBoardPaste","plainTextMode","isDefaultContent","isPlainTextHtml","isAbsoluteUrl$1","getLastRng","isKeyboardPaste","registerEventsAndFilters","isPasteInsert","transparentSrc","isWebKitFakeUrl","isDataUri","getPasteBinParent","isExternalPasteBin","delegatePasteEvents","pasteBinElm","pasteBinDefaultContent","isDefault","lastRngCell","gecko","pasteBinClone","copyAndRemove","pasteBinClones","dirtyWrappers","cleanWrapper","isPasteBin","PasteBin","Clipboard","togglePlainTextPaste","hasWorkingClipboardApi","iOS","setHtml5Clipboard","clearData","setClipboardData","markedHtml","contenteditable","offscreenRange","selectNodeContents","isTableSelection","hasSelectedContent","getCaretRangeFromEvent","getCaretRangeFromPoint","isPlainTextFileUrl","plainTextContent","setFocusedRange","draggingInternallyState","dropContent","content_1","plugin","plugins","postProcess","addPreProcessFilter","filterFunc","addPostProcessFilter","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","webKitStylesSetting","dom_1","node_1","decode","removeUnderlineAndFontInAnchor","makeSetupHandler","pastePlainTextToggleHandler","_vm","_h","$createElement","_self","staticClass","_l","AppendixId","deleteTool","previewSource","apxs","fileList","removeFile","beforeFileUpload","uploadHandleChange","$$v","apxTag","expression","staticStyle","saveFile","linkname","saveLink","recoveryAction","permanentlyDelete","previewMissApx","missApxs","staticRenderFns","missingList","methods","$emit","isLt2M","$message","ApxTag","linkUrl","cancelUpload","eq$2","none$2","each$2","flatten$1","sort$1","detect$6","detect$5","toFloat","COMMENT","fromDom$1","fromPoint$1","validSectionList","isValidSection","parentName","rowspan","colspan","detailnew","isNew","extended","isLocked","rowdetail","rowdetailnew","elementnew","rowcells","finishRow","finishCol","columnext","colgroup","type$1","isComment","parentElement","rawParent","prevSibling","children$3","child$3","body$1","getBody$1","ancestors$4","children$2","ancestors$3","bindFrom","oot","getRaw$2","copy$2","sourceDom","targetDom","cssText","getAttrValue","getSpan","hasColspan","cellOrCol","hasRowspan","getCssValue","firstLayer","filterFirstLayer","tags","isRootOrUpperTable","cells$1","columns$1","columnGroups","columnGroup","rows$1","fromRowsOrColGroups","getSection","getParentSection","fromTable$1","columnGroups$1","fromPastedRows","addCells","gridRow","existingCells","newCells","setCells","addCell","mutateCell","mapCells","getCell","getCellElement","cellLength","extractGridDetails","cols","cloneRow","cloneCell","LOCKED_COL_ATTR","getLockedColumnsFromTable","lockedColStr","lockedCols","getLockedColumnsFromGrid","lockedArr","_val","getAt","warehouse","findItem","filtered","filterItems","generateColumns","rowData","columnsGroup","tableOpt","lockedColumns","maxRows","maxColumns","rowCount","colgroupRows","currentRow","rowCell","occupiedColumnPosition","occupiedRowPosition","rowPosition","columnPosition","newpos","colgroup$1","colgroups","grid$1","fromTable","justCells","justColumns","hasColumns","getColumnAt","Warehouse","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","isWithin","isRectangular","isRect","detailIsWithin","detailA","detailB","getAnyBox","startCoords","finishCoords","sc","fc","getBox$1","intercepts$1","parentCell","innerCell","isContainedBy","c1","c2","deltaColumn","getWarehouse","intercepts","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","lastCell","before$4","after$5","before$3","after$4","TagBoundaries","DomUniverse","isEmptyTag","isNonEditable","comparePosition","copyAttributesTo","destination","as","isSpecial","getLanguage","up","down","copyTo","afterAll","appendAll","setText","universe","look","oneAll","unsafeOne","commonElement","ancestors$2","ps1","ps2","ind","pruned1","pruned2","firstpath","secondpath","sharedOne$1","ancestors$1","universe$3","sharedOne","_universe","ancestors","getIsRoot","rootTable","boxes","startTable","finishTable","ancestorCells","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve$1","sels","lastSelectedSelector","getEdges","firstSelectedSelector","expandTo","shiftSelection","retrieve","retrieveBox","sectionSelector","firstAncestor","lastAncestor","fA","lA","onMultiple","onSingle","none$1","Selections","lazyRoot","selectedSelector","copy$1","cloneChildren","mutate$1","needManualCalc","toNumber","px","getProp","getBoxSizing","calcContentBoxSize","lower","paddingUpper","paddingLower","borderUpper","borderLower","getCalculatedHeight","boxSizing","getCalculatedWidth","getInnerWidth","getInner","getRuntime$1","isValidCell","rowsArr","getBlock","getFallback","decide","inBlock","validInBlock","detailOption","isSingle","deduce","aa","getRuntime","rowInfo","colInfo","rtlEdge","ltrEdge","getTop$1","findPositions","getInnerEdge","getOuterEdge","cellOption","lastLine","negate","optElements","ltr$1","rtl$1","amount","rPercentageBasedSizeRegex","rPixelBasedSizeRegex","isCol$2","getPercentSize","outerGetter","innerGetter","relativeParent","setPixelWidth","setPercentageWidth","getHeightValue","normalizePixelSize","getTotalHeight","getRaw$1","getRawWidth$1","getRawHeight","getPercentageWidth","getPixelWidth$1","getGenericWidth","setGenericWidth","getPixelTableWidth","getPercentTableWidth","isPercentSizing$1","isPixelSizing$1","isNoneSizing$1","percentageBasedSizeRegex","isCol$1","getRawW","getRawH","justCols","isValidColumn","supportsColWidths","backups","getWidthFrom","columnCells","colFilter","getDeduced","deduced","getRawWidths","getPercentageWidths","tableSize","minCellWidth","cellWidth","pixelWidth","getPixelWidths","getHeightFrom","getPixelHeights","getRawHeights","widthLookup","noneSize","zero","getWidths","getCellDelta","singleColumnWidth","setElementWidth","adjustTableWidth","isRelative","percentageSize","getFloatWidth","_delta","pixelSize","newNext","chooseSize","percentMatch","getTableSize","TableSize","statsStruct","minRow","minCol","maxRow","maxCol","allCells","selectedCells","findSelectedStats","house","totalColumns","totalRows","endRow","endCol","seenSelected","fillInGaps","stats","needCell","clean","replica","widthDelta","emptyRows","getTableWidthDelta","colWidths","allColsWidth","selectedColsWidth","extract$1","replicaHouse","replicaStats","unselectedCells","transferableAttributes","createCell","createCol","createColgroup","createRow$1","replace$1","pasteReplace","cloneFormats","oldCell","newCell","first$1","firstText","formatSelector","clonedFormat","cloneAppropriateAttributes","validAttributes","attributeName","cellOperations","formatsToClone","cloneCss","lastNode","colGap","gap","paste$1","getNodeName","getPixelWidth","getPixelHeight","removePxSuffix","addPxSuffix","removeDataStyle","removeStyleAttribute","getRawWidth","isPercentage$1","isPixel","getSelectionStart","getSelectionEnd","selections","unmergable","hasSpan","hasRowOrColSpan","mergable","ephemera","strSelected","strSelectedSelector","strAttributeSelector","strFirstSelected","strFirstSelectedSelector","strLastSelected","strLastSelectedSelector","attributeSelector","firstSelected","lastSelected","noMenu","generators","pasteRows","getSelectionCellFallback","getSelectionFromSelector","initCell","cellName","getSelectionCellOrCaption","getSelectionCell","getCellsFromSelection","getRowsFromSelection","rowsOpt","extractSelected","serializeElements","serializer","getTextContent","registerEvents","multiCellContext","isTable","pasteCells","only","ColumnContext","neighbours","determine","onOnly","calcLeftEdgeDeltas","onMiddle","calcMiddleDeltas","calcRightEdgeDeltas","measures","recalculateWidthForCells","widths","recalculateWidthForColumns","recalculateHeightForCells","matchRowHeight","sumUp","recalculate","recalculateAndApply","newSizes","adjustWidth","resizing","isLastColumn","clampedStep","clampTableDelta","newWidths","resizeTable","adjustHeight","newHeights","newCellSizes","newRowSizes","adjustAndRedistributeWidths$1","_table","resizeBehaviour","sizes","tablePixelWidth","calcRedestributedWidths","pixelDelta","adjustWidthTo","_info","surround","startIndex","clampDeltaHelper","minCellSize","clampNegativeDelta","clampDelta","calcFixedDeltas","clampedDelta","calcRelativeDeltas","ratio","newThis","_prev","resizer","totalWidth","tableWidth","ratio_1","preserveTable","_minCellSize","maxDelta","_totalWidth","_pixelDelta","_isRelative","isResizable","detached","editable","ResizeWire","validateFor","rawAmount","Size","redistributeToPercent","colType","pc","redistributeToPx","newTotalWidth","redistributeEmpty","newWidthType","redistributeValues","_pc","redistribute$1","newType","floats","roundDown","floored","redistributeToW","redistributeToColumns","redistributeToH","getUnit","redistribute","optWidth","optHeight","widthUnit","oldWidths","nuWidths","hUnit","totalHeight","oldHeights","nuHeights","isPercentSizing","isPixelSizing","isNoneSizing","getGridSize","Event","trigger","typeDefs","reqMessage","unsuppMessage","validateStrArr","invalidTypeMessage","incorrect","checkDupes","everything","dupe","handleUnsupported","baseWith","invalidKeys","handleExact","exactly","DragMode","DragSink","DragApi","InDrag","compare","dataOption","NoDrag","Movement","noDragState","inDragState","mutation","throttledDrop","runIfActive","handle$2","namespace","dashNamespace","styles$1","resolve$1","Blocker","layerClass","mdown","mup","mmove","mout","MouseDrag","isEditable$1","assumeEditable","isContentEditable","Mutation","BarMutation","resizeBar","resizeRowBar","resizeColBar","BAR_THICKNESS","resizableRows","resizableColumns","resizableCols","colElmOpt","wire","drawBar","cpOption","cp","refreshCol","colPositions","tableHeight","colBar","refreshRow","rowPositions","rowBar","refreshGrid","warhouse","resizableRowBars","resizableRowPositions","_pos","barIndex","resizableColBars","resizableColPositions","bars","isRowBar","isColBar","resizeBarDragging","BarManager","hoverTable","getResizer","_dataRow","_dataCol","currentCol","oldX","startAdjust","findClosestEditableTable","destroy$1","tbl","hideBars","showBars","lazySizing","hdirection","vdirection","beforeResize","afterResize","startDrag","TableResize","fireNewRow","fireNewCell","fireObjectResizeStart","fireObjectResized","fireTableSelectionChange","fireTableSelectionClear","fireTableModified","styleModified","structureModified","styleAndStructureModified","defaultTableToolbar","defaultStyles","defaultCellBorderWidths","defaultCellBorderStyles","determineDefaultStyles","isPixelsForced","contentWidth","isResponsiveForced","defaultAttributes","defaultColumnResizingBehaviour","getTableSizingMode","getTableResponseWidth","getTableBorderWidths","getTableBorderStyles","getDefaultAttributes","getDefaultStyles","hasTableResizeBars","hasTabNavigation","hasAdvancedCellTab","hasAdvancedRowTab","hasAdvancedTableTab","hasAppearanceOptions","hasTableGrid","shouldStyleWithCss","getCellClassList","getRowClassList","getTableClassList","isPercentagesForced","useColumnGroup","getTableHeaderType","defaultValue","validValues","getColumnResizingBehaviour","validModes","givenMode","isPreserveTableColumnResizing","isResizeTableColumnResizing","getCloneElements","cloneElements","hasObjectResizing","objectResizing","getTableBackgroundColorMap","getTableBorderColorMap","cleanupLegacyAttributes","convertToPercentSize","convertToPixelSize","convertToNoneSize","rowElements","enforcePercentage","enforcePixels","enforceNone","syncPixels","computedWidth","createContainer","barResizerPrefix","getResizeHandler","startW","startRawW","selectionRng","lazyResize","lazyWire","lazyResizingBehaviour","afterCornerResize","isRightEdgeResize","percentW","targetPercentW","sz","rawWire","rawTable","scan$1","toEnd","freefallRtl$2","freefallRtl$1","universe$2","freefallRtl","halve","main","isHeaderCell","isHeaderCells","getRowHeaderType","isHeaderRow","getRowType$1","findCommonCellType","subType","headerCells","findCommonRowType","rowTypes","hasHeader","hasFooter","hasBody","findTableRowHeaderType","rowType","transformCell","substitution","transformRow","fixedCell","sectionCells","newSection","getTableSectionType","TableSection","setIfNot","insert$1","generateSection","sectionName","newRows","syncRows","gridSection","tr","syncColGroup","colGroup","renderSection","sync","sectionElems","removeSection","renderOrRemoveSection","headSection","bodySection","footSection","columnGroupsSection","clonedCell","getColumn","getRow","findDiff","subgrid","isColRow","toDetails","seen","updateSeen","toGrid","colgroupCols","rowCells","rowDetail","fromWarehouse","toDetailList","findInWarehouse","extractCells","cell$1","lc","postAction","genWrappers","tableSection","newElements","tableSizing","sizing","onPasteByEditor","onMergable","_warehouse","onUnmergable","onCells","onUnlockedCells","isUnlockedTableCell","allUnlocked","onUnlockedMergable","mergeable","onUnlockedUnmergable","merge$2","unmerge","currentCell","currentCellElm","isToReplace","uniqueCells","splitCols","prevCell","splitRows","rowPrevCells","replacement","sub","measure","startAddress","gridA","gridB","rowRemainder","colRemainder","colRequired","rowRequired","rowDelta","colDelta","measureWidth","colLengthA","colLengthB","measureHeight","rowLengthA","rowLengthB","generateElements","generator","rowFill","exampleRow","colFill","lockedColFill","colNum","newChild","tailor","fillCols","fillRows","gridWidth","isLastColLocked","modifiedCols","newLockedColumns","isSpanning","matching","mergeTables","mergeHeight","mergeWidth","lockedColumnObj","skippedCol","gridBColIndex","newCellElm","getValidStartAddress","currentStartAddress","gridColLength","adjustedRowAddress","possibleColAddresses","validColAddress","getLockedColumnsWithinBounds","validStartAddress","gridBRows","lockedColumnsWithinBounds","fittedGrid","newLockedColumnsWithinBounds","insertCols","fittedNewGrid","secondDelta","fittedOldGrid","insertRows","oldCols","oldRows","newLocked","secondDiff","fittedGridB","insertRowAt","example","withinSpan","getElementFor","insertColumnAt","deleteColumnsAt","deleteRowsAt","notInStartRow","notInStartColumn","isDuplicatedCell","rowReplacerPredicate","targetRow","columnHeaders","entireTableIsHeader","_rowIndex","columnReplacePredicate","targetColumn","rowHeaders","_colIndex","determineScope","applyScope","newScope","isInHeader","getScope","oppositeScope","rowScopeGenerator","columnScopeGenerator","replaceIn","genScope","shouldReplace","isTarget","newCell_1","getColumnCells","getRowCells","replaceColumns","indexes","shouldReplaceCell","scopeGenerator","replaceRows","_cell","newGrid","replaceCells","targetCells","uniqueColumns","uniqueCheck","columnExists","currentDetail","isCol","isColgroup","isRow$1","elementToData","toData","nuCell","nuRow","recent","getOrInit","makeNew","replaceOrInit","getScopeAttribute","merging","getScopeProperty","stringAttributes","baseScope_1","scopes_1","isMixed","Generators","blockList","isList$1","isBlock$1","isEmptyTag$1","universe$1","advancedBr","isListItem","siblingIsBlock","rightSibling","markCell","rightSiblingIsBlock","markContent","findEditableCursorPosition","elementFromGrid","cursorElement","uniqueRows","rowCompilation","rowExists","opInsertRowsBefore","targetIndex","newG","opInsertRowsAfter","opInsertColumnsBefore","extractDetail","opInsertColumnsAfter","opMakeColumnsHeader","initialGrid","columnIndexes","opMakeCellsHeader","opUnmakeColumnsHeader","opUnmakeCellsHeader","makeRowsSection","rowIndexes","opMakeRowsHeader","opMakeRowsBody","opMakeRowsFooter","opEraseColumns","_comparator","_genWrappers","maxColIndex","opEraseRows","maxRowIndex","opMergeCells","opUnmergeCells","unmerge$1","opPasteCells","pasteDetails","gridify","wh","mergedGrid","gridifyRows","opPasteColsBefore","opPasteColsAfter","opPasteRowsBefore","opPasteRowsAfter","opGetColumnsType","lastSelectedCell","minColRange","maxColRange","selectedColumnCells","opGetCellsType","opGetRowsType","minRowRange","maxRowRange","selectedRows","adjustAndRedistributeWidths","firstColumnIsLocked","lastColumnIsLocked","getColumnsWidth","uniqueCols","colWidth","insertColumnsExtractor","checkLocked","eraseColumnsExtractor","pasteColumnsExtractor","headerCellGenerator","bodyCellGenerator","insertRowsBefore","insertRowsAfter","insertColumnsBefore","insertColumnsAfter","eraseColumns","eraseRows","makeColumnsHeader","unmakeColumnsHeader","makeRowsHeader","makeRowsBody","makeRowsFooter","makeCellsHeader","unmakeCellsHeader","mergeCells","unmergeCells","pasteColsBefore","pasteColsAfter","pasteRowsBefore","pasteRowsAfter","getColumnsType","getCellsType","getRowsType","TableActions","cellSelection","isTableBody","lastRowGuard","lastColumnGuard","colMutationOp","setSelectionFromAction","firstCell","des","guard","effect","noEvents","deleteRow","deleteColumn","insertRowsBefore$1","insertRowsAfter$1","insertColumnsBefore$1","insertColumnsAfter$1","mergeCells$1","unmergeCells$1","pasteColsBefore$1","pasteColsAfter$1","pasteRowsBefore$1","pasteRowsAfter$1","pasteCells$1","makeCellsHeader$1","unmakeCellsHeader$1","makeColumnsHeader$1","unmakeColumnsHeader$1","makeRowsHeader$1","makeRowsBody$1","makeRowsFooter$1","getTableCellType","getTableColType","getTableRowType","DefaultRenderOptions","colGroups","tableHeaderCell","tableCell","tableColumn","createRow","createGroupRow","createRows","headerType","renderOpts","rowHeadersGoInThead","actualRowHeaders","thead","theadRowHeaders","theadRows","numRowHeaders","tbodyRows","placeCaretInCell","selectFirstCellInTable","tableElm","fireEvents","isPercentage","colHeaders","addVisual","insertTableWithDataValidation","errorMsg","checkInput","headerRows","headerColumns","getClipboardElements","getClipboard","setClipboardElements","setClipboard","elmsOpt","insertTable","selectionTargets","setClipboardRows","setRows","getClipboardRows","getRows","setClipboardCols","setColumns","getClipboardCols","getColumns","constrainSpan","currentColspan","generateColGroup","colsToCopy","copiedCols","clonedCol","fakeColgroup","generateRows","cellsToCopy","copiedCells","fakeTR","copyCols","fakeColGroups","fakeRows","copyRows","slicedGrid","filteredGrid","slicedDetails","getTDTHOverallStyle","firstChildStyle","checkChildren","currentStyle","applyAlign","applyVAlign","unApplyAlign","unApplyVAlign","verticalAlignValues","onSetupToggle","formatValue","checkNode","isListGroup","buildListItems","buildMenuItems","applyTableCellStyle","filterNoneItem","generateMenuItemsCallback","buildColorMenu","colorList","changeRowHeader","currentType","changeColumnHeader","getClassList$1","getItems$2","getAdvancedTab","dialogName","emptyBorderStyle","advTabItems","borderWidth","modifiers","testTruthy","setFormat","DomModifier","ifTruthy","rgbToHex","extractAdvancedStyles","borderwidth","borderstyle","bordercolor","backgroundcolor","getSharedValues","baseData","comparisonData","itemKey","comparisonValue","getAlignment","matchNode","getHAlignment","getVAlignment","extractDataFromSettings","hasAdvTableTab","extractAdvancedStyleData","defaultData","cellspacing","cellpadding","caption","getBorder","advStyle","getCellPaddingCellSpacing","spacing","getRowType","extractDataFromTableElement","optBorderWidth","extractDataFromRowElement","extractDataFromCellElement","colElm","celltype","halign","getSelectedCells","cellA","cellB","updateSimpleProps$1","modifier","colModifier","updateAdvancedProps$1","applyStyleData$1","isSingleCell","cellElm","applyStructureData$1","no_events","applyCellData","oldData","modifiedData","onSubmitCellForm","cellsData","open$2","dialogTabPanel","dialogPanel","getClassList","formChildren","getItems$1","updateSimpleProps","updateAdvancedProps","applyStyleData","isSingleRow","rowElm","applyStructureData","applyRowData","typeModified_1","styleModified_1","onSubmitRowForm","rowsData","insertNewTable","rowColCountItems","alwaysItems","appearanceItems","alignmentItem","classListItem","styleTDTH","applyDataToElement","onSubmitTableForm","captionElm","captionModified","generalPanel","nonAdvancedForm","advancedForm","getSelectionStartCellOrCaption","getSelectionStartCell","eraseTable","cellOrCaption","setSizingMode","isForcedSizing","getTableFromCell","performActionOnSelection","toggleTableClass","toggleTableCellClass","allHaveClass","formatterAction","toggleCaption","postExecute","actOnSelection","copyRowSelection","copyColSelection","pasteOnSelection","clonedRows","actOnType","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutCol","mceTableCutRow","mceTableCopyCol","mceTableCopyRow","mceTablePasteColBefore","mceTablePasteColAfter","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","mceTableCellToggleClass","mceTableToggleClass","mceTableToggleCaption","mceTableSizingMode","mceTableCellType","mceTableColType","mceTableRowType","mceTableProps","mceTableRowProps","mceTableCellProps","getFormatName","validArgs","registerQueryCommands","lookupOnSelection","clearRows","clearColumns","genericBase","remove_similar","inherit","cellBase","cellFormats","tablecellbackgroundcolor","backgroundColor","tablecellverticalalign","tablecellbordercolor","borderColor","tablecellclass","tableclass","tablecellborderstyle","borderStyle","tablecellborderwidth","CellLocation","isEligible","forwards","after$3","selectNodeContentsUsing","searchForPoint","rectForOffset","curDeltaX","inRect","locateOffset","textnode","rangeForOffset","locate$1","foundRect","searchInChildren","locateNode","boundedX","boundedY","COLLAPSE_TO_LEFT","COLLAPSE_TO_RIGHT","getCollapseDirection","createCollapsedNode","collapseDirection","locateInElement","cursorRange","locateInEmpty","caretPositionFromPoint","caretRangeFromPoint","searchTextNodes","searchFromPoint","availableSearch","beforeSpecial","preprocessRelative","preprocessExact","doSetNativeRange","removeAllRanges","addRange","doSetRange","setLegacyRtlRange","extend","setRangeFromRelative","setBaseAndExtent","setExact","setRelative","toNative","getDomRange","setToElement","selectNodeContents$1","rngGetter","getAtPoint","forward","go$1","backward","getCellFirstCursorPosition","rootElements","handle$1","body_1","isRoot_1","Response","Situs","convertToRange","makeSitus","selectRange","cellSel","annotations","updateSelection","newSels","clearBeforeUpdate","traverse","backtrack","_direction","sidestep","advance","successors","ruleOpt","succ","left$1","right$1","Walkers","hone","isLeaf","seekLeft$1","seekRight$1","seekLeft","seekRight","failedUp","failedDown","bridge","beforeBounds","afterBounds","isRow","verify","beforeOffset","afterOffset","failure","afterCell","beforeCell","_sharedRow","onSuccess","onFailedUp","onFailedDown","BeforeAfter","inParent","indexInParent","gatherer","cand","gather","handleBr","findBr","handleParent","br","adjacent","tryBr","analysis","_message","getTop","getBottom","getPartialBox","getRangedRect","toCaret","getElemBox","getBoxAt","getEntireBox","JUMP_SIZE","NUM_RETRIES","retry","isOutside","inOutsideBlock","adjustDown","guessBox","lowerCaret","adjustUp","higherCaret","upMovement","adjuster","downMovement","isAtTable","adjustForTable","numRetries","adjustTil","situsFromPoint","guess","newCaret","ieTryDown","ieTryUp","checkScroll","adjusted","getInnerHeight","moved","scrollBy","Retries","tryUp","tryDown","getJumpSize","MAX_RETRIES","findSpot","brNeighbour","fromSitus","tryCursor","situs","tryAgain","tryAt","otherRetry","ieRetry","inSameTable","simulate","precheck","firstUpCheck","lastOffset","lastDownCheck","findCell","MouseSelection","clearstate","applySelection","singleCell","isNonEditableCell","isCellClosestContentEditable","selectContents","isKey","keycode","isUp","isDown","isNavigation","isBackward","by","WindowBridge","exactAdt","clearSelection","collapseSelection","toStart","setSelection","setRelativeSelection","getScrollY","rc","keyboard","clearToNavigate","realEvent","update$1","removeClasses","byClass","addSelectionClass","removeSelectionClasses","byAttr","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","SelectionAnnotation","getUpOrLeftCells","upGrid","upDetails","slicedCells","getDownOrRightCells","downGrid","downDetails","getOtherCells","hasInternalTarget","CellSelection","syncSelection","mouseHandlers","keyHandlers","hasShiftKey","handleResponse","ns","wrappedEvent","isLeftMouse","isLeftButtonPressed","dragStart","mouseDown","mouseOver","mouseUp","getDoubleTap","lastTarget","lastTimeStamp","touchEnd","lT","lTS","timeStamp","doubleTap","getSelectionTargets","changeHandlers","selectionDetails","isCaption","isDisabledForSelection","findTargets","startCellOrCaption","endTable","getExtractedDetails","onAny","onFirst","onLast","unmergeable","resetTargets","setupHandler","onSetupWithToggle","isDisabledFromLocked","lockedDisable","onSetupTable","onSetupCellOrRow","onSetupColumn","onSetupPasteable","getClipboardData","onSetupPasteableColumn","onSetupMergeable","_targets","onSetupUnmergeable","onSetupTableWithCaption","onSetupTableHeaders","onSetupTableRowHeaders","onSetupTableColumnHeaders","addButtons","tableClassList","tableCellClassList","addToolbars","addContextToolbar","addMenuItems","insertTableAction","tableProperties","deleteTable","addTempAttr","Plugin$1","getTinymce","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","hasDescription","hasImageTitle","hasImageCaption","getImageList","hasUploadUrl","hasUploadHandler","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","val2","getImageSize","onerror","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","createImageList","imageList","send","waitLoadImage","selectImage","isPlaceholderImage","isSafeImageUrl","isDomSafe","getHspace","marginLeft","marginRight","getVspace","marginTop","marginBottom","hasCaption","updateAttrib","wrapInFigure","figureElm","removeFigure","normalizeStyle","normalizeCss","setSize","getSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","getBorderStyle","isFigure","getIsDecorative","getAlt","hspace","vspace","isDecorative","getStyleValue","setAlt","figure","updateProp","sugarImage","updateAlt","normalized","normalizeCss$1","mergedCss","compressed","getSelectedImage","splitTextBlock","textBlockElements","parentElm","isValidChild","readImageDataFromSelection","insertImageAtCaret","insertedElm","syncSrcAttr","deleteImage","writeImageDataToSelection","sanitizeImageData","insertOrUpdateImage","partialData","selectedImageData","sanitizedData","sanitizeList","sanitizer","extractor","isGroup","findEntryDelegate","findEntry","optList","ListUtils","makeTab$2","AdvTab","makeTab","collect","urlListSanitizer","convertURL","futureImageList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadHandler$1","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","imageUrl","imageDescription","imageTitle","imageDimensions","getDialogContainerType","useColumns","makeTab$1","MainTab","UploadTab","prevImage","prevAlt","fromImageData","fileinput","toImageData","removeEmptyAlt","addPrependUrl2","srcURL","prependUrl","addPrependUrl","formFillFromMeta2","formFillFromMeta","calculateImageSize","helpers","imageSize","updateImagesDropdown","changeSrc","changeImages","calcVSpace","matchingTopBottom","calcHSpace","matchingLeftRight","calcBorderWidth","calcBorderStyle","calcStyle","changeStyle2","dataCopy","changeStyle","changeAStyle","changeFileInput","finalize","updateSrcAndSwitchTab","dataUrl","createBlobCache","uploadImage","alertErr","addToBlobCache","changeHandler","closeHandler","makeDialogBody","tabPanel","makeDialog","submitHandler","uploadImagesAuto","stylesArg","upload","Dialog","hasImageClass","toggleContentEditableState","toggleContentEditable","selectorChangedWithUnbind","$event","editTarget","showMindMapAction","dxApxs","dxMissApxs","uploadDxFile","previewDxFile","previewDxMissFile","deleteDxApxFile","recoveryDxMissApxFile","permanentlyDxMissApxFile","evalApxs","evalMissApxs","uploadEvalFile","previewEvalFile","previewEvalMissFile","deleteEvalApxFile","recoveryEvalMissApxFile","permanentlyEvalMissApxFile","editIcon","domProps","background","evaluation","planning","suggestion","showPlayer","hidePlayer","previewIndex","ispreview","showMindMap","hideMindMap","mindMap","editorTitle","editorUpdateLoading","modifyEditorAction","editorVisible","editorContent","validEvents","isValidKey","bindHandlers","initEvent","bindModelHandlers","modelEvents","$props","normalizedEvents","outputFormat","initEditor","$watch","prevVal","$listeners","uuid","now","isTextarea","normalizePluginArray","mergePlugins","initPlugins","inputPlugins","isNullOrUndefined","scriptLoaded","CreateScriptLoader","injectScriptTag","scriptTag","referrerPolicy","reinitialize","ScriptLoader","editorProps","apiKey","cloudChannel","tinymceScriptSrc","renderInline","renderIframe","initialise","finalInit","elementId","inlineEditor","Editor","created","watch","mounted","$el","scriptSrc","beforeDestroy","deactivated","activated","defaultFocusRootNode","defaultLineMarker","markerWidth","refX","refY","defaultNodeShape","defaultNodeWidth","defaultLineShape","defaultJunctionPoint","defaultNodeBorderWidth","defaultLineColor","defaultNodeColor","defaultNodeFontColor","defaultNodeBorderColor","LessonDesignHeader","UnitInterpretionMenuItem","SourcePlayer","myEditor","gjkb","bsjd","wdjd","datas","graphOptions","editorType","language_url","language","skin_url","branding","paste_data_images","images_upload_url","images_upload_handler","xhr","XMLHttpRequest","withCredentials","succFun","responseText","failFun","FormData","$route","course","fullPath","$store","commit","courseRoute","route","requestUnitInfo","requestDxApxs","requestDxMissApxs","requestEvalApxs","requestEvalMissApxs","unitId","appendixType","showPlayerWidthSource","sources","createGrapData","rootId","links","json","styleClass","disableDefaultClickEffect","lessonId","lessonName","pnode","sectionNode","sectionId","fontColor","$refs","seeksRelationGraph","setJsonData","onNodeClick","$router","onNodeExpand","saveSectionBackground","unitid","filed","saveSectionTarget","saveSectionEvaluation","saveSectionPlanning","saveSectionSuggestion","modifyMindMapAction","typeOf$1","isEquatableType","compareFn","contramap","eqa","tripleEq","eqString","eqArray","eqSortedArray","eqRecord","kx","ky","q","eqAny","tx","ty","isString$1","isArray$1","indexOf$2","contains$3","map$3","each$k","filter$4","findUntil$1","findIndex$2","each$j","bifilter","filter$3","equal$1","toArray$1","each$i","indexOf$1","reduce","iteratee","accumulator","trim$4","lTrim","rTrim","isEmpty$3","ie$1","platform$2","platform$1","browser$4","fileApi","windowsPhone","Env","caretAfter","ceFalse","cacheSuffix","experimentalShadowDom","canHaveCSP","desktop","whiteSpaceRegExp$2","trim$3","is$3","makeMap$4","delim","sp","scn","de","cn","createNS","onCreate","extend$6","exts","walk$3","resolve$3","explode$4","_addCacheSuffix","inArray","fromDom$2","recurse","isComment$1","isElement$6","isText$8","isDocument$2","isDocumentFragment$1","parents$1","filterSelf","prevSiblings","nextSiblings","childNodesCount","getHead","getStyleContainer","wrap$3","intoView","alignToTop","scrollIntoViewIfNeeded","scrollIntoView","isNodeType","isRestrictedNode","isElement$5","lowercasedNames","matchStyleValues","computed","cssValue","hasAttributeValue","isBogus$2","isBogusAll$1","isTable$3","isTextareaOrInput","isText$7","isDocument$1","isBr$5","isImg","isContentEditableTrue$4","isContentEditableFalse$b","isTableCell$5","isMedia$2","clone$3","browser$3","firstElement","getTableCaptionDeltaY","bodyTop","captionTop","captionHeight","hasChild","castOffsetParent","module$1","par$1","asyncValues","asyncValue","par","futures","unite","requestAnimationFramePromise","support","Expr","isXML","tokenize","compile","select$1","outermostContext","sortInput","hasDuplicate","setDocument","document$1","documentIsHTML","rbuggyQSA","rbuggyMatches","ancestor$3","sibling$2","promiseObj","requestAnimationFrameFunc","vendors","featurefill","wrappedSetTimeout","wrappedSetInterval","setInterval","wrappedClearTimeout","wrappedClearInterval","clearInterval","debounce","Delay","setEditorInterval","StyleSheetLoader","documentOrShadowRoot","idCount","loadedStates","edos","maxLoadTime","_setReferrerPolicy","addStyle","removeStyle","styleContainer","getOrCreateState","passed","failed","urlWithSuffix","wait","testCallback","waitCallback","waitForWebKitLinkLoaded","styleSheets","styleSheet","ownerNode","linkElem","contentCssCors","loadF","loadAll","urls","unloadAll","WeakMap","forElement","referenceElement","rootDom","sl","DomTreeWalker","prev2","findSibling","findPreviousNode","startName","siblingName","tableCells","tableSections","headings","listItems$1","wsElements","lazyLookup","isHeading","isBlock$2","isTable$2","isInline$1","isBr$4","isTextBlock$2","isTableSection","isTableCell$4","isWsPreserveElement","isZwsp$1","removeZwsp","ZWSP$1","isZwsp","trim$2","isElement$4","isText$6","isCaretContainerBlock$1","isCaretContainerInline","isCaretContainer$2","hasContent","insertInline$1","textNode","endsWithCaretContainer$1","splitText","startsWithCaretContainer$1","isBeforeInline","isAtStart","isAfterInline","isAtEnd","createBogusBr","insertBlock$1","blockNode","trimBogusBr","brs","lastBr","showCaretContainerBlock","caretContainer","isRangeInCaretContainerBlock","isContentEditableTrue$3","isContentEditableFalse$a","isBr$3","isText$5","isInvalidTextElement","isAtomicInline","isTable$1","isCaretContainer$1","isCaretCandidate$3","isNonUiContentEditableFalse","isUnselectable","isInEditable","isAtomicContentEditableFalse","isAtomic$1","isEditableCaretCandidate$1","whiteSpaceRegExp$1","isWhitespaceText","hasWhitespacePreserveParent","rootElement","isNamedAnchor","isContent$1","isBookmark","isBogus$1","isBogusAll","isEmptyNode","skipBogus","brCount","isEmpty$2","isSpan","isInlineContent","surroundedByInlineContent","prevIsInline","nextIsInline","isBookmarkNode$2","isKeepTextNode","isKeepElement","trimNode","currentChildren","makeMap$3","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","baseEntities","'","reverseEntities","nativeDecode","buildEntitiesLookup","radix","entity","namedEntities","encodeRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","entitiesMap","encodeNamedAndNumeric","encodeCustomNamed","nameMap","named","numeric","Entities","mapCache","dummyObj","makeMap$2","each$h","extend$5","explode$3","inArray$2","split$1","createMap","extendWith","getTextRootBlockElements","compileSchema","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","ni","arrayToMap","addAttrs","schemaItem","script","compileElementMap","Schema","patternElements","customElementsMap","specialElements","createLookupTable","schemaItems","verify_html","valid_styles","invalidStyles","invalid_styles","validClasses","valid_classes","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","nonEmptyOrMoveCaretBeforeOnEnter","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","blockElementsMap","textInlineElementsMap","patternToRegExp","addValidElements","ei","ai","al","attrData","elementName","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","validElementsArr","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","padd_empty_block_inline_children","paddInEmptyBlock","custom_elements","extended_valid_elements","dd","dt","th","tfoot","legend","area","param","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getTextInlineElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","getSpecialElements","attrPatterns","getCustomElements","Styles","_this","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","encodingItems","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","compress2","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","allow_svg_data_urls","lastIndex","serializeStyles","styleList","i_1","styleMap","deprecated","keyLocation","layerX","layerY","returnValue","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","isNativeEvent","hasIsDefaultPrevented","needsNormalizing","originalEvent","normalize$3","fallbackTarget","srcElement","defaultPrevented","cancelBubble","isImmediatePropagationStopped","eventExpandoPrefix","mouseEventRe","addEvent","attachEvent","removeEvent","detachEvent","isMouseEvent","fix","eventDoc","metaKey","bindOnReady","eventUtils","domLoaded","isDocReady","readyState","readyHandler","EventUtils","expando","hasMouseEnterLeave","hasFocusIn","callbackList","fakeName","nativeHandler","defaultNativeHandler","executeHandlers","namesList","mouseEnterLeave","currentTarget","ci","eventMap","parentWindow","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","strundefined","MAX_NEGATIVE","push_native","push$1","slice$1","booleans","whitespace","identifier","pseudos","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr$1","rsibling","rescape","runescape","funescape","escaped","escapedWhitespace","high","els","Sizzle","seed","nid","newSelector","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","checkNonElements","doneName","oldCache","outerCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","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","uniqueSort","hasCompare","attrId","tmp","disconnectedMatch","adown","bup","sortDetached","aup","ap","bp","expr","matchesSelector","attrHandle","specified","duplicates","detectDuplicates","sortStable","createPseudo","excess","unquoted","nodeNameSelector","operator","what","ofType","useCache","pseudo","matched","elemLang","selectedIndex","even","odd","lt","gt","nth","filters","parseOnly","soFar","preFilters","token","compiled","rquickExpr","Event$1","skipUniques","isDefined","isWindow","createFragment$1","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","makeArray","hasClass","lastParent","newWrapper","numericCssMap","booleanMap","propFix","for","cssFix","attrHooks","cssHooks","DomQueryConstructor","inArray$1","whiteSpaceRegExp","each$g","grep$2","removeAttr","camel","dashed","appendTo","prependTo","replaceWith","wrapInner","classState","existingClassName","sibling$1","firstSibling","wrappedResult","parentsUntil","nextUntil","prevUntil","overrideDefaults","each$f","grep$1","simpleSelectorRe","setupAttrHooks","keepValues","keep_values","keepUrlHook","$elm","updateInternalStyleAttr","findNodeIndex","lastNodeType","DOMUtils","addedStyles","counter","stdMode","boxModel","boundEvents","ownEvents","$$","defaultVal","getAttribs","originalValue","onSetAttrib","attrElm","clone_1","root_element","getViewPort","argWin","getPos$1","update_styles","selectorVal","_findSib","getPrev","setHTML","canHaveHTML","newElm","outHtml","keepChildren","$node","removeAllAttribs","removeAttributeNode","styleElm","loadCSS","cls","getOuterHTML","setOuterHTML","reference","referenceNode","oldElm","replaceChild","attrNode","findCommonAncestor","pe","rgbVal","isNonEmptyElement","bogusVal","splitElm","replacementElm","beforeFragment","afterFragment","rv","getContentEditableParent","dumpRng","DOM$a","each$e","QUEUED","LOADING","LOADED","FAILED","queue","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","cleanup","isDone","markDone","loadQueue","loadScripts","scripts","failures","execCallbacks","loadingScripts","notifyCallbacks","isRaw","isTokenised","currentCode","getLanguageData","setCode","newCode","getCode","langData","translation","getLangData","textstr","removeContext","values_1","substitued","$1","$2","isRtl$1","hasCode","I18n","AddOnManager","_listeners","runListeners","matchedListeners","dependencies","requireLangPack","languages","languageLoad","waitFor","wrappedLanguages","addOn","addOnConstructor","createUrl","baseUrl","resource","addComponents","pluginName","pluginUrl","loadDependencies","addOnUrl","deps","newUrl","urlString","PluginManager","ThemeManager","read$4","annotation","dataAnnotation","dataAnnotationId","annotationName","an","newStart","getAttr","findMarkers","isAnnotation","findAll","nodesAlready","setup$n","_registry","changeCallbacks","withCallbacks","updateCallbacks","callbackMap","outputData","fireCallbacks","fireNoAnnotation","onNodeChange","addListener","setup$m","identifyParserNode","spans","persistent","deep$1","TextWalker","TextSeeker","isBlockBoundary","newOffset","round$2","isEqual","rect1","rect2","isValidOverflow","overflowY","isAbove$1","halfHeight","isBelow$1","containsXY","clamp$2","getSelectedNode","getNode$1","safeOffset","getNodeUnsafe","extendingChars","isExtendingChar","isElement$3","isCaretCandidate$2","isFloated","isValidElementCaretCandidate","isNotPre","isText$4","isBr$2","nodeIndex$1","resolveIndex$1","createRange$1","isWhiteSpace$1","isRange","isHiddenWhiteSpaceRange","getBrClientRect","brNode","nbsp$1","clientRect","getBoundingClientRectWebKitText","ec","so","eo","newRng","getBoundingClientRect$1","isZeroRect","clientRects","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","addUniqueAndValidRect","addCharacterOffset","beforeNode","CaretPosition","toRange","fromRangeStart","fromRangeEnd","pos1","pos2","isTextPosition","isElementPosition","HDirection","trimEmptyTextNode$1","insertFragment","rangeInsertNode","isText$3","isBogus","normalizedParent","normalizedTextOffset","equal","normalizedNodeIndex","numTextFragments","createPathItem","parentsUntil$1","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","resolve$2","isContentEditableFalse$9","getNormalizedTextOffset","trimmedOffset","getPoint","getLocation","isFakeCaret","moveEndPoint$1","normalizeTableCellSelection","findAdjacentContentEditableFalseElm","getOffsetBookmark","getCaretBookmark","getRangeBookmark","createBookmarkSpan","filled","getPersistentBookmark","rng2","endBookmarkNode","startBookmarkNode","keep","getBookmark$2","getUndoBookmark","DOM$9","defaultPreviewStyles","getBodySetting","bodyObj","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre$1","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","getFontStyleValues","getFontSizeClasses","shouldReuseFileName","shouldReplaceBlobUris","getIconPackName","getIconsUrl","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","contentCss","getFontCss","fontCss","getDirectionality","getInlineBoundarySelector","getObjectResizing","getResizeImgProportional","getPlaceholder","getEventRoot","getServiceMessage","getTheme","shouldValidate","isInlineBoundariesEnabled","getFormats","getPreviewStyles","canFormatEmptyLines","getCustomUiSelector","getThemeUrl","hasHiddenInput","shouldPatchSubmit","isEncodingXml","shouldAddFormSubmitTrigger","shouldAddUnloadTrigger","hasForcedRootBlock","getCustomUndoRedoLevels","shouldDisableNodeChange","isReadOnly$1","hasContentCssCors","getPlugins","getExternalPlugins$1","shouldBlockUnsupportedDrop","isVisualAidsEnabled","getVisualAidsTableClass","getVisualAidsAnchorClass","getIframeAriaText","isText$2","removeNode$1","trimCount","trimmedText","deleteZwspChars","deleteData","removeUnchanged","removeTextAndReposition","removeElementAndReposition","newPosition","removeTextCaretContainer","removeElementCaretContainer","removeAndReposition","caretContainerNode","browser$2","isContentEditableFalse$8","isMedia$1","isTableCell$3","inlineFakeCaretSelector","getAbsoluteClientRect","scrollX","scrollY","rootRect","trimInlineCaretContainers","fakeCaretTargetNodes","FakeCaret","cursorInterval","lastVisualCaret","rootBlock","caretBlock","isInlineFakeCaretTarget","startBlink","caretState","getCss","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableFalse$7","isMedia","isBlockLike","isCaretContainer","isCaretContainerBlock","isCaretCandidate$1","isForwards","isBackwards","skipCaretContainers","findNode$1","predicateFn","isCefOrCaretContainer","getParentBlock$2","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","leanLeft","leanRight","location_1","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getElementFromPrevPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","isContentEditableFalse$6","isBr$1","isCaretCandidate","isAtomic","isEditableCaretCandidate","getParents$3","nodeAtIndex","getCaretCandidatePosition","moveForwardFromBr","findCaretPosition$1","Forwards","startPos","innerNode","rootContentEditableFalseElm","CaretWalker","Backwards","walkToPositionIn","fromPosition","afterElement","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","isAtBr","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","nextPosition","prevPosition","firstPositionIn","lastPositionIn","CARET_ID$1","isCaretNode","getParentCaretContainer","isStringPathBookmark","isRangeBookmark","isIdBookmark","isIndexBookmark","isPathBookmark","addBogus","resolveCaretPositionBookmark","insertZwsp","tryFindRangePosition","padEmptyCaretContainer","setEndPoint","isValidTextNode","appendData","resolvePaths","resolveId","endPos","spos","epos","resolveIndex","getBookmark$1","isBookmarkNode$1","expected","actual","isNbsp","isWhiteSpace","isContent","isNode","isInlineBlock","moveStart","isWhiteSpaceNode$1","getNonWhiteSpaceSibling","inc","nextName","isTextBlock$1","allowSpaces","isEmptyTextNode$1","replaceVars","vars","isEq$5","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$2","isVariableFormatName","hasVariableValues","isVariableValue","fieldValues","areSimilarFormats","otherFormatName","filterObj","validKey","fmt1","filteredFmt1","fmt2","filteredFmt2","isMixedFormat","shouldExpandToSelector","getParents$1","isWhiteSpaceNode","findParentContentEditable","walkText","findSpace","findContent","findWordEndPoint","includeTrailingSpaces","lastTextNode","textSeeker","textOffset","spaceResult","findSelectorEndPoint","formatList","curFormat","findBlockEndPoint","scopeRoot","isAtBlockBoundary$1","findParentContainer","block_expand","isSelfOrParentBookmark","expandRng","includeTrailingSpace","startPoint","endPoint","walk$2","firstNode","collectSiblings","findEndPoint","walkBoundary","siblings_1","getSelectedNodes","hasMultipleRanges","getCellsFromRanges","getCellsFromElement","getCellsFromElementOrRanges","getCellsFromEditor","getSel","getClosestTable","getStartNode","getEndNode","getFirstChildren","getLastChildren$1","hasAllContentsSelected","moveEndPoint","hasAnyRanges","runOnRanges","fakeSelectionNodes","fakeNodeRng","fillBookmark","isZeroWidth","wrapName","applyWordGrab","makeAnnotation","eDoc","decorate","master","annotate","newWrappers","finishWrapper","getOrOpenWrapper","processElements","processElement","processNodes","annotateWithBookmark","initialRng","hasFakeSelection","Annotator","annotationChanged","BookmarkManager","getContentEditableRoot$1","isXYWithinRange","firePreProcess","firePostProcess","fireRemove","fireDetach","fireSwitchMode","firePreInit","firePostRender","fireInit","firePlaceholderToggle","fireError","errorType","fireFormatApply","fireFormatRemove","VK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","modifierPressed","altKey","isContentEditableFalse$5","ControlSelection","selectedElm","selectedElmGhost","resizeHelper","selectedHandle","resizeBackdrop","selectedElmX","selectedElmY","startH","resizeStarted","startScrollWidth","startScrollHeight","elementSelectionAttr","editableDoc","rootDocument","resizeHandles","nw","ne","sw","isEventOnImageOutsideRange","contextMenuSelectImage","getResizeTargets","createGhostElement","setSizeProp","setGhostElmSize","ghostElm","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","endGhostResize","wasResizeStarted","showResizeRect","unbindResizeHandleEvents","targetWidth","targetHeight","hideResizeRect","updateResizeRect","startElm","controlElm","isChildOrEqual","disableGeckoResize","isWithinContentEditableFalse","handleMSControlSelect_1","delayedSelect","throttledUpdateResizeRect","composing","hasCeProperty","findParent$1","findClosestIeRange","createTextRange","moveToElementText","moveToPoint","moveOutOfContentEditableFalse","pointDoc","isEq$4","rng1","findParent","hasParent$1","hasParentWithName","isTableCell$2","isCeFalseCaretContainer","hasBrBeforeAfter","isPrevNode","hasContentEditableFalseParent","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","normalize$2","normRng","RangeUtils","normalizedRng","compareRanges","documentFocusInHandler","excludeFromDescend","fireScrollIntoViewEvent","scrollEvent","fireAfterScrollIntoViewEvent","markerInfo","cleanupFun","createMarker","elementMarker","withMarker","preserveWith","applyWithMarker","withScrollEvents","startElement","endElement","scrollToMarker","intoWindowIfNeeded","viewportBottom","largerThanViewport","intoWindow","intoFrame","frameViewHeight","op","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","scrollElementIntoView","scroller","scrollRangeIntoView","hasFocus$1","getStart$2","browser$1","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","bookmarkToNativeRng","newBookmark","storeNative","isEditorUIElement$1","FocusManager","isEditorUIElement","isManualNodeChange","selectionChange","registerPageMouseUp","throttledStore","mouseUpPage","registerFocusOut","registerMouseUp","registerEditorEvents","DOM$8","isEditorContentAreaElement","isUIElement","customSelector","getActiveElement","registerEvents$1","focusedEditor","blurredEditor","activeEditor","unregisterDocumentEvents","setup$l","getContentEditableHost","getCollapsedNode","getFocusInElement","normalizeSelection$1","caretPos","focusBody","hasElementFocus","hasIframeFocus","hasInlineFocus","rawBody","hasUiFocus","hasEditorOrUiFocus","focusEditor","quirks","refreshContentEditable","bookmarkRng","contentEditableHost","activateEditor","skipFocus","getEndpointElement","real","skipEmptyTextNodes","commonAncestorContainer","endElm","processRanges","typeLookup","walk$1","isEmptyTextNode","AstNode","selfAttrs","cloneAttrs","selfAttr","refNode","extractBase64DataUris","dataImageUri","uris","imageId","restoreDataUris","parseDataUri$1","each$d","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","safeSvgDataUrlElements","blockSvgDataUris","allowSvgDataUrls","isInvalidUri","allow_html_data_urls","URI","baseUri","isProtocolRelative","toAbsPath","urlMatch","userInfo","uriComponents","decodedUri","unescape","pathname","setPath","pathMatch","getURI","toRelative","relativeUri","tu","uu","toRelPath","noHost","absoluteUri","defaultPort","breakPoint","normalizedBase","outPath","nb","normalizedPath","noProtoHost","filteredClobberElements","isValidPrefixAttrName","lazyTempDocument$1","findMatchingEndTagIndex","startTagRegExp","endTagRegExp","startMatch","findCommentEndIndex","endMatch","isConditionalComment","lcHtml","endIfIndex","endCommentRegexp","checkBogusAttribute","attrString","SaxParser","fix_self_closing","comment","cdata","pi","parseInternal","base64Extract","endRegExp","attrList","textData","isInternalElement","isShortEnded","elementRule","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","anyAttributesRequired","filteredUrlAttrs","parsingMode","processEndTag","processText","processComment","allow_conditional_comments","processAttr","processMalformedComment","startTag","parseAttribute","val3","fillAttrsMap","attrRule","isNameOrId","tokenRegExp","attrRegExp","selfClosing","self_closing_elements","removeInternalElements","remove_internals","fixSelfClosing","processHtml","bogusValue","isValidCdataSection","preserve_cdata","findEndTag","tempAttrs","trimContentRegExp","trimInternal","bogusAllRegExp","getTempAttrs","endTagIndex","trimExternal","trimEmptyContents","emptyRegExp","setupArgs$3","getContentFromBody","defaultedArgs","updatedArgs","getContentInternal","each$c","ElementUtils","attribs","compareObjects","obj1","obj2","makeMap$1","Writer","indent","indentBefore","indent_before","indentAfter","indent_after","entity_encoding","htmlOutput","element_format","HtmlSerializer","writer","3","8","7","10","4","11","sortedAttrs","nonInheritableStyles","Set","nonInheritableStylesArr","shorthandStyleProps","getStyleProps","isNonInheritableStyle","hasInheritableStyles","getLonghandStyleProps","hasStyleConflict","nodeStyleProps","parentNodeStyleProps","valueMismatch","parentValue","nodeStyleProp","propExists","longhandProps","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBeforeImageBlock","isAfterImageBlock","isBeforeMedia","isAfterMedia","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","getLastChildren","rawNode","removeTrailingBr","allBrs","fillWithPaddingBr","trimBlockTrailingBr","lastChildPrevSibling","dropLast","parentsAndSelf","navigateIgnoreEmptyTextNodes","getClosestBlock$1","isAtBeforeAfterBlockBoundary","fromBlock","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","parentBlocks","isBeforeBr$1","isAfterBr","findPreviousBr","findNextBr","isInMiddleOfText","getClosestBlock","hasSpaceBefore","hasSpaceAfter","isPreValue","isInPre","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToHaveNbsp","needsToBeNbspLeft","needsToBeNbspRight","needsToBeNbsp","isNbspAt","hasNbsp","normalizeNbspMiddle","normalizeNbspAtStart","firstPos","normalizeNbspInMiddleOfTextNode","newText","normalizeNbspAtEnd","lastPos","normalizeNbsps","normalizeNbspsInEditor","normalizeContent","isStartOfContent","isEndOfContent","previousCharIsSpace","normalize$1","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","mergeToPrev","whitespaceOffset","newNode","removeNode","insertData","needsReposition","beforeOrStartOf","afterOrEndOf","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwardsFromElm","startPosition","findCaretPositionForwardsFromElm","findCaretPositionBackwards","findCaretPositionForward","findCaretPosition","findCaretPosOutsideElmAfterDelete","setSelection$1","eqRawNode","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","prevTextOpt","nextTextOpt","isInlineElement","deleteElement$2","moveCaret","afterDeletePos","normalizedAfterDeletePos","paddPos","isRootFromElement","getTableCells","getTableDetailsFromRange","getTable","isStartInTable","isEndInTable","isSameTable","isMultiTable","tableCellRng","tableSelection","deleteAction","singleCellTable","fullTable","partialTable","multiTable","getClosestCell$1","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","isSingleCellTable","getCellRng","endCell","getCellRangeFromStartTable","getCellRangeFromEndTable","getTableSelectionFromCellRng","getTableSelections","sameTableSelection","startTableSelection","endTableSelection","getCellIndex","isSingleCellTableContentSelected","optCellRng","unselectCells","otherContentRng","handleSingleTable","handleMultiTable","startTableSelectedCells","endTableSelectedCells","getActionFromRange","cleanCells","getOutsideBlock","handleEmptyBlock","startInTable","emptyBlock","deleteContentInsideCell","isFirstCellInSelection","insideTableRng","deleteCellContents","collapseAndRestoreCellSelection","selectedNode","emptySingleTableCells","outsideDetails","editorRng","cellsToClean","outsideBlock","deleteContents","endPointCell","emptyMultiTableCells","startTableCells","endTableCells","betweenRng","startTableCellsToClean","endTableCellsToClean","moveSelection","lastBlock","additionalCleanupNodes","deleteTableElement","deleteCellRange","deleteCaptionRange","emptyElement","deleteTableRange","getParentCaption","deleteRange$2","getParentCell","deleteBetweenCells","fromCell","isDeleteOfLastCharPos","fromCaption","emptyCaretCaption","validateCaretCaption","toCaption","deleteCaretInsideCaption","deleteCaretCells","deleteCaretCaption","isNearTable","isBeforeOrAfterTable","fromPos","deleteCaret$3","backspaceDelete$9","normalizeBlockSelectionRange","newEndPos","hasOnlyOneChild$1","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","nonEmptyElements","isListFragment","cleanupDomFragment","domFragment","toDomFragment","listItems","isPadding","isListItemPadded","isEmptyOrPadded","trimListItems","getParentLi","isParentBlockLi","getSplit","beforeRng","afterRng","cloneContents","findFirstIn","caretWalker","newCaretPos","findLastOf","insertMiddle","insertBefore$1","insertAfter$1","insertAtCaret$1","liTarget","liElms","BEGINNING","isAt","trimOrPadLeftRight","isTableCell$1","isTableCellContentSelected","validInsertion","trimBrsFromTableCell","reduceInlineTextElements","textInlineElements","root_1","elementUtils_1","styleConflict","markFragmentElements","unmarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","nextRng","parentEditableElm","findNextCaretRng","deleteSelectedContent","insertHtmlAtCaret","bookmarkHtml","caretElement","parserArgs","_selectionOverrides","showBlockCaretContainer","findMatchingNodes","nodeFilters","attributeFilters","attrMatches","name_2","defaultFormat$1","isTreeNode","setEditorHtml","noSelection","setContentString","padd","forcedRootBlockName","no_selection","setContentTree","getNodeFilters","getAttributeFilters","setupArgs$2","setContentInternal","isEq$3","matchesUnInheritedFormatSelector","matchParents","similar","matchName$1","matchItems","onmatch","expectedValue","isEmptyValue","match$2","matchAll","matchedFormatNames","checkedMap","rawElm","defaultBlock","matchAllOnNode","formatNames","matchSimilar","ZWSP","CARET_ID","getEmptyCaretContainers","isCaretContainerEmpty","findFirstTextNode","createCaretContainer","fill","trimZwspFromCaretContainer","removeCaretContainerNode","removeCaretContainer","insertCaretContainerNode","formatNode","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","cleanFormatNode","validFormats","matchedFormats","uniqueFormats","fmtName","clonedFormatNode","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","cleanedFormatNode","caretTextNode","disableCaretContainer","setup$k","replaceWithCaretFormat","innerMost","isFormatElement","inlineElements","isEmptyCaretFormatElement","postProcessHooks","each$b","addPostProcessHook","postProcess$1","hasPreSibling","pre","isPre","joinPre","pre1","pre2","each$a","isElementNode$1","findElementSibling","mergeSiblingsNodes","elementUtils","tmpSibling","mergeSiblings","merge_siblings","clearChildStyles","clear_child_styles","processChildElements","unwrapEmptySpan","hasStyle","applyStyle","removeResult","MCE_ATTR_RE","each$9","isEq$2","isTableCellOrRow","isChildOfInlineParent","lastIdx","normalizeTableSelection","childNode","wrapWithSiblings","matchName","isColorFormatAndAnchor","rootBlockElm","forcedRootBlock","list_block","forced_root_block_attrs","removeFormatInternal","compareNode","stylesModified","preserve_attributes","attrsToPreserve","valueOut","removeFormat$1","newName","findFormatRoot","formatRoot","removeFormatFromClone","wrapAndSplit","lastClone","firstClone","formatRootParent","mixed","splitToFormatRoot","isRemoveBookmarkNode","removeNodeFormat","lastContentEditable","currentNodeMatches","textDecorations","textDecoration","removeRngStyle","ceFalseOverride","each$8","mergeTextDecorationsAndColor","processTextDecorationsAndColor","mergeBackgroundColorAndFontSize","mergeSubSup","mergeWithChildren","mergeWithParents","merge_with_parents","each$7","isElementNode","canFormatBR","validBRParentElements","hasCaretNodeSibling","applyFormat$1","setElementFormat","onformat","styleVal","applyNodeStyle","createWrapElement","wrapElm","applyRngStyle","nodeSpecific","currentWrapElm","getChildCount","mergeStyles","childElement","curSelNode","firstFormat","fake","formatItem","hasVars","setup$j","registeredFormatListeners","updateAndFireChangeCallbacks","nodeOrRange","fallbackElement","matchingNode","isMatchingNode","matchingFormat","isUnableToMatch","registeredCallbacks","runIfChanged","withSimilar","withoutSimilar","withVars","addListeners","formatChangeItems","toAppendTo","formatChangedInternal","tableModel","tableRow","cellPosition","fillout","y2","x2","cellExists","skipCellsX","findElementPos","extractRows","sx","sy","ey","subTable","createDomTable","tableElement","tableBody","modelRowsToDomRows","toDom","subsection","findParentListContainer","getFullySelectedListWrappers","_li","listCont","listElm","listStyles","_style","innerElm","directListWrappers","commonAnchorContainer","getWrapElements","wrapElements","listWrappers","allWrappers","emptyFragment","getFragmentFromRange","getParentTable","getTableFragment","selectedTableCells","fullTableModel","sectionedTableModel","getSelectionFragment","read$3","trimLeadingCollapsibleText","getInnerText","bin","shouldTrim","getContextNodeName","parentBlockOpt","contextNodeName","shouldTrimSpaces","nonRenderedText","parentBlockText","textIndex","hasProceedingSpace","hasTrailingSpace","getSerializedContent","tmpElm","setupArgs$1","getSelectedContentInternal","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","getMiddleSnake","i2","buildSnake","getOuterHtml","insertAt","removeAt","applyDiff","fragments","currentFragments","lazyTempDocument","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","trimmed","applyToEditor","getLevelContent","getCleanLevelContent","hasEqualContent","level1","level2","hasEqualCleanedContent","isEq$1","isUnlocked","locks","setTyping","typing","endTyping","endTypingLevelIgnoreLocks","beforeChange$1","addUndoLevel$1","currentLevel","bm","customUndoRedoLevels","setDirty","clear$1","extra$1","callback1","callback2","redo$1","undo$1","hasUndo$1","hasRedo$1","transact$1","beforeChange","ignore$1","addVisualInternal","matchedElm","value_1","cls_1","makePlainAdaptor","hasUndo","hasRedo","getModel","makeRtcAdaptor","rtcEditor","defaultVars","_undoManager","_locks","_node","_similar","_rfl","_details","getRawModel","makeNoopAdaptor","nul","isRtc","getRtcSetup","rtcPlugin","setup$i","editorCast","rtcInstance","rtc","isRemote","getRtcInstanceWithFallback","getRtcInstanceWithError","addUndoLevel","matchFormat","matchAllFormats","matchNodeFormat","canApplyFormat","closestFormat","toggleFormat","getContent$2","setContent$2","getSelectedContent","addVisual$1","getContent$1","walkPastBookmark","outerElm","oldLength","normalizeTextIfRequired","mergeAndNormalizeText","outerNode","normalizer","innerTextNode","rngSetContent","prevText","nextText","setupArgs","cleanContent","contextBlock","contextArgs","setContent$1","eventArgs","createContextualFragment","deleteFromCallbackMap","newCallbacks","SelectorChanged","selectorChangedData","currentSelectors","findMatchingNode","matchedSelectors","isNativeIeSelection","isAttachedToDom","isValidRange","EditorSelection","selectedRange","explicitRange","getRng$1","getEnd$1","bookmarkManager","compareEndPoints","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","ieRange","setNode","getSelectedBlocks$1","anchorRange","focusRange","selectorChanged","getScrollContainer","scrollContainer","placeCaretAt","controlSelection","removeAttrs","addFontToSpansFilter","fontSizes","face","addStrikeToSpanFilter","addFilters","convert_fonts_to_spans","font_size_legacy_values","inline_styles","blobUriToBlob","rejectWithError","xhr_1","responseType","uriParts","buildBlob","uriToBlob","count$1","imageToBlobInfo","getByUri","dataUri","getAllImages","ImageScanner","uploadStatus","cachedPromises","isUploaded","promises","imageInfo","newPromise","paddEmptyNode","brPreferred","padd_empty_with_br","isPaddedWithNbsp","hasOnlyChild","isPadded","whitespaceElements","isLineBreakNode","isBogusImage","isInternalImageSource","isValidDataImg","images_dataimg_filter","imgElem_1","registerBase64ImageFilter","blob_cache","processImage","inputSrc","remove_trailing_brs","prevName","whiteSpaceElements","appendRel","addNoOpener","newRel","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","each$6","explode$2","extend$4","DomParser","matchedNodes","matchedAttributes","root_name","fixInvalidChildren","nonSplitableElements","removeOrUnwrapInvalidNode","originalNodeParent","children_1","newParent","tempNode","filterNode","fi","fl","invalidChildren","getRootBlockName","textRootBlockElements","rootBlockName","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","isInWhiteSpacePreservedElement","addRootBlocks","rootBlockNode","createNode","removeWhitespaceBefore","textVal","textNodeNext","cloneAndExcludeBlocks","isTextRootBlockEmpty","parent_2","attrFiltersLen","isNodeEmpty","htmlParser","internalName","hasChildren","trimTrailingBr","brNode1","brNode2","oldDoc","clonedNode","impl","doc_1","shouldFireEvent","outArgs","getHtmlFromNode","parseHtml","serializeNode","htmlSerializer","toHtml","DomSerializerImpl","addRules","setRules","DomSerializer","domSerializer","defaultFormat","DOM$7","restoreOriginalStyles","orgDisplay","safeDestroy","clearDomReferences","contentAreaContainer","restoreForm","_mceOldSubmit","formEventDelegate","save","is_removing","unbindAllNativeEvents","automatic","destroyed","_beforeUnload","theme","deprecatedSettings","deprecatedPlugins","movedToPremiumPlugins","getDeprecatedSettings","settingNames","setting","getDeprecatedPlugins","pluginNames","logDeprecationsWarning","finalSettings","hasDeprecatedPlugins","hasDeprecatedSettings","isLegacyMobileTheme","listJoiner","themesMessage","pluginsMessage","settingsMessage","sectionResult","deviceDetection","legacyMobilePlugins","defaultTouchSettings","table_grid","object_resizing","normalizePlugins","trimmedPlugins","filterLegacyMobilePlugins","extractSections","sectionSettings","hasSection","isSectionTheme","getSectionConfig","getDefaultSettings","documentBaseUrl","baseDefaults","toolbar_mode","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","hidden_input","getDefaultMobileSettings","mobileSettings","defaultMobileSettings","toolbar_sticky","defaultPhoneSettings","getExternalPlugins","overrideSettings","userDefinedExternalPlugins","external_plugins","combinePlugins","forcedPlugins","getPlatformPlugins","isMobileDevice","desktopPlugins","mobilePlugins","processPlugins","defaultOverrideSettings","forced_plugins","mobileConfig","platformPlugins","combinedPlugins","isOnMobile","combineSettings","defaultSettings","defaultDeviceSettings","extendedSettings","getEditorSettings","deprecation_warnings","getFiltered","getParamObject","CreateIconManager","iconPack","IconManager","propName","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","isInsideElementContentArea","bodyElm","isXYInContentArea","transposedPoint","fromDomSafe","isEditorAttachedToDom","rawContainer","unimplemented","NotificationManager","getImplementation","getTopNotification","addNotification","closeNotification","otherNotification","fireEvent","getNotifications","serviceMessage","WindowManagerImpl","getParams","setParams","WindowManager","dialogs","funcBind","fireOpenEvent","fireCloseEvent","addDialog","otherDialog","getTopDialog","storeSelectionAndOpenDialog","openDialog","windowManagerImpl","displayNotification","notificationManager","displayError","uploadError","logError","createLoadError","pluginLoadError","iconsLoadError","languageLoadError","pluginInitError","initError","isContentCssSkinName","getContentCssUrls","transformToUrls","getFontCssUrls","cssLinks","contentCssFile","appendContentCssFromSettings","UploadStatus","PENDING","UPLOADED","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","isPending","markPending","markUploaded","removeFailed","rnd","BlobCache","mimeToExt","mime","mimes","toBlobInfo","findFirst","cachedBlobInfo","removeByUri","Uploader","pendingPromises","pathJoin","path1","path2","defaultHandler","credentials","onprogress","basePath","noUpload","handlerSuccess","handlerFailure","resolvePending","uploadBlobInfo","openNotification","closeNotification_1","failureOptions","isDefaultHandler","pendingUploadBlobInfo","uploadBlobs","blobInfos","createUploader","ImageUploader","uploader","showNotification","UploadChangeHandler","lastChangedLevel","fireIfChanged","EditorUpload","imageScanner","urlFilters","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","targetUrl","replacementUrl","replacementString","replaceUrlInUndoStack","replaceImageUriInView","uploadImages","scanForImages","imageInfos","imagesToRemove","filteredResult","uploadInfo","uploadUri","dataImgFilter","addFilter","resultItem","replaceBlobUris","source_view","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","aligncenter","alignright","alignjustify","bold","fontWeight","italic","fontStyle","underline","strikethrough","forecolor","hilitecolor","fontname","fontsize","lineheight","lineHeight","fontsize_class","blockquote","subscript","superscript","_fmt","_itemName","removeformat","FormatRegistry","each$5","parsedSelectorToHtml","ancestry","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","ancestorName","parentRequired","siblingElm","parseSelectorItem","$0","$3","$4","parseSelector","previewFrag","parentFontSize","previewCss","previewStyles","removeVars","previewOpt","previewElm","numValue","setup$h","addShortcut","Formatter","formatChangeState","shouldIgnoreCommand","isFirstTypedCharacter","addNonTypingUndoLevel","isDirty","modKey","isInsertReplacementText","inputType","isInsertTextDataNull","isInsertFromPasteOrDrop","addKeyboardShortcuts","UndoManager","nonTypingKeycodes","placeholderAttr","isKeyboardEvent","isDeleteEvent","isNonTypingKeyboardEvent","isTypingKeyboardEvent","isVisuallyEmpty","isForcedRootBlockFalse","setup$g","updatePlaceholder","showPlaceholder","isPlaceholderShown","strongRtl","hasStrongRtl","isInlineTarget","findInlineParents","findRootInline","hasSameParentBlock","block1","block2","isAtZwsp","normalizePosition","normalizeForwards","normalizeBackwards","isBeforeRoot","isTextBlockOrListItem","getParentBlock$1","placeCaretInEmptyBody","paddEmptyBody","willDeleteLastPositionInElement","normalizedFirstPos","normalizedLastPos","normalizedFromPos","nextPos","blockPosition","blockBoundary","getBlockPosition","isDifferentBlocks","hasSameParent","parent1","parent2","skipLastBr","lastPositionInBlock","readFromRange","fromBlockPos","toBlockPos","blockPos","getChildrenUntilBlockBoundary","extractChildren","removeEmptyRoot","isEmptyBefore","nestedBlockMerge","toBlock","insertionPoint","sidelongBlockMerge","findInsertionPoint","parentsAndSelf$1","getInsertionPoint","trimBr","mergeBlockInto","mergeBlocks","backspaceDelete$8","deleteRangeMergeBlocks","isRawNodeInTable","isSelectionInTable","isEverythingSelected","noPrevious","noNext","emptyEditor","deleteRange$1","backspaceDelete$7","_forward","isContentEditableTrue$2","isContentEditableFalse$4","showCaret","getNodeRange","renderCaretAtRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","isBeforeBoundary","isAfterBoundary","trimEmptyTextNode","deleteContentAndShowCaret","peekCaretPosition","caretRange","deleteRange","deleteBoundaryText","getNextPosFn","isBeforeFn","nextCaretPosition","backspaceDelete$6","isCompoundElement","DeleteAction","moveToElement","moveToPosition","isAtContentEditableBlockCaret","caretLocation","isDeleteFromCefDifferentBlocks","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","getContentEditableAction","deleteElement$1","hideFakeCaret","getAncestorCe","deleteOffscreenSelection","hasCefAncestor","paddEmptyElement","backspaceDelete$5","deleteCaret$2","backspaceDelete$4","startsWithCaretContainer","endsWithCaretContainer","createZwsp","insertInline","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","evaluateUntil","fns","Location","rescope$1","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","isValidLocation","readLocation","getName","outside","isEq","location1","location2","betweenInlines","fromInline","toInline","skipNoMovement","fromLocation","toLocation","findLocationTraverse","findLocationSimple","findLocation$1","BreakType","hasSelectionModifyApi","modify","moveByWord","VDirection","getBreakType","currentPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastRect","lastDist","newDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","getPositionsAbove","getPositionsBelow","isAtFirstLine","isAtLastLine","getFirstLinePositions","getLastLinePositions","getNodeClientRects","toArrayWithNode","customEventRootDelegates","beforeUnloadDelegate","walkUntil$1","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","lineNumber","isLineNumber","upUntil","Up","downUntil","Down","positionsUntil","isBelowFn","getClientRect","isAboveLine","isLine","isContentEditableFalse$3","findNode","distanceToRectLeft","distanceToRectRight","isInsideX","isInsideY","isNodeClientRect","findClosestClientRect","allowInside","oldClientRect","oldDistance","newDistance","walkUntil","includeChildren","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getFakeCaretTargets","caretInfo","closestFakeCaret","fakeTargetNodeRects","targetNodeRects","checkInside","closestNodeRect","moveToRange","renderRangeCaretOpt","moveHorizontally","isBefore","isAfter","rangeIsInContainerBlock","moveVertically","caretClientRect","walkerFn","linePositions","nextLinePositions","nextLineRect","dist1","dist2","caretPositions","closestNextLineRect","getLineEndPoint","moveToLineEndPoint$3","setCaretPosition","setSelected","renderCaretLocation","findLocation","isInlineTarget$1","toggleInlines","inlineBoundaries","selectedInlines","targetInlines","safeRemoveCaretContainer","renderInsideInlineCaret","inlines","_inline","move$2","moveWord","_caret","setupSelectedState","moveNextWord","movePrevWord","moveToLineEndPoint$2","linePoint","outsideLoc","rangeFromPositions","hasOnlyTwoOrLessPositionsLeft","setCaretLocation","deleteFromTo","rescope","backspaceDeleteCollapsed","toPosition","backspaceDelete$3","getParentInlines","hasOnlyOneChild","deleteLastPosition","parentInlines","isFormatElement$1","deleteCaret$1","backspaceDelete$2","deleteElement","deleteCaret","isNearMedia","backspaceDelete$1","parseIndentValue","getIndentStyleName","useMargin","indentStyleName","indentElement","validateBlocks","intentValue","canOutdent","getBlocksToIndent","isListComponent","parentIsListComponent","indentUnit","indentValue","nativeCommand","deleteCommand","forwardDeleteCommand","setup$f","debounceLongpress","isEqualNode","isBlockElement","isValidTarget","hasBlockParent","shouldRemoveTextNode","rootNodeName","restoreSelection","findBlockCaretContainer","removeIeControlRect","blockCaretContainer","handleBlockContainer","isContentEditableFalse$2","moveToCeFalseHorizontally","moveToCeFalseVertically","exitPreBlock","getVisualCaretPosition$1","getHorizontalRange","getVerticalRange","moveH$2","newRange","moveV$3","moveToLineEndPoint$1","isCefPosition","rangeBefore","insertElement","insertBr","insertBlock","insertEmptyLine","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","rootBlockAttrs","moveV$2","defaultPatterns","matchesEvent","match$1","moveH$1","moveV$1","moveToLineEndPoint","deflate","getCorners","getYAxisValue","tds","findClosestCorner","corners","newCorner","oldCorner","oldDist","getClosestCell","isTargetCorner","corner","getBottomValue","getTopValue","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","hasNextBreak","lineInfo","breakPos","startsWithWrapBreak","startsWithBrBreak","isAtTableCellLine","isAtFirstTableCellLine","isAtLastTableCellLine","isCaretAtStartOrEndOfTable","navigateHorizontally","_td","getClosestAbovePosition","getClosestBelowPosition","renderBlock","navigateVertically","mover","moveH","moveV","executeKeydownOverride$3","executeKeydownOverride$2","executeKeyupOverride","firstNonWhiteSpaceNodeSibling","moveToCaretPosition","getEditableRoot$1","editableRoot","getParentBlock","getParentBlockName","isListItemParentBlock","hasFirstChild","hasParent","isListBlock","isNestedList","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","insert$3","createNewBlock","newBlockName","trimZwsp","isEmptyAnchor","isTableCell","containerAndSiblingName","canSplitBlock","trimInlineElementsOnLeftSideOfBlock","firstChilds","normalizeZwspOffset","includeZwspInRange","trimLeadingLineBreaks","getEditableRoot","forcedRootBlockAttrs","attrStyles","currentStyles","newStyles","attrClassesOpt","attrClasses","currentClassesOpt","currentClasses","filteredClasses","newClasses","appliedAttrs","remainingAttrs","setForcedBlockAttrs","wrapSelfAndSiblingsInDefaultBlock","addBrToBlockIfNeeded","insert$2","parentBlockName","isAfterLastNodeInContainer","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","containerBlockName","hasRightSideContent","moveSelectionToBr","brElm","extraBr","insertBrAtCaret","isControlKey","insertBrBefore","insertBrAfter","hasBrAfter","isBeforeBr","isAnchorLink","isInsideAnchor","readInlineAnchorLocation","insertBrOutsideAnchor","anchorLocation","shouldInsertBr","shouldBlockNewLine$1","newLineAction","shouldBlockNewLine","_shiftKey","isBrMode","requiredState","brMode","inListBlock","inPreBlock","inSummaryBlock","shouldPutBrInPre","inBrContext","canInsertIntoEditableRoot","rootEditable","predicates","isMatch","handleEnterKeyEvent","executeKeydownOverride$1","setupIeInput","keypressThrotter","isComposing","executeKeyupAction","isPageUpDown","setNodeChangeBlocker","blocked","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","locationToCaretPosition","insertInlineBoundarySpaceOrNbsp","checkPos","insertSpaceOrNbspAtSelection","executeKeydownOverride","registerKeyboardOverrides","NodeChange","lastPath","nativeRng","fakeRng","isSameElementPath","currentPath","preventSummaryToggle","filterDetails","isTextBlockNode","normalizeSelection","getAbsolutePosition","getBodyPosition","getScrollPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","calculatePosition","bodyPosition","mousePosition","calc","isContentEditableFalse$1","isContentEditableTrue$1","isDraggable","isValidDropTarget","dragElement","cloneElement","cloneElm","createGhost","clonedElm","appendGhostToBody","moveGhost","overflowX","removeElement","isLeftMouseButtonPressed","applyRelPos","relX","ceElm","elmPos","dragging","relY","ghost","throttledPlaceCaretAt","targetPos","getRawTarget","targetClone_1","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","blockIeDrop","realTarget","blockUnsupportedFileDrop","preventFileDrop","preventFileDropIfUIElement","editorRoot","eventNames","renderFocusCaret","getContentEditableRoot","SelectionOverrides","fakeCaret","realSelectionId","isFakeSelectionElement","isFakeSelectionTargetElement","isNearFakeSelectionElement","getRealSelectionElement","setRange","getRange","contentEditableRoot","removeElementSelection","hasNormalCaretPosition","hasBetterMouseTarget","targetBlock","setElementSelection","fakeCaretInfo","normalizeShortEndedElementSelection","isRangeInCaretContainer","realSelectionElement","outerText","isWithinCaretContainer","setupOffscreenSelection","targetClone","origTargetClone","$realSelectionContainer","selectElement","nodeElm","afterNode","Quirks","isGecko","isWebKit","mceInternalDataType","setEditorCommandState","setMceInternalContent","selectionHtml","internalContent","getMceInternalContent","insertClipboardContents","queryCommandSupported","emptyEditorWhenDeleting","serializeRng","allContentsSelected","allRng","allSelection","selectAll","documentElementEditingFocus","removeHrOnBackspace","Range","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","setAttributeNode","isSelectionAcrossElements","disableBackspaceIntoATable","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","addBrAfterLastLinks","fixLinks","setDefaultBlockType","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","selection_1","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","setupRtc","DOM$6","appendStyle","getRootName","removeUndefined","mkSchemaSettings","boolean_attributes","move_caret_before_on_enter_elements","non_empty_elements","short_ended_elements","text_inline_elements","whitespace_elements","format_empty_lines","mkParserSettings","mkSerializerSettings","createParser","autoFocus","auto_focus","moveSelectionToFirstCaretPosition","bindPendingEventDelegates","execCallback","getStyleSheetLoader$1","makeStylesheetLoadingPromises","framedFonts","loadContentCss","removeCss","contentCssText_1","allStylesheets","content_style","preInit","browser_spellcheck","gecko_spellcheck","spellcheck","directionality","protect","loadInitialContent","startContent","initEditorWithInitialContent","initContentBody","skipWrite","orgVisibility","iframeHTML","hex_colors","force_hex_style_colors","annotator","_nodeChangeDispatcher","setupRtcThunk","setProgressState","_rtcMode","DOM$5","relaxDomain","ifr","domain","hostname","bodyUuid","domainRelaxUrl","createIframeElement","customAttrs","frameBorder","allowTransparency","getIframeHtml","bodyId","bodyClass","translatedAriaText","createIframe","iframeTitle","isDomainRelaxed","boxInfo","hidden","DOM$4","initPlugin","initializedPlugins","pluginInstance","trimLegacyPrefix","initIcons","iconPackName","currentIcons","loadIcons","svgData","addIcon","initTheme","renderFromLoadedTheme","renderFromThemeFunc","iframeHeight","createThemeFalseResult","renderThemeFalseIframe","renderThemeFalse","renderThemeUi","augmentEditorUiApi","uiApiFacade","renderInfo","DOM$3","hasSkipLoadPrefix","loadLanguage","scriptLoader","languageCode","languageUrl","url_1","loadTheme","themeUrl","getIconsUrlMetaFromUrl","getIconsUrlMetaFromName","defaultIconsUrl","customIconsUrl","urlMeta","loadPlugins","depPlugin","url_2","getStyleSheetLoader","resetContent","triggerSave","set_dirty","legacyPropNames","getSpecifiedFontProp","getProperty","legacyPropName","normalizeFontFamily","getComputedFontProp","getFontProp","getFontSize","getFontFamily","findFirstCaretElement","getCaretElement","atStartOfNode","bindRange","mapRange","mapper","fromFontSizeNumber","fontSizeNumber","fontClasses","normalizeFontNames","fontNameAction","fontNameQuery","fontSizeAction","fontSizeQuery","lineHeightQuery","specifiedStyle","computedStyle","lineHeightAction","processValue","insertAtCaret","each$4","EditorCommands","setupCommands","skip_focus","customCommand","addCommands","commandList","hasCustomCommand","execNativeCommand","isFormatMatch","storeSelection","selectionBookmark","_command","queryCommandEnabled","listParent","editingHost","alignStates","Undo","Redo","internalContentEditableAttr","setContentEditable","switchOffContentEditableTrue","switchOnContentEditableTrue","removeFakeSelection","restoreFakeSelection","toggleReadOnly","registerFilters","registerReadOnlyContentFilters","isClickEvent","getAnchorHrefOpt","processReadonlyEvents","targetEl","registerReadOnlySelectionBlockers","nativeEvents","EventDispatcher","bindings","toggleEvent","isNative","beforeFire","wrappedCallback","currentName","bindingName","filteredHandlers","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","dispatcherArgs","getEventTarget","eventRoot","isListening","bindEventDelegate","delegates","eventRootElm","editors","EditorObservable","_pendingNativeEvents","defaultModes","switchToMode","activeMode","availableModes","oldMode","deactivate","editorReadOnly","registerMode","design","each$3","explode$1","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","parseShortcut","charCode","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","cmdFunc","normalizeCommandFunc","createShortcut","addAutocompleter","addContextForm","addSidebar","extend$3","loadedCSS","isNotDirty","documentBaseURL","base_url","_setBaseUrl","baseURI","referrer_policy","language_load","editorCommands","cache_suffix","modeInstance","callbackLookup","initialContent","oldState","urlconverter_callback","_scanForImages","extend$2","instanceCounter","boundGlobalEvents","legacyEditors","isValidLegacyKey","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","purgeDestroyedEditor","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","i18n","tinyMCEPreInit","srcScript","pluginBaseUrls","plugin_base_urls","pluginBaseUrl","invalidInlineTargets","isInvalidInlineTarget","createId","editor_deselector","editor_selector","provideResults","initEditors","initCount","createEditor","existingEditor","addI18n","extendClass","initializing","min$1","max$1","relativePosition","targetW","targetH","relChars","findBestRelativePosition","constrainRect","rels","intersect","x1","y1","fixedSize","cx2","cy2","underflowX1","underflowY1","overflowX2","overflowY2","fromClientRect","Rect","awaiter","resolveCb","rejectCb","tasks","resultFns","loadErrMsg","runErrMsg","task","waiter","Resource","extend$1","_super","mixins","mixin","Mixins","dummy","createMethod","Methods","Properties","Statics","Defaults","member","localStorage","Color","rgb2hsv","hsvToRgb","toRgb","toHsv","hexCode","JSONUtils","JSONP","XHR","ready","async","success_scope","error_scope","overrideMimeType","content_type","crossDomain","setRequestHeader","requestheaders","JSONRequest","sendRPC","ecb","scb","xhrArgs","removeItem","LocalStorage","publicApi","geom","TreeWalker","Serializer","Selection","isMac","exportToModuleLoaders","exportToWindowGlobal","tinyMCE"],"mappings":"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ED,KAAMomG,GACNn4F,KAAM,aACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,QACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,SACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,MACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,SACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,OACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,iBACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,SACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,WACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,cACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,YACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,aACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,cACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,OACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,YACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,YACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,QACNhO,MAAO,WAET,CACED,KAAMomG,GACNn4F,KAAM,QACNhO,MAAO,YAGPqmG,GAAad,GAAW,IACxBe,GAAY,SAAUC,GAExB,IADA,IAAIC,EAAS,GACJvlG,EAAI,EAAGA,EAAIslG,EAASplG,OAAQF,GAAK,EACxCulG,EAAO7/F,KAAK,CACVqH,KAAMu4F,EAAStlG,EAAI,GACnBjB,MAAO,IAAM8kG,GAASyB,EAAStlG,IAAIjB,MACnCD,KAAM,eAGV,OAAOymG,GAELC,GAAiB,SAAUvgB,EAAQwgB,GACrC,OAAOxgB,EAAO8Q,SAAS,aAAc0P,EAAa,WAEhDC,GAAoB,SAAUzgB,GAChC,OAA4C,IAArCA,EAAO8Q,SAAS,kBAErB4P,GAAc,SAAU1gB,GAC1B,OAAOA,EAAO8Q,SAAS,cAErB6P,GAAc,SAAU3gB,GAC1B,I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IC,GAASloL,GAAO,CAClB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAEEmoL,GAAQnoL,GAAO,CACjB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAEEooL,GAAapoL,GAAO,CACtB,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAEEqoL,GAAgBroL,GAAO,CACzB,UACA,gBACA,SACA,UACA,eACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAEEsoL,GAAWtoL,GAAO,CACpB,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,eAEEuoL,GAAmBvoL,GAAO,CAC5B,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAEEzV,GAAOyV,GAAO,CAAC,UACfzW,GAAOyW,GAAO,CAChB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,QACA,SAEE2gE,GAAM3gE,GAAO,CACf,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAEEwoL,GAASxoL,GAAO,CAClB,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAEEyoL,GAAMzoL,GAAO,CACf,aACA,SACA,cACA,YACA,gBAEE0oL,GAAgBnC,GAAK,6BACrBoC,GAAWpC,GAAK,yBAChBqC,GAAYrC,GAAK,8BACjBsC,GAAYtC,GAAK,kBACjBuC,GAAiBvC,GAAK,yFACtBwC,GAAoBxC,GAAK,yBACzByC,GAAkBzC,GAAK,+DACvB0C,GAAe1C,GAAK,WACpB2C,GAAY,WACd,MAAyB,qBAAXn+L,OAAyB,KAAOA,QAE5Co+L,GAA4B,SAAmCC,EAAc1/L,GAC/E,GAA8B,WAA1Bk7L,GAAQwE,IAAmE,oBAA9B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","file":"js/chunk-49237569.2f27568c.js","sourcesContent":["/**\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.10.7 (2022-12-06)\n */\n(function () {\n 'use strict';\n\n var typeOf = function (x) {\n var t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n var isType$1 = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isSimpleType = function (type) {\n return function (value) {\n return typeof value === type;\n };\n };\n var eq$1 = function (t) {\n return function (a) {\n return t === a;\n };\n };\n var isString = isType$1('string');\n var isObject = isType$1('object');\n var isArray = isType$1('array');\n var isNull = eq$1(null);\n var isBoolean = isSimpleType('boolean');\n var isUndefined = eq$1(undefined);\n var isNullable = function (a) {\n return a === null || a === undefined;\n };\n var isNonNullable = function (a) {\n return !isNullable(a);\n };\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n var isArrayOf = function (value, pred) {\n if (isArray(value)) {\n for (var i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n var noop = function () {\n };\n var noarg = function (f) {\n return function () {\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 compose1 = function (fbc, fab) {\n return function (a) {\n return fbc(fab(a));\n };\n };\n var constant$1 = function (value) {\n return function () {\n return value;\n };\n };\n var identity$1 = 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 (t) {\n return !f(t);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant$1(false);\n var always = constant$1(true);\n\n var global$g = tinymce.util.Tools.resolve('tinymce.ThemeManager');\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 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2)\n for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar)\n ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var call = function (thunk) {\n return thunk();\n };\n var id = identity$1;\n var me = {\n fold: function (n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant$1(null),\n getOrUndefined: constant$1(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function () {\n return none();\n },\n toArray: function () {\n return [];\n },\n toString: constant$1('none()')\n };\n return me;\n }();\n var some = function (a) {\n var constant_a = constant$1(a);\n var self = function () {\n return me;\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 isSome: always,\n isNone: never,\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: function (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n var from$1 = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Optional = {\n some: some,\n none: none,\n from: from$1\n };\n\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n var rawIndexOf = function (ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n var contains$2 = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n var range$2 = 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$1 = function (array, size) {\n var r = [];\n for (var i = 0; i < array.length; i += size) {\n var s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n return r;\n };\n var map$2 = 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);\n }\n return r;\n };\n var each$1 = function (xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\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);\n }\n };\n var partition$3 = 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) ? pass : fail;\n arr.push(x);\n }\n return {\n pass: pass,\n fail: fail\n };\n };\n var filter$2 = 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)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each$1(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n var findUntil = function (xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n var find$5 = function (xs, pred) {\n return findUntil(xs, pred, never);\n };\n var findIndex$1 = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n var flatten = function (xs) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind$3 = function (xs, f) {\n return flatten(map$2(xs, f));\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) !== true) {\n return false;\n }\n }\n return true;\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter$2(a1, function (x) {\n return !contains$2(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$2 = function (x) {\n return [x];\n };\n var sort = function (xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var get$f = function (xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n var head = function (xs) {\n return get$f(xs, 0);\n };\n var last$2 = function (xs) {\n return get$f(xs, xs.length - 1);\n };\n var from = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\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 Optional.none();\n };\n\n var keys = Object.keys;\n var hasOwnProperty$1 = 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);\n }\n };\n var map$1 = function (obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n var tupleMap = function (obj, f) {\n var r = {};\n each(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n var objAcc = function (r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n var internalFilter = function (obj, pred, onTrue, onFalse) {\n var r = {};\n each(obj, function (x, i) {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n var filter$1 = function (obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n var mapToArray = function (obj, f) {\n var r = [];\n each(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n var find$4 = 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 Optional.some(x);\n }\n }\n return Optional.none();\n };\n var values = function (obj) {\n return mapToArray(obj, identity$1);\n };\n var get$e = function (obj, key) {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n var has$2 = function (obj, key) {\n return hasOwnProperty$1.call(obj, key);\n };\n var hasNonNullableKey = function (obj, key) {\n return has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var is$1 = function (lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n return lhs.exists(function (left) {\n return comparator(left, rhs);\n });\n };\n var equals = function (lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n return lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\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 sequence = function (arr) {\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 Optional.none();\n }\n }\n return Optional.some(r);\n };\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n var lift3 = function (oa, ob, oc, f) {\n return oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n };\n var mapFrom = function (a, f) {\n return a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n };\n var someIf = function (b, a) {\n return b ? Optional.some(a) : Optional.none();\n };\n\n var addToEnd = function (str, suffix) {\n return str + suffix;\n };\n var removeFromStart = function (str, numChars) {\n return str.substring(numChars);\n };\n\n var checkRange = function (str, substr, start) {\n return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n };\n var removeLeading = function (str, prefix) {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n var ensureTrailing = function (str, suffix) {\n return endsWith(str, suffix) ? str : addToEnd(str, suffix);\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 blank = function (r) {\n return function (s) {\n return s.replace(r, '');\n };\n };\n var trim$1 = blank(/^\\s+|\\s+$/g);\n var isNotEmpty = function (s) {\n return s.length > 0;\n };\n var isEmpty = function (s) {\n return !isNotEmpty(s);\n };\n\n var isSupported$1 = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var fromHtml$2 = function (html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n 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 || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || 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: node };\n };\n var fromPoint = function (docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n var SugarElement = {\n fromHtml: fromHtml$2,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n var DOCUMENT = 9;\n var DOCUMENT_FRAGMENT = 11;\n var ELEMENT = 1;\n var TEXT = 3;\n\n var name$2 = 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 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement$2 = isType(ELEMENT);\n var isText$1 = isType(TEXT);\n var isDocument = isType(DOCUMENT);\n var isDocumentFragment = isType(DOCUMENT_FRAGMENT);\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 DeviceType = function (os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant$1(isiPad),\n isiPhone: constant$1(isiPhone),\n isTablet: constant$1(isTablet),\n isPhone: constant$1(isPhone),\n isTouch: constant$1(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant$1(iOSwebview),\n isDesktop: constant$1(isDesktop)\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 }\n return undefined;\n };\n var find$3 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$d(group(1), group(2));\n };\n var detect$4 = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$3();\n }\n return find$3(versionRegexes, cleanedAgent);\n };\n var unknown$3 = function () {\n return nu$d(0, 0);\n };\n var nu$d = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu$d,\n detect: detect$4,\n unknown: unknown$3\n };\n\n var detectBrowser$1 = function (browsers, userAgentData) {\n return findMap(userAgentData.brands, function (uaBrand) {\n var lcBrand = uaBrand.brand.toLowerCase();\n return find$5(browsers, function (browser) {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(function (info) {\n return {\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n };\n });\n });\n };\n\n var detect$3 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find$5(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$3(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$3(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\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 return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n brand: 'Chromium',\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('mac os x'),\n versionRegexes: [/.*?mac\\ 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 name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n var PlatformInfo = {\n browsers: constant$1(browsers),\n oses: constant$1(oses)\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 unknown$2 = function () {\n return nu$c({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$c = function (info) {\n var current = info.current;\n var version = info.version;\n var isBrowser = function (name) {\n return function () {\n return current === name;\n };\n };\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge),\n isChrome: isBrowser(chrome),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n var Browser = {\n unknown: unknown$2,\n nu: nu$c,\n edge: constant$1(edge),\n chrome: constant$1(chrome),\n ie: constant$1(ie),\n opera: constant$1(opera),\n firefox: constant$1(firefox),\n safari: constant$1(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 chromeos = 'ChromeOS';\n var unknown$1 = function () {\n return nu$b({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$b = function (info) {\n var current = info.current;\n var version = info.version;\n var isOS = function (name) {\n return function () {\n return current === name;\n };\n };\n return {\n current: current,\n version: version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isOSX: isOS(osx),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n var OperatingSystem = {\n unknown: unknown$1,\n nu: nu$b,\n windows: constant$1(windows),\n ios: constant$1(ios),\n android: constant$1(android),\n linux: constant$1(linux),\n osx: constant$1(osx),\n solaris: constant$1(solaris),\n freebsd: constant$1(freebsd),\n chromeos: constant$1(chromeos)\n };\n\n var detect$2 = function (userAgent, userAgentDataOpt, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = userAgentDataOpt.bind(function (userAgentData) {\n return detectBrowser$1(browsers, userAgentData);\n }).orThunk(function () {\n return detectBrowser(browsers, userAgent);\n }).fold(Browser.unknown, Browser.nu);\n var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return window.matchMedia(query).matches;\n };\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);\n });\n var detect$1 = function () {\n return platform();\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var is = function (element, selector) {\n var dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\n 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 };\n var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n };\n var all$3 = function (selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$2(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n var one = function (selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.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 documentPositionContainedBy(e1.dom, e2.dom);\n };\n var contains = function (e1, e2) {\n return detect$1().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n\n var owner$4 = function (element) {\n return SugarElement.fromDom(element.dom.ownerDocument);\n };\n var documentOrOwner = function (dos) {\n return isDocument(dos) ? dos : owner$4(dos);\n };\n var documentElement = function (element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n };\n var defaultView = function (element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n };\n var parent = function (element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n var parentNode = function (element) {\n return parent(element);\n };\n var offsetParent = function (element) {\n return Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n };\n var nextSibling = function (element) {\n return Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n };\n var children = function (element) {\n return map$2(element.dom.childNodes, SugarElement.fromDom);\n };\n var child$2 = function (element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n var firstChild = function (element) {\n return child$2(element, 0);\n };\n var spot = function (element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n var leaf = function (element, offset) {\n var cs = children(element);\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\n };\n\n var isShadowRoot = function (dos) {\n return isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n };\n var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n var isSupported = constant$1(supported);\n var getRootNode = supported ? function (e) {\n return SugarElement.fromDom(e.dom.getRootNode());\n } : documentOrOwner;\n var getContentContainer = function (dos) {\n return isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n };\n var isInShadowRoot = function (e) {\n return getShadowRoot(e).isSome();\n };\n var getShadowRoot = function (e) {\n var r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n var getShadowHost = function (e) {\n return SugarElement.fromDom(e.dom.host);\n };\n var getOriginalEventTarget = function (event) {\n if (isSupported() && isNonNullable(event.target)) {\n var el = SugarElement.fromDom(event.target);\n if (isElement$2(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n var composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n var isOpenShadowHost = function (element) {\n return isNonNullable(element.dom.shadowRoot);\n };\n\n var inBody = function (element) {\n var dom = isText$1(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n var doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {\n return doc.body.contains(dom);\n }, compose1(inBody, getShadowHost));\n };\n var body = function () {\n return getBody(SugarElement.fromDom(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 SugarElement.fromDom(b);\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 console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n var set$8 = function (element, key, value) {\n rawSet(element.dom, key, value);\n };\n var setAll$1 = function (element, attrs) {\n var dom = element.dom;\n each(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$d = function (element, key) {\n var v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n var getOpt = function (element, key) {\n return Optional.from(get$d(element, key));\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$7 = function (element, key) {\n element.dom.removeAttribute(key);\n };\n\n var internalSet = function (dom, property, value) {\n if (!isString(value)) {\n 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$1(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported$1(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$7 = 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(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom;\n each(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$c = function (element, property) {\n var dom = element.dom;\n var styles = window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n var getUnsafeProperty = function (dom, property) {\n return isSupported$1(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 Optional.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$1(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 = SugarElement.fromTag(tag);\n set$7(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 (is$1(getOpt(element, 'style').map(trim$1), '')) {\n remove$7(element, 'style');\n }\n };\n var reflow = function (e) {\n return e.dom.offsetWidth;\n };\n\n var Dimension = function (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$1(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$c(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$c(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$3 = Dimension('height', function (element) {\n var dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n var get$b = function (element) {\n return api$3.get(element);\n };\n var getOuter$2 = function (element) {\n return api$3.getOuter(element);\n };\n var setMax$1 = 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$3.max(element, value, inclusions);\n set$7(element, 'max-height', absMax + 'px');\n };\n\n var r$1 = function (left, top) {\n var translate = function (x, y) {\n return r$1(left + x, top + y);\n };\n return {\n left: left,\n top: top,\n translate: translate\n };\n };\n var SugarPosition = r$1;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n var absolute$3 = function (element) {\n var doc = element.dom.ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n var scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport$1(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n var viewport$1 = function (element) {\n var dom = element.dom;\n var doc = dom.ownerDocument;\n var body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n var api$2 = Dimension('width', function (element) {\n return element.dom.offsetWidth;\n });\n var set$6 = function (element, h) {\n return api$2.set(element, h);\n };\n var get$a = function (element) {\n return api$2.get(element);\n };\n var getOuter$1 = function (element) {\n return api$2.getOuter(element);\n };\n var setMax = function (element, value) {\n var inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n var absMax = api$2.max(element, value, inclusions);\n set$7(element, 'max-width', absMax + 'px');\n };\n\n var mkEvent = function (target, x, y, stop, prevent, kill, raw) {\n return {\n target: target,\n x: x,\n y: y,\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: raw\n };\n };\n var fromRawEvent$1 = function (rawEvent) {\n var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n var stop = function () {\n return rawEvent.stopPropagation();\n };\n var prevent = function () {\n return rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\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$1 = 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 before$2 = 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$2 = 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$2(v, element);\n });\n }, function (v) {\n before$2(v, element);\n });\n };\n var prepend$1 = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append$2(parent, element);\n }, function (v) {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n var append$2 = function (parent, element) {\n parent.dom.appendChild(element.dom);\n };\n var appendAt = function (parent, element, index) {\n child$2(parent, index).fold(function () {\n append$2(parent, element);\n }, function (v) {\n before$2(v, element);\n });\n };\n\n var before$1 = function (marker, elements) {\n each$1(elements, function (x) {\n before$2(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each$1(elements, function (x) {\n append$2(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom.textContent = '';\n each$1(children(element), function (rogue) {\n remove$5(rogue);\n });\n };\n var remove$5 = 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$5(wrapper);\n };\n\n var get$9 = function (_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n var to = function (x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n var get$8 = function (_win) {\n var win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win['visualViewport']);\n }\n };\n var bounds$1 = function (x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n right: x + width,\n bottom: y + height\n };\n };\n var getBounds$3 = function (_win) {\n var win = _win === undefined ? window : _win;\n var doc = win.document;\n var scroll = get$9(SugarElement.fromDom(doc));\n return get$8(win).fold(function () {\n var html = win.document.documentElement;\n var width = html.clientWidth;\n var height = html.clientHeight;\n return bounds$1(scroll.left, scroll.top, width, height);\n }, function (visualViewport) {\n return bounds$1(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height);\n });\n };\n\n var walkUp = function (navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant$1([]), 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 Optional.some(paths);\n };\n\n var view = function (doc) {\n var _a;\n var element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n var owner$3 = function (element) {\n return owner$4(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$3\n });\n\n var find$2 = function (element) {\n var doc = SugarElement.fromDom(document);\n var scroll = get$9(doc);\n var path = pathTo(element, Navigation);\n return path.fold(curry(absolute$3, element), function (frames) {\n var offset = viewport$1(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport$1(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 SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n });\n };\n\n var pointed = function (point, width, height) {\n return {\n point: point,\n width: width,\n height: height\n };\n };\n var rect = function (x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n var bounds = function (x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n right: x + width,\n bottom: y + height\n };\n };\n var box$1 = function (element) {\n var xy = absolute$3(element);\n var w = getOuter$1(element);\n var h = getOuter$2(element);\n return bounds(xy.left, xy.top, w, h);\n };\n var absolute$2 = function (element) {\n var position = find$2(element);\n var width = getOuter$1(element);\n var height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n var win = function () {\n return getBounds$3(window);\n };\n\n var value$3 = function (o) {\n var or = function (_opt) {\n return value$3(o);\n };\n var orThunk = function (_f) {\n return value$3(o);\n };\n var map = function (f) {\n return value$3(f(o));\n };\n var mapError = function (_f) {\n return value$3(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 toOptional = function () {\n return Optional.some(o);\n };\n return {\n isValue: always,\n isError: never,\n getOr: constant$1(o),\n getOrThunk: constant$1(o),\n getOrDie: constant$1(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 toOptional: toOptional\n };\n };\n var error$1 = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = identity$1;\n var orThunk = function (f) {\n return f();\n };\n var map = function (_f) {\n return error$1(message);\n };\n var mapError = function (f) {\n return error$1(f(message));\n };\n var bind = function (_f) {\n return error$1(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n isValue: never,\n isError: always,\n getOr: identity$1,\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 toOptional: Optional.none\n };\n };\n var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error$1(err);\n }, value$3);\n };\n var Result = {\n value: value$3,\n error: error$1,\n fromOption: fromOption\n };\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$1 = 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$1(results, function (obj) {\n fold$1(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 = 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$1 = function (res) {\n return fold$1(res, Result.error, Result.value);\n };\n var fromResult$1 = function (res) {\n return res.fold(serror, svalue);\n };\n var SimpleResult = {\n fromResult: fromResult$1,\n toResult: toResult$1,\n svalue: svalue,\n partition: partition$2,\n serror: serror,\n bind: bind$1,\n bindError: bindError,\n map: map,\n mapError: mapError,\n fold: fold$1\n };\n\n var field$2 = function (key, newKey, presence, prop) {\n return {\n tag: 'field',\n key: key,\n newKey: newKey,\n presence: presence,\n prop: prop\n };\n };\n var customField$1 = function (newKey, instantiator) {\n return {\n tag: 'custom',\n newKey: newKey,\n instantiator: instantiator\n };\n };\n var fold = function (value, ifField, ifCustom) {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n var shallow$1 = 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 = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\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 (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge$1 = baseMerge(shallow$1);\n\n var required$2 = function () {\n return {\n tag: 'required',\n process: {}\n };\n };\n var defaultedThunk = function (fallbackThunk) {\n return {\n tag: 'defaultedThunk',\n process: fallbackThunk\n };\n };\n var defaulted$1 = function (fallback) {\n return defaultedThunk(constant$1(fallback));\n };\n var asOption = function () {\n return {\n tag: 'option',\n process: {}\n };\n };\n var mergeWithThunk = function (baseThunk) {\n return {\n tag: 'mergeWithThunk',\n process: baseThunk\n };\n };\n var mergeWith = function (base) {\n return mergeWithThunk(constant$1(base));\n };\n\n var mergeValues$1 = function (values, base) {\n return values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge$1.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 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: constant$1('... (only showing first ten failures)')\n }]) : errors;\n return map$2(es, function (e) {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n var nu$a = function (path, getErrorInfo) {\n return SimpleResult.serror([{\n path: path,\n getErrorInfo: getErrorInfo\n }]);\n };\n var missingRequired = function (path, key, obj) {\n return nu$a(path, function () {\n return 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj);\n });\n };\n var missingKey = function (path, key) {\n return nu$a(path, function () {\n return 'Choice schema did not contain choice key: \"' + key + '\"';\n });\n };\n var missingBranch = function (path, branches, branch) {\n return nu$a(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$a(path, function () {\n return 'There are unsupported fields: [' + unsupported.join(', ') + '] specified';\n });\n };\n var custom = function (path, err) {\n return nu$a(path, constant$1(err));\n };\n\n var value$2 = function (validator) {\n var extract = function (path, val) {\n return SimpleResult.bindError(validator(val), function (err) {\n return custom(path, err);\n });\n };\n var toString = constant$1('val');\n return {\n extract: extract,\n toString: toString\n };\n };\n var anyValue$1 = value$2(SimpleResult.svalue);\n\n var requiredAccess = function (path, obj, key, bundle) {\n return get$e(obj, key).fold(function () {\n return missingRequired(path, key, obj);\n }, bundle);\n };\n var fallbackAccess = function (obj, key, fallback, bundle) {\n var v = get$e(obj, key).getOrThunk(function () {\n return fallback(obj);\n });\n return bundle(v);\n };\n var optionAccess = function (obj, key, bundle) {\n return bundle(get$e(obj, key));\n };\n var optionDefaultedAccess = function (obj, key, fallback, bundle) {\n var opt = get$e(obj, key).map(function (val) {\n return val === true ? fallback(obj) : val;\n });\n return bundle(opt);\n };\n var extractField = function (field, path, obj, key, prop) {\n var bundle = function (av) {\n return prop.extract(path.concat([key]), av);\n };\n var bundleAsOption = function (optValue) {\n return optValue.fold(function () {\n return SimpleResult.svalue(Optional.none());\n }, function (ov) {\n var result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n };\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant$1({}), function (v) {\n var result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n var extractFields = function (path, obj, fields) {\n var success = {};\n var errors = [];\n for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {\n var field = fields_1[_i];\n fold(field, function (key, newKey, presence, prop) {\n var result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, function (err) {\n errors.push.apply(errors, err);\n }, function (res) {\n success[newKey] = res;\n });\n }, function (newKey, instantiator) {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n var valueThunk = function (getDelegate) {\n var extract = function (path, val) {\n return getDelegate().extract(path, val);\n };\n var toString = function () {\n return getDelegate().toString();\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var getSetKeys = function (obj) {\n return keys(filter$1(obj, isNonNullable));\n };\n var objOfOnly = function (fields) {\n var delegate = objOf(fields);\n var fieldNames = foldr(fields, function (acc, value) {\n return fold(value, function (key) {\n var _a;\n return deepMerge(acc, (_a = {}, _a[key] = true, _a));\n }, constant$1(acc));\n }, {});\n var extract = function (path, o) {\n var keys = isBoolean(o) ? [] : getSetKeys(o);\n var extra = filter$2(keys, function (k) {\n return !hasNonNullableKey(fieldNames, k);\n });\n return extra.length === 0 ? delegate.extract(path, o) : unsupportedFields(path, extra);\n };\n return {\n extract: extract,\n toString: delegate.toString\n };\n };\n var objOf = function (values) {\n var extract = function (path, o) {\n return extractFields(path, o, values);\n };\n var toString = function () {\n var fieldStrings = map$2(values, function (value) {\n return fold(value, function (key, _okey, _presence, prop) {\n return key + ' -> ' + prop.toString();\n }, function (newKey, _instantiator) {\n return 'state(' + newKey + ')';\n });\n });\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var arrOf = function (prop) {\n var extract = function (path, array) {\n var results = map$2(array, function (a, i) {\n return prop.extract(path.concat(['[' + i + ']']), a);\n });\n return ResultCombine.consolidateArr(results);\n };\n var toString = function () {\n return 'array(' + prop.toString() + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var oneOf = function (props) {\n var extract = function (path, val) {\n var errors = [];\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var res = prop.extract(path, val);\n if (res.stype === SimpleResultType.Value) {\n return res;\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n var toString = function () {\n return 'oneOf(' + map$2(props, function (prop) {\n return prop.toString();\n }).join(', ') + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var setOf$1 = function (validator, prop) {\n var validateKeys = function (path, keys) {\n return arrOf(value$2(validator)).extract(path, keys);\n };\n var extract = function (path, 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$2(validKeys, function (vk) {\n return field$2(vk, vk, required$2(), prop);\n });\n return objOf(schema).extract(path, o);\n });\n };\n var toString = function () {\n return 'setOf(' + prop.toString() + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var thunk = function (_desc, processor) {\n var getP = cached(processor);\n var extract = function (path, val) {\n return getP().extract(path, val);\n };\n var toString = function () {\n return getP().toString();\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var arrOfObj = compose(arrOf, objOf);\n\n var anyValue = constant$1(anyValue$1);\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 var isPostMessageable = function (val) {\n if (Object(val) !== val) {\n return true;\n }\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n case 'Array':\n case 'Object':\n return Object.keys(val).every(function (prop) {\n return isPostMessageable(val[prop]);\n });\n default:\n return false;\n }\n };\n var postMessageable = value$2(function (a) {\n if (isPostMessageable(a)) {\n return SimpleResult.svalue(a);\n } else {\n return SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n }\n });\n\n var chooseFrom = function (path, input, branches, ch) {\n var fields = get$e(branches, ch);\n return fields.fold(function () {\n return missingBranch(path, branches, ch);\n }, function (vp) {\n return vp.extract(path.concat(['branch: ' + ch]), input);\n });\n };\n var choose$2 = function (key, branches) {\n var extract = function (path, input) {\n var choice = get$e(input, key);\n return choice.fold(function () {\n return missingKey(path, key);\n }, function (chosen) {\n return chooseFrom(path, input, branches, chosen);\n });\n };\n var toString = function () {\n return 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var arrOfVal = function () {\n return arrOf(anyValue$1);\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 = function (validator, prop) {\n return setOf$1(function (v) {\n return SimpleResult.fromResult(validator(v));\n }, prop);\n };\n var extractValue = function (label, prop, obj) {\n var res = prop.extract([label], obj);\n return SimpleResult.mapError(res, function (errs) {\n return {\n input: obj,\n errors: errs\n };\n });\n };\n var asRaw = function (label, prop, obj) {\n return SimpleResult.toResult(extractValue(label, prop, obj));\n };\n var getOrDie = function (extraction) {\n return extraction.fold(function (errInfo) {\n throw new Error(formatError(errInfo));\n }, identity$1);\n };\n var asRawOrDie$1 = function (label, prop, obj) {\n return getOrDie(asRaw(label, prop, obj));\n };\n var formatError = function (errInfo) {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n var choose$1 = function (key, branches) {\n return choose$2(key, map$1(branches, objOf));\n };\n var thunkOf = function (desc, schema) {\n return thunk(desc, schema);\n };\n\n var field$1 = field$2;\n var customField = customField$1;\n var validateEnum = function (values) {\n return valueOf(function (value) {\n return contains$2(values, value) ? Result.value(value) : Result.error('Unsupported value: \"' + value + '\", choose one of \"' + values.join(', ') + '\".');\n });\n };\n var required$1 = function (key) {\n return field$1(key, key, required$2(), anyValue());\n };\n var requiredOf = function (key, schema) {\n return field$1(key, key, required$2(), schema);\n };\n var requiredNumber = function (key) {\n return requiredOf(key, number);\n };\n var requiredString = function (key) {\n return requiredOf(key, string);\n };\n var requiredStringEnum = function (key, values) {\n return field$1(key, key, required$2(), validateEnum(values));\n };\n var requiredBoolean = function (key) {\n return requiredOf(key, boolean);\n };\n var requiredFunction = function (key) {\n return requiredOf(key, functionProcessor);\n };\n var forbid = function (key, message) {\n return field$1(key, key, asOption(), value$2(function (_v) {\n return SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message);\n }));\n };\n var requiredObjOf = function (key, objSchema) {\n return field$1(key, key, required$2(), objOf(objSchema));\n };\n var requiredArrayOfObj = function (key, objFields) {\n return field$1(key, key, required$2(), arrOfObj(objFields));\n };\n var requiredArrayOf = function (key, schema) {\n return field$1(key, key, required$2(), arrOf(schema));\n };\n var option = function (key) {\n return field$1(key, key, asOption(), anyValue());\n };\n var optionOf = function (key, schema) {\n return field$1(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 = function (key, fallback) {\n return field$1(key, key, defaulted$1(fallback), anyValue());\n };\n var defaultedOf = function (key, fallback, schema) {\n return field$1(key, key, defaulted$1(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 defaultedPostMsg = function (key, fallback) {\n return defaultedOf(key, fallback, postMessageable);\n };\n var defaultedArrayOf = function (key, fallback, schema) {\n return defaultedOf(key, fallback, arrOf(schema));\n };\n var defaultedObjOf = function (key, fallback, objSchema) {\n return defaultedOf(key, fallback, objOf(objSchema));\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 return {\n get: get,\n set: set\n };\n };\n\n var generate$7 = 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$1(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 args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var argLength = args.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 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$2(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 }\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n var foldArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n foldArgs[_i] = arguments[_i];\n }\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n var target = foldArgs[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n 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$7 };\n\n 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$1(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 exclude$1 = function (obj, fields) {\n var r = {};\n each(obj, function (v, k) {\n if (!contains$2(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n var wrap$2 = function (key, value) {\n var _a;\n return _a = {}, _a[key] = value, _a;\n };\n var wrapAll$1 = function (keyvalues) {\n var r = {};\n each$1(keyvalues, function (kv) {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n var exclude = function (obj, fields) {\n return exclude$1(obj, fields);\n };\n var wrap$1 = function (key, value) {\n return wrap$2(key, value);\n };\n var wrapAll = function (keyvalues) {\n return wrapAll$1(keyvalues);\n };\n var mergeValues = function (values, base) {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge$1.apply(undefined, values)));\n };\n var mergeErrors = function (errors) {\n return 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\n var ensureIsRoot = function (isRoot) {\n return isFunction(isRoot) ? isRoot : never;\n };\n var ancestor$2 = function (scope, transform, isRoot) {\n var element = scope.dom;\n var stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.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 Optional.none();\n };\n var closest$4 = function (scope, transform, isRoot) {\n var current = transform(scope);\n var stop = ensureIsRoot(isRoot);\n return current.orThunk(function () {\n return stop(scope) ? Optional.none() : ancestor$2(scope, transform, stop);\n });\n };\n\n var isSource = function (component, simulatedEvent) {\n return eq(component.element, simulatedEvent.event.target);\n };\n\n var defaultEventHandler = {\n can: always,\n abort: never,\n run: noop\n };\n var nu$9 = function (parts) {\n if (!hasNonNullableKey(parts, 'can') && !hasNonNullableKey(parts, 'abort') && !hasNonNullableKey(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return __assign(__assign({}, defaultEventHandler), parts);\n };\n var all$2 = 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$2 = function (handler) {\n return isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n };\n var fuse$1 = function (handlers) {\n var can = all$2(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$1(handlers, function (handler) {\n handler.run.apply(undefined, args);\n });\n };\n return {\n can: can,\n abort: abort,\n run: run\n };\n };\n\n var constant = constant$1;\n var touchstart = constant('touchstart');\n var touchmove = constant('touchmove');\n var touchend = constant('touchend');\n var touchcancel = constant('touchcancel');\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 transitioncancel = constant('transitioncancel');\n var transitionend = constant('transitionend');\n var transitionstart = constant('transitionstart');\n var selectstart = constant('selectstart');\n\n var prefixName = function (name) {\n return constant$1('alloy.' + name);\n };\n var alloy = { tap: prefixName('tap') };\n var focus$4 = prefixName('focus');\n var postBlur = prefixName('blur.post');\n var postPaste = prefixName('paste.post');\n var receive = prefixName('receive');\n var execute$5 = prefixName('execute');\n var focusItem = prefixName('focus.item');\n var tap = alloy.tap;\n var longpress = prefixName('longpress');\n var sandboxClose = prefixName('sandbox.close');\n var typeaheadCancel = prefixName('typeahead.cancel');\n var systemInit = prefixName('system.init');\n var documentTouchmove = prefixName('system.touchmove');\n var documentTouchend = prefixName('system.touchend');\n var windowScroll = prefixName('system.scroll');\n var windowResize = prefixName('system.resize');\n var attachedToDom = prefixName('system.attached');\n var detachedFromDom = prefixName('system.detached');\n var dismissRequested = prefixName('system.dismissRequested');\n var repositionRequested = prefixName('system.repositionRequested');\n var focusShifted = prefixName('focusmanager.shifted');\n var slotVisibility = prefixName('slotcontainer.visibility');\n var changeTab = prefixName('change.tab');\n var dismissTab = prefixName('dismiss.tab');\n var highlight$1 = prefixName('highlight');\n var dehighlight$1 = prefixName('dehighlight');\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$5());\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, data);\n };\n var dispatchEvent = function (component, target, event, simulatedEvent) {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n var derive$2 = function (configs) {\n return wrapAll(configs);\n };\n var abort = function (name, predicate) {\n return {\n key: name,\n value: nu$9({ abort: predicate })\n };\n };\n var can = function (name, predicate) {\n return {\n key: name,\n value: nu$9({ can: predicate })\n };\n };\n var preventDefault = function (name) {\n return {\n key: name,\n value: nu$9({\n run: function (component, simulatedEvent) {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n var run$1 = function (name, handler) {\n return {\n key: name,\n value: nu$9({ run: handler })\n };\n };\n var runActionExtra = function (name, action, extra) {\n return {\n key: name,\n value: nu$9({\n run: function (component, simulatedEvent) {\n action.apply(undefined, [\n component,\n simulatedEvent\n ].concat(extra));\n }\n })\n };\n };\n var runOnName = function (name) {\n return function (handler) {\n return run$1(name, handler);\n };\n };\n var runOnSourceName = function (name) {\n return function (handler) {\n return {\n key: name,\n value: nu$9({\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$1(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$1(name, function (component, simulatedEvent) {\n var ev = simulatedEvent.event;\n var target = component.getSystem().getByDom(ev.target).getOrThunk(function () {\n var closest = closest$4(ev.target, function (el) {\n return component.getSystem().getByDom(el).toOptional();\n }, never);\n return closest.getOr(component);\n });\n f(component, target, simulatedEvent);\n });\n };\n var cutter = function (name) {\n return run$1(name, function (component, simulatedEvent) {\n simulatedEvent.cut();\n });\n };\n var stopper = function (name) {\n return run$1(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$1 = runOnName(execute$5());\n\n var fromHtml$1 = function (html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(SugarElement.fromDom(div));\n };\n\n var get$7 = function (element) {\n return element.dom.innerHTML;\n };\n var set$5 = function (element, content) {\n var owner = owner$4(element);\n var docDom = owner.dom;\n var fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append$2(element, fragment);\n };\n var getOuter = function (element) {\n var container = SugarElement.fromTag('div');\n var clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$2(container, clone);\n return get$7(container);\n };\n\n var clone$2 = function (original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n var shallow = function (original) {\n return clone$2(original, false);\n };\n\n var getHtml = function (element) {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n var clone = shallow(element);\n return getOuter(clone);\n }\n };\n\n var element = function (elem) {\n return getHtml(elem);\n };\n\n var isRecursive = function (component, originator, target) {\n return eq(originator, component.element) && !eq(originator, target);\n };\n var events$i = derive$2([can(focus$4(), function (component, simulatedEvent) {\n var event = simulatedEvent.event;\n var originator = event.originator;\n var target = event.target;\n if (isRecursive(component, originator, target)) {\n console.warn(focus$4() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus$4() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$i\n });\n\n var unique = 0;\n var generate$6 = 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 prefix$1 = constant$1('alloy-id-');\n var idAttr$1 = constant$1('data-alloy-id');\n\n var prefix = prefix$1();\n var idAttr = idAttr$1();\n var write = function (label, elem) {\n var id = generate$6(prefix + label);\n writeOnly(elem, id);\n return id;\n };\n var writeOnly = function (elem, uid) {\n Object.defineProperty(elem.dom, idAttr, {\n value: uid,\n writable: true\n });\n };\n var read$1 = function (elem) {\n var id = isElement$2(elem) ? elem.dom[idAttr] : null;\n return Optional.from(id);\n };\n var generate$5 = function (prefix) {\n return generate$6(prefix);\n };\n\n var make$8 = identity$1;\n\n var NoContextApi = function (getComp) {\n var getMessage = function (event) {\n return 'The component must be in a context to execute: ' + event + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : '');\n };\n var fail = function (event) {\n return function () {\n throw new Error(getMessage(event));\n };\n };\n var warn = function (event) {\n return function () {\n console.warn(getMessage(event));\n };\n };\n return {\n debugInfo: constant$1('fake'),\n triggerEvent: warn('triggerEvent'),\n triggerFocus: warn('triggerFocus'),\n triggerEscape: warn('triggerEscape'),\n broadcast: warn('broadcast'),\n broadcastOn: warn('broadcastOn'),\n broadcastEvent: warn('broadcastEvent'),\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 isConnected: never\n };\n };\n var singleton$1 = 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$2(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$6('alloy-premade');\n var premade$1 = function (comp) {\n return wrap$1(premadeTag, comp);\n };\n var getPremade = function (spec) {\n return get$e(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(void 0, __spreadArray([\n component.getApis(),\n component\n ], rest, false));\n }, f);\n };\n\n var NoState = {\n init: function () {\n return nu$8({ readState: constant$1('No State required') });\n }\n };\n var nu$8 = function (spec) {\n return spec;\n };\n\n var generateFrom$1 = function (spec, all) {\n var schema = map$2(all, function (a) {\n return optionObjOf(a.name(), [\n required$1('config'),\n defaulted('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 }, identity$1);\n return {\n list: all,\n data: map$1(validated, function (optBlobThunk) {\n var output = optBlobThunk.map(function (blob) {\n return {\n config: blob.config,\n state: blob.state.init(blob.config)\n };\n });\n return constant$1(output);\n })\n };\n };\n var getBehaviours$3 = function (bData) {\n return bData.list;\n };\n var getData$2 = function (bData) {\n return bData.data;\n };\n\n var byInnerKey = function (data, tuple) {\n var r = {};\n each(data, function (detail, key) {\n each(detail, function (value, indexKey) {\n var chain = get$e(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n var nu$7 = function (s) {\n return {\n classes: isUndefined(s.classes) ? [] : s.classes,\n attributes: isUndefined(s.attributes) ? {} : s.attributes,\n styles: isUndefined(s.styles) ? {} : s.styles\n };\n };\n var merge = function (defnA, mod) {\n return __assign(__assign({}, defnA), {\n attributes: __assign(__assign({}, defnA.attributes), mod.attributes),\n styles: __assign(__assign({}, defnA.styles), mod.styles),\n classes: defnA.classes.concat(mod.classes)\n });\n };\n\n var combine$2 = function (info, baseMod, behaviours, base) {\n var modsByBehaviour = __assign({}, baseMod);\n each$1(behaviours, function (behaviour) {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n var byAspect = byInnerKey(modsByBehaviour, function (name, modification) {\n return {\n name: name,\n modification: modification\n };\n });\n var combineObjects = function (objects) {\n return foldr(objects, function (b, a) {\n return __assign(__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$7({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n var sortKeys = function (label, keyName, array, order) {\n try {\n var sorted = sort(array, 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: purpose\n };\n };\n var curried = function (handler, purpose) {\n return {\n cHandler: handler,\n purpose: 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: name,\n handler: handler\n };\n };\n var nameToHandlers = function (behaviours, info) {\n var r = {};\n each$1(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(__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$2(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$2(tuples, function (c) {\n return c.name;\n }), null, 2)]);\n };\n var fuse = 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$2(sortedTuples, function (tuple) {\n return tuple.handler;\n });\n return fuse$1(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(tuples, eventOrder, eventName);\n return combined.map(function (handler) {\n var assembled = assemble(handler);\n var purpose = tuples.length > 1 ? filter$2(eventOrder[eventName], function (o) {\n return exists(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 _a$2;\n var baseBehaviour = 'alloy.base.behaviour';\n var schema$z = objOf([\n field$1('dom', 'dom', required$2(), objOf([\n required$1('tag'),\n defaulted('styles', {}),\n defaulted('classes', []),\n defaulted('attributes', {}),\n option('value'),\n option('innerHtml')\n ])),\n required$1('components'),\n required$1('uid'),\n defaulted('events', {}),\n defaulted('apis', {}),\n field$1('eventOrder', 'eventOrder', mergeWith((_a$2 = {}, _a$2[execute$5()] = [\n 'disabling',\n baseBehaviour,\n 'toggling',\n 'typeaheadevents'\n ], _a$2[focus$4()] = [\n baseBehaviour,\n 'focusing',\n 'keying'\n ], _a$2[systemInit()] = [\n baseBehaviour,\n 'disabling',\n 'toggling',\n 'representing'\n ], _a$2[input()] = [\n baseBehaviour,\n 'representing',\n 'streaming',\n 'invalidating'\n ], _a$2[detachedFromDom()] = [\n baseBehaviour,\n 'representing',\n 'item-events',\n 'tooltipping'\n ], _a$2[mousedown()] = [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ], _a$2[touchstart()] = [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ], _a$2[mouseover()] = [\n 'item-type-events',\n 'tooltipping'\n ], _a$2[receive()] = [\n 'receiving',\n 'reflecting',\n 'tooltipping'\n ], _a$2)), anyValue()),\n option('domModification')\n ]);\n var toInfo = function (spec) {\n return asRaw('custom.definition', schema$z, spec);\n };\n var toDefinition = function (detail) {\n return __assign(__assign({}, detail.dom), {\n uid: detail.uid,\n domChildren: map$2(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$7({});\n }, nu$7);\n };\n var toEvents = function (info) {\n return info.events;\n };\n\n var read = function (element, attr) {\n var value = get$d(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add$4 = function (element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set$8(element, attr, nu.join(' '));\n return true;\n };\n var remove$4 = function (element, attr, id) {\n var nu = filter$2(read(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set$8(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom.classList !== undefined;\n };\n var get$6 = function (element) {\n return read(element, 'class');\n };\n var add$3 = function (element, clazz) {\n return add$4(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$4(element, 'class', clazz);\n };\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom.classList : get$6(element);\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n var remove$2 = 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 = function (element, clazz) {\n return supports(element) && element.dom.classList.contains(clazz);\n };\n\n var add$1 = function (element, classes) {\n each$1(classes, function (x) {\n add$2(element, x);\n });\n };\n var remove$1 = function (element, classes) {\n each$1(classes, function (x) {\n remove$2(element, x);\n });\n };\n var hasAll = function (element, classes) {\n return forall(classes, function (clazz) {\n return has(element, clazz);\n });\n };\n\n var get$5 = function (element) {\n return element.dom.value;\n };\n var set$4 = 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 = SugarElement.fromTag(definition.tag);\n setAll$1(subject, definition.attributes);\n add$1(subject, definition.classes);\n setAll(subject, definition.styles);\n definition.innerHtml.each(function (html) {\n return set$5(subject, html);\n });\n var children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(function (value) {\n set$4(subject, value);\n });\n if (!definition.uid) {\n debugger;\n }\n writeOnly(subject, definition.uid);\n return subject;\n };\n\n var getBehaviours$2 = function (spec) {\n var behaviours = get$e(spec, 'behaviours').getOr({});\n return bind$3(keys(behaviours), function (name) {\n var behaviour = behaviours[name];\n return isNonNullable(behaviour) ? [behaviour.me] : [];\n });\n };\n var generateFrom = function (spec, all) {\n return generateFrom$1(spec, all);\n };\n var generate$4 = function (spec) {\n var all = getBehaviours$2(spec);\n return generateFrom(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$2(bData, baseModification, bList, definition) : infoModification;\n return merge(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$2 = function (spec) {\n var getMe = function () {\n return me;\n };\n var systemApi = Cell(singleton$1);\n var info = getOrDie(toInfo(spec));\n var bBlob = generate$4(spec);\n var bList = getBehaviours$3(bBlob);\n var bData = getData$2(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$3(children$1, function (child) {\n return systemApi.get().getByDom(child).fold(function () {\n return [];\n }, pure$2);\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 uid: spec.uid,\n getSystem: systemApi.get,\n config: config,\n hasConfigured: hasConfigured,\n spec: spec,\n readState: readState,\n getApis: getApis,\n connect: connect,\n disconnect: disconnect,\n element: item,\n syncComponents: syncComponents,\n components: subcomponents.get,\n events: events\n };\n return me;\n };\n\n var buildSubcomponents = function (spec) {\n var components = get$e(spec, 'components').getOr([]);\n return map$2(components, build$1);\n };\n var buildFromSpec = function (userSpec) {\n var _a = make$8(userSpec), specEvents = _a.events, spec = __rest(_a, ['events']);\n var components = buildSubcomponents(spec);\n var completeSpec = __assign(__assign({}, spec), {\n events: __assign(__assign({}, DefaultEvents), specEvents),\n components: components\n });\n return Result.value(build$2(completeSpec));\n };\n var text$1 = function (textContent) {\n var element = SugarElement.fromText(textContent);\n return external$2({ element: element });\n };\n var external$2 = function (spec) {\n var extSpec = asRawOrDie$1('external.component', objOfOnly([\n required$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 var uid = extSpec.uid.getOrThunk(function () {\n return generate$5('external');\n });\n writeOnly(extSpec.element, uid);\n var me = {\n uid: uid,\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect: connect,\n disconnect: disconnect,\n getApis: function () {\n return {};\n },\n element: extSpec.element,\n spec: spec,\n readState: constant$1('No state'),\n syncComponents: noop,\n components: constant$1([]),\n events: {}\n };\n return premade$1(me);\n };\n var uids = generate$5;\n var isSketchSpec$1 = function (spec) {\n return has$2(spec, 'uid');\n };\n var build$1 = function (spec) {\n return getPremade(spec).getOrThunk(function () {\n var userSpecWithUid = isSketchSpec$1(spec) ? spec : __assign({ uid: uids('') }, spec);\n return buildFromSpec(userSpecWithUid).getOrDie();\n });\n };\n var premade = premade$1;\n\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n }\n\n var ancestor$1 = function (scope, predicate, isRoot) {\n var element = scope.dom;\n var stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n var closest$3 = function (scope, predicate, isRoot) {\n var is = function (s, test) {\n return test(s);\n };\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n var child$1 = function (scope, predicate) {\n var pred = function (node) {\n return predicate(SugarElement.fromDom(node));\n };\n var result = find$5(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n var descendant$1 = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child_1)) {\n return Optional.some(child_1);\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n var closest$2 = function (scope, predicate, isRoot) {\n return closest$3(scope, predicate, isRoot).isSome();\n };\n\n var ancestor = function (scope, selector, isRoot) {\n return ancestor$1(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var child = function (scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n var descendant = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$1 = function (scope, selector, isRoot) {\n var is$1 = function (element, selector) {\n return is(element, selector);\n };\n return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);\n };\n\n var find$1 = function (queryElem) {\n var dependent = closest$3(queryElem, function (elem) {\n if (!isElement$2(elem)) {\n return false;\n }\n var id = get$d(elem, 'id');\n return id !== undefined && id.indexOf('aria-owns') > -1;\n });\n return dependent.bind(function (dep) {\n var id = get$d(dep, 'id');\n var dos = getRootNode(dep);\n return descendant(dos, '[aria-owns=\"' + id + '\"]');\n });\n };\n var manager = function () {\n var ariaId = generate$6('aria-owns');\n var link = function (elem) {\n set$8(elem, 'aria-owns', ariaId);\n };\n var unlink = function (elem) {\n remove$7(elem, 'aria-owns');\n };\n return {\n id: ariaId,\n link: link,\n unlink: unlink\n };\n };\n\n var isAriaPartOf = function (component, queryElem) {\n return find$1(queryElem).exists(function (owner) {\n return isPartOf$1(component, owner);\n });\n };\n var isPartOf$1 = function (component, queryElem) {\n return closest$2(queryElem, function (el) {\n return eq(el, component.element);\n }, never) || isAriaPartOf(component, queryElem);\n };\n\n var unknown = 'unknown';\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$2([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map$2(sequence, function (s) {\n if (!contains$2([\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 = get$e(eventConfig.get(), eventName).orThunk(function () {\n var patterns = keys(eventConfig.get());\n return findMap(patterns, function (p) {\n return eventName.indexOf(p) > -1 ? Optional.some(eventConfig.get()[p]) : Optional.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 = [\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$5(lines, function (line) {\n return line.indexOf('alloy') > 0 && !exists(path, function (p) {\n return line.indexOf(p) > -1;\n });\n }).getOr(unknown);\n } else {\n return unknown;\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 noLogger = constant$1(ignoreEvent);\n\n var menuFields = constant$1([\n required$1('menu'),\n required$1('selectedMenu')\n ]);\n var itemFields = constant$1([\n required$1('item'),\n required$1('selectedItem')\n ]);\n constant$1(objOf(itemFields().concat(menuFields())));\n var itemSchema$3 = constant$1(objOf(itemFields()));\n\n var _initSize = requiredObjOf('initSize', [\n required$1('numColumns'),\n required$1('numRows')\n ]);\n var itemMarkers = function () {\n return requiredOf('markers', itemSchema$3());\n };\n var tieredMenuMarkers = function () {\n return requiredObjOf('markers', [required$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n };\n var markers$1 = function (required) {\n return requiredObjOf('markers', map$2(required, required$1));\n };\n var onPresenceHandler = function (label, fieldName, presence) {\n getTrace();\n return field$1(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$1(noop));\n };\n var onKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, defaulted$1(Optional.none));\n };\n var onStrictHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, required$2());\n };\n var onStrictKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, required$2());\n };\n var output$1 = function (name, value) {\n return customField(name, constant$1(value));\n };\n var snapshot = function (name) {\n return customField(name, identity$1);\n };\n var initSize = constant$1(_initSize);\n\n var nu$6 = function (x, y, bubble, direction, placement, boundsRestriction, labelPrefix, alwaysFit) {\n if (alwaysFit === void 0) {\n alwaysFit = false;\n }\n return {\n x: x,\n y: y,\n bubble: bubble,\n direction: direction,\n placement: placement,\n restriction: boundsRestriction,\n label: labelPrefix + '-' + placement,\n alwaysFit: alwaysFit\n };\n };\n\n var adt$a = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n var cata$2 = 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 cataHorizontal = function (subject, east, middle, west) {\n return subject.fold(east, west, east, west, middle, middle, east, west);\n };\n var southeast$3 = adt$a.southeast;\n var southwest$3 = adt$a.southwest;\n var northeast$3 = adt$a.northeast;\n var northwest$3 = adt$a.northwest;\n var south$3 = adt$a.south;\n var north$3 = adt$a.north;\n var east$3 = adt$a.east;\n var west$3 = adt$a.west;\n\n var cycleBy = function (value, delta, min, max) {\n var r = value + delta;\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n var clamp$1 = function (value, min, max) {\n return Math.min(Math.max(value, min), max);\n };\n\n var getRestriction = function (anchor, restriction) {\n switch (restriction) {\n case 1:\n return anchor.x;\n case 0:\n return anchor.x + anchor.width;\n case 2:\n return anchor.y;\n case 3:\n return anchor.y + anchor.height;\n }\n };\n var boundsRestriction = function (anchor, restrictions) {\n return mapToObject([\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], function (dir) {\n return get$e(restrictions, dir).map(function (restriction) {\n return getRestriction(anchor, restriction);\n });\n });\n };\n var adjustBounds = function (bounds$1, restriction, bubbleOffset) {\n var applyRestriction = function (dir, current) {\n return restriction[dir].map(function (pos) {\n var isVerticalAxis = dir === 'top' || dir === 'bottom';\n var offset = isVerticalAxis ? bubbleOffset.top : bubbleOffset.left;\n var comparator = dir === 'left' || dir === 'top' ? Math.max : Math.min;\n var newPos = comparator(pos, current) + offset;\n return isVerticalAxis ? clamp$1(newPos, bounds$1.y, bounds$1.bottom) : clamp$1(newPos, bounds$1.x, bounds$1.right);\n }).getOr(current);\n };\n var adjustedLeft = applyRestriction('left', bounds$1.x);\n var adjustedTop = applyRestriction('top', bounds$1.y);\n var adjustedRight = applyRestriction('right', bounds$1.right);\n var adjustedBottom = applyRestriction('bottom', bounds$1.bottom);\n return bounds(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n var labelPrefix$2 = 'layout';\n var eastX$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 westX$1 = function (anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n var northY$2 = function (anchor, element) {\n return anchor.y - element.height;\n };\n var southY$2 = function (anchor) {\n return anchor.y + anchor.height;\n };\n var centreY$1 = function (anchor, element) {\n return anchor.y + anchor.height / 2 - element.height / 2;\n };\n var eastEdgeX$1 = function (anchor) {\n return anchor.x + anchor.width;\n };\n var westEdgeX$1 = function (anchor, element) {\n return anchor.x - element.width;\n };\n var southeast$2 = function (anchor, element, bubbles) {\n return nu$6(eastX$1(anchor), southY$2(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), labelPrefix$2);\n };\n var southwest$2 = function (anchor, element, bubbles) {\n return nu$6(westX$1(anchor, element), southY$2(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), labelPrefix$2);\n };\n var northeast$2 = function (anchor, element, bubbles) {\n return nu$6(eastX$1(anchor), northY$2(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), labelPrefix$2);\n };\n var northwest$2 = function (anchor, element, bubbles) {\n return nu$6(westX$1(anchor, element), northY$2(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), labelPrefix$2);\n };\n var north$2 = function (anchor, element, bubbles) {\n return nu$6(middleX$1(anchor, element), northY$2(anchor, element), bubbles.north(), north$3(), 'north', boundsRestriction(anchor, { bottom: 2 }), labelPrefix$2);\n };\n var south$2 = function (anchor, element, bubbles) {\n return nu$6(middleX$1(anchor, element), southY$2(anchor), bubbles.south(), south$3(), 'south', boundsRestriction(anchor, { top: 3 }), labelPrefix$2);\n };\n var east$2 = function (anchor, element, bubbles) {\n return nu$6(eastEdgeX$1(anchor), centreY$1(anchor, element), bubbles.east(), east$3(), 'east', boundsRestriction(anchor, { left: 0 }), labelPrefix$2);\n };\n var west$2 = function (anchor, element, bubbles) {\n return nu$6(westEdgeX$1(anchor, element), centreY$1(anchor, element), bubbles.west(), west$3(), 'west', boundsRestriction(anchor, { right: 1 }), labelPrefix$2);\n };\n var all$1 = function () {\n return [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n };\n var allRtl$1 = function () {\n return [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n };\n var aboveOrBelow = function () {\n return [\n northeast$2,\n northwest$2,\n southeast$2,\n southwest$2,\n north$2,\n south$2\n ];\n };\n var aboveOrBelowRtl = function () {\n return [\n northwest$2,\n northeast$2,\n southwest$2,\n southeast$2,\n north$2,\n south$2\n ];\n };\n var belowOrAbove = function () {\n return [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2\n ];\n };\n var belowOrAboveRtl = function () {\n return [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2\n ];\n };\n\n var chooseChannels = function (channels, message) {\n return message.universal ? channels : filter$2(channels, function (ch) {\n return contains$2(message.channels, ch);\n });\n };\n var events$h = function (receiveConfig) {\n return derive$2([run$1(receive(), function (component, message) {\n var channelMap = receiveConfig.channels;\n var channels = keys(channelMap);\n var receivingData = message;\n var targetChannels = chooseChannels(channels, receivingData);\n each$1(targetChannels, function (ch) {\n var channelInfo = channelMap[ch];\n var channelSchema = channelInfo.schema;\n var data = asRawOrDie$1('channel[' + ch + '] data\\nReceiver: ' + element(component.element), channelSchema, receivingData.data);\n channelInfo.onReceive(component, data);\n });\n })]);\n };\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$h\n });\n\n var ReceivingSchema = [requiredOf('channels', setOf(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted('schema', anyValue())\n ])))];\n\n var executeEvent = function (bConfig, bState, executor) {\n return runOnExecute$1(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$9 = 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$1 = 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$1(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 hasNonNullableKey(info, name) ? info[name]() : Optional.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(__assign(__assign({}, wrappedExtra), wrappedApis), {\n revoke: curry(revokeBehaviour, name),\n config: function (spec) {\n var prepared = asRawOrDie$1(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me: me,\n configAsRaw: cached(function () {\n return asRawOrDie$1(name + '-config', configSchema, spec);\n }),\n initialConfig: spec,\n state: state\n }\n };\n },\n schema: constant$1(schemaSchema),\n exhibit: function (info, base) {\n return lift2(getConfig(info), get$e(active, 'exhibit'), function (behaviourInfo, exhibitor) {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n }).getOrThunk(function () {\n return nu$7({});\n });\n },\n name: constant$1(name),\n handlers: function (info) {\n return getConfig(info).map(function (behaviourInfo) {\n var getEvents = get$e(active, 'events').getOr(function () {\n return {};\n });\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(capabilities);\n };\n var simpleSchema = objOfOnly([\n required$1('fields'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n var create$8 = function (data) {\n var value = asRawOrDie$1('Creating behaviour: ' + data.name, simpleSchema, data);\n return create$9(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n var modeSchema = objOfOnly([\n required$1('branchKey'),\n required$1('branches'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n var createModes = function (data) {\n var value = asRawOrDie$1('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes$1(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n var revoke = constant$1(undefined);\n\n var Receiving = create$8({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n var exhibit$6 = function (base, posConfig) {\n return nu$7({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n };\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$6\n });\n\n var getDocument = function () {\n return SugarElement.fromDom(document);\n };\n\n var focus$3 = function (element) {\n return element.dom.focus();\n };\n var blur$1 = function (element) {\n return element.dom.blur();\n };\n var hasFocus = function (element) {\n var root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n var active = function (root) {\n if (root === void 0) {\n root = getDocument();\n }\n return Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n };\n var search = function (element) {\n return active(getRootNode(element)).filter(function (e) {\n return element.dom.contains(e.dom);\n });\n };\n\n var preserve$1 = function (f, container) {\n var dos = getRootNode(container);\n var refocus = active(dos).bind(function (focused) {\n var hasFocus = function (elem) {\n return eq(focused, elem);\n };\n return hasFocus(container) ? Optional.some(container) : descendant$1(container, hasFocus);\n });\n var result = f(container);\n refocus.each(function (oldFocus) {\n active(dos).filter(function (newFocus) {\n return eq(newFocus, oldFocus);\n }).fold(function () {\n focus$3(oldFocus);\n }, noop);\n });\n return result;\n };\n\n var NuPositionCss = function (position, left, top, right, bottom) {\n var toPx = function (num) {\n return num + 'px';\n };\n return {\n position: position,\n left: left.map(toPx),\n top: top.map(toPx),\n right: right.map(toPx),\n bottom: bottom.map(toPx)\n };\n };\n var toOptions = function (position) {\n return __assign(__assign({}, position), { position: Optional.some(position.position) });\n };\n var applyPositionCss = function (element, position) {\n setOptions(element, toOptions(position));\n };\n\n var adt$9 = 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 decisionRect = decision.rect;\n var decisionX = decisionRect.x - x;\n var decisionY = decisionRect.y - y;\n var decisionWidth = decisionRect.width;\n var decisionHeight = decisionRect.height;\n var decisionRight = width - (decisionX + decisionWidth);\n var decisionBottom = height - (decisionY + decisionHeight);\n var left = Optional.some(decisionX);\n var top = Optional.some(decisionY);\n var right = Optional.some(decisionRight);\n var bottom = Optional.some(decisionBottom);\n var none = Optional.none();\n return cata$2(decision.direction, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, none, top, right, none);\n }, function () {\n return NuPositionCss(posName, left, none, none, bottom);\n }, function () {\n return NuPositionCss(posName, none, none, right, bottom);\n }, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, left, none, none, bottom);\n }, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, none, top, right, none);\n });\n };\n var reposition = function (origin, decision) {\n return origin.fold(function () {\n var decisionRect = decision.rect;\n return NuPositionCss('absolute', Optional.some(decisionRect.x), Optional.some(decisionRect.y), Optional.none(), Optional.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$2, element);\n var position = origin.fold(rel, rel, function () {\n var scroll = get$9();\n return find$2(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 = function (origin, getBounds) {\n return getBounds.fold(function () {\n return origin.fold(win, win, bounds);\n }, function (b) {\n return origin.fold(b, b, function () {\n var bounds$1 = b();\n var pos = translate$2(origin, bounds$1.x, bounds$1.y);\n return bounds(pos.left, pos.top, bounds$1.width, bounds$1.height);\n });\n });\n };\n var translate$2 = function (origin, x, y) {\n var pos = SugarPosition(x, y);\n var removeScroll = function () {\n var outerScroll = get$9();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n return origin.fold(constant$1(pos), constant$1(pos), removeScroll);\n };\n var cata$1 = function (subject, onNone, onRelative, onFixed) {\n return subject.fold(onNone, onRelative, onFixed);\n };\n adt$9.none;\n var relative$1 = adt$9.relative;\n var fixed$1 = adt$9.fixed;\n\n var anchor = function (anchorBox, origin) {\n return {\n anchorBox: anchorBox,\n origin: origin\n };\n };\n var box = function (anchorBox, origin) {\n return anchor(anchorBox, origin);\n };\n\n var placementAttribute = 'data-alloy-placement';\n var setPlacement$1 = function (element, placement) {\n set$8(element, placementAttribute, placement);\n };\n var getPlacement = function (element) {\n return getOpt(element, placementAttribute);\n };\n var reset$2 = function (element) {\n return remove$7(element, placementAttribute);\n };\n\n var adt$8 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'visibleW',\n 'visibleH',\n 'isVisible'\n ]\n }\n ]);\n var determinePosition = function (box, bounds) {\n var boundsX = bounds.x, boundsY = bounds.y, boundsRight = bounds.right, boundsBottom = bounds.bottom;\n var x = box.x, y = box.y, right = box.right, bottom = box.bottom, width = box.width, height = box.height;\n var xInBounds = x >= boundsX && x <= boundsRight;\n var yInBounds = y >= boundsY && y <= boundsBottom;\n var originInBounds = xInBounds && yInBounds;\n var rightInBounds = right <= boundsRight && right >= boundsX;\n var bottomInBounds = bottom <= boundsBottom && bottom >= boundsY;\n var sizeInBounds = rightInBounds && bottomInBounds;\n var visibleW = Math.min(width, x >= boundsX ? boundsRight - x : right - boundsX);\n var visibleH = Math.min(height, y >= boundsY ? boundsBottom - y : bottom - boundsY);\n return {\n originInBounds: originInBounds,\n sizeInBounds: sizeInBounds,\n visibleW: visibleW,\n visibleH: visibleH\n };\n };\n var calcReposition = function (box, bounds$1) {\n var boundsX = bounds$1.x, boundsY = bounds$1.y, boundsRight = bounds$1.right, boundsBottom = bounds$1.bottom;\n var x = box.x, y = box.y, width = box.width, height = box.height;\n var maxX = Math.max(boundsX, boundsRight - width);\n var maxY = Math.max(boundsY, boundsBottom - height);\n var restrictedX = clamp$1(x, boundsX, maxX);\n var restrictedY = clamp$1(y, boundsY, maxY);\n var restrictedWidth = Math.min(restrictedX + width, boundsRight) - restrictedX;\n var restrictedHeight = Math.min(restrictedY + height, boundsBottom) - restrictedY;\n return bounds(restrictedX, restrictedY, restrictedWidth, restrictedHeight);\n };\n var calcMaxSizes = function (direction, box, bounds) {\n var upAvailable = constant$1(box.bottom - bounds.y);\n var downAvailable = constant$1(bounds.bottom - box.y);\n var maxHeight = cataVertical(direction, downAvailable, downAvailable, upAvailable);\n var westAvailable = constant$1(box.right - bounds.x);\n var eastAvailable = constant$1(bounds.right - box.x);\n var maxWidth = cataHorizontal(direction, eastAvailable, eastAvailable, westAvailable);\n return {\n maxWidth: maxWidth,\n maxHeight: maxHeight\n };\n };\n var attempt = function (candidate, width, height, bounds$1) {\n var bubble = candidate.bubble;\n var bubbleOffset = bubble.offset;\n var adjustedBounds = adjustBounds(bounds$1, candidate.restriction, bubbleOffset);\n var newX = candidate.x + bubbleOffset.left;\n var newY = candidate.y + bubbleOffset.top;\n var box = bounds(newX, newY, width, height);\n var _a = determinePosition(box, adjustedBounds), originInBounds = _a.originInBounds, sizeInBounds = _a.sizeInBounds, visibleW = _a.visibleW, visibleH = _a.visibleH;\n var fits = originInBounds && sizeInBounds;\n var fittedBox = fits ? box : calcReposition(box, adjustedBounds);\n var isPartlyVisible = fittedBox.width > 0 && fittedBox.height > 0;\n var _b = calcMaxSizes(candidate.direction, fittedBox, bounds$1), maxWidth = _b.maxWidth, maxHeight = _b.maxHeight;\n var reposition = {\n rect: fittedBox,\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n direction: candidate.direction,\n placement: candidate.placement,\n classes: {\n on: bubble.classesOn,\n off: bubble.classesOff\n },\n layout: candidate.label,\n testY: newY\n };\n return fits || candidate.alwaysFit ? adt$8.fit(reposition) : adt$8.nofit(reposition, visibleW, visibleH, isPartlyVisible);\n };\n var attempts = function (element, candidates, anchorBox, elementBox, bubbles, bounds) {\n var panelWidth = elementBox.width;\n var panelHeight = elementBox.height;\n var attemptBestFit = function (layout, reposition, visibleW, visibleH, isVisible) {\n var next = layout(anchorBox, elementBox, bubbles, element, bounds);\n var attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(constant$1(attemptLayout), function (newReposition, newVisibleW, newVisibleH, newIsVisible) {\n var improved = isVisible === newIsVisible ? newVisibleH > visibleH || newVisibleW > visibleW : !isVisible && newIsVisible;\n return improved ? attemptLayout : adt$8.nofit(reposition, visibleW, visibleH, isVisible);\n });\n };\n var abc = foldl(candidates, function (b, a) {\n var bestNext = curry(attemptBestFit, a);\n return b.fold(constant$1(b), bestNext);\n }, adt$8.nofit({\n rect: anchorBox,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast$3(),\n placement: 'southeast',\n classes: {\n on: [],\n off: []\n },\n layout: 'none',\n testY: anchorBox.y\n }, -1, -1, false));\n return abc.fold(identity$1, identity$1);\n };\n\n var singleton = function (doRevoke) {\n var subject = Cell(Optional.none());\n var revoke = function () {\n return subject.get().each(doRevoke);\n };\n var clear = function () {\n revoke();\n subject.set(Optional.none());\n };\n var isSet = function () {\n return subject.get().isSome();\n };\n var get = function () {\n return subject.get();\n };\n var set = function (s) {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear: clear,\n isSet: isSet,\n get: get,\n set: set\n };\n };\n var destroyable = function () {\n return singleton(function (s) {\n return s.destroy();\n });\n };\n var unbindable = function () {\n return singleton(function (s) {\n return s.unbind();\n });\n };\n var api$1 = function () {\n var subject = destroyable();\n var run = function (f) {\n return subject.get().each(f);\n };\n return __assign(__assign({}, subject), { run: run });\n };\n var value$1 = function () {\n var subject = singleton(noop);\n var on = function (f) {\n return subject.get().each(f);\n };\n return __assign(__assign({}, subject), { on: on });\n };\n\n var filter = always;\n var bind = function (element, event, handler) {\n return bind$2(element, event, filter, handler);\n };\n var capture = function (element, event, handler) {\n return capture$1(element, event, filter, handler);\n };\n var fromRawEvent = fromRawEvent$1;\n\n var properties = [\n 'top',\n 'bottom',\n 'right',\n 'left'\n ];\n var timerAttr = 'data-alloy-transition-timer';\n var isTransitioning$1 = function (element, transition) {\n return hasAll(element, transition.classes);\n };\n var shouldApplyTransitionCss = function (transition, decision, lastPlacement) {\n return lastPlacement.exists(function (placer) {\n var mode = transition.mode;\n return mode === 'all' ? true : placer[mode] !== decision[mode];\n });\n };\n var hasChanges = function (position, intermediate) {\n var round = function (value) {\n return parseFloat(value).toFixed(3);\n };\n return find$4(intermediate, function (value, key) {\n var newValue = position[key].map(round);\n var val = value.map(round);\n return !equals(newValue, val);\n }).isSome();\n };\n var getTransitionDuration = function (element) {\n var get = function (name) {\n var style = get$c(element, name);\n var times = isString(style) ? style.split(/\\s*,\\s*/) : [];\n return filter$2(times, isNotEmpty);\n };\n var parse = function (value) {\n if (isString(value) && /^[\\d.]+/.test(value)) {\n var num = parseFloat(value);\n return endsWith(value, 'ms') ? num : num * 1000;\n } else {\n return 0;\n }\n };\n var delay = get('transition-delay');\n var duration = get('transition-duration');\n return foldl(duration, function (acc, dur, i) {\n var time = parse(delay[i]) + parse(dur);\n return Math.max(acc, time);\n }, 0);\n };\n var setupTransitionListeners = function (element, transition) {\n var transitionEnd = unbindable();\n var transitionCancel = unbindable();\n var timer;\n var isSourceTransition = function (e) {\n var _a;\n var pseudoElement = (_a = e.raw.pseudoElement) !== null && _a !== void 0 ? _a : '';\n return eq(e.target, element) && isEmpty(pseudoElement) && contains$2(properties, e.raw.propertyName);\n };\n var transitionDone = function (e) {\n if (isNullable(e) || isSourceTransition(e)) {\n transitionEnd.clear();\n transitionCancel.clear();\n var type = e === null || e === void 0 ? void 0 : e.raw.type;\n if (isNullable(type) || type === transitionend()) {\n clearTimeout(timer);\n remove$7(element, timerAttr);\n remove$1(element, transition.classes);\n }\n }\n };\n var transitionStarted = function () {\n transitionEnd.set(bind(element, transitionend(), transitionDone));\n transitionCancel.set(bind(element, transitioncancel(), transitionDone));\n };\n if ('ontransitionstart' in element.dom) {\n var transitionStart_1 = bind(element, transitionstart(), function (e) {\n if (isSourceTransition(e)) {\n transitionStart_1.unbind();\n transitionStarted();\n }\n });\n } else {\n transitionStarted();\n }\n var duration = getTransitionDuration(element);\n requestAnimationFrame(function () {\n timer = setTimeout(transitionDone, duration + 17);\n set$8(element, timerAttr, timer);\n });\n };\n var startTransitioning = function (element, transition) {\n add$1(element, transition.classes);\n getOpt(element, timerAttr).each(function (timerId) {\n clearTimeout(parseInt(timerId, 10));\n remove$7(element, timerAttr);\n });\n setupTransitionListeners(element, transition);\n };\n var applyTransitionCss = function (element, origin, position, transition, decision, lastPlacement) {\n var shouldTransition = shouldApplyTransitionCss(transition, decision, lastPlacement);\n if (shouldTransition || isTransitioning$1(element, transition)) {\n set$7(element, 'position', position.position);\n var rect = toBox(origin, element);\n var intermediatePosition_1 = reposition(origin, __assign(__assign({}, decision), { rect: rect }));\n var intermediateCssOptions = mapToObject(properties, function (prop) {\n return intermediatePosition_1[prop];\n });\n if (hasChanges(position, intermediateCssOptions)) {\n setOptions(element, intermediateCssOptions);\n if (shouldTransition) {\n startTransitioning(element, transition);\n }\n reflow(element);\n }\n } else {\n remove$1(element, transition.classes);\n }\n };\n\n var elementSize = function (p) {\n return {\n width: getOuter$1(p),\n height: getOuter$2(p)\n };\n };\n var layout = function (anchorBox, element, bubbles, options) {\n remove$6(element, 'max-height');\n remove$6(element, 'max-width');\n var elementBox = elementSize(element);\n return attempts(element, options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n var setClasses = function (element, decision) {\n var classInfo = decision.classes;\n remove$1(element, classInfo.off);\n add$1(element, classInfo.on);\n };\n var setHeight = function (element, decision, options) {\n var maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n var setWidth = function (element, decision, options) {\n var maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n var position$2 = function (element, decision, options) {\n var positionCss = reposition(options.origin, decision);\n options.transition.each(function (transition) {\n applyTransitionCss(element, options.origin, positionCss, transition, decision, options.lastPlacement);\n });\n applyPositionCss(element, positionCss);\n };\n var setPlacement = function (element, decision) {\n setPlacement$1(element, decision.placement);\n };\n\n var setMaxHeight = function (element, maxHeight) {\n setMax$1(element, Math.floor(maxHeight));\n };\n var anchored = constant$1(function (element, available) {\n setMaxHeight(element, available);\n setAll(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n var expandable$1 = constant$1(function (element, available) {\n setMaxHeight(element, available);\n });\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, lastPlacement, getBounds, overrideOptions, transition) {\n var maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n var maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n var anchorBox = anchor.anchorBox;\n var origin = anchor.origin;\n var options = {\n bounds: viewport(origin, getBounds),\n origin: origin,\n preference: layouts,\n maxHeightFunction: maxHeightFunction,\n maxWidthFunction: maxWidthFunction,\n lastPlacement: lastPlacement,\n transition: transition\n };\n return go(anchorBox, element, bubble, options);\n };\n var go = function (anchorBox, element, bubble, options) {\n var decision = layout(anchorBox, element, bubble, options);\n position$2(element, decision, options);\n setPlacement(element, decision);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n return {\n layout: decision.layout,\n placement: decision.placement\n };\n };\n\n var allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'inset'\n ];\n var nu$5 = function (xOffset, yOffset, classes, insetModifier) {\n if (insetModifier === void 0) {\n insetModifier = 1;\n }\n var insetXOffset = xOffset * insetModifier;\n var insetYOffset = yOffset * insetModifier;\n var getClasses = function (prop) {\n return get$e(classes, prop).getOr([]);\n };\n var make = function (xDelta, yDelta, alignmentsOn) {\n var alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind$3(alignmentsOn, getClasses),\n classesOff: bind$3(alignmentsOff, getClasses)\n };\n };\n return {\n southeast: function () {\n return make(-xOffset, yOffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n southwest: function () {\n return make(xOffset, yOffset, [\n 'top',\n 'alignRight'\n ]);\n },\n south: function () {\n return make(-xOffset / 2, yOffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n northeast: function () {\n return make(-xOffset, -yOffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n northwest: function () {\n return make(xOffset, -yOffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n north: function () {\n return make(-xOffset / 2, -yOffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n east: function () {\n return make(xOffset, -yOffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n },\n west: function () {\n return make(-xOffset, -yOffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n },\n insetNortheast: function () {\n return make(insetXOffset, insetYOffset, [\n 'top',\n 'alignLeft',\n 'inset'\n ]);\n },\n insetNorthwest: function () {\n return make(-insetXOffset, insetYOffset, [\n 'top',\n 'alignRight',\n 'inset'\n ]);\n },\n insetNorth: function () {\n return make(-insetXOffset / 2, insetYOffset, [\n 'top',\n 'alignCentre',\n 'inset'\n ]);\n },\n insetSoutheast: function () {\n return make(insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignLeft',\n 'inset'\n ]);\n },\n insetSouthwest: function () {\n return make(-insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignRight',\n 'inset'\n ]);\n },\n insetSouth: function () {\n return make(-insetXOffset / 2, -insetYOffset, [\n 'bottom',\n 'alignCentre',\n 'inset'\n ]);\n },\n insetEast: function () {\n return make(-insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'right',\n 'inset'\n ]);\n },\n insetWest: function () {\n return make(insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'left',\n 'inset'\n ]);\n }\n };\n };\n var fallback = function () {\n return nu$5(0, 0, {});\n };\n\n var nu$4 = identity$1;\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$c(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var AttributeValue;\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n }(AttributeValue || (AttributeValue = {})));\n var Attribute = 'data-alloy-vertical-dir';\n var isBottomToTopDir = function (el) {\n return closest$2(el, function (current) {\n return isElement$2(current) && get$d(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop;\n });\n };\n\n var schema$y = function () {\n return optionObjOf('layouts', [\n required$1('onLtr'),\n required$1('onRtl'),\n option('onBottomLtr'),\n option('onBottomRtl')\n ]);\n };\n var get$4 = function (elem, info, defaultLtr, defaultRtl, defaultBottomLtr, defaultBottomRtl, dirElement) {\n var isBottomToTop = dirElement.map(isBottomToTopDir).getOr(false);\n var customLtr = info.layouts.map(function (ls) {\n return ls.onLtr(elem);\n });\n var customRtl = info.layouts.map(function (ls) {\n return ls.onRtl(elem);\n });\n var ltr = isBottomToTop ? info.layouts.bind(function (ls) {\n return ls.onBottomLtr.map(function (f) {\n return f(elem);\n });\n }).or(customLtr).getOr(defaultBottomLtr) : customLtr.getOr(defaultLtr);\n var rtl = isBottomToTop ? info.layouts.bind(function (ls) {\n return ls.onBottomRtl.map(function (f) {\n return f(elem);\n });\n }).or(customRtl).getOr(defaultBottomRtl) : customRtl.getOr(defaultRtl);\n var f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n var placement$4 = function (component, anchorInfo, origin) {\n var hotspot = anchorInfo.hotspot;\n var anchorBox = toBox(origin, hotspot.element);\n var layouts = get$4(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var HotspotAnchor = [\n required$1('hotspot'),\n option('bubble'),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$4)\n ];\n\n var placement$3 = function (component, anchorInfo, origin) {\n var pos = translate$2(origin, anchorInfo.x, anchorInfo.y);\n var anchorBox = bounds(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n var layouts = get$4(component.element, anchorInfo, all$1(), allRtl$1(), all$1(), allRtl$1(), Optional.none());\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var MakeshiftAnchor = [\n required$1('x'),\n required$1('y'),\n defaulted('height', 0),\n defaulted('width', 0),\n defaulted('bubble', fallback()),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$3)\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(identity$1, function (point, scrollLeft, scrollTop) {\n return point.translate(-scrollLeft, -scrollTop);\n });\n };\n var toAbsolute = function (pos) {\n return pos.fold(identity$1, identity$1);\n };\n var sum = function (points) {\n return foldl(points, function (b, a) {\n return b.translate(a.left, a.top);\n }, SugarPosition(0, 0));\n };\n var sumAsFixed = function (positions) {\n var points = map$2(positions, toFixed);\n return sum(points);\n };\n var sumAsAbsolute = function (positions) {\n var points = map$2(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$4(frame);\n var compOwner = owner$4(component.element);\n return eq(frameOwner, compOwner);\n };\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute$3);\n };\n var getRootPoint = function (component, origin, anchorInfo) {\n var doc = owner$4(component.element);\n var outerScroll = get$9(doc);\n var offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left, outerScroll.top);\n };\n\n var getBox = function (left, top, width, height) {\n var point = screen(SugarPosition(left, top));\n return Optional.some(pointed(point, width, height));\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 = anchorInfo.showAbove ? aboveOrBelow() : belowOrAbove();\n var layoutsRtl = anchorInfo.showAbove ? aboveOrBelowRtl() : belowOrAboveRtl();\n var layouts = get$4(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n });\n });\n };\n\n var placement$2 = function (component, anchorInfo, origin) {\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.filter(inBody).bind(function (target) {\n var rect = target.dom.getBoundingClientRect();\n var nodeBox = getBox(rect.left, rect.top, rect.width, rect.height);\n var elem = anchorInfo.node.getOr(component.element);\n return calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n required$1('node'),\n required$1('root'),\n option('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$2)\n ];\n\n var zeroWidth = '\\uFEFF';\n var nbsp = '\\xA0';\n\n var create$7 = function (start, soffset, finish, foffset) {\n return {\n start: start,\n soffset: soffset,\n finish: finish,\n foffset: foffset\n };\n };\n var SimRange = { create: create$7 };\n\n var adt$6 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart$1 = function (situ) {\n return situ.fold(identity$1, identity$1, identity$1);\n };\n var before = adt$6.before;\n var on$1 = adt$6.on;\n var after$1 = adt$6.after;\n var Situ = {\n before: before,\n on: on$1,\n after: after$1,\n cata: cata,\n getStart: getStart$1\n };\n\n var adt$5 = 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 exactFromRange = function (simRange) {\n return adt$5.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n };\n var getStart = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return SugarElement.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 domRange = adt$5.domRange;\n var relative = adt$5.relative;\n var exact = adt$5.exact;\n var getWin = function (selection) {\n var start = getStart(selection);\n return defaultView(start);\n };\n var range$1 = SimRange.create;\n var SimSelection = {\n domRange: domRange,\n relative: relative,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range$1\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: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n };\n };\n var getFirstRect$1 = 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 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n var getBounds$2 = function (rng) {\n var rect = rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n var adt$4 = 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(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.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$1(rng),\n rtl: Optional.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 Optional.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 Optional.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$4.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$4.ltr, rng);\n });\n } else {\n return fromRange(win, adt$4.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 adt$4.ltr;\n adt$4.rtl;\n\n var NodeValue = function (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 getOption = function (element) {\n return is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n };\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$1, '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\n var getEnd = function (element) {\n return name$2(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\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$2(elementsWithCursorPosition, name$2(elem));\n };\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 Optional.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope);\n };\n\n var descendants = function (scope, selector) {\n return all$3(selector, scope);\n };\n\n var makeRange = function (start, soffset, finish, foffset) {\n var doc = owner$4(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 = 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 getNativeSelection = function (win) {\n return Optional.from(win.getSelection());\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 Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n var doGetExact = function (selection) {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n var anchor = SugarElement.fromDom(selection.anchorNode);\n var focus_1 = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus_1, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus_1, selection.focusOffset)) : readRange(selection);\n }\n };\n var getExact = function (win) {\n return getNativeSelection(win).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var getFirstRect = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n var getBounds$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getBounds$2(rng);\n };\n\n var point$1 = function (element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n var descendOnce$1 = function (element, offset) {\n var children$1 = children(element);\n if (children$1.length === 0) {\n return point$1(element, offset);\n } else if (offset < children$1.length) {\n return point$1(children$1[offset], 0);\n } else {\n var last = children$1[children$1.length - 1];\n var len = isText$1(last) ? get$3(last).length : children(last).length;\n return point$1(last, len);\n }\n };\n\n var descendOnce = function (element, offset) {\n return isText$1(element) ? point$1(element, offset) : descendOnce$1(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(sel.start, sel.soffset);\n var modFinish = descendOnce(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n });\n };\n var placement$1 = 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 = getBounds$1(win, SimSelection.exactFromRange(sel)).orThunk(function () {\n var x = SugarElement.fromText(zeroWidth);\n before$2(sel.start, x);\n var rect = getFirstRect(win, SimSelection.exact(x, 0, x, 1));\n remove$5(x);\n return rect;\n });\n return optRect.bind(function (rawRect) {\n return getBox(rawRect.left, rawRect.top, rawRect.width, rawRect.height);\n });\n });\n var targetElement = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n return isElement$2(sel.start) ? Optional.some(sel.start) : parentNode(sel.start);\n });\n var elem = targetElement.getOr(component.element);\n return calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option('getSelection'),\n required$1('root'),\n option('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$1)\n ];\n\n var labelPrefix$1 = 'link-layout';\n var eastX = function (anchor) {\n return anchor.x + anchor.width;\n };\n var westX = 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$1 = function (anchor, element, bubbles) {\n return nu$6(eastX(anchor), southY$1(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), labelPrefix$1);\n };\n var southwest$1 = function (anchor, element, bubbles) {\n return nu$6(westX(anchor, element), southY$1(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), labelPrefix$1);\n };\n var northeast$1 = function (anchor, element, bubbles) {\n return nu$6(eastX(anchor), northY$1(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), labelPrefix$1);\n };\n var northwest$1 = function (anchor, element, bubbles) {\n return nu$6(westX(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), labelPrefix$1);\n };\n var all = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1\n ];\n };\n var allRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1\n ];\n };\n\n var placement = function (component, submenuInfo, origin) {\n var anchorBox = toBox(origin, submenuInfo.item.element);\n var layouts = get$4(component.element, submenuInfo, all(), allRtl(), all(), allRtl(), Optional.none());\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var SubmenuAnchor = [\n required$1('item'),\n schema$y(),\n defaulted('overrides', {}),\n output$1('placement', placement)\n ];\n\n var AnchorSchema = choose$1('type', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n var TransitionSchema = [\n requiredArrayOf('classes', string),\n defaultedStringEnum('mode', 'all', [\n 'all',\n 'layout',\n 'placement'\n ])\n ];\n var PositionSchema = [\n defaulted('useFixed', never),\n option('getBounds')\n ];\n var PlacementSchema = [\n requiredOf('anchor', AnchorSchema),\n optionObjOf('transition', TransitionSchema)\n ];\n\n var getFixedOrigin = function () {\n var html = document.documentElement;\n return fixed$1(0, 0, html.clientWidth, html.clientHeight);\n };\n var getRelativeOrigin = function (component) {\n var position = absolute$3(component.element);\n var bounds = component.element.dom.getBoundingClientRect();\n return relative$1(position.left, position.top, bounds.width, bounds.height);\n };\n var place = function (component, origin, anchoring, getBounds, placee, lastPlace, transition) {\n var anchor = box(anchoring.anchorBox, origin);\n return simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, lastPlace, getBounds, anchoring.overrides, transition);\n };\n var position$1 = function (component, posConfig, posState, placee, placementSpec) {\n positionWithin(component, posConfig, posState, placee, placementSpec, Optional.none());\n };\n var positionWithin = function (component, posConfig, posState, placee, placementSpec, boxElement) {\n var boundsBox = boxElement.map(box$1);\n return positionWithinBounds(component, posConfig, posState, placee, placementSpec, boundsBox);\n };\n var positionWithinBounds = function (component, posConfig, posState, placee, placementSpec, bounds) {\n var placeeDetail = asRawOrDie$1('placement.info', objOf(PlacementSchema), placementSpec);\n var anchorage = placeeDetail.anchor;\n var element = placee.element;\n var placeeState = posState.get(placee.uid);\n preserve$1(function () {\n set$7(element, 'position', 'fixed');\n var oldVisibility = getRaw(element, 'visibility');\n set$7(element, 'visibility', 'hidden');\n var origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n var placer = anchorage.placement;\n var getBounds = bounds.map(constant$1).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(function (anchoring) {\n var doPlace = anchoring.placer.getOr(place);\n var newState = doPlace(component, origin, anchoring, getBounds, placee, placeeState, placeeDetail.transition);\n posState.set(placee.uid, newState);\n });\n oldVisibility.fold(function () {\n remove$6(element, 'visibility');\n }, function (vis) {\n set$7(element, 'visibility', vis);\n });\n if (getRaw(element, 'left').isNone() && getRaw(element, 'top').isNone() && getRaw(element, 'right').isNone() && getRaw(element, 'bottom').isNone() && is$1(getRaw(element, 'position'), 'fixed')) {\n remove$6(element, 'position');\n }\n }, element);\n };\n var getMode = function (component, pConfig, _pState) {\n return pConfig.useFixed() ? 'fixed' : 'absolute';\n };\n var reset$1 = function (component, pConfig, posState, placee) {\n var element = placee.element;\n each$1([\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], function (prop) {\n return remove$6(element, prop);\n });\n reset$2(element);\n posState.clear(placee.uid);\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n position: position$1,\n positionWithin: positionWithin,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode,\n reset: reset$1\n });\n\n var init$g = function () {\n var state = {};\n var set = function (id, data) {\n state[id] = data;\n };\n var get = function (id) {\n return get$e(state, id);\n };\n var clear = function (id) {\n if (isNonNullable(id)) {\n delete state[id];\n } else {\n state = {};\n }\n };\n return nu$8({\n readState: function () {\n return state;\n },\n clear: clear,\n set: set,\n get: get\n });\n };\n\n var PositioningState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$g\n });\n\n var Positioning = create$8({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis,\n state: PositioningState\n });\n\n var fireDetaching = function (component) {\n emit(component, detachedFromDom());\n var children = component.components();\n each$1(children, fireDetaching);\n };\n var fireAttaching = function (component) {\n var children = component.components();\n each$1(children, fireAttaching);\n emit(component, attachedToDom());\n };\n var attach$1 = function (parent, child) {\n append$2(parent.element, child.element);\n };\n var detachChildren$1 = function (component) {\n each$1(component.components(), function (childComp) {\n return remove$5(childComp.element);\n });\n empty(component.element);\n component.syncComponents();\n };\n var replaceChildren = function (component, newChildren) {\n var subs = component.components();\n detachChildren$1(component);\n var deleted = difference(subs, newChildren);\n each$1(deleted, function (comp) {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each$1(newChildren, function (childComp) {\n if (!childComp.getSystem().isConnected()) {\n component.getSystem().addToWorld(childComp);\n attach$1(component, childComp);\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach$1(component, childComp);\n }\n component.syncComponents();\n });\n };\n\n var attach = function (parent, child) {\n attachWith(parent, child, append$2);\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$5(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).toOptional();\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$1(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n var attachSystem = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, append$2);\n };\n var attachSystemAfter = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, after$2);\n };\n var attachSystemWith = function (element, guiSystem, inserter) {\n inserter(element, guiSystem.element);\n var children$1 = children(guiSystem.element);\n each$1(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$1(children$1, function (child) {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove$5(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$1 = function (sandbox, sConfig, sState, data) {\n var newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n var setContent = function (sandbox, sConfig, sState, data) {\n return sState.get().map(function () {\n return rebuild(sandbox, sConfig, sState, data);\n });\n };\n var openWhileCloaked = function (sandbox, sConfig, sState, data, transaction) {\n cloak(sandbox, sConfig);\n open$1(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n var close$1 = 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$1 = function (_sandbox, _sConfig, sState) {\n return sState.isOpen();\n };\n var isPartOf = function (sandbox, sConfig, sState, queryElem) {\n return isOpen$1(sandbox, sConfig, sState) && sState.get().exists(function (data) {\n return sConfig.isPartOf(sandbox, data, queryElem);\n });\n };\n var getState$2 = 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$7(sandbox.element, attr);\n }, function (v) {\n set$8(sandbox.element, attr, v);\n });\n set$7(sandbox.element, cssKey, newValue);\n };\n var restore = function (sandbox, cssKey, attr) {\n getOpt(sandbox.element, attr).fold(function () {\n return remove$6(sandbox.element, cssKey);\n }, function (oldValue) {\n return set$7(sandbox.element, cssKey, oldValue);\n });\n };\n var cloak = function (sandbox, sConfig, _sState) {\n var sink = sConfig.getAttachPoint(sandbox);\n set$7(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 __proto__: null,\n cloak: cloak,\n decloak: decloak,\n open: open$1,\n openWhileCloaked: openWhileCloaked,\n close: close$1,\n isOpen: isOpen$1,\n isPartOf: isPartOf,\n getState: getState$2,\n setContent: setContent\n });\n\n var events$g = function (sandboxConfig, sandboxState) {\n return derive$2([run$1(sandboxClose(), function (sandbox, _simulatedEvent) {\n close$1(sandbox, sandboxConfig, sandboxState);\n })]);\n };\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$g\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n required$1('isPartOf'),\n required$1('getAttachPoint'),\n defaulted('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n var init$f = function () {\n var contents = value$1();\n var readState = constant$1('not-implemented');\n return nu$8({\n readState: readState,\n isOpen: contents.isSet,\n clear: contents.clear,\n set: contents.set,\n get: contents.get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$f\n });\n\n var Sandboxing = create$8({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n var dismissPopups = constant$1('dismiss.popups');\n var repositionPopups = constant$1('reposition.popups');\n var mouseReleased = constant$1('mouse.released');\n\n var schema$x = objOfOnly([\n defaulted('isExtraPart', never),\n optionObjOf('fireEventInstead', [defaulted('event', dismissRequested())])\n ]);\n var receivingChannel$1 = function (rawSpec) {\n var _a;\n var detail = asRawOrDie$1('Dismissal', schema$x, rawSpec);\n return _a = {}, _a[dismissPopups()] = {\n schema: objOfOnly([required$1('target')]),\n onReceive: function (sandbox, data) {\n if (Sandboxing.isOpen(sandbox)) {\n var isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n if (!isPart) {\n detail.fireEventInstead.fold(function () {\n return Sandboxing.close(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }\n }, _a;\n };\n\n var schema$w = objOfOnly([\n optionObjOf('fireEventInstead', [defaulted('event', repositionRequested())]),\n requiredFunction('doReposition')\n ]);\n var receivingChannel = function (rawSpec) {\n var _a;\n var detail = asRawOrDie$1('Reposition', schema$w, rawSpec);\n return _a = {}, _a[repositionPopups()] = {\n onReceive: function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(function () {\n return detail.doReposition(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }, _a;\n };\n\n var onLoad$5 = function (component, repConfig, repState) {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n var onUnload$2 = function (component, repConfig, repState) {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n var setValue$3 = function (component, repConfig, repState, data) {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n var getValue$3 = 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 __proto__: null,\n onLoad: onLoad$5,\n onUnload: onUnload$2,\n setValue: setValue$3,\n getValue: getValue$3,\n getState: getState$1\n });\n\n var events$f = function (repConfig, repState) {\n var es = repConfig.resetOnDom ? [\n runOnAttached(function (comp, _se) {\n onLoad$5(comp, repConfig, repState);\n }),\n runOnDetached(function (comp, _se) {\n onUnload$2(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad$5)];\n return derive$2(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n var memory$1 = 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$8({\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 = noop;\n return nu$8({ 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 get$e(dataByValue.get(), itemString).orThunk(function () {\n return get$e(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$1(items, function (item) {\n newDataByValue[item.value] = item;\n get$e(item, 'meta').each(function (meta) {\n get$e(meta, 'text').each(function (text) {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set(__assign(__assign({}, currentDataByValue), newDataByValue));\n dataByText.set(__assign(__assign({}, currentDataByText), newDataByText));\n };\n return nu$8({\n readState: readState,\n lookup: lookup,\n update: update,\n clear: clear\n });\n };\n var init$e = function (spec) {\n return spec.store.manager.state(spec);\n };\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory$1,\n dataset: dataset,\n manual: manual,\n init: init$e\n });\n\n var setValue$2 = 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$2 = function (component, repConfig, repState) {\n var store = repConfig.store;\n var key = store.getDataKey(component);\n return repState.lookup(key).getOrThunk(function () {\n return store.getFallbackEntry(key);\n });\n };\n var onLoad$4 = function (component, repConfig, repState) {\n var store = repConfig.store;\n store.initialValue.each(function (data) {\n setValue$2(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 required$1('getFallbackEntry'),\n required$1('getDataKey'),\n required$1('setValue'),\n output$1('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$4,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n var getValue$1 = function (component, repConfig, _repState) {\n return repConfig.store.getValue(component);\n };\n var setValue$1 = function (component, repConfig, _repState, data) {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var onLoad$3 = function (component, repConfig, _repState) {\n repConfig.store.initialValue.each(function (data) {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n required$1('getValue'),\n defaulted('setValue', noop),\n option('initialValue'),\n output$1('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$3,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n var setValue = function (component, repConfig, repState, data) {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n var getValue = function (component, repConfig, repState) {\n return repState.get();\n };\n var onLoad$2 = 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 = function (component, repConfig, repState) {\n repState.clear();\n };\n var MemoryStore = [\n option('initialValue'),\n output$1('manager', {\n setValue: setValue,\n getValue: getValue,\n onLoad: onLoad$2,\n onUnload: onUnload,\n state: memory$1\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('resetOnDom', false)\n ];\n\n var Representing = create$8({\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 field = function (name, forbidden) {\n return defaultedObjOf(name, {}, map$2(forbidden, function (f) {\n return forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name);\n }).concat([customField('dump', identity$1)]));\n };\n var get$2 = function (data) {\n return data.dump;\n };\n var augment = function (data, original) {\n return __assign(__assign({}, derive$1(original)), data.dump);\n };\n var SketchBehaviours = {\n field: field,\n augment: augment,\n get: get$2\n };\n\n var _placeholder = 'placeholder';\n var adt$3 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n var isSubstituted = function (spec) {\n return has$2(spec, '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$3.single(true, constant$1(compSpec));\n }\n return get$e(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 (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$3.single(false, constant$1(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 = isSubstituted(compSpec) ? valueThunk(detail, compSpec.config, compSpec.validated) : valueThunk(detail);\n var childSpecs = get$e(value, 'components').getOr([]);\n var substituted = bind$3(childSpecs, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n return [__assign(__assign({}, value), { components: substituted })];\n }, function (req, valuesThunk) {\n if (isSubstituted(compSpec)) {\n var values = valuesThunk(detail, compSpec.config, compSpec.validated);\n var preprocessor = compSpec.validated.preprocess.getOr(identity$1);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n var substituteAll = function (owner, detail, components, placeholders) {\n return bind$3(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) {\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$1(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(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 single$2 = adt$3.single;\n var multiple = adt$3.multiple;\n var placeholder = constant$1(_placeholder);\n\n var adt$2 = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n var fFactory = defaulted('factory', { sketch: identity$1 });\n var fSchema = defaulted('schema', []);\n var fName = required$1('name');\n var fPname = field$1('pname', 'pname', defaultedThunk(function (typeSpec) {\n return '';\n }), anyValue());\n var fGroupSchema = customField('schema', function () {\n return [option('preprocess')];\n });\n var fDefaults = defaulted('defaults', constant$1({}));\n var fOverrides = defaulted('overrides', constant$1({}));\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 required$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n var asNamedPart = function (part) {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.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$1, identity$1, identity$1, identity$1);\n };\n var convert = function (adtConstructor, partSchema) {\n return function (spec) {\n var data = asRawOrDie$1('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n };\n var required = convert(adt$2.required, requiredSpec);\n var external$1 = convert(adt$2.external, externalSpec);\n var optional = convert(adt$2.optional, optionalSpec);\n var group = convert(adt$2.group, groupSpec);\n var original = constant$1('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n __proto__: null,\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 = 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$1(parts, function (part) {\n part.fold(function (data) {\n internals[data.pname] = single$2(true, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n var partSpec = detail.parts[data.name];\n externals[data.name] = constant$1(data.factory.sketch(combine(detail, data, partSpec[original()]), partSpec));\n }, function (data) {\n internals[data.pname] = single$2(false, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine(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$2(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$1(internals),\n externals: constant$1(externals)\n };\n };\n\n var generate$3 = function (owner, parts) {\n var r = {};\n each$1(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$1('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return __assign(__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$1 = 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$3(parts, function (part) {\n return part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(function (data) {\n return requiredObjOf(data.name, data.schema.concat([snapshot(original())]));\n }).toArray();\n });\n };\n var names = function (parts) {\n return map$2(parts, name$1);\n };\n var substitutes = function (owner, detail, parts) {\n return subs(owner, detail, parts);\n };\n var components$1 = function (owner, detail, internals) {\n return substitutePlaces(Optional.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).toOptional();\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$1(partKeys, function (pk) {\n r[pk] = constant$1(system.getByUid(uids[pk]));\n });\n return r;\n };\n var getAllParts = function (component, detail) {\n var system = component.getSystem();\n return map$1(detail.partUids, function (pUid, _k) {\n return constant$1(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$1(partKeys, function (pk) {\n r[pk] = constant$1(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n var defaultUids = function (baseUid, partTypes) {\n var partNames = names(partTypes);\n return wrapAll(map$2(partNames, function (pn) {\n return {\n key: pn,\n value: baseUid + '-' + pn\n };\n }));\n };\n var defaultUidsSchema = function (partTypes) {\n return field$1('partUids', 'partUids', mergeWithThunk(function (spec) {\n return defaultUids(spec.uid, partTypes);\n }), anyValue());\n };\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$3,\n generateOne: generateOne$1,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components$1,\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 (partSchemas, partUidsSchemas) {\n var ps = partSchemas.length > 0 ? [requiredObjOf('parts', partSchemas)] : [];\n return ps.concat([\n required$1('uid'),\n defaulted('dom', {}),\n defaulted('components', []),\n snapshot('originalSpec'),\n defaulted('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n var asRawOrDie = function (label, schema, spec, partSchemas, partUidsSchemas) {\n var baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie$1(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(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n var composite$1 = 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(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n var subs = substitutes(owner, detail, partTypes);\n var components = components$1(owner, detail, subs.internals());\n return factory(detail, components, specWithUid, subs.externals());\n };\n var hasUid = function (spec) {\n return has$2(spec, 'uid');\n };\n var supplyUid = function (spec) {\n return hasUid(spec) ? spec : __assign(__assign({}, spec), { uid: generate$5('uid') });\n };\n\n var isSketchSpec = function (spec) {\n return spec.uid !== undefined;\n };\n var singleSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n var compositeSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n required$1('partFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n var single = function (rawConfig) {\n var config = asRawOrDie$1('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(__assign({\n name: config.name,\n configFields: config.configFields,\n sketch: sketch\n }, apis), extraApis);\n };\n var composite = function (rawConfig) {\n var config = asRawOrDie$1('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n var sketch = function (spec) {\n return composite$1(config.name, config.configFields, config.partFields, config.factory, spec);\n };\n var parts = generate$3(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(__assign({\n name: config.name,\n partFields: config.partFields,\n configFields: config.configFields,\n sketch: sketch,\n parts: parts\n }, apis), extraApis);\n };\n\n var inside = function (target) {\n return name$2(target) === 'input' && get$d(target, 'type') !== 'radio' || name$2(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 __proto__: null,\n getCurrent: getCurrent\n });\n\n var ComposeSchema = [required$1('find')];\n\n var Composing = create$8({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n var nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n var onLoad$1 = function (component, disableConfig, disableState) {\n var f = disableConfig.disabled() ? disable$1 : enable$1;\n f(component, disableConfig);\n };\n var hasNative = function (component, config) {\n return config.useNative === true && contains$2(nativeDisabled, name$2(component.element));\n };\n var nativeIsDisabled = function (component) {\n return has$1(component.element, 'disabled');\n };\n var nativeDisable = function (component) {\n set$8(component.element, 'disabled', 'disabled');\n };\n var nativeEnable = function (component) {\n remove$7(component.element, 'disabled');\n };\n var ariaIsDisabled = function (component) {\n return get$d(component.element, 'aria-disabled') === 'true';\n };\n var ariaDisable = function (component) {\n set$8(component.element, 'aria-disabled', 'true');\n };\n var ariaEnable = function (component) {\n set$8(component.element, 'aria-disabled', 'false');\n };\n var disable$1 = function (component, disableConfig, _disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n add$2(component.element, disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n var enable$1 = function (component, disableConfig, _disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n remove$2(component.element, disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n var isDisabled = function (component, disableConfig) {\n return hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n };\n var set$3 = function (component, disableConfig, disableState, disabled) {\n var f = disabled ? disable$1 : enable$1;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable$1,\n disable: disable$1,\n isDisabled: isDisabled,\n onLoad: onLoad$1,\n set: set$3\n });\n\n var exhibit$5 = function (base, disableConfig) {\n return nu$7({ classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : [] });\n };\n var events$e = function (disableConfig, disableState) {\n return derive$2([\n abort(execute$5(), function (component, _simulatedEvent) {\n return isDisabled(component, disableConfig);\n }),\n loadEvent(disableConfig, disableState, onLoad$1)\n ]);\n };\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$5,\n events: events$e\n });\n\n var DisableSchema = [\n defaultedFunction('disabled', never),\n defaulted('useNative', true),\n option('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n var Disabling = create$8({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n var dehighlightAllExcept = function (component, hConfig, hState, skip) {\n var highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each$1(highlighted, function (h) {\n if (!exists(skip, function (skipComp) {\n return skipComp.element === h;\n })) {\n remove$2(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(function (target) {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n });\n }\n });\n };\n var dehighlightAll = function (component, hConfig, hState) {\n return dehighlightAllExcept(component, hConfig, hState, []);\n };\n var dehighlight = function (component, hConfig, hState, target) {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$2(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n }\n };\n var highlight = 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$1());\n }\n };\n var highlightFirst = function (component, hConfig, hState) {\n getFirst(component, hConfig).each(function (firstComp) {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n var highlightLast = function (component, hConfig, hState) {\n getLast(component, hConfig).each(function (lastComp) {\n highlight(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 err;\n }, function (firstComp) {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n var highlightBy = function (component, hConfig, hState, predicate) {\n var candidates = getCandidates(component, hConfig);\n var targetComp = find$5(candidates, predicate);\n targetComp.each(function (c) {\n highlight(component, hConfig, hState, c);\n });\n };\n var isHighlighted = function (component, hConfig, hState, queryTarget) {\n return has(queryTarget.element, hConfig.highlightClass);\n };\n var getHighlighted = function (component, hConfig, _hState) {\n return descendant(component.element, '.' + hConfig.highlightClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n var getByIndex = function (component, hConfig, hState, index) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n return Optional.from(items[index]).fold(function () {\n return Result.error(new Error('No element found with index ' + index));\n }, component.getSystem().getByDom);\n };\n var getFirst = function (component, hConfig, _hState) {\n return descendant(component.element, '.' + hConfig.itemClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n var getLast = function (component, hConfig, _hState) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n var last = items.length > 0 ? Optional.some(items[items.length - 1]) : Optional.none();\n return last.bind(function (c) {\n return component.getSystem().getByDom(c).toOptional();\n });\n };\n var getDelta$2 = function (component, hConfig, hState, delta) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n var current = findIndex$1(items, function (item) {\n return has(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]).toOptional();\n });\n };\n var getPrevious = function (component, hConfig, hState) {\n return getDelta$2(component, hConfig, hState, -1);\n };\n var getNext = function (component, hConfig, hState) {\n return getDelta$2(component, hConfig, hState, +1);\n };\n var getCandidates = function (component, hConfig, _hState) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map$2(items, function (i) {\n return component.getSystem().getByDom(i).toOptional();\n }));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight,\n highlight: highlight,\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 required$1('highlightClass'),\n required$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n var Highlighting = create$8({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n var BACKSPACE = [8];\n var TAB = [9];\n var ENTER = [13];\n var ESCAPE = [27];\n var SPACE = [32];\n var LEFT = [37];\n var UP = [38];\n var RIGHT = [39];\n var DOWN = [40];\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$5(before.concat(after), predicate);\n };\n var tryPrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n return find$5(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$5(after.concat(before), predicate);\n };\n var tryNext = function (values, index, predicate) {\n var after = values.slice(index + 1);\n return find$5(after, predicate);\n };\n\n var inSet = function (keys) {\n return function (event) {\n var raw = event.raw;\n return contains$2(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 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 rule = function (matches, action) {\n return {\n matches: matches,\n classification: action\n };\n };\n var choose = function (transitions, event) {\n var transition = find$5(transitions, function (t) {\n return t.matches(event);\n });\n return transition.map(function (t) {\n return t.classification;\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$2 = function () {\n var get = function (component) {\n return search(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('focusManager', dom$2()),\n defaultedOf('focusInside', 'onFocus', valueOf(function (val) {\n return contains$2([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside');\n })),\n output$1('handler', me),\n output$1('state', stateInit),\n output$1('sendFocusIn', optFocusIn)\n ]);\n };\n var processKey = function (component, simulatedEvent, getRules, keyingConfig, keyingState) {\n var rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose(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 ? Optional.none() : optFocusIn(keyingConfig).map(function (focusIn) {\n return run$1(focus$4(), 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 var keyboardEvents = [\n run$1(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$1(keyup(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(function (_) {\n simulatedEvent.stop();\n });\n })\n ];\n return derive$2(onFocusHandler.toArray().concat(keyboardEvents));\n };\n var me = {\n schema: schema,\n processKey: processKey,\n toEvents: toEvents\n };\n return me;\n };\n\n var create$6 = function (cyclicField) {\n var schema = [\n option('onEscape'),\n option('onEnter'),\n defaulted('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted('firstTabstop', 0),\n defaulted('useTabstopAt', always),\n option('visibilitySelector')\n ].concat([cyclicField]);\n var isVisible = function (tabbingConfig, element) {\n var target = tabbingConfig.visibilitySelector.bind(function (sel) {\n return closest$1(element, sel);\n }).getOr(element);\n return get$b(target) > 0;\n };\n var findInitial = function (component, tabbingConfig) {\n var tabstops = descendants(component.element, tabbingConfig.selector);\n var visibles = filter$2(tabstops, function (elem) {\n return isVisible(tabbingConfig, elem);\n });\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n var findCurrent = function (component, tabbingConfig) {\n return tabbingConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(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, _tabbingState) {\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 ? Optional.some(true) : Optional.none();\n }, function (target) {\n tabbingConfig.focusManager.set(component, target);\n return Optional.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$1(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) {\n var navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var goForwards = function (component, simulatedEvent, tabbingConfig) {\n var navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var execute = function (component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEnter.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var exit = function (component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEscape.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var getKeydownRules = constant$1([\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$1([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Optional.some(focusIn);\n });\n };\n\n var AcyclicType = create$6(customField('cyclic', never));\n\n var CyclicType = create$6(customField('cyclic', always));\n\n var doDefaultExecute = function (component, _simulatedEvent, focused) {\n dispatch(component, focused, execute$5());\n return Optional.some(true);\n };\n var defaultExecute = function (component, simulatedEvent, focused) {\n var isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n var stopEventForFirefox = function (_component, _simulatedEvent) {\n return Optional.some(true);\n };\n\n var schema$v = [\n defaulted('execute', defaultExecute),\n defaulted('useSpace', false),\n defaulted('useEnter', true),\n defaulted('useControlEnter', false),\n defaulted('useDown', false)\n ];\n var execute$4 = function (component, simulatedEvent, executeConfig) {\n return executeConfig.execute(component, simulatedEvent, component.element);\n };\n var getKeydownRules$5 = 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$4)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER)\n ]), execute$4)] : []);\n };\n var getKeyupRules$5 = function (component, _simulatedEvent, executeConfig, _executeState) {\n return executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n var ExecutionType = typical(schema$v, NoState.init, getKeydownRules$5, getKeyupRules$5, function () {\n return Optional.none();\n });\n\n var flatgrid$1 = function () {\n var dimensions = value$1();\n var setGridSize = function (numRows, numColumns) {\n dimensions.set({\n numRows: numRows,\n numColumns: 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$8({\n readState: function () {\n return dimensions.get().map(function (d) {\n return {\n numRows: String(d.numRows),\n numColumns: String(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$d = function (spec) {\n return spec.state(spec);\n };\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid$1,\n init: init$d\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$1 = function (moveLeft, moveRight) {\n var movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n var east$1 = 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$1 = useV;\n var south$1 = useV;\n var move$1 = useV;\n\n var isHidden$1 = function (dom) {\n return dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n };\n var isVisible = function (element) {\n return !isHidden$1(element.dom);\n };\n\n var locate = function (candidates, predicate) {\n return findIndex$1(candidates, predicate).map(function (index) {\n return {\n index: index,\n candidates: candidates\n };\n });\n };\n\n var locateVisible = function (container, current, selector) {\n var predicate = function (x) {\n return eq(x, current);\n };\n var candidates = descendants(container, selector);\n var visible = filter$2(candidates, isVisible);\n return locate(visible, predicate);\n };\n var findIndex = function (elements, target) {\n return findIndex$1(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 ? Optional.some(values[newIndex]) : Optional.none();\n });\n };\n var cycleHorizontal$1 = 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 Optional.some({\n row: oldRow,\n column: newColumn\n });\n });\n };\n var cycleVertical$1 = 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 = clamp$1(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n };\n var cycleRight$1 = function (values, index, numRows, numCols) {\n return cycleHorizontal$1(values, index, numRows, numCols, +1);\n };\n var cycleLeft$1 = function (values, index, numRows, numCols) {\n return cycleHorizontal$1(values, index, numRows, numCols, -1);\n };\n var cycleUp$1 = function (values, index, numRows, numCols) {\n return cycleVertical$1(values, index, numRows, numCols, -1);\n };\n var cycleDown$1 = function (values, index, numRows, numCols) {\n return cycleVertical$1(values, index, numRows, numCols, +1);\n };\n\n var schema$u = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('captureTab', false),\n initSize()\n ];\n var focusIn$3 = function (component, gridConfig, _gridState) {\n descendant(component.element, gridConfig.selector).each(function (first) {\n gridConfig.focusManager.set(component, first);\n });\n };\n var findCurrent$1 = function (component, gridConfig) {\n return gridConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(elem, gridConfig.selector);\n });\n };\n var execute$3 = function (component, simulatedEvent, gridConfig, _gridState) {\n return findCurrent$1(component, gridConfig).bind(function (focused) {\n return gridConfig.execute(component, simulatedEvent, focused);\n });\n };\n var doMove$2 = 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) {\n return gridConfig.captureTab ? Optional.some(true) : Optional.none();\n };\n var doEscape$1 = function (component, simulatedEvent, gridConfig) {\n return gridConfig.onEscape(component, simulatedEvent);\n };\n var moveLeft$3 = doMove$2(cycleLeft$1);\n var moveRight$3 = doMove$2(cycleRight$1);\n var moveNorth$1 = doMove$2(cycleUp$1);\n var moveSouth$1 = doMove$2(cycleDown$1);\n var getKeydownRules$4 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT), east$1(moveLeft$3, moveRight$3)),\n rule(inSet(UP), north$1(moveNorth$1)),\n rule(inSet(DOWN), south$1(moveSouth$1)),\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$1),\n rule(inSet(SPACE.concat(ENTER)), execute$3)\n ]);\n var getKeyupRules$4 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlatgridType = typical(schema$u, flatgrid$1, getKeydownRules$4, getKeyupRules$4, function () {\n return Optional.some(focusIn$3);\n });\n\n var horizontal = function (container, selector, current, delta) {\n var isDisabledButton = function (candidate) {\n return name$2(candidate) === 'button' && get$d(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 Optional.none();\n } else {\n return isDisabledButton(candidates[newIndex]) ? tryCycle(initial, newIndex, candidates) : Optional.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$t = [\n required$1('selector'),\n defaulted('getInitial', Optional.none),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('executeOnMove', false),\n defaulted('allowVertical', true)\n ];\n var findCurrent = function (component, flowConfig) {\n return flowConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(elem, flowConfig.selector);\n });\n };\n var execute$2 = function (component, simulatedEvent, flowConfig) {\n return findCurrent(component, flowConfig).bind(function (focused) {\n return flowConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$2 = function (component, flowConfig, _state) {\n flowConfig.getInitial(component).orThunk(function () {\n return descendant(component.element, flowConfig.selector);\n }).each(function (first) {\n flowConfig.focusManager.set(component, first);\n });\n };\n var moveLeft$2 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveRight$2 = 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, flowState) {\n return movement(component, simulatedEvent, flowConfig, flowState).bind(function () {\n return flowConfig.executeOnMove ? execute$2(component, simulatedEvent, flowConfig) : Optional.some(true);\n });\n };\n };\n var doEscape = function (component, simulatedEvent, flowConfig) {\n return flowConfig.onEscape(component, simulatedEvent);\n };\n var getKeydownRules$3 = 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$1(moveLeft$2, moveRight$2))),\n rule(inSet(eastMovers), doMove$1(east$1(moveLeft$2, moveRight$2))),\n rule(inSet(ENTER), execute$2),\n rule(inSet(SPACE), execute$2),\n rule(inSet(ESCAPE), doEscape)\n ];\n };\n var getKeyupRules$3 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlowType = typical(schema$t, NoState.init, getKeydownRules$3, getKeyupRules$3, function () {\n return Optional.some(focusIn$2);\n });\n\n var toCell = function (matrix, rowIndex, columnIndex) {\n return Optional.from(matrix[rowIndex]).bind(function (row) {\n return Optional.from(row[columnIndex]).map(function (cell) {\n return {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n cell: cell\n };\n });\n });\n };\n var cycleHorizontal = 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 = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp$1(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 = clamp$1(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var moveVertical = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = clamp$1(startRow + deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp$1(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var cycleRight = function (matrix, startRow, startCol) {\n return cycleHorizontal(matrix, startRow, startCol, +1);\n };\n var cycleLeft = function (matrix, startRow, startCol) {\n return cycleHorizontal(matrix, startRow, startCol, -1);\n };\n var cycleUp = function (matrix, startRow, startCol) {\n return cycleVertical(matrix, startCol, startRow, -1);\n };\n var cycleDown = function (matrix, startRow, startCol) {\n return cycleVertical(matrix, startCol, startRow, +1);\n };\n var moveLeft$1 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, -1);\n };\n var moveRight$1 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, +1);\n };\n var moveUp$1 = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, -1);\n };\n var moveDown$1 = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, +1);\n };\n\n var schema$s = [\n requiredObjOf('selectors', [\n required$1('row'),\n required$1('cell')\n ]),\n defaulted('cycles', true),\n defaulted('previousSelector', Optional.none),\n defaulted('execute', defaultExecute)\n ];\n var focusIn$1 = function (component, matrixConfig, _state) {\n var focused = matrixConfig.previousSelector(component).orThunk(function () {\n var selectors = matrixConfig.selectors;\n return descendant(component.element, selectors.cell);\n });\n focused.each(function (cell) {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n var execute$1 = function (component, simulatedEvent, matrixConfig) {\n return search(component.element).bind(function (focused) {\n return matrixConfig.execute(component, simulatedEvent, focused);\n });\n };\n var toMatrix = function (rows, matrixConfig) {\n return map$2(rows, function (row) {\n return descendants(row, matrixConfig.selectors.cell);\n });\n };\n var doMove = function (ifCycle, ifMove) {\n return function (element, focused, matrixConfig) {\n var move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$1(focused, matrixConfig.selectors.row).bind(function (inRow) {\n var cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex(cellsInRow, focused).bind(function (colIndex) {\n var allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex(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 = doMove(cycleLeft, moveLeft$1);\n var moveRight = doMove(cycleRight, moveRight$1);\n var moveNorth = doMove(cycleUp, moveUp$1);\n var moveSouth = doMove(cycleDown, moveDown$1);\n var getKeydownRules$2 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft, moveRight)),\n rule(inSet(RIGHT), east$1(moveLeft, moveRight)),\n rule(inSet(UP), north$1(moveNorth)),\n rule(inSet(DOWN), south$1(moveSouth)),\n rule(inSet(SPACE.concat(ENTER)), execute$1)\n ]);\n var getKeyupRules$2 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$s, NoState.init, getKeydownRules$2, getKeyupRules$2, function () {\n return Optional.some(focusIn$1);\n });\n\n var schema$r = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n defaulted('moveOnTab', false)\n ];\n var execute = 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 = function (component, menuConfig, _state) {\n descendant(component.element, menuConfig.selector).each(function (first) {\n menuConfig.focusManager.set(component, first);\n });\n };\n var moveUp = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveDown = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var fireShiftTab = function (component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move$1(moveUp)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n var fireTab = function (component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move$1(moveDown)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n var getKeydownRules$1 = constant$1([\n rule(inSet(UP), move$1(moveUp)),\n rule(inSet(DOWN), move$1(moveDown)),\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),\n rule(inSet(SPACE), execute)\n ]);\n var getKeyupRules$1 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$r, NoState.init, getKeydownRules$1, getKeyupRules$1, function () {\n return Optional.some(focusIn);\n });\n\n var schema$q = [\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('stopSpaceKeyup', false),\n option('focusIn')\n ];\n var getKeydownRules = 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 = function (component, simulatedEvent, specialInfo) {\n return specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n var SpecialType = typical(schema$q, NoState.init, getKeydownRules, getKeyupRules, 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 = 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 __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n var isFlatgridState = function (keyState) {\n return hasNonNullableKey(keyState, 'setGridSize');\n };\n var Keying = createModes({\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 (!isFlatgridState(keyState)) {\n console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n var set$2 = function (component, replaceConfig, replaceState, data) {\n preserve$1(function () {\n var newChildren = map$2(data, component.getSystem().build);\n replaceChildren(component, newChildren);\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 = function (component, replaceConfig, replaceState, appendee) {\n insert(component, replaceConfig, append$2, appendee);\n };\n var prepend = function (component, replaceConfig, replaceState, prependee) {\n insert(component, replaceConfig, prepend$1, prependee);\n };\n var remove = function (component, replaceConfig, replaceState, removee) {\n var children = contents(component);\n var foundChild = find$5(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);\n return Optional.from(children[replaceeIndex]).map(function (replacee) {\n remove(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);\n return findIndex$1(children, replaceePred).bind(function (replaceeIndex) {\n return replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer);\n });\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n remove: remove,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$2,\n contents: contents\n });\n\n var Replacing = create$8({\n fields: [],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n var events$d = function (name, eventHandlers) {\n var events = derive$2(eventHandlers);\n return create$8({\n fields: [required$1('enabled')],\n name: name,\n active: { events: constant$1(events) }\n });\n };\n var config = function (name, eventHandlers) {\n var me = events$d(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me: me,\n configAsRaw: constant$1({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n var focus$2 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n focus$3(component.element);\n focusConfig.onFocus(component);\n }\n };\n var blur = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n blur$1(component.element);\n }\n };\n var isFocused = function (component) {\n return hasFocus(component.element);\n };\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur,\n isFocused: isFocused\n });\n\n var exhibit$4 = function (base, focusConfig) {\n var mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$7(mod);\n };\n var events$c = function (focusConfig) {\n return derive$2([run$1(focus$4(), function (component, simulatedEvent) {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run$1(mousedown(), function (_, simulatedEvent) {\n simulatedEvent.event.prevent();\n })] : []));\n };\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4,\n events: events$c\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted('stopMousedown', false),\n defaulted('ignore', false)\n ];\n\n var Focusing = create$8({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\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 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$2(component.element, toggleClass);\n }\n });\n };\n var toggle$2 = function (component, toggleConfig, toggleState) {\n set$1(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$1 = 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 = function (component, toggleConfig, toggleState) {\n set$1(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$1\n });\n\n var exhibit$3 = function () {\n return nu$7({});\n };\n var events$b = function (toggleConfig, toggleState) {\n var execute = executeEvent(toggleConfig, toggleState, toggle$2);\n var load = loadEvent(toggleConfig, toggleState, onLoad);\n return derive$2(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$b\n });\n\n var updatePressed = function (component, ariaInfo, status) {\n set$8(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$8(component.element, 'aria-selected', status);\n };\n var updateChecked = function (component, ariaInfo, status) {\n set$8(component.element, 'aria-checked', status);\n };\n var updateExpanded = function (component, ariaInfo, status) {\n set$8(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted('selected', false),\n option('toggleClass'),\n defaulted('toggleOnExecute', true),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted('syncWithExpanded', false),\n output$1('update', updatePressed)\n ],\n checked: [output$1('update', updateChecked)],\n expanded: [output$1('update', updateExpanded)],\n selected: [output$1('update', updateSelected)],\n none: [output$1('update', noop)]\n }))\n ];\n\n var Toggling = create$8({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n var pointerEvents = function () {\n var onClick = function (component, simulatedEvent) {\n simulatedEvent.stop();\n emitExecute(component);\n };\n return [\n run$1(click(), onClick),\n run$1(tap(), onClick),\n cutter(touchstart()),\n cutter(mousedown())\n ];\n };\n var events$a = function (optAction) {\n var executeHandler = function (action) {\n return runOnExecute$1(function (component, simulatedEvent) {\n action(component);\n simulatedEvent.stop();\n });\n };\n return derive$2(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n var hoverEvent = 'alloy.item-hover';\n var focusEvent = 'alloy.item-focus';\n var onHover = function (item) {\n if (search(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$1 = function (item) {\n emitWith(item, focusEvent, { item: item });\n };\n var hover = constant$1(hoverEvent);\n var focus$1 = constant$1(focusEvent);\n\n var builder$2 = function (detail) {\n return {\n dom: detail.dom,\n domModification: __assign(__assign({}, detail.domModification), { attributes: __assign(__assign(__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$1(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', __spreadArray(__spreadArray([], pointerEvents(), true), [\n run$1(mouseover(), onHover),\n run$1(focusItem(), Focusing.focus)\n ], false))\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n };\n };\n var schema$p = [\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('hasSubmenu', false),\n option('toggling'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted('ignoreFocus', false),\n defaulted('domModification', {}),\n output$1('builder', builder$2),\n defaulted('eventOrder', {})\n ];\n\n var builder$1 = function (detail) {\n return {\n dom: detail.dom,\n components: detail.components,\n events: derive$2([stopper(focusItem())])\n };\n };\n var schema$o = [\n required$1('dom'),\n required$1('components'),\n output$1('builder', builder$1)\n ];\n\n var owner$2 = constant$1('item-widget');\n var parts$h = constant$1([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: noop\n }\n })])\n };\n }\n })]);\n\n var builder = function (detail) {\n var subs = substitutes(owner$2(), detail, parts$h());\n var components = components$1(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) ? Optional.none() : function () {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }();\n };\n return {\n dom: detail.dom,\n components: components,\n domModification: detail.domModification,\n events: derive$2([\n runOnExecute$1(function (component, simulatedEvent) {\n focusWidget(component).each(function (_widget) {\n simulatedEvent.stop();\n });\n }),\n run$1(mouseover(), onHover),\n run$1(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$1(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 Optional.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }\n })\n ])\n };\n };\n var schema$n = [\n required$1('uid'),\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('autofocus', false),\n defaulted('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted('domModification', {}),\n defaultUidsSchema(parts$h()),\n output$1('builder', builder)\n ];\n\n var itemSchema$2 = choose$1('type', {\n widget: schema$n,\n item: schema$p,\n separator: schema$o\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$g = constant$1([group({\n factory: {\n sketch: function (spec) {\n var itemInfo = asRawOrDie$1('menu.spec item', itemSchema$2, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: function (detail, u) {\n return has$2(u, 'uid') ? u : __assign(__assign({}, u), { uid: generate$5('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$m = constant$1([\n required$1('value'),\n required$1('items'),\n required$1('dom'),\n required$1('components'),\n defaulted('eventOrder', {}),\n field('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$1('config', configureGrid)\n ],\n matrix: [\n output$1('config', configureMatrix),\n required$1('rowSelector')\n ],\n menu: [\n defaulted('moveOnTab', true),\n output$1('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted('fakeFocus', false),\n defaulted('focusManager', dom$2()),\n onHandler('onHighlight')\n ]);\n\n var focus = constant$1('alloy.menu-focus');\n\n var make$7 = 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: Optional.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive$2([\n run$1(focus$1(), 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(), {\n menu: menu,\n item: item\n });\n });\n }),\n run$1(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({\n name: 'Menu',\n configFields: schema$m(),\n partFields: parts$g(),\n factory: make$7\n });\n\n var transpose$1 = 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 get$e(byMenu, finish).bind(function (triggerItem) {\n return get$e(items, triggerItem).bind(function (triggerMenu) {\n var rest = trace(items, byItem, byMenu, triggerMenu);\n return Optional.some([triggerMenu].concat(rest));\n });\n }).getOr([]);\n };\n var generate$2 = function (menus, expansions) {\n var items = {};\n each(menus, function (menuItems, menu) {\n each$1(menuItems, function (item) {\n items[item] = menu;\n });\n });\n var byItem = expansions;\n var byMenu = transpose$1(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 get$e(menuPaths, menu).getOr([menu]);\n });\n };\n\n var init$c = function () {\n var expansions = Cell({});\n var menus = Cell({});\n var paths = Cell({});\n var primary = value$1();\n var directory = Cell({});\n var clear = function () {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.clear();\n };\n var isClear = function () {\n return primary.get().isNone();\n };\n var setMenuBuilt = function (menuName, built) {\n var _a;\n menus.set(__assign(__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(sPrimary);\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n var sPaths = generate$2(dir, sExpansions);\n paths.set(sPaths);\n };\n var getTriggeringItem = function (menuValue) {\n return find$4(expansions.get(), function (v, _k) {\n return v === menuValue;\n });\n };\n var getTriggerData = function (menuValue, getItemByValue, path) {\n return getPreparedMenu(menuValue).bind(function (menu) {\n return getTriggeringItem(menuValue).bind(function (triggeringItemValue) {\n return getItemByValue(triggeringItemValue).map(function (triggeredItem) {\n return {\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n };\n });\n });\n });\n };\n var getTriggeringPath = function (itemValue, getItemByValue) {\n var extraPath = filter$2(lookupItem(itemValue).toArray(), function (menuValue) {\n return getPreparedMenu(menuValue).isSome();\n });\n return get$e(paths.get(), itemValue).bind(function (path) {\n var revPath = reverse(extraPath.concat(path));\n var triggers = bind$3(revPath, function (menuValue, menuIndex) {\n return getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(function () {\n return is$1(primary.get(), menuValue) ? [] : [Optional.none()];\n }, function (data) {\n return [Optional.some(data)];\n });\n });\n return sequence(triggers);\n });\n };\n var expand = function (itemValue) {\n return get$e(expansions.get(), itemValue).map(function (menu) {\n var current = get$e(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n };\n var collapse = function (itemValue) {\n return get$e(paths.get(), itemValue).bind(function (path) {\n return path.length > 1 ? Optional.some(path.slice(1)) : Optional.none();\n });\n };\n var refresh = function (itemValue) {\n return get$e(paths.get(), itemValue);\n };\n var getPreparedMenu = function (menuValue) {\n return lookupMenu(menuValue).bind(extractPreparedMenu);\n };\n var lookupMenu = function (menuValue) {\n return get$e(menus.get(), menuValue);\n };\n var lookupItem = function (itemValue) {\n return get$e(expansions.get(), itemValue);\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(getPreparedMenu);\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 lookupItem: lookupItem,\n otherMenus: otherMenus,\n getPrimary: getPrimary,\n getMenus: getMenus,\n clear: clear,\n isClear: isClear,\n getTriggeringPath: getTriggeringPath\n };\n };\n var extractPreparedMenu = function (prep) {\n return prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n };\n var LayeredState = {\n init: init$c,\n extractPreparedMenu: extractPreparedMenu\n };\n\n var make$6 = function (detail, _rawUiSpec) {\n var submenuParentItems = value$1();\n var buildMenus = function (container, primaryName, menus) {\n return map$1(menus, function (spec, name) {\n var makeSketch = function () {\n return Menu.sketch(__assign(__assign({}, spec), {\n value: name,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: detail.onHighlight,\n focusManager: detail.fakeFocus ? highlights() : dom$2()\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();\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 getItemByValue = function (_container, menus, itemValue) {\n return findMap(menus, function (menu) {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n var candidates = Highlighting.getCandidates(menu);\n return find$5(candidates, function (c) {\n return getItemValue(c) === itemValue;\n });\n });\n };\n var toDirectory = function (_container) {\n return map$1(detail.data.menus, function (data, _menuName) {\n return bind$3(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$2(menuValues, function (mv) {\n return state.lookupMenu(mv).bind(function (prep) {\n return prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n });\n }));\n };\n var closeOthers = function (container, state, path) {\n var others = getMenus(state, state.otherMenus(path));\n each$1(others, function (o) {\n remove$1(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$2(items, function (i) {\n return get$d(i, 'aria-haspopup') === 'true';\n });\n each$1(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(r);\n return r;\n });\n };\n var updateAriaExpansions = function (container, path) {\n var parentItems = getSubmenuParents(container);\n each(parentItems, function (v, k) {\n var expanded = contains$2(path, k);\n set$8(v.element, 'aria-expanded', expanded);\n });\n };\n var updateMenuPath = function (container, state, path) {\n return Optional.from(path[0]).bind(function (latestMenuName) {\n return state.lookupMenu(latestMenuName).bind(function (menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n return Optional.none();\n } else {\n var activeMenu = menuPrep.menu;\n var rest = getMenus(state, path.slice(1));\n each$1(rest, function (r) {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n remove$1(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.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 if (item.hasConfigured(Disabling) && Disabling.isDisabled(item)) {\n return Optional.some(item);\n } else {\n var value = getItemValue(item);\n return layeredState.expand(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return Optional.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(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Optional.some(item);\n }\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) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n };\n var onLeft = function (container, item) {\n return inside(item.element) ? Optional.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$1(simulatedEvent.getSource(), '.' + detail.markers.item).bind(function (target) {\n return container.getSystem().getByDom(target).toOptional().bind(function (item) {\n return f(container, item).map(always);\n });\n });\n };\n };\n var events = derive$2([\n run$1(focus(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event.item;\n layeredState.lookupItem(getItemValue(item)).each(function () {\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 }),\n runOnExecute$1(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 }, noop);\n });\n }),\n runOnAttached(function (container, _simulatedEvent) {\n setup(container).each(function (primary) {\n Replacing.append(container, premade(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })\n ].concat(detail.navigateOnHover ? [run$1(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 getActiveItem = function (container) {\n return Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n };\n var collapseMenuApi = function (container) {\n getActiveItem(container).each(function (currentItem) {\n collapseLeft(container, currentItem);\n });\n };\n var highlightPrimary = function (container) {\n layeredState.getPrimary().each(function (primary) {\n setActiveMenu(container, primary);\n });\n };\n var extractMenuFromContainer = function (container) {\n return Optional.from(container.components()[0]).filter(function (comp) {\n return get$d(comp.element, 'role') === 'menu';\n });\n };\n var repositionMenus = function (container) {\n var maybeActivePrimary = layeredState.getPrimary().bind(function (primary) {\n return getActiveItem(container).bind(function (currentItem) {\n var itemValue = getItemValue(currentItem);\n var allMenus = values(layeredState.getMenus());\n var preparedMenus = cat(map$2(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, function (v) {\n return getItemByValue(container, preparedMenus, v);\n });\n }).map(function (triggeringPath) {\n return {\n primary: primary,\n triggeringPath: triggeringPath\n };\n });\n });\n maybeActivePrimary.fold(function () {\n extractMenuFromContainer(container).each(function (primaryMenu) {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, function (_a) {\n var primary = _a.primary, triggeringPath = _a.triggeringPath;\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n var apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary: highlightPrimary,\n repositionMenus: repositionMenus\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$1 = constant$1('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 = function (text) {\n return {\n value: generate$6(collapseItem$1()),\n meta: { text: text }\n };\n };\n var tieredMenu = single({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted('highlightImmediately', true),\n requiredObjOf('data', [\n required$1('primary'),\n required$1('menus'),\n required$1('expansions')\n ]),\n defaulted('fakeFocus', false),\n onHandler('onHighlight'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n required$1('dom'),\n defaulted('navigateOnHover', true),\n defaulted('stayInDom', false),\n field('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted('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 repositionMenus: function (apis, tmenu) {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$6,\n extraApis: {\n tieredData: tieredData,\n singleData: singleData,\n collapseItem: collapseItem\n }\n });\n\n var makeMenu = function (detail, menuSandbox, placementSpec, menuSpec, getBounds) {\n var lazySink = function () {\n return detail.lazySink(menuSandbox);\n };\n var layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: function () {\n return belowOrAbove();\n },\n onRtl: function () {\n return belowOrAboveRtl();\n }\n }\n } : {};\n var isFirstTierSubmenu = function (triggeringPaths) {\n return triggeringPaths.length === 2;\n };\n var getSubmenuLayouts = function (triggeringPaths) {\n return isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n };\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightImmediately: menuSpec.menu.highlightImmediately,\n onEscape: function () {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(function (handler) {\n return handler(menuSandbox);\n });\n return Optional.some(true);\n },\n onExecute: function () {\n return Optional.some(true);\n },\n onOpenMenu: function (tmenu, menu) {\n Positioning.positionWithinBounds(lazySink().getOrDie(), menu, placementSpec, getBounds());\n },\n onOpenSubmenu: function (tmenu, item, submenu, triggeringPaths) {\n var sink = lazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: __assign({\n type: 'submenu',\n item: item\n }, getSubmenuLayouts(triggeringPaths))\n });\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, primaryMenu, placementSpec, getBounds());\n each$1(submenuTriggers, function (st) {\n var submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, st.triggeredMenu, {\n anchor: __assign({\n type: 'submenu',\n item: st.triggeringItem\n }, submenuLayouts)\n });\n });\n }\n });\n };\n var factory$m = function (detail, spec) {\n var isPartOfRelated = function (sandbox, queryElem) {\n var related = detail.getRelated(sandbox);\n return related.exists(function (rel) {\n return isPartOf$1(rel, queryElem);\n });\n };\n var setContent = function (sandbox, thing) {\n Sandboxing.setContent(sandbox, thing);\n };\n var showAt = function (sandbox, thing, placementSpec) {\n showWithin(sandbox, thing, placementSpec, Optional.none());\n };\n var showWithin = function (sandbox, thing, placementSpec, boxElement) {\n showWithinBounds(sandbox, thing, placementSpec, function () {\n return boxElement.map(function (elem) {\n return box$1(elem);\n });\n });\n };\n var showWithinBounds = function (sandbox, thing, placementSpec, getBounds) {\n var sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, function () {\n return Positioning.positionWithinBounds(sink, sandbox, placementSpec, getBounds());\n });\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n config: placementSpec,\n getBounds: getBounds\n }));\n };\n var showMenuAt = function (sandbox, placementSpec, menuSpec) {\n showMenuWithinBounds(sandbox, placementSpec, menuSpec, Optional.none);\n };\n var showMenuWithinBounds = function (sandbox, placementSpec, menuSpec, getBounds) {\n var menu = makeMenu(detail, sandbox, placementSpec, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu: menu\n }));\n };\n var hide = function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n var getContent = function (sandbox) {\n return Sandboxing.getState(sandbox);\n };\n var reposition = function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(function (state) {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(tieredMenu.repositionMenus);\n break;\n case 'position':\n var sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, sandbox, state.config, state.getBounds());\n break;\n }\n });\n }\n };\n var apis = {\n setContent: setContent,\n showAt: showAt,\n showWithin: showWithin,\n showWithinBounds: showWithinBounds,\n showMenuAt: showMenuAt,\n showMenuWithinBounds: showMenuWithinBounds,\n hide: hide,\n getContent: getContent,\n reposition: reposition,\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$1(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: function (sandbox) {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: function (sandbox) {\n detail.onShow(sandbox);\n },\n onClose: function (sandbox) {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel$1(__assign({ isExtraPart: spec.isExtraPart }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))), receivingChannel(__assign(__assign({}, detail.fireRepositionEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})), { doReposition: reposition })))\n })\n ]),\n eventOrder: detail.eventOrder,\n apis: apis\n };\n };\n var InlineView = single({\n name: 'InlineView',\n configFields: [\n required$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted('event', repositionRequested())]),\n defaulted('getRelated', Optional.none),\n defaulted('isExtraPart', never),\n defaulted('eventOrder', Optional.none)\n ],\n factory: factory$m,\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 showWithinBounds: function (apis, component, anchor, thing, bounds) {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: function (apis, component, anchor, menuSpec) {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: function (apis, component, anchor, menuSpec, bounds) {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\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 reposition: function (apis, component) {\n apis.reposition(component);\n }\n }\n });\n\n var labelPrefix = 'layout-inset';\n var westEdgeX = 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 eastEdgeX = function (anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n var northY = function (anchor) {\n return anchor.y;\n };\n var southY = function (anchor, element) {\n return anchor.y + anchor.height - element.height;\n };\n var centreY = function (anchor, element) {\n return anchor.y + anchor.height / 2 - element.height / 2;\n };\n var southwest = function (anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), southY(anchor, element), bubbles.insetSouthwest(), northwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), labelPrefix);\n };\n var southeast = function (anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), southY(anchor, element), bubbles.insetSoutheast(), northeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), labelPrefix);\n };\n var northwest = function (anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), northY(anchor), bubbles.insetNorthwest(), southwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), labelPrefix);\n };\n var northeast = function (anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), northY(anchor), bubbles.insetNortheast(), southeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), labelPrefix);\n };\n var north = function (anchor, element, bubbles) {\n return nu$6(middleX(anchor, element), northY(anchor), bubbles.insetNorth(), south$3(), 'north', boundsRestriction(anchor, { top: 2 }), labelPrefix);\n };\n var south = function (anchor, element, bubbles) {\n return nu$6(middleX(anchor, element), southY(anchor, element), bubbles.insetSouth(), north$3(), 'south', boundsRestriction(anchor, { bottom: 3 }), labelPrefix);\n };\n var east = function (anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), centreY(anchor, element), bubbles.insetEast(), west$3(), 'east', boundsRestriction(anchor, { right: 0 }), labelPrefix);\n };\n var west = function (anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), centreY(anchor, element), bubbles.insetWest(), east$3(), 'west', boundsRestriction(anchor, { left: 1 }), labelPrefix);\n };\n var lookupPreserveLayout = function (lastPlacement) {\n switch (lastPlacement) {\n case 'north':\n return north;\n case 'northeast':\n return northeast;\n case 'northwest':\n return northwest;\n case 'south':\n return south;\n case 'southeast':\n return southeast;\n case 'southwest':\n return southwest;\n case 'east':\n return east;\n case 'west':\n return west;\n }\n };\n var preserve = function (anchor, element, bubbles, placee, bounds) {\n var layout = getPlacement(placee).map(lookupPreserveLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n var lookupFlippedLayout = function (lastPlacement) {\n switch (lastPlacement) {\n case 'north':\n return south;\n case 'northeast':\n return southeast;\n case 'northwest':\n return southwest;\n case 'south':\n return north;\n case 'southeast':\n return northeast;\n case 'southwest':\n return northwest;\n case 'east':\n return west;\n case 'west':\n return east;\n }\n };\n var flip$2 = function (anchor, element, bubbles, placee, bounds) {\n var layout = getPlacement(placee).map(lookupFlippedLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n var global$f = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var factory$l = function (detail) {\n var events = events$a(detail.action);\n var tag = detail.dom.tag;\n var lookupAttr = function (attr) {\n return get$e(detail.dom, 'attributes').bind(function (attrs) {\n return get$e(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({\n name: 'Button',\n factory: factory$l,\n configFields: [\n defaulted('uid', undefined),\n required$1('dom'),\n defaulted('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option('action'),\n option('role'),\n defaulted('eventOrder', {})\n ]\n });\n\n var record = function (spec) {\n var uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('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).toOptional();\n };\n var asSpec = function () {\n return __assign(__assign({}, spec), { uid: uid });\n };\n return {\n get: get,\n getOpt: getOpt,\n asSpec: asSpec\n };\n };\n\n var global$e = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n var rtlTransform = {\n 'indent': true,\n 'outdent': true,\n 'table-insert-column-after': true,\n 'table-insert-column-before': true,\n 'paste-column-after': true,\n 'paste-column-before': true,\n 'unordered-list': true,\n 'list-bull-circle': true,\n 'list-bull-default': true,\n 'list-bull-square': true\n };\n var defaultIconName = 'temporary-placeholder';\n var defaultIcon = function (icons) {\n return function () {\n return get$e(icons, defaultIconName).getOr('!not found!');\n };\n };\n var getIconName = function (name, icons) {\n var lcName = name.toLowerCase();\n if (global$e.isRtl()) {\n var rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n var lookupIcon = function (name, icons) {\n return get$e(icons, getIconName(name, icons));\n };\n var get$1 = function (name, iconProvider) {\n var icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n var getOr = function (name, iconProvider, fallbackIcon) {\n var icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n var needsRtlTransform = function (iconName) {\n return global$e.isRtl() ? has$2(rtlTransform, iconName) : false;\n };\n var addFocusableBehaviour = function () {\n return config('add-focusable', [runOnAttached(function (comp) {\n child(comp.element, 'svg').each(function (svg) {\n return set$8(svg, 'focusable', 'false');\n });\n })]);\n };\n var renderIcon$2 = function (spec, iconName, icons, fallbackIcon) {\n var _a, _b;\n var rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n var iconHtml = get$e(icons, getIconName(iconName, icons)).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n return {\n dom: {\n tag: spec.tag,\n attributes: (_a = spec.attributes) !== null && _a !== void 0 ? _a : {},\n classes: spec.classes.concat(rtlIconClasses),\n innerHtml: iconHtml\n },\n behaviours: derive$1(__spreadArray(__spreadArray([], (_b = spec.behaviours) !== null && _b !== void 0 ? _b : [], true), [addFocusableBehaviour()], false))\n };\n };\n var render$3 = function (iconName, spec, iconProvider, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n return renderIcon$2(spec, iconName, iconProvider(), fallbackIcon);\n };\n var renderFirst = function (iconNames, spec, iconProvider) {\n var icons = iconProvider();\n var iconName = find$5(iconNames, function (name) {\n return has$2(icons, getIconName(name, icons));\n });\n return renderIcon$2(spec, iconName.getOr(defaultIconName), icons, Optional.none());\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$k = 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) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text$1(text)]);\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 Optional.from(notificationIconMap[level]);\n }).toArray()\n ]);\n var memButton = record(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: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon'],\n attributes: { 'aria-label': detail.translationProvider('Close') }\n }, detail.iconProvider)],\n action: function (comp) {\n detail.onAction(comp);\n }\n }));\n var notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n var notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n var components = [\n notificationIconSpec,\n notificationBodySpec\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 behaviours: derive$1([\n Focusing.config({}),\n config('notification-events', [run$1(focusin(), function (comp) {\n memButton.getOpt(comp).each(Focusing.focus);\n })])\n ]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(!detail.closeButton ? [] : [memButton.asSpec()]),\n apis: apis\n };\n };\n var Notification = single({\n name: 'Notification',\n factory: factory$k,\n configFields: [\n option('level'),\n required$1('progress'),\n required$1('icon'),\n required$1('onAction'),\n required$1('text'),\n required$1('iconProvider'),\n required$1('translationProvider'),\n defaultedBoolean('closeButton', true)\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 function NotificationManagerImpl (editor, extras, uiMothership) {\n var sharedBackstage = extras.backstage.shared;\n var getLayoutDirection = function (rel) {\n switch (rel) {\n case 'bc-bc':\n return south;\n case 'tc-tc':\n return north;\n case 'tc-bc':\n return north$2;\n case 'bc-tc':\n default:\n return south$2;\n }\n };\n var reposition = function (notifications) {\n if (notifications.length > 0) {\n each$1(notifications, function (notification, index) {\n if (index === 0) {\n notification.moveRel(null, 'banner');\n } else {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n var open = function (settings, closeCallback) {\n var hideCloseButton = !settings.closeButton && settings.timeout && (settings.timeout > 0 || settings.timeout < 0);\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$2([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Optional.from(settings.icon),\n closeButton: !hideCloseButton,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n translationProvider: sharedBackstage.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch(__assign({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {}\n }, sharedBackstage.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} })));\n uiMothership.add(notificationWrapper);\n if (settings.timeout > 0) {\n global$f.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n var getBounds = function () {\n var contentArea = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var win$1 = win();\n var x = clamp$1(win$1.x, contentArea.x, contentArea.right);\n var y = clamp$1(win$1.y, contentArea.y, contentArea.bottom);\n var right = Math.max(contentArea.right, win$1.right);\n var bottom = Math.max(contentArea.bottom, win$1.bottom);\n return Optional.some(bounds(x, y, right - x, bottom - y));\n };\n return {\n close: close,\n moveTo: function (x, y) {\n InlineView.showAt(notificationWrapper, premade(notification), {\n anchor: {\n type: 'makeshift',\n x: x,\n y: y\n }\n });\n },\n moveRel: function (element, rel) {\n var notificationSpec = premade(notification);\n var anchorOverrides = { maxHeightFunction: expandable$1() };\n if (rel !== 'banner' && isNonNullable(element)) {\n var layoutDirection_1 = getLayoutDirection(rel);\n var nodeAnchor = {\n type: 'node',\n root: body(),\n node: Optional.some(SugarElement.fromDom(element)),\n overrides: anchorOverrides,\n layouts: {\n onRtl: function () {\n return [layoutDirection_1];\n },\n onLtr: function () {\n return [layoutDirection_1];\n }\n }\n };\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor: nodeAnchor }, getBounds);\n } else {\n var anchor = __assign(__assign({}, sharedBackstage.anchors.banner()), { overrides: anchorOverrides });\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor: anchor }, getBounds);\n }\n },\n text: function (nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function () {\n return notification.element.dom;\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 first = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (!isNull(timer)) {\n 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 (isNull(timer)) {\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (!isNull(timer)) {\n 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 cancel();\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var global$d = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');\n\n var isBoundary = function (dom, node) {\n return dom.isBlock(node) || contains$2([\n 'BR',\n 'IMG',\n 'HR',\n 'INPUT'\n ], node.nodeName) || dom.getContentEditable(node) === 'false';\n };\n var repeatLeft = function (dom, node, offset, process, rootNode) {\n var search = global$d(dom, function (node) {\n return isBoundary(dom, node);\n });\n return Optional.from(search.backwards(node, offset, process, rootNode));\n };\n\n var autocompleteSelector = '[data-mce-autocompleter]';\n var create$5 = function (editor, range) {\n return detect(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {\n var wrapper = SugarElement.fromHtml('', editor.getDoc());\n append$2(wrapper, SugarElement.fromDom(range.extractContents()));\n range.insertNode(wrapper.dom);\n parent(wrapper).each(function (elm) {\n return elm.dom.normalize();\n });\n last$1(wrapper).map(function (last) {\n editor.selection.setCursorLocation(last.dom, getEnd(last));\n });\n return wrapper;\n });\n };\n var detect = function (elm) {\n return closest$1(elm, autocompleteSelector);\n };\n\n var isValidTextRange = function (rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n var getText = function (rng) {\n return rng.toString().replace(/\\u00A0/g, ' ').replace(/\\uFEFF/g, '');\n };\n var isWhitespace = function (chr) {\n return chr !== '' && ' \\xA0\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n };\n\n var stripTriggerChar = function (text, triggerCh) {\n return text.substring(triggerCh.length);\n };\n var findChar = function (text, index, ch) {\n var i;\n for (i = index - 1; i >= 0; i--) {\n var char = text.charAt(i);\n if (isWhitespace(char)) {\n return Optional.none();\n }\n if (char === ch) {\n break;\n }\n }\n return Optional.some(i);\n };\n var findStart = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n var findTriggerChIndex = function (element, offset, text) {\n return findChar(text, offset, ch).getOr(offset);\n };\n var root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerChIndex, root).bind(function (spot) {\n var range = initRange.cloneRange();\n range.setStart(spot.container, spot.offset);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n if (range.collapsed) {\n return Optional.none();\n }\n var text = getText(range);\n var triggerCharIndex = text.lastIndexOf(ch);\n if (triggerCharIndex !== 0 || stripTriggerChar(text, ch).length < minChars) {\n return Optional.none();\n } else {\n return Optional.some({\n text: stripTriggerChar(text, ch),\n range: range,\n triggerChar: ch\n });\n }\n });\n };\n var getContext = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n return detect(SugarElement.fromDom(initRange.startContainer)).fold(function () {\n return findStart(dom, initRange, ch, minChars);\n }, function (elm) {\n var range = dom.createRng();\n range.selectNode(elm.dom);\n var text = getText(range);\n return Optional.some({\n range: range,\n text: stripTriggerChar(text, ch),\n triggerChar: ch\n });\n });\n };\n\n var setup$e = function (api, editor) {\n editor.on('keypress compositionend', 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.cancelIfNecessary();\n }\n if (api.isMenuOpen()) {\n 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 e.stopImmediatePropagation();\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 e.stopImmediatePropagation();\n });\n }\n } else {\n if (e.which === 13 || e.which === 38 || e.which === 40) {\n api.cancelIfNecessary();\n }\n }\n }\n });\n editor.on('NodeChange', function (e) {\n if (api.isActive() && !api.isProcessingAction() && detect(SugarElement.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n var AutocompleterEditorEvents = { setup: setup$e };\n\n var global$c = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var point = function (container, offset) {\n return {\n container: container,\n offset: offset\n };\n };\n\n var isText = function (node) {\n return node.nodeType === TEXT;\n };\n var isElement$1 = function (node) {\n return node.nodeType === ELEMENT;\n };\n var toLast = function (node) {\n if (isText(node)) {\n return point(node, node.data.length);\n } else {\n var children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n }\n };\n var toLeaf = function (node, offset) {\n var children = node.childNodes;\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement$1(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point(node, offset);\n }\n };\n\n var isPreviousCharContent = function (dom, leaf) {\n return repeatLeft(dom, leaf.container, leaf.offset, function (element, offset) {\n return offset === 0 ? -1 : offset;\n }, dom.getRoot()).filter(function (spot) {\n var char = spot.container.data.charAt(spot.offset - 1);\n return !isWhitespace(char);\n }).isSome();\n };\n var isStartOfWord = function (dom) {\n return function (rng) {\n var leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n };\n var getTriggerContext = function (dom, initRange, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(dom, initRange, ch);\n });\n };\n var lookup$2 = function (editor, getDatabase) {\n var database = getDatabase();\n var rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(function (context) {\n return lookupWithContext(editor, getDatabase, context);\n });\n };\n var lookupWithContext = function (editor, getDatabase, context, fetchOptions) {\n if (fetchOptions === void 0) {\n fetchOptions = {};\n }\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n var autocompleters = filter$2(database.lookupByChar(context.triggerChar), function (autocompleter) {\n return context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(function () {\n return isStartOfWord(editor.dom);\n })(context.range, startText, context.text);\n });\n if (autocompleters.length === 0) {\n return Optional.none();\n }\n var lookupData = global$c.all(map$2(autocompleters, function (ac) {\n var fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(function (results) {\n return {\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction,\n highlightOn: ac.highlightOn\n };\n });\n }));\n return Optional.some({\n lookupData: lookupData,\n context: context\n });\n };\n\n var separatorMenuItemSchema = objOf([\n requiredString('type'),\n optionString('text')\n ]);\n var createSeparatorMenuItem = function (spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n\n var autocompleterItemSchema = objOf([\n defaulted('type', 'autocompleteitem'),\n defaulted('active', false),\n defaulted('disabled', false),\n defaulted('meta', {}),\n requiredString('value'),\n optionString('text'),\n optionString('icon')\n ]);\n var autocompleterSchema = objOf([\n requiredString('type'),\n requiredString('ch'),\n defaultedNumber('minChars', 1),\n defaulted('columns', 1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n requiredFunction('fetch'),\n requiredFunction('onAction'),\n defaultedArrayOf('highlightOn', [], string)\n ]);\n var createSeparatorItem = function (spec) {\n return asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\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 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 requiredString('type'),\n requiredFunction('onAction')\n ].concat(baseToolbarButtonFields));\n var createToolbarButton = function (spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n requiredString('type'),\n requiredFunction('onAction')\n ]));\n var createToggleButton = function (spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n\n var contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n var contextButtonFields = baseToolbarButtonFields.concat([\n defaulted('type', 'contextformbutton'),\n defaulted('primary', false),\n requiredFunction('onAction'),\n customField('original', identity$1)\n ]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaulted('type', 'contextformbutton'),\n defaulted('primary', false),\n requiredFunction('onAction'),\n customField('original', identity$1)\n ]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([\n defaulted('type', 'contextform'),\n defaultedFunction('initValue', constant$1('')),\n optionString('label'),\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n var createContextForm = function (spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n\n var contextToolbarSchema = objOf([\n defaulted('type', 'contexttoolbar'),\n requiredString('items')\n ].concat(contextBarFields));\n var createContextToolbar = function (spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n\n var stringArray = function (a) {\n var all = {};\n each$1(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n\n var register$b = 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 }, identity$1);\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$2(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 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 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 containerClass = 'tox-collection__item-container';\n var containerColumnClass = 'tox-collection__item-container--column';\n var containerRowClass = 'tox-collection__item-container--row';\n var containerAlignRightClass = 'tox-collection__item-container--align-right';\n var containerAlignLeftClass = 'tox-collection__item-container--align-left';\n var containerValignTopClass = 'tox-collection__item-container--valign-top';\n var containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n var containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n var classForPreset = function (presets) {\n return get$e(presetClasses, presets).getOr(navClass);\n };\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 = 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 = [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(presets)\n };\n };\n\n var chunk = function (rowDom, numColumns) {\n return function (items) {\n var chunks = chunk$1(items, numColumns);\n return map$2(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: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity$1\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({\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$1(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has$2(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$2(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 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({\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 var forHorizontalCollection = function (initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts.items({\n preprocess: function (items) {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n })]\n };\n };\n\n var menuHasIcons = function (xs) {\n return exists(xs, function (item) {\n return 'icon' in item && item.icon !== undefined;\n });\n };\n var handleError = function (error) {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n var createHorizontalPartialMenuWithAlloyItems = function (value, _hasIcons, items, _columns, _presets) {\n var structure = forHorizontalCollection(items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\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,\n items: items\n };\n };\n\n var cardImageFields = [\n requiredString('type'),\n requiredString('src'),\n optionString('alt'),\n defaultedArrayOf('classes', [], string)\n ];\n var cardImageSchema = objOf(cardImageFields);\n\n var cardTextFields = [\n requiredString('type'),\n requiredString('text'),\n optionString('name'),\n defaultedArrayOf('classes', ['tox-collection__item-label'], string)\n ];\n var cardTextSchema = objOf(cardTextFields);\n\n var itemSchema$1 = valueThunk(function () {\n return choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n });\n });\n var cardContainerSchema = objOf([\n requiredString('type'),\n defaultedString('direction', 'horizontal'),\n defaultedString('align', 'left'),\n defaultedString('valign', 'middle'),\n requiredArrayOf('items', itemSchema$1)\n ]);\n\n var commonMenuItemFields = [\n defaultedBoolean('disabled', false),\n optionString('text'),\n optionString('shortcut'),\n field$1('value', 'value', defaultedThunk(function () {\n return generate$6('menuitem-value');\n }), anyValue()),\n defaulted('meta', {})\n ];\n\n var cardMenuItemSchema = objOf([\n requiredString('type'),\n optionString('label'),\n requiredArrayOf('items', itemSchema$1),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedFunction('onAction', noop)\n ].concat(commonMenuItemFields));\n var createCardMenuItem = function (spec) {\n return asRaw('cardmenuitem', cardMenuItemSchema, spec);\n };\n\n var choiceMenuItemSchema = objOf([\n requiredString('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 baseFields = [\n requiredString('type'),\n requiredString('fancytype'),\n defaultedFunction('onAction', noop)\n ];\n var insertTableFields = [defaulted('initData', {})].concat(baseFields);\n var colorSwatchFields = [defaultedObjOf('initData', {}, [\n defaultedBoolean('allowCustomColors', true),\n optionArrayOf('colors', anyValue())\n ])].concat(baseFields);\n var fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n var createFancyMenuItem = function (spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n\n var menuItemSchema = objOf([\n requiredString('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 requiredString('type'),\n requiredFunction('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 requiredString('type'),\n optionString('icon'),\n defaultedBoolean('active', false),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n requiredFunction('onAction')\n ].concat(commonMenuItemFields));\n var createToggleMenuItem = function (spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, 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$1(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 Optional.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Optional.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$6('unnamed-events'), handlers);\n };\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n\n var ExclusivityChannel = generate$6('tooltip.exclusive');\n var ShowTooltipEvent = generate$6('tooltip.show');\n var HideTooltipEvent = generate$6('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 __proto__: null,\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n\n var events$9 = 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);\n var sink = tooltipConfig.lazySink(comp).getOrDie();\n var popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [\n run$1(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(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, popup, { anchor: tooltipConfig.anchor(comp) });\n }\n };\n return derive$2(flatten([\n [\n run$1(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }),\n run$1(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }),\n run$1(receive(), function (comp, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }),\n runOnDetached(function (comp) {\n hide(comp);\n })\n ],\n tooltipConfig.mode === 'normal' ? [\n run$1(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }),\n run$1(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ] : [\n run$1(highlight$1(), function (comp, _se) {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(dehighlight$1(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ]\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$9\n });\n\n var TooltippingSchema = [\n required$1('lazySink'),\n required$1('tooltipDom'),\n defaulted('exclusive', true),\n defaulted('tooltipComponents', []),\n defaulted('delay', 300),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight'\n ]),\n defaulted('anchor', function (comp) {\n return {\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n }\n };\n }),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n var init$b = function () {\n var timer = value$1();\n var popup = value$1();\n var clearTimer = function () {\n timer.on(clearTimeout);\n };\n var resetTimer = function (f, delay) {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n var readState = constant$1('not-implemented');\n return nu$8({\n getTooltip: popup.get,\n isShowing: popup.isSet,\n setTooltip: popup.set,\n clearTooltip: popup.clear,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$b\n });\n\n var Tooltipping = create$8({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n var escape = function (text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n };\n\n var global$b = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$a = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var getSkinUrl = function (editor) {\n var skin = editor.getParam('skin');\n var skinUrl = editor.getParam('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$a.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 getWidthSetting = function (editor) {\n return editor.getParam('width', global$b.DOM.getStyle(editor.getElement(), 'width'));\n };\n var getMinWidthSetting = function (editor) {\n return Optional.from(editor.getParam('min_width')).filter(isNumber);\n };\n var getMinHeightSetting = function (editor) {\n return Optional.from(editor.getParam('min_height')).filter(isNumber);\n };\n var getMaxWidthSetting = function (editor) {\n return Optional.from(editor.getParam('max_width')).filter(isNumber);\n };\n var getMaxHeightSetting = function (editor) {\n return Optional.from(editor.getParam('max_height')).filter(isNumber);\n };\n var getUserStyleFormats = function (editor) {\n return Optional.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 getLineHeightFormats = function (editor) {\n return editor.getParam('lineheight_formats', '1 1.1 1.2 1.3 1.4 1.5 2', 'string').split(' ');\n };\n var getContentLanguages = function (editor) {\n return editor.getParam('content_langs', undefined, 'array');\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 toolbar = editor.getParam('toolbar', true);\n var isToolbarTrue = toolbar === true;\n var isToolbarString = isString(toolbar);\n var isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || isToolbarTrue);\n };\n var getMultipleToolbarsSetting = function (editor) {\n var toolbars = range$2(9, function (num) {\n return editor.getParam('toolbar' + (num + 1), false, 'string');\n });\n var toolbarArray = filter$2(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Optional.some(toolbarArray) : Optional.none();\n };\n var isMultipleToolbars = function (editor) {\n return getMultipleToolbarsSetting(editor).fold(function () {\n var toolbar = editor.getParam('toolbar', [], 'string[]');\n return toolbar.length > 0;\n }, always);\n };\n var ToolbarMode;\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n }(ToolbarMode || (ToolbarMode = {})));\n var getToolbarMode = function (editor) {\n return editor.getParam('toolbar_mode', '', 'string');\n };\n var ToolbarLocation;\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n }(ToolbarLocation || (ToolbarLocation = {})));\n var getToolbarGroups = function (editor) {\n return editor.getParam('toolbar_groups', {}, 'object');\n };\n var getToolbarLocation = function (editor) {\n return editor.getParam('toolbar_location', ToolbarLocation.auto, 'string');\n };\n var isToolbarLocationBottom = function (editor) {\n return getToolbarLocation(editor) === ToolbarLocation.bottom;\n };\n var fixedContainerSelector = function (editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n var fixedToolbarContainerTarget = function (editor) {\n return editor.getParam('fixed_toolbar_container_target');\n };\n var isToolbarPersist = function (editor) {\n return editor.getParam('toolbar_persist', false, 'boolean');\n };\n var fixedContainerTarget = function (editor) {\n if (!editor.inline) {\n return Optional.none();\n }\n var selector = fixedContainerSelector(editor);\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n var element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n var useFixedContainer = function (editor) {\n return editor.inline && fixedContainerTarget(editor).isSome();\n };\n var getUiContainer = function (editor) {\n var fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(function () {\n return getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement())));\n });\n };\n var isDistractionFree = function (editor) {\n return editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n };\n var isStickyToolbar = function (editor) {\n var isStickyToolbar = editor.getParam('toolbar_sticky', false, 'boolean');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n var getStickyToolbarOffset = function (editor) {\n return editor.getParam('toolbar_sticky_offset', 0, 'number');\n };\n var isDraggableModal$1 = function (editor) {\n return editor.getParam('draggable_modal', false, 'boolean');\n };\n var getMenus = function (editor) {\n var menu = editor.getParam('menu');\n if (menu) {\n return map$1(menu, function (menu) {\n return __assign(__assign({}, menu), { items: menu.items });\n });\n } else {\n return {};\n }\n };\n var getMenubar = function (editor) {\n return editor.getParam('menubar');\n };\n var getToolbar = function (editor) {\n return editor.getParam('toolbar', true);\n };\n var getFilePickerCallback = function (editor) {\n return editor.getParam('file_picker_callback');\n };\n var getFilePickerTypes = function (editor) {\n return editor.getParam('file_picker_types');\n };\n var getFileBrowserCallbackTypes = function (editor) {\n return editor.getParam('file_browser_callback_types');\n };\n var noTypeaheadUrls = function (editor) {\n return editor.getParam('typeahead_urls') === false;\n };\n var getAnchorTop = function (editor) {\n return editor.getParam('anchor_top', '#top');\n };\n var getAnchorBottom = function (editor) {\n return editor.getParam('anchor_bottom', '#bottom');\n };\n var getFilePickerValidatorHandler = function (editor) {\n var handler = editor.getParam('file_picker_validator_handler', undefined, 'function');\n if (handler === undefined) {\n return editor.getParam('filepicker_validator_handler', undefined, 'function');\n } else {\n return handler;\n }\n };\n\n var ReadOnlyChannel = 'silver.readonly';\n var ReadOnlyDataSchema = objOf([requiredBoolean('readonly')]);\n var broadcastReadonly = function (uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n var target = outerContainer.element;\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], { target: target });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], { target: target });\n }\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n };\n var setupReadonlyModeSwitch = function (editor, uiComponents) {\n editor.on('init', function () {\n if (editor.mode.isReadOnly()) {\n broadcastReadonly(uiComponents, true);\n }\n });\n editor.on('SwitchMode', function () {\n return broadcastReadonly(uiComponents, editor.mode.isReadOnly());\n });\n if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n };\n var receivingConfig = function () {\n var _a;\n return Receiving.config({\n channels: (_a = {}, _a[ReadOnlyChannel] = {\n schema: ReadOnlyDataSchema,\n onReceive: function (comp, data) {\n Disabling.set(comp, data.readonly);\n }\n }, _a)\n });\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 toolbarButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n };\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton,\n toolbarButton: toolbarButton\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 (isFunction(onDestroy)) {\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 _a$1;\n var onMenuItemExecute = function (info, itemResponse) {\n return runOnExecute$1(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 = (_a$1 = {}, _a$1[execute$5()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ], _a$1);\n\n var componentRenderPipeline = cat;\n var renderCommonItem = function (spec, structure, itemResponse, providersbackstage) {\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(function () {\n return spec.disabled || providersbackstage.isDisabled();\n }),\n receivingConfig(),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n var buildData = function (source) {\n return {\n value: source.value,\n meta: __assign({ text: source.text.getOr('') }, source.meta)\n };\n };\n\n var global$9 = 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$9.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map$2(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return global$9.mac ? updated.join('') : updated.join('+');\n };\n\n var renderIcon$1 = function (name, icons, classes) {\n if (classes === void 0) {\n classes = [iconClass];\n }\n return render$3(name, {\n tag: 'div',\n classes: classes\n }, icons);\n };\n var renderText = function (text) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text$1(global$e.translate(text))]\n };\n };\n var renderHtml = function (html, classes) {\n return {\n dom: {\n tag: 'div',\n classes: classes,\n innerHtml: html\n }\n };\n };\n var renderStyledText = function (style, text) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n styles: style.styles\n },\n components: [text$1(global$e.translate(text))]\n }]\n };\n };\n var renderShortcut = function (shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: convertText(shortcut)\n }\n };\n };\n var renderCheckmark = function (icons) {\n return renderIcon$1('checkmark', icons, [checkmarkClass]);\n };\n var renderSubmenuCaret = function (icons) {\n return renderIcon$1('chevron-right', icons, [caretClass]);\n };\n var renderDownwardsCaret = function (icons) {\n return renderIcon$1('chevron-down', icons, [caretClass]);\n };\n var renderContainer = function (container, components) {\n var directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n var alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n var getValignClass = function () {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n case 'middle':\n return containerValignMiddleClass;\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n return {\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n directionClass,\n alignClass,\n getValignClass()\n ]\n },\n components: components\n };\n };\n var renderImage = function (src, classes, alt) {\n return {\n dom: {\n tag: 'img',\n classes: classes,\n attributes: {\n src: src,\n alt: alt.getOr('')\n }\n }\n };\n };\n\n var renderColorStructure = function (item, providerBackstage, fallbackIcon) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var itemText = item.ariaLabel;\n var itemValue = item.value;\n var iconSvg = item.iconContent.map(function (name) {\n return getOr(name, providerBackstage.icons, fallbackIcon);\n });\n var getDom = function () {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var attributes = itemText.map(function (text) {\n return { title: providerBackstage.translate(text) };\n }).getOr({});\n var baseDom = {\n tag: 'div',\n attributes: attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return __assign(__assign({}, baseDom), {\n tag: 'button',\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatches__picker-btn'], false),\n innerHtml: icon\n });\n } else if (itemValue === removeColorCommand) {\n return __assign(__assign({}, baseDom), {\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatch--remove'], false),\n innerHtml: icon\n });\n } else {\n return __assign(__assign({}, baseDom), {\n attributes: __assign(__assign({}, baseDom.attributes), { 'data-mce-color': itemValue }),\n styles: { 'background-color': itemValue }\n });\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n var renderItemDomStructure = function (ariaLabel) {\n var domTitle = ariaLabel.map(function (label) {\n return { attributes: { title: global$e.translate(label) } };\n }).getOr({});\n return __assign({\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ]\n }, domTitle);\n };\n var renderNormalItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n var iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n var renderIcon = function (iconName) {\n return render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n };\n var renderEmptyIcon = function () {\n return Optional.some({ dom: iconSpec });\n };\n var leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n var checkmark = info.checkMark;\n var textRender = Optional.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n var content = info.htmlContent.fold(function () {\n return info.textContent.map(textRender);\n }, function (html) {\n return Optional.some(renderHtml(html, [textClass]));\n });\n var menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n checkmark,\n info.caret\n ]\n };\n return menuItem;\n };\n var renderItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n\n var tooltipBehaviour = function (meta, sharedBackstage) {\n return get$e(meta, 'tooltipWorker').map(function (tooltipWorker) {\n return [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: function (comp) {\n return {\n type: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable$1 }\n };\n },\n mode: 'follow-highlight',\n onShow: function (component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external$2({ element: SugarElement.fromDom(elm) })]);\n });\n }\n })];\n }).getOr([]);\n };\n var encodeText = function (text) {\n return global$b.DOM.encode(text);\n };\n var replaceText = function (text, matchText) {\n var translated = global$e.translate(text);\n var encoded = encodeText(translated);\n if (matchText.length > 0) {\n var escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, function (match) {\n return '' + match + '';\n });\n } else {\n return encoded;\n }\n };\n var renderAutocompleteItem = function (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var structure = renderItemStructure({\n presets: presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(function (text) {\n return replaceText(text, matchText);\n }) : Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Optional.none(),\n checkMark: Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n return renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: constant$1({}),\n onAction: function (_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n var render$2 = function (items, extras) {\n return map$2(items, function (item) {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render$2(item.items, extras));\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n case 'cardtext':\n var shouldHighlight = item.name.exists(function (name) {\n return contains$2(extras.cardText.highlightOn, name);\n });\n var matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n };\n var renderCardMenuItem = function (spec, itemResponse, sharedBackstage, extras) {\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n Disabling.set(component, state);\n each$1(descendants(component.element, '*'), function (elm) {\n component.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, state);\n }\n });\n });\n }\n };\n };\n var structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n containerRowClass\n ]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n data: buildData(__assign({ text: Optional.none() }, spec)),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: Optional.from(extras.itemBehaviours).getOr([])\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n var renderChoiceItem = function (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\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 : Optional.none(),\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Optional.none(),\n checkMark: useText ? Optional.some(renderCheckmark(providersBackstage.icons)) : Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, providersBackstage, renderIcons);\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 noop;\n },\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var parts$f = generate$3(owner$2(), parts$h());\n\n var hexColour = function (value) {\n return { value: value };\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 normalizeHex = function (hex) {\n return removeLeading(hex, '#').toUpperCase();\n };\n var fromString$1 = function (hex) {\n return isHexString(hex) ? Optional.some({ value: normalizeHex(hex) }) : Optional.none();\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: 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).toUpperCase();\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$1 = 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: red,\n green: green,\n blue: blue,\n alpha: 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$1(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$1(255 * (r + match));\n g = round$1(255 * (g + match));\n b = round$1(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 Optional.some(rgbaColour(0, 0, 0, 0));\n }\n var rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n var toString = function (rgba) {\n return 'rgba(' + rgba.red + ',' + rgba.green + ',' + rgba.blue + ',' + rgba.alpha + ')';\n };\n var red = rgbaColour(255, 0, 0, 1);\n\n var fireSkinLoaded$1 = function (editor) {\n return editor.fire('SkinLoaded');\n };\n var fireSkinLoadError$1 = function (editor, error) {\n return editor.fire('SkinLoadError', error);\n };\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n var fireResizeContent = function (editor, e) {\n return editor.fire('ResizeContent', e);\n };\n var fireScrollContent = function (editor, e) {\n return editor.fire('ScrollContent', e);\n };\n var fireTextColorChange = function (editor, data) {\n return editor.fire('TextColorChange', data);\n };\n\n var hsvColour = function (hue, saturation, value) {\n return {\n hue: hue,\n saturation: saturation,\n value: 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 hexToHsv = function (hex) {\n return fromRgb(fromHex(hex));\n };\n var hsvToHex = function (hsv) {\n return fromRgba(fromHsv(hsv));\n };\n var anyToHex = function (color) {\n return fromString$1(color).orThunk(function () {\n return fromString(color).map(fromRgba);\n }).getOrThunk(function () {\n var canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n var rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n var r = rgba[0];\n var g = rgba[1];\n var b = rgba[2];\n var a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n };\n\n var global$8 = 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$8.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$8.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: 'Light Green',\n value: '#BFEDD2'\n },\n {\n type: choiceItem,\n text: 'Light Yellow',\n value: '#FBEEB8'\n },\n {\n type: choiceItem,\n text: 'Light Red',\n value: '#F8CAC6'\n },\n {\n type: choiceItem,\n text: 'Light Purple',\n value: '#ECCAFA'\n },\n {\n type: choiceItem,\n text: 'Light Blue',\n value: '#C2E0F4'\n },\n {\n type: choiceItem,\n text: 'Green',\n value: '#2DC26B'\n },\n {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n },\n {\n type: choiceItem,\n text: 'Red',\n value: '#E03E2D'\n },\n {\n type: choiceItem,\n text: 'Purple',\n value: '#B96AD9'\n },\n {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n },\n {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#169179'\n },\n {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n },\n {\n type: choiceItem,\n text: 'Dark Red',\n value: '#BA372A'\n },\n {\n type: choiceItem,\n text: 'Dark Purple',\n value: '#843FA1'\n },\n {\n type: choiceItem,\n text: 'Dark Blue',\n value: '#236FA1'\n },\n {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n },\n {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#CED4D9'\n },\n {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n },\n {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n },\n {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\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 colors = [];\n for (var i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: '#' + anyToHex(colorMap[i]).value,\n type: 'choiceitem'\n });\n }\n return colors;\n };\n var getColorCols$2 = function (editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n var hasCustomColors$1 = 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$2 = function (editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n var getCurrentColors = function () {\n return map$2(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\n var fallbackColor = '#000000';\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 Optional.from(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 = getColors$2(editor);\n var defaultCols = calcCols(colors.length);\n return getColorCols$2(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 applyColor = function (editor, format, value, onChoice) {\n if (value === 'custom') {\n var dialog = colorPickerDialog(editor);\n dialog(function (colorOpt) {\n colorOpt.each(function (color) {\n addColor(color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, fallbackColor);\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 getColors$1 = function (colors, hasCustom) {\n return colors.concat(getCurrentColors().concat(getAdditionalColors(hasCustom)));\n };\n var getFetch$1 = function (colors, hasCustom) {\n return function (callback) {\n callback(getColors$1(colors, hasCustom));\n };\n };\n var setIconColor = function (splitButtonApi, name, newColor) {\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(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 = 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$1(getColors$2(editor), hasCustomColors$1(editor)),\n onAction: function (_splitButtonApi) {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: function (_splitButtonApi, value) {\n applyColor(editor, format, value, function (newColor) {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name: name,\n color: newColor\n });\n });\n },\n onSetup: function (splitButtonApi) {\n setIconColor(splitButtonApi, name, lastColor.get());\n var handler = function (e) {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n editor.on('TextColorChange', handler);\n return function () {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n var registerTextColorMenuItem = function (editor, name, format, text) {\n editor.ui.registry.addNestedMenuItem(name, {\n text: text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n getSubmenuItems: function () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: function (data) {\n applyColor(editor, format, data.value, noop);\n }\n }];\n }\n });\n };\n var colorPickerDialog = function (editor) {\n return function (callback, value) {\n var isValid = false;\n var onSubmit = function (api) {\n var data = api.getData();\n var hex = data.colorpicker;\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate([\n 'Invalid hex color code: {0}',\n hex\n ]));\n }\n };\n var onAction = function (_api, details) {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n var initialData = { colorpicker: value };\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: onSubmit,\n onClose: noop,\n onCancel: function () {\n callback(Optional.none());\n }\n });\n };\n };\n var register$a = function (editor) {\n registerCommands(editor);\n var lastForeColor = Cell(fallbackColor);\n var lastBackColor = Cell(fallbackColor);\n registerTextColorButton(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color');\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color');\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 createChoiceItems = function (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map$2(items, function (item) {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, function (d) {\n return Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage, menuHasIcons(items)));\n });\n } else {\n return Optional.none();\n }\n }));\n };\n\n var deriveMenuMovement = function (columns, presets) {\n var menuMarkers = markers(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 renderColorSwatchItem = function (spec, backstage) {\n var items = getColorItems(spec, backstage);\n var columns = backstage.colorinput.getColorCols();\n var presets = 'color';\n var menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onAction({ value: value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, backstage.shared.providers);\n var widgetSpec = __assign(__assign({}, menuSpec), {\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets)\n });\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n var getColorItems = function (spec, backstage) {\n var useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(function () {\n return getColors$1(backstage.colorinput.getColors(), useCustomColors);\n }, function (colors) {\n return colors.concat(getAdditionalColors(useCustomColors));\n });\n };\n\n var cellOverEvent = generate$6('cell-over');\n var cellExecuteEvent = generate$6('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 var onClick = function (c, se) {\n se.stop();\n emitExecute(c);\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$1(mouseover(), Focusing.focus),\n run$1(execute$5(), emitExecute),\n run$1(click(), onClick),\n run$1(tap(), onClick)\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$3(cells, function (cellRow) {\n return map$2(cellRow, premade);\n });\n };\n var makeLabelText = function (row, col) {\n return text$1(col + 'x' + row);\n };\n var renderInsertTableMenuItem = function (spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$6('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var emptyLabelText = makeLabelText(0, 0);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: { id: sizeLabelId }\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.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 runOnAttached(function (c) {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }),\n runWithTarget(cellOverEvent, function (c, t, e) {\n var _a = e.event, row = _a.row, col = _a.col;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }),\n runWithTarget(cellExecuteEvent, function (c, _, e) {\n var _a = e.event, row = _a.row, col = _a.col;\n spec.onAction({\n numRows: row + 1,\n numColumns: 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 = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n var renderFancyMenuItem = function (spec, backstage) {\n return get$e(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec, backstage);\n });\n };\n\n var renderNestedItem = function (spec, itemResponse, providersBackstage, renderIcons, downwardsCaret) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n if (downwardsCaret === void 0) {\n downwardsCaret = false;\n }\n var caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : 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 htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.some(caret),\n checkMark: Optional.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, providersBackstage);\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 htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.none(),\n checkMark: Optional.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, providersBackstage);\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, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\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: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n checkMark: Optional.some(renderCheckmark(providersBackstage.icons)),\n caret: Optional.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, renderIcons);\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, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var autocomplete = renderAutocompleteItem;\n var separator$3 = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$1 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n var card = renderCardMenuItem;\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n var createMenuItemFromBridge = function (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) {\n var providersBackstage = backstage.shared.providers;\n var parseForHorizontalMenu = function (menuitem) {\n return !isHorizontalMenu ? menuitem : __assign(__assign({}, menuitem), {\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n });\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, function (d) {\n return Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu));\n });\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, function (d) {\n return Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(parseForHorizontalMenu(d), backstage);\n });\n default: {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n var createAutocompleteItems = function (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, function (item) {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, function (d) {\n return Optional.some(card(__assign(__assign({}, d), {\n onAction: function (api) {\n d.onAction(api);\n onItemValueHandler(d.value, d.meta);\n }\n }), itemResponse, sharedBackstage, {\n itemBehaviours: tooltipBehaviour(d.meta, sharedBackstage),\n cardText: {\n matchText: matchText,\n highlightOn: highlightOn\n }\n }));\n });\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, function (d) {\n return Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons));\n });\n }\n }));\n };\n var createPartialMenu = function (value, items, itemResponse, backstage, isHorizontalMenu) {\n var hasIcons = menuHasIcons(items);\n var alloyItems = cat(map$2(items, function (item) {\n var itemHasIcon = function (i) {\n return isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n };\n var createItem = function (i) {\n return createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n };\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(__assign(__assign({}, item), { disabled: true }));\n } else {\n return createItem(item);\n }\n }));\n var createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(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$2();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers(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$9 = function (editor, sharedBackstage) {\n var activeAutocompleter = value$1();\n var processingAction = Cell(false);\n var autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter']\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [run$1(dismissRequested(), function () {\n return cancelIfNecessary();\n })])]),\n lazySink: sharedBackstage.getSink\n }));\n var isMenuOpen = function () {\n return InlineView.isOpen(autocompleter);\n };\n var isActive = function () {\n return activeAutocompleter.get().isSome();\n };\n var hideIfNecessary = function () {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n var cancelIfNecessary = function () {\n if (isActive()) {\n var lastElement = activeAutocompleter.get().map(function (ac) {\n return ac.element;\n });\n detect(lastElement.getOr(SugarElement.fromDom(editor.selection.getNode()))).each(unwrap);\n hideIfNecessary();\n activeAutocompleter.clear();\n processingAction.set(false);\n }\n };\n var getAutocompleters = cached(function () {\n return register$b(editor);\n });\n var getCombinedItems = function (triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Optional.from(m.columns);\n }).getOr(1);\n return bind$3(matches, function (match) {\n var choices = match.items;\n return createAutocompleteItems(choices, match.matchText, function (itemValue, itemMeta) {\n var nr = editor.selection.getRng();\n getContext(editor.dom, nr, triggerChar).fold(function () {\n return console.error('Lost context. Cursor probably moved');\n }, function (_a) {\n var range = _a.range;\n var autocompleterApi = {\n hide: function () {\n cancelIfNecessary();\n },\n reload: function (fetchOptions) {\n hideIfNecessary();\n load(fetchOptions);\n }\n };\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);\n });\n };\n var commenceIfNecessary = function (context) {\n if (!isActive()) {\n var wrapper = create$5(editor, context.range);\n activeAutocompleter.set({\n triggerChar: context.triggerChar,\n element: wrapper,\n matchLength: context.text.length\n });\n processingAction.set(false);\n }\n };\n var display = function (ac, context, lookupData, items) {\n ac.matchLength = context.text.length;\n var columns = findMap(lookupData, function (ld) {\n return Optional.from(ld.columns);\n }).getOr(1);\n InlineView.showAt(autocompleter, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')), {\n anchor: {\n type: 'node',\n root: SugarElement.fromDom(editor.getBody()),\n node: Optional.from(ac.element)\n }\n });\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n };\n var doLookup = function (fetchOptions) {\n return activeAutocompleter.get().map(function (ac) {\n return getContext(editor.dom, editor.selection.getRng(), ac.triggerChar).bind(function (newContext) {\n return lookupWithContext(editor, getAutocompleters, newContext, fetchOptions);\n });\n }).getOrThunk(function () {\n return lookup$2(editor, getAutocompleters);\n });\n };\n var load = function (fetchOptions) {\n doLookup(fetchOptions).fold(cancelIfNecessary, function (lookupInfo) {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(function (lookupData) {\n activeAutocompleter.get().map(function (ac) {\n var context = lookupInfo.context;\n if (ac.triggerChar === context.triggerChar) {\n var combinedItems = getCombinedItems(context.triggerChar, lookupData);\n if (combinedItems.length > 0) {\n display(ac, context, lookupData, combinedItems);\n } else if (context.text.length - ac.matchLength >= 10) {\n cancelIfNecessary();\n } else {\n hideIfNecessary();\n }\n }\n });\n });\n });\n };\n var onKeypress = last(function (e) {\n if (e.which === 27) {\n return;\n }\n load();\n }, 50);\n var autocompleterUiApi = {\n onKeypress: onKeypress,\n cancelIfNecessary: cancelIfNecessary,\n isMenuOpen: isMenuOpen,\n isActive: isActive,\n isProcessingAction: processingAction.get,\n getView: function () {\n return InlineView.getContent(autocompleter);\n }\n };\n if (editor.hasPlugin('rtc') === false) {\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n }\n };\n var Autocompleter = { register: register$9 };\n\n var closest = function (scope, selector, isRoot) {\n return closest$1(scope, selector, isRoot).isSome();\n };\n\n var DelayedFunction = function (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 = setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n var cancel = function () {\n if (ref !== null) {\n 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 Optional.none();\n }\n return Optional.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 = value$1();\n var longpressFired = Cell(false);\n var longpress$1 = DelayedFunction(function (event) {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n var handleTouchstart = function (event) {\n getTouch(event).each(function (touch) {\n longpress$1.cancel();\n var data = {\n x: touch.clientX,\n y: touch.clientY,\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(data);\n });\n return Optional.none();\n };\n var handleTouchmove = function (event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.on(function (data) {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.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 if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n var handlers = wrapAll([\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 get$e(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$2([\n 'input',\n 'textarea'\n ], name$2(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n var isFirefox = function () {\n return detect$1().browser.isFirefox();\n };\n var bindFocus = function (container, handler) {\n if (isFirefox()) {\n return capture(container, 'focus', handler);\n } else {\n return bind(container, 'focusin', handler);\n }\n };\n var bindBlur = function (container, handler) {\n if (isFirefox()) {\n return capture(container, 'blur', handler);\n } else {\n return bind(container, 'focusout', handler);\n }\n };\n var setup$d = function (container, rawSettings) {\n var settings = __assign({ stopBackspace: true }, rawSettings);\n var pointerEvents = [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n var tapEvent = monitor(settings);\n var simpleEvents = map$2(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'transitioncancel',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), function (type) {\n return bind(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 = value$1();\n var onPaste = bind(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(setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n var onKeydown = bind(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && 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 = value$1();\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n var unbind = function () {\n each$1(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.on(clearTimeout);\n focusoutTimeout.on(clearTimeout);\n };\n return { unbind: unbind };\n };\n\n var derive = function (rawEvent, rawTarget) {\n var source = get$e(rawEvent, 'target').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: 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: never,\n event: 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$1 = 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$1.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$1.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n } else {\n return parent(handlerInfo.element).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.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(always, function (parent) {\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger);\n }, never);\n };\n var triggerHandler = function (lookup, eventType, rawEvent, target, logger) {\n var source = derive(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$1(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 return triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n };\n var triggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n var eventHandler = function (element, descHandler) {\n return {\n element: element,\n descHandler: descHandler\n };\n };\n var broadcastHandler = function (id, handler) {\n return {\n id: id,\n descHandler: handler\n };\n };\n var EventRegistry = function () {\n var registry = {};\n var registerId = function (extraArgs, id, events) {\n each(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).bind(function (id) {\n return get$e(handlers, id);\n }).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n };\n var filterByType = function (type) {\n return get$e(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 return get$e(registry, type).bind(function (handlers) {\n return closest$4(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n });\n };\n var unregisterId = function (id) {\n each(registry, function (handlersById, _eventName) {\n if (has$2(handlersById, 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 var Registry = function () {\n var events = EventRegistry();\n var components = {};\n var readOrTag = function (component) {\n var elem = component.element;\n return read$1(elem).getOrThunk(function () {\n return write('uid-', component.element);\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 (hasNonNullableKey(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 get$e(components, id);\n };\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n };\n\n var factory$j = 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$2(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n var Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [\n defaulted('components', []),\n field('containerBehaviours', []),\n defaulted('events', {}),\n defaulted('domModification', {}),\n defaulted('eventOrder', {})\n ]\n });\n\n var takeover = function (root) {\n var isAboveRoot = function (el) {\n return parent(root.element).fold(always, 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$d(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$1('real'),\n triggerEvent: function (eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n return triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function (target, originator) {\n read$1(target).fold(function () {\n focus$3(target);\n }, function (_alloyId) {\n monitorEvent(focus$4(), target, function (logger) {\n triggerHandler(lookup, focus$4(), {\n originator: originator,\n kill: noop,\n prevent: noop,\n target: target\n }, target, logger);\n return false;\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(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: always\n };\n var addToWorld = function (component) {\n component.connect(systemApi);\n if (!isText$1(component.element)) {\n registry.register(component);\n each$1(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, { target: component.element });\n }\n };\n var removeFromWorld = function (component) {\n if (!isText$1(component.element)) {\n each$1(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 = function (component) {\n detach(component);\n };\n var destroy = function () {\n domEvents.unbind();\n remove$5(root.element);\n };\n var broadcastData = function (data) {\n var receivers = registry.filter(receive());\n each$1(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: true,\n data: message\n });\n };\n var broadcastOn = function (channels, message) {\n broadcastData({\n universal: false,\n channels: channels,\n data: 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: root,\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove,\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 renderBar = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n };\n };\n\n var schema$l = constant$1([\n defaulted('prefix', 'form-field'),\n field('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var parts$e = constant$1([\n optional({\n schema: [required$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: [required$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: function (spec) {\n var excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })\n ]);\n\n var factory$i = 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$2([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$6(detail.prefix);\n ps.label().each(function (label) {\n set$8(label.element, 'for', id);\n set$8(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$6(detail.prefix);\n set$8(descriptor.element, 'id', descriptorId);\n set$8(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({\n name: 'FormField',\n configFields: schema$l(),\n partFields: parts$e(),\n factory: factory$i,\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 exhibit$2 = function (base, tabConfig) {\n return nu$7({\n attributes: wrapAll([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2\n });\n\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n\n var Tabstopping = create$8({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n var renderFormFieldWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\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, extraBehaviours) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\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$2 = 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 formChangeEvent = generate$6('form-component-change');\n var formCloseEvent = generate$6('form-close');\n var formCancelEvent = generate$6('form-cancel');\n var formActionEvent = generate$6('form-action');\n var formSubmitEvent = generate$6('form-submit');\n var formBlockEvent = generate$6('form-block');\n var formUnblockEvent = generate$6('form-unblock');\n var formTabChangeEvent = generate$6('form-tabchange');\n var formResizeEvent = generate$6('form-resize');\n\n var renderCollection = function (spec, providersBackstage) {\n var _a;\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var runOnItem = function (f) {\n return function (comp, se) {\n closest$1(se.event.target, '[data-collection-item-value]').each(function (target) {\n f(comp, se, target, get$d(target, 'data-collection-item-value'));\n });\n };\n };\n var setContents = function (comp, items) {\n var htmlLines = map$2(items, function (item) {\n var itemText = global$e.translate(item.text);\n var textContent = spec.columns === 1 ? '
' + itemText + '
' : '';\n var iconContent = '
' + item.icon + '
';\n var mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n var ariaLabel = itemText.replace(/\\_| \\- |\\-/g, function (match) {\n return mapItemName[match];\n });\n var disabledClass = providersBackstage.isDisabled() ? ' tox-collection__item--state-disabled' : '';\n return '
' + iconContent + textContent + '
';\n });\n var chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n var html = map$2(chunks, function (ch) {\n return '
' + ch.join('') + '
';\n });\n set$5(comp.element, html.join(''));\n };\n var onClick = runOnItem(function (comp, se, tgt, itemValue) {\n se.stop();\n if (!providersBackstage.isDisabled()) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n var collectionEvents = [\n run$1(mouseover(), runOnItem(function (comp, se, tgt) {\n focus$3(tgt);\n })),\n run$1(click(), onClick),\n run$1(tap(), onClick),\n run$1(focusin(), runOnItem(function (comp, se, tgt) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run$1(focusout(), runOnItem(function (comp) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n })),\n runOnExecute$1(runOnItem(function (comp, se, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n var iterCollectionItems = function (comp, applyAttributes) {\n return map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\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$1 },\n behaviours: derive$1([\n Disabling.config({\n disabled: providersBackstage.isDisabled,\n onDisabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$8(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n remove$2(childElm, 'tox-collection__item--state-disabled');\n remove$7(childElm, 'aria-disabled');\n });\n }\n }),\n receivingConfig(),\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 eventOrder: (_a = {}, _a[execute$5()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'collection-events'\n ], _a)\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n var schema$k = constant$1([\n option('data'),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('tag', 'input'),\n defaulted('inputClasses', []),\n onHandler('onSetValue'),\n defaulted('styles', {}),\n defaulted('eventOrder', {}),\n field('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted('selectOnFocus', true)\n ]);\n var focusBehaviours = function (detail) {\n return derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? 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(__assign({}, focusBehaviours(detail)), augment(detail.inputBehaviours, [Representing.config({\n store: __assign(__assign({ mode: 'manual' }, detail.data.map(function (data) {\n return { initialValue: data };\n }).getOr({})), {\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$4(input.element, data);\n }\n }\n }),\n onSetValue: detail.onSetValue\n })]));\n };\n var dom = 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 factory$h = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n var Input = single({\n name: 'Input',\n configFields: schema$k(),\n factory: factory$h\n });\n\n var exports$1 = {}, module = { exports: exports$1 };\n (function (define, exports, module, require) {\n (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EphoxContactWrapper = factory());\n }(this, function () {\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n var promise = { exports: {} };\n (function (module) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {\n }\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(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 = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self)\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 (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n }\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, 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 prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\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 Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n }(commonjsGlobal));\n }(promise));\n var promisePolyfill = promise.exports;\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n var promisePolyfill_1 = { boltExport: Global.Promise || promisePolyfill };\n return promisePolyfill_1;\n }));\n }(undefined, exports$1, module));\n var Promise$1 = module.exports.boltExport;\n\n var nu$3 = function (baseFn) {\n var data = Optional.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 };\n var set = function (x) {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each$1(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n 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 errorReporter = function (err) {\n setTimeout(function () {\n throw err;\n }, 0);\n };\n var make$5 = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make$5(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make$5(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make$5(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make$5(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n var nu$2 = function (baseFn) {\n return make$5(function () {\n return new Promise$1(baseFn);\n });\n };\n var pure = function (a) {\n return make$5(function () {\n return Promise$1.resolve(a);\n });\n };\n var Future = {\n nu: nu$2,\n pure: pure\n };\n\n var ariaElements = [\n 'input',\n 'textarea'\n ];\n var isAriaElement = function (elem) {\n var name = name$2(elem);\n return contains$2(ariaElements, name);\n };\n var markValid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$8(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set$5(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$8(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set$5(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 = function (component, invalidConfig, invalidState) {\n invalidConfig.notify.each(function (notifyInfo) {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).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(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run,\n isInvalid: isInvalid\n });\n\n var events$8 = function (invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive$2([run$1(validatorInfo.onEvent, function (component) {\n run(component, invalidConfig, invalidState).get(identity$1);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n\n var InvalidateSchema = [\n required$1('invalidClass'),\n defaulted('getRoot', Optional.none),\n optionObjOf('notify', [\n defaulted('aria', 'alert'),\n defaulted('getContainer', Optional.none),\n defaulted('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n required$1('validate'),\n defaulted('onEvent', 'input'),\n defaulted('validateOnLoad', true)\n ])\n ];\n\n var Invalidating = create$8({\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 getCoupled = function (component, coupleConfig, coupleState, name) {\n return coupleState.getOrCreate(component, coupleConfig, name);\n };\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled\n });\n\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n\n var init$a = function () {\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 get$e(coupled, name).getOrThunk(function () {\n var builder = get$e(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$1({});\n return nu$8({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n\n var Coupling = create$8({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n var suffix = constant$1('sink');\n var partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive$2([\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 hotspot = detail.getHotspot(component).getOr(component);\n var type = 'hotspot';\n var overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(function () {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides\n };\n }, function (layouts) {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides,\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 Optional.from(tieredMenu.sketch(__assign(__assign({}, externals.menu()), {\n uid: generate$5(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function (tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, { anchor: anchor });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item: item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, { anchor: anchor });\n each$1(submenuTriggers, function (st) {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: function () {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n })));\n });\n });\n };\n var open = 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 = 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 : open;\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$a(hotspot.element);\n if (useMinWidth) {\n set$7(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$6(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 doRepositionMenus = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n var makeSandbox$1 = 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: {\n id: ariaOwner.id,\n role: 'listbox'\n }\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$1(data, queryElem) || isPartOf$1(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 Receiving.config({ channels: __assign(__assign({}, receivingChannel$1({ isExtraPart: never })), receivingChannel({ doReposition: doRepositionMenus })) })\n ])\n };\n };\n var repositionMenus = function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n var sandboxFields = function () {\n return [\n defaulted('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n };\n\n var schema$j = constant$1([\n required$1('dom'),\n required$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n field('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n required$1('toggleClass'),\n defaulted('eventOrder', {}),\n option('lazySink'),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n option('role')\n ].concat(sandboxFields()));\n var parts$d = constant$1([\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return { onExecute: detail.onExecute };\n }\n }),\n partType$1()\n ]);\n\n var factory$g = function (detail, components, _spec, externals) {\n var _a;\n var lookupAttr = function (attr) {\n return get$e(detail.dom, 'attributes').bind(function (attrs) {\n return get$e(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, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var apis = {\n expand: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, 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, identity$1, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n var triggerExecute = function (comp, _se) {\n emitExecute(comp);\n return Optional.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$1(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return 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 Optional.some(true);\n },\n onEscape: function (comp, _se) {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n }\n }),\n Focusing.config({})\n ]),\n events: events$a(Optional.some(action)),\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\n apis: apis,\n domModification: {\n attributes: __assign(__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({\n name: 'Dropdown',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$g,\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 repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var exhibit$1 = function () {\n return nu$7({\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$7 = function () {\n return derive$2([abort(selectstart(), always)]);\n };\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$7,\n exhibit: exhibit$1\n });\n\n var Unselecting = create$8({\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 DisablingConfigs.button(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })));\n });\n },\n parts: { menu: part(false, 1, spec.presets) }\n });\n };\n\n var colorInputChangeEvent = generate$6('color-input-change');\n var colorSwatchChangeEvent = generate$6('color-swatch-change');\n var colorPickerCancelEvent = generate$6('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(noop);\n },\n inputBehaviours: derive$1([\n Disabling.config({ disabled: sharedBackstage.providers.isDisabled }),\n receivingConfig(),\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 = SugarElement.fromTag('span');\n set$7(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$2(label, sharedBackstage.providers);\n });\n var emitSwatchChange = function (colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, { value: value });\n };\n var onItemAction = function (comp, value) {\n memColorButton.getOpt(comp).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 addColor(value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\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: {\n onRtl: function () {\n return [\n southwest$2,\n southeast$2,\n south$2\n ];\n },\n onLtr: function () {\n return [\n southeast$2,\n southwest$2,\n south$2\n ];\n }\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(),\n presets: 'color',\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$1(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$7(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run$1(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$1(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 labelPart = optional({\n schema: [required$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 return {\n events: derive$2([\n runActionExtra(touchstart(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]),\n runActionExtra(mousedown(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]),\n runActionExtra(mousemove(), function (comp, se, det) {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])\n ])\n };\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$1({ dom: { styles: { position: 'absolute' } } }),\n overrides: function (detail) {\n return {\n events: derive$2([\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: [customField('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 return {\n behaviours: derive$1([\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: derive$2([\n run$1(touchstart(), setValueFrom),\n run$1(touchmove(), setValueFrom),\n run$1(mousedown(), setValueFrom),\n run$1(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ])\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 _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant$1(_sliderChangeEvent);\n var isTouchEvent$2 = function (evt) {\n return evt.type.indexOf('touch') !== -1;\n };\n var getEventSource = function (simulatedEvent) {\n var evt = simulatedEvent.event.raw;\n if (isTouchEvent$2(evt)) {\n var touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(function (t) {\n return SugarPosition(t.clientX, t.clientY);\n }) : Optional.none();\n } else {\n var mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(function (me) {\n return SugarPosition(me.clientX, me.clientY);\n }) : Optional.none();\n }\n };\n\n var t = 'top', r = '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 = function (detail, max, min) {\n return max(detail) - min(detail);\n };\n var xRange = function (detail) {\n return range(detail, maxX, minX);\n };\n var yRange = function (detail) {\n return range(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);\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: x };\n };\n var yValue = function (y) {\n return { y: y };\n };\n var xyValue = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var fireSliderChange$3 = function (component, value) {\n emitWith(component, sliderChangeEvent(), { value: value });\n };\n var setToTLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n var setToTEdge = function (edge, detail) {\n fireSliderChange$3(edge, yValue(min1Y(detail)));\n };\n var setToTEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n var setToTREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n var setToREdge = function (edge, detail) {\n fireSliderChange$3(edge, xValue(max1X(detail)));\n };\n var setToREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n var setToBREdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n var setToBEdge = function (edge, detail) {\n fireSliderChange$3(edge, yValue(max1Y(detail)));\n };\n var setToBEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n var setToBLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n var setToLEdge = function (edge, detail) {\n fireSliderChange$3(edge, xValue(min1X(detail)));\n };\n var setToLEdgeXY = function (edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\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$2 = 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 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$2 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$2 = function (x) {\n return { x: x };\n };\n var findValueOfOffset$1 = 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$2 = function (spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$2(xValue);\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n var setToMin$2 = function (spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(min));\n };\n var setToMax$2 = function (spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(max));\n };\n var moveBy$2 = 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$2(spectrum, sliderValue$2(xValue));\n return Optional.some(xValue);\n };\n var handleMovement$2 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$2(direction, spectrum, detail).map(always);\n };\n };\n var getValueFromEvent$2 = 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 Optional.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.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$2(args);\n };\n var findPositionOfValue$1 = 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$2 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$a(thumb.element) / 2;\n set$7(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n var onLeft$2 = handleMovement$2(-1);\n var onRight$2 = handleMovement$2(1);\n var onUp$2 = Optional.none;\n var onDown$2 = Optional.none;\n var edgeActions$2 = {\n 'top-left': Optional.none(),\n 'top': Optional.none(),\n 'top-right': Optional.none(),\n 'right': Optional.some(setToREdge),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.none(),\n 'bottom-left': Optional.none(),\n 'left': Optional.some(setToLEdge)\n };\n\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$2,\n findPositionOfValue: findPositionOfValue$1,\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 fireSliderChange$1 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$1 = function (y) {\n return { y: y };\n };\n var findValueOfOffset = 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(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n var setToMin$1 = function (spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$1(spectrum, sliderValue$1(min));\n };\n var setToMax$1 = function (spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$1(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$1(spectrum, sliderValue$1(yValue));\n return Optional.some(yValue);\n };\n var handleMovement$1 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(always);\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 = function (spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getYScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Optional.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.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$2(args);\n };\n var findPositionOfValue = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue(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(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n var onLeft$1 = Optional.none;\n var onRight$1 = Optional.none;\n var onUp$1 = handleMovement$1(-1);\n var onDown$1 = handleMovement$1(1);\n var edgeActions$1 = {\n 'top-left': Optional.none(),\n 'top': Optional.some(setToTEdge),\n 'top-right': Optional.none(),\n 'right': Optional.none(),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.some(setToBEdge),\n 'bottom-left': Optional.none(),\n 'left': Optional.none()\n };\n\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue,\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 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var setValueFrom = function (spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value.left);\n var yValue = findValueOfOffset(spectrum, detail, value.top);\n var val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n var moveBy = 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(spectrum, sliderValue(xValue, yValue));\n return Optional.some(xValue);\n };\n var handleMovement = function (direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy(direction, isVerticalMovement, spectrum, detail).map(always);\n };\n };\n var setToMin = function (spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n var setToMax = function (spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n var getValueFromEvent = function (simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n var setPositionFromValue = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$a(thumb.element) / 2;\n var thumbYRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$7(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n var onLeft = handleMovement(-1, false);\n var onRight = handleMovement(1, false);\n var onUp = handleMovement(-1, true);\n var onDown = handleMovement(1, true);\n var edgeActions = {\n 'top-left': Optional.some(setToTLEdgeXY),\n 'top': Optional.some(setToTEdgeXY),\n 'top-right': Optional.some(setToTREdgeXY),\n 'right': Optional.some(setToREdgeXY),\n 'bottom-right': Optional.some(setToBREdgeXY),\n 'bottom': Optional.some(setToBEdgeXY),\n 'bottom-left': Optional.some(setToBLEdgeXY),\n 'left': Optional.some(setToLEdgeXY)\n };\n\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n getValueFromEvent: getValueFromEvent,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n var SliderSchema = [\n defaulted('stepSize', 1),\n defaulted('onChange', noop),\n defaulted('onChoose', noop),\n defaulted('onInit', noop),\n defaulted('onDragStart', noop),\n defaulted('onDragEnd', noop),\n defaulted('snapToGrid', false),\n defaulted('rounded', true),\n option('snapStart'),\n requiredOf('model', choose$1('mode', {\n x: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n customField('value', function (spec) {\n return Cell(spec.mode.minX);\n }),\n required$1('getInitialValue'),\n output$1('manager', HorizontalModel)\n ],\n y: [\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', function (spec) {\n return Cell(spec.mode.minY);\n }),\n required$1('getInitialValue'),\n output$1('manager', VerticalModel)\n ],\n xy: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', function (spec) {\n return Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n });\n }),\n required$1('getInitialValue'),\n output$1('manager', TwoDModel)\n ]\n })),\n field('sliderBehaviours', [\n Keying,\n Representing\n ]),\n customField('mouseIsDown', function () {\n return Cell(false);\n })\n ];\n\n var sketch$2 = function (detail, components, _spec, _externals) {\n var _a;\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 setValue = function (slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n var changeValue = function (slider, newValue) {\n setValue(slider, newValue);\n var thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.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 choose = function (slider) {\n var fireOnChoose = function () {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n var onDragStart = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n var onDragEnd = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, [\n Keying.config({\n mode: 'special',\n focusIn: function (slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(always);\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_) {\n return modelDetail.value.get();\n }\n }\n }),\n Receiving.config({ channels: (_a = {}, _a[mouseReleased()] = { onReceive: choose }, _a) })\n ]),\n events: derive$2([\n run$1(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 run$1(touchstart(), onDragStart),\n run$1(touchend(), onDragEnd),\n run$1(mousedown(), onDragStart),\n run$1(mouseup(), onDragEnd)\n ]),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n setValue: setValue,\n refresh: refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n var Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: function (apis, slider, value) {\n apis.setValue(slider, value);\n },\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 fieldsUpdate = generate$6('rgb-hex-update');\n var sliderUpdate = generate$6('slider-update');\n var paletteUpdate = generate$6('palette-update');\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$1({ y: 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\n var owner$1 = 'form';\n var schema$i = [field('formBehaviours', [Representing])];\n var getPartName$1 = 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$1(owner$1, getPartName$1(name), config);\n };\n return {\n field: field,\n record: constant$1(record)\n };\n }();\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n var toResult = function (o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n var make$4 = function (detail, components) {\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(opt, new Error('Cannot find a current component to extract the value from for form part \\'' + pName + '\\': ' + element(v.element)));\n }).map(Representing.getValue);\n });\n },\n setValue: function (form, values) {\n each(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$6('valid-input');\n var invalidInput = generate$6('invalid-input');\n var validatingInput = generate$6('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$7(preview.element, 'background-color', '#' + hex.value);\n });\n };\n var factory = function () {\n var state = {\n red: Cell(Optional.some(255)),\n green: Cell(Optional.some(255)),\n blue: Cell(Optional.some(255)),\n hex: Cell(Optional.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', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n var onInvalidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.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', Optional.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, Optional.some(val));\n getValueRgb().each(function (rgb) {\n var hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, { hex: hex });\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$1(validInput, onValidInput),\n run$1(invalidInput, onInvalidInput),\n run$1(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({\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\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 setPaletteHue = function (slider, hue) {\n var canvas = slider.components()[0].element.dom;\n var hsv = hsvColour(hue, 100, 100);\n var rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n var setPaletteThumb = function (slider, hex) {\n var hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n };\n var factory = function (_detail) {\n var getInitialValue = constant$1({\n x: 0,\n y: 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(red));\n };\n var sliderBehaviours = derive$1([\n Composing.config({ find: Optional.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({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: function (_apis, slider, hue) {\n setPaletteHue(slider, hue);\n },\n setThumb: function (_apis, slider, hex) {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n var makeFactory = function (translate, getClass) {\n var factory = function (detail) {\n var rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = paletteFactory(translate, getClass);\n var hueSliderToDegrees = function (hue) {\n return (100 - hue) / 100 * 360;\n };\n var hueDegreesToSlider = function (hue) {\n return 100 - hue / 360 * 100;\n };\n var state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n var memSlider = record(sliderFactory(translate, getClass));\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n var updatePalette = function (anyInSystem, _hex, hue) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setHue(palette, hue);\n });\n };\n var updateFields = function (anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n var updateSlider = function (anyInSystem, _hex, hue) {\n memSlider.getOpt(anyInSystem).each(function (slider) {\n Slider.setValue(slider, { y: hueDegreesToSlider(hue) });\n });\n };\n var updatePaletteThumb = function (anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setThumb(palette, hex);\n });\n };\n var updateState = function (hex, hue) {\n var rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n var runUpdates = function (anyInSystem, hex, hue, updates) {\n updateState(hex, hue);\n each$1(updates, function (update) {\n update(anyInSystem, hex, hue);\n });\n };\n var onPaletteUpdate = function () {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event.value;\n var oldHue = state.paletteHue.get();\n var newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n var onSliderUpdate = function () {\n var updates = [\n updatePalette,\n updateFields\n ];\n return function (form, simulatedEvent) {\n var hue = hueSliderToDegrees(simulatedEvent.event.value.y);\n var oldRgb = state.paletteRgba.get();\n var oldHsv = fromRgb(oldRgb);\n var newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n var onFieldsUpdate = function () {\n var updates = [\n updatePalette,\n updateSlider,\n updatePaletteThumb\n ];\n return function (form, simulatedEvent) {\n var hex = simulatedEvent.event.hex;\n var hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n memSlider.asSpec(),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run$1(fieldsUpdate, onFieldsUpdate()),\n run$1(paletteUpdate, onPaletteUpdate()),\n run$1(sliderUpdate, onSliderUpdate())\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({\n name: 'ColourPicker',\n configFields: [\n required$1('dom'),\n defaulted('onValidHex', noop),\n defaulted('onInvalidHex', noop)\n ],\n factory: factory\n });\n return colourPickerSketcher;\n };\n\n var self$1 = function () {\n return Composing.config({ find: Optional.some });\n };\n var memento$1 = 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$2(comp.element, index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOptional();\n });\n }\n });\n };\n var ComposingConfigs = {\n self: self$1,\n memento: memento$1,\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$1 = 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 = makeFactory(translate$1, 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 console.log('Can not find form');\n }, function (rgbForm) {\n Representing.setValue(rgbForm, { hex: Optional.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 global$6 = tinymce.util.Tools.resolve('tinymce.Resource');\n\n var isOldCustomEditor = function (spec) {\n return has$2(spec, 'init');\n };\n var renderCustomEditor = function (spec) {\n var editorApi = value$1();\n var memReplaced = record({ dom: { tag: spec.tag } });\n var initialValue = value$1();\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('custom-editor-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$6.load(spec.scriptId, spec.scriptUrl).then(function (init) {\n return init(ta.element.dom, spec.settings);\n })).then(function (ea) {\n initialValue.on(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(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(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 global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var processors = objOf([\n defaulted('preprocess', identity$1),\n defaulted('postprocess', identity$1)\n ]);\n var memento = function (mem, rawProcessors) {\n var ps = asRawOrDie$1('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$4);\n };\n var domHtml = function (optInitialValue) {\n return withElement(optInitialValue, get$7, set$5);\n };\n var memory = function (initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n var RepresentingConfigs = {\n memento: memento,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory\n };\n\n var defaultImageFileTypes = 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp';\n var filterByExtension = function (files, providersBackstage) {\n var allowedImageFileTypes = global$5.explode(providersBackstage.getSetting('images_file_types', defaultImageFileTypes, 'string'));\n var isFileInAllowedTypes = function (file) {\n return exists(allowedImageFileTypes, function (type) {\n return endsWith(file.name.toLowerCase(), '.' + type.toLowerCase());\n });\n };\n return filter$2(from(files), isFileInAllowedTypes);\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$1(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 input = simulatedEvent.event.raw.target;\n handleFiles(component, input.files);\n };\n var handleFiles = function (component, files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\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', [\n cutter(click()),\n cutter(tap())\n ])])\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$1('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragover', stopper),\n run$1('drop', sequence([\n stopper,\n onDrop\n ])),\n run$1(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([\n Tabstopping.config({}),\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\n ])\n })\n ]\n }]\n };\n };\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(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$2(spec.items, backstage.interpreter)\n };\n };\n\n var beforeObject = generate$6('alloy-fake-before-tabstop');\n var afterObject = generate$6('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 = function (container, targetComp) {\n var target = targetComp.element;\n if (has(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n var isPseudoStop = function (element) {\n return closest(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), never);\n };\n\n var platformNeedsSandboxing = !(detect$1().browser.isIE() || detect$1().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$8(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$8(frameComponent.element, 'srcdoc', 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(__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$2(label, providersBackstage);\n });\n var factory = function (newSpec) {\n return 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(Optional.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 var create$4 = function (width, height) {\n return resize$3(document.createElement('canvas'), width, height);\n };\n var clone$1 = function (canvas) {\n var tCanvas = create$4(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n };\n var get2dContext = function (canvas) {\n return canvas.getContext('2d');\n };\n var resize$3 = function (canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n\n var getWidth$1 = function (image) {\n return image.naturalWidth || image.width;\n };\n var getHeight$1 = function (image) {\n return image.naturalHeight || image.height;\n };\n\n var blobToImage = function (blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = URL.createObjectURL(blob);\n var image = new Image();\n var removeListeners = function () {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n var loaded = function () {\n removeListeners();\n resolve(image);\n };\n var error = function () {\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 setTimeout(loaded, 0);\n }\n });\n };\n var dataUriToBlobSync = function (uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n if (!matches) {\n return Optional.none();\n }\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = 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] = new Uint8Array(bytes);\n }\n return Optional.some(new Blob(byteArrays, { type: mimetype }));\n };\n var dataUriToBlob = function (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 var canvasToBlob = function (canvas, type, quality) {\n type = type || 'image/png';\n if (isFunction(HTMLCanvasElement.prototype.toBlob)) {\n return new Promise$1(function (resolve, reject) {\n canvas.toBlob(function (blob) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n };\n var canvasToDataURL = function (canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n };\n var blobToCanvas = function (blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$4(getWidth$1(image), getHeight$1(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n };\n var blobToDataUri = function (blob) {\n return new Promise$1(function (resolve) {\n var reader = new FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n };\n var revokeImageUrl = function (image) {\n URL.revokeObjectURL(image.src);\n };\n\n var create$3 = function (getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant$1(initialType);\n var toBlob = function () {\n return Promise$1.resolve(blob);\n };\n var toDataURL = constant$1(uri);\n var toBase64 = function () {\n return uri.split(',')[1];\n };\n var toAdjustedBlob = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n };\n var toAdjustedDataURL = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n };\n var toAdjustedBase64 = function (type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n };\n var toCanvas = function () {\n return getCanvas.then(clone$1);\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 var fromBlob = function (blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create$3(blobToCanvas(blob), blob, uri);\n });\n };\n var fromCanvas = function (canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create$3(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n };\n\n var blobToImageResult = function (blob) {\n return fromBlob(blob);\n };\n\n var clamp = function (value, min, max) {\n var parsedValue = typeof value === 'string' ? parseFloat(value) : value;\n if (parsedValue > max) {\n parsedValue = max;\n } else if (parsedValue < min) {\n parsedValue = min;\n }\n return parsedValue;\n };\n var identity = function () {\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 var multiply = function (matrix1, matrix2) {\n var col = [];\n var out = new Array(25);\n var val;\n for (var i = 0; i < 5; i++) {\n for (var j = 0; j < 5; j++) {\n col[j] = matrix2[j + i * 5];\n }\n for (var j = 0; j < 5; j++) {\n val = 0;\n for (var 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 var adjustContrast = function (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 var adjustBrightness = function (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 var adjustColors = function (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\n var colorFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyColorFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pixelsData, m) {\n var r, g, b, a;\n var data = pixelsData.data, 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 (var i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i] = r * m0 + g * m1 + b * m2 + a * m3 + m4;\n data[i + 1] = r * m5 + g * m6 + b * m7 + a * m8 + m9;\n data[i + 2] = r * m10 + g * m11 + b * m12 + a * m13 + m14;\n data[i + 3] = r * m15 + g * m16 + b * m17 + a * m18 + m19;\n }\n return pixelsData;\n };\n var pixels = applyMatrix(context.getImageData(0, 0, canvas.width, canvas.height), matrix);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n var convoluteFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyConvoluteFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pIn, pOut, aMatrix) {\n var clamp = function (value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\n };\n var side = Math.round(Math.sqrt(aMatrix.length));\n var halfSide = Math.floor(side / 2);\n var rgba = pIn.data;\n var drgba = pOut.data;\n var w = pIn.width;\n var h = pIn.height;\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var r = 0;\n var g = 0;\n var b = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scx = clamp(x + cx - halfSide, 0, w - 1);\n var scy = clamp(y + cy - halfSide, 0, h - 1);\n var innerOffset = (scy * w + scx) * 4;\n var wt = aMatrix[cy * side + cx];\n r += rgba[innerOffset] * wt;\n g += rgba[innerOffset + 1] * wt;\n b += rgba[innerOffset + 2] * wt;\n }\n }\n var 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 pOut;\n };\n var pixelsIn = context.getImageData(0, 0, canvas.width, canvas.height);\n var pixelsOut = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = applyMatrix(pixelsIn, pixelsOut, matrix);\n context.putImageData(pixelsOut, 0, 0);\n return fromCanvas(canvas, type);\n };\n var functionColorFilter = function (colorFn) {\n var filterImpl = function (canvas, type, value) {\n var context = get2dContext(canvas);\n var lookup = new Array(256);\n var applyLookup = function (pixelsData, lookupData) {\n var data = pixelsData.data;\n for (var i = 0; i < data.length; i += 4) {\n data[i] = lookupData[data[i]];\n data[i + 1] = lookupData[data[i + 1]];\n data[i + 2] = lookupData[data[i + 2]];\n }\n return pixelsData;\n };\n for (var i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\n }\n var pixels = applyLookup(context.getImageData(0, 0, canvas.width, canvas.height), lookup);\n context.putImageData(pixels, 0, 0);\n return 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 var complexAdjustableColorFilter = function (matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(identity(), adjust));\n };\n };\n var basicColorFilter = function (matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n };\n var basicConvolutionFilter = function (kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n };\n var invert$1 = 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 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var brightness$1 = complexAdjustableColorFilter(adjustBrightness);\n var contrast$1 = complexAdjustableColorFilter(adjustContrast);\n var colorize$1 = function (ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, adjustColors(identity(), adjustR, adjustG, adjustB));\n };\n var sharpen$1 = basicConvolutionFilter([\n 0,\n -1,\n 0,\n -1,\n 5,\n -1,\n 0,\n -1,\n 0\n ]);\n var gamma$1 = functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n });\n\n var scale = function (image, dW, dH) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(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 var _scale = function (image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = create$4(dW, dH);\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);\n resolve(canvas);\n });\n };\n\n var ceilWithPrecision = function (num, precision) {\n if (precision === void 0) {\n precision = 2;\n }\n var mul = Math.pow(10, precision);\n var upper = Math.round(num * mul);\n return Math.ceil(upper / mul);\n };\n var rotate$1 = function (ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n };\n var applyRotate = function (image, type, angle) {\n var degrees = angle < 0 ? 360 + angle : angle;\n var rad = degrees * Math.PI / 180;\n var width = image.width;\n var height = image.height;\n var sin = Math.sin(rad);\n var cos = Math.cos(rad);\n var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));\n var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));\n var canvas = create$4(newWidth, newHeight);\n var context = get2dContext(canvas);\n context.translate(newWidth / 2, newHeight / 2);\n context.rotate(rad);\n context.drawImage(image, -width / 2, -height / 2);\n return fromCanvas(canvas, type);\n };\n var flip$1 = function (ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n };\n var applyFlip = function (image, type, axis) {\n var canvas = create$4(image.width, image.height);\n var context = 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 fromCanvas(canvas, type);\n };\n var crop$1 = function (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 var applyCrop = function (image, type, x, y, w, h) {\n var canvas = create$4(w, h);\n var context = get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return fromCanvas(canvas, type);\n };\n var resize$2 = function (ir, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return scale(canvas, w, h).then(function (newCanvas) {\n return fromCanvas(newCanvas, ir.getType());\n });\n });\n };\n\n var invert = function (ir) {\n return invert$1(ir);\n };\n var sharpen = function (ir) {\n return sharpen$1(ir);\n };\n var gamma = function (ir, value) {\n return gamma$1(ir, value);\n };\n var colorize = function (ir, adjustR, adjustG, adjustB) {\n return colorize$1(ir, adjustR, adjustG, adjustB);\n };\n var brightness = function (ir, adjust) {\n return brightness$1(ir, adjust);\n };\n var contrast = function (ir, adjust) {\n return contrast$1(ir, adjust);\n };\n var flip = function (ir, axis) {\n return flip$1(ir, axis);\n };\n var crop = function (ir, x, y, w, h) {\n return crop$1(ir, x, y, w, h);\n };\n var resize$1 = function (ir, w, h) {\n return resize$2(ir, w, h);\n };\n var rotate = function (ir, angle) {\n return rotate$1(ir, angle);\n };\n\n var renderIcon = function (iconName, iconsProvider, behaviours) {\n return render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ],\n behaviours: behaviours\n }, iconsProvider);\n };\n var renderIconFromPack = function (iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, []);\n };\n var renderReplacableIconFromPack = function (iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, [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 _a;\n var internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n var onToolbarButtonExecute = function (info) {\n return runOnExecute$1(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 = (_a = {}, _a[execute$5()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events'\n ], _a);\n\n var updateMenuText = generate$6('update-menu-text');\n var updateMenuIcon = generate$6('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 Optional.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 iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [prefix + '__select-chevron']\n }, sharedBackstage.providers.icons);\n var memDropdown = record(Dropdown.sketch(__assign(__assign(__assign({}, spec.uid ? { uid: spec.uid } : {}), role), {\n dom: {\n tag: 'button',\n classes: [\n prefix,\n prefix + '--select'\n ].concat(map$2(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 Optional.some(iconSpec)\n ]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(__spreadArray(__spreadArray([], spec.dropdownBehaviours, true), [\n DisablingConfigs.button(function () {\n return spec.disabled || sharedBackstage.providers.isDisabled();\n }),\n receivingConfig(),\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$1(updateMenuText, function (comp, se) {\n optMemDisplayText.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayText) {\n Replacing.set(displayText, [text$1(sharedBackstage.providers.translate(se.event.text))]);\n });\n }),\n run$1(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 ], false)),\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 (comp) {\n return Future.nu(curry(spec.fetch, comp));\n }\n })));\n return memDropdown.asSpec();\n };\n\n var isMenuItemReference = function (item) {\n return isString(item);\n };\n var isSeparator$1 = function (item) {\n return item.type === 'separator';\n };\n var isExpandingMenuItem = function (item) {\n return has$2(item, 'getSubmenuItems');\n };\n var separator$2 = { 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$1(acc[acc.length - 1]) ? acc.concat([separator$2]) : acc;\n } else if (has$2(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$1(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$1(item)) {\n return item;\n } else {\n var itemValue = get$e(item, 'value').getOrThunk(function () {\n return generate$6('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 = function (items, itemResponse, backstage, isHorizontalMenu) {\n var primary = generate$6('primary-menu');\n var data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n var submenus = map$1(data.menus, function (menuItems, menuName) {\n return createPartialMenu(menuName, menuItems, itemResponse, backstage, false);\n });\n var menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\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$8(elm, 'aria-pressed', true);\n } else {\n remove$2(elm, 'tox-tbtn--enabled');\n remove$7(elm, 'aria-pressed');\n }\n },\n isActive: function () {\n return has(component.element, 'tox-tbtn--enabled');\n }\n };\n };\n var renderMenuButton = function (spec, prefix, backstage, role) {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role: role,\n fetch: function (_comp, callback) {\n spec.fetch(function (items) {\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n });\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({})]\n }, prefix, backstage.shared);\n };\n var getFetch = function (items, getButton, backstage) {\n var getMenuItemAction = function (item) {\n return function (api) {\n var newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(function (sink) {\n getButton().getOpt(sink).each(function (orig) {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n };\n var getMenuItemSetup = function (item) {\n return function (api) {\n api.setActive(item.storage.get());\n };\n };\n return function (success) {\n success(map$2(items, function (item) {\n var text = item.text.fold(function () {\n return {};\n }, function (text) {\n return { text: text };\n });\n return __assign(__assign({\n type: item.type,\n active: false\n }, text), {\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n });\n }));\n };\n };\n\n var renderCommonSpec = function (spec, actionOpt, extraBehaviours, dom, components, providersBackstage) {\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(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }),\n receivingConfig(),\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 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, providersBackstage);\n };\n var renderIconButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var iconButtonSpec = renderIconButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n var renderButtonSpec = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\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 }) : Optional.none();\n var components = icon.isSome() ? componentRenderPipeline([icon]) : [];\n var innerHtml = icon.isSome() ? {} : { innerHtml: translatedText };\n var classes = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], !spec.primary && !spec.borderless ? [\n 'tox-button',\n 'tox-button--secondary'\n ] : ['tox-button'], true), icon.isSome() ? ['tox-button--icon'] : [], true), spec.borderless ? ['tox-button--naked'] : [], true), extraClasses, true);\n var dom = __assign(__assign({\n tag: 'button',\n classes: classes\n }, innerHtml), { attributes: { title: translatedText } });\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n var renderButton = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\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 console.error('Unknown button type: ', buttonType);\n }\n };\n };\n var isMenuFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'menu';\n };\n var isNormalFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n };\n var renderFooterButton = function (spec, buttonType, backstage) {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n var getButton = function () {\n return memButton_1;\n };\n var menuButtonSpec = spec;\n var fixedSpec = __assign(__assign({}, spec), {\n onSetup: function (api) {\n api.setDisabled(spec.disabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n });\n var memButton_1 = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none()));\n return memButton_1.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n var action = getAction(spec.name, buttonType);\n var buttonSpec = __assign(__assign({}, spec), { borderless: false });\n return renderButton(buttonSpec, action, backstage.shared.providers, []);\n } else {\n console.error('Unknown footer button type: ', buttonType);\n }\n };\n var renderDialogButton = function (spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field(__assign({ factory: Button }, renderButtonSpec(spec, Optional.some(action), providersBackstage, [\n RepresentingConfigs.memory(''),\n ComposingConfigs.self()\n ]))));\n };\n\n var schema$h = constant$1([\n defaulted('field1Name', 'field1'),\n defaulted('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers$1(['lockClass']),\n defaulted('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$1(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$c = constant$1([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [required$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$f = 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: Optional.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 (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasNonNullableKey(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({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$f,\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 has$2(inInch, u);\n };\n if (size.unit === unit) {\n return Optional.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Optional.some(size.value);\n } else {\n return Optional.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Optional.none();\n }\n };\n var noSizeConversion = function (_input) {\n return Optional.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).toOptional();\n var oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, 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$6('ratio-event');\n var makeIcon = function (iconName) {\n return render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__' + iconName\n ]\n }, providersBackstage.icons);\n };\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 makeIcon('lock'),\n makeIcon('unlock')\n ],\n buttonBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\n Tabstopping.config({})\n ])\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 Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\n Tabstopping.config({}),\n config('size-input-events', [\n run$1(focusin(), function (component, _simulatedEvent) {\n emitWith(component, ratioEvent, { isField1: isField1 });\n }),\n run$1(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 disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }),\n receivingConfig(),\n config('size-input-events2', [run$1(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$1(generate$6('undo'));\n var redo = constant$1(generate$6('redo'));\n var zoom = constant$1(generate$6('zoom'));\n var back = constant$1(generate$6('back'));\n var apply$1 = constant$1(generate$6('apply'));\n var swap = constant$1(generate$6('swap'));\n var transform$1 = constant$1(generate$6('transform'));\n var tempTransform = constant$1(generate$6('temp-transform'));\n var transformApply = constant$1(generate$6('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$1,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant$1('save-state');\n var disable = constant$1('disable');\n var enable = constant$1('enable');\n var external = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable,\n enable: enable\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 icon: Optional.none(),\n borderless: false\n }, action, providersBackstage));\n };\n var createIconButton = function (icon, tooltip, action, disabled) {\n return record(renderIconButton({\n name: icon,\n icon: Optional.some(icon),\n tooltip: Optional.some(tooltip),\n disabled: disabled,\n primary: false,\n borderless: false\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 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.disable());\n };\n var emitEnable = function (component) {\n return emit(component, external.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 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$1(external.disable(), function (comp, _se) {\n disableAllComponents(cropPanelComponents, comp);\n }),\n run$1(external.enable(), function (comp, _se) {\n enableAllComponents(cropPanelComponents, comp);\n })\n ])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: Optional.none(),\n constrain: true,\n disabled: false\n }, providersBackstage));\n var makeResizeTransform = function (width, height) {\n return function (ir) {\n return resize$1(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$1(external.disable(), function (comp, _se) {\n disableAllComponents(resizePanelComponents, comp);\n }),\n run$1(external.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(flip, 'h');\n var verticalFlip = makeValueTransform(flip, 'v');\n var counterclockwiseRotate = makeValueTransform(rotate, -90);\n var clockwiseRotate = makeValueTransform(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$1(external.disable(), function (comp, _se) {\n disableAllComponents(flipRotateComponents, comp);\n }),\n run$1(external.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$1({ x: 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$1(external.disable(), function (comp, _se) {\n disableAllComponents(filterPanelComponents, comp);\n }),\n run$1(external.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', brightness, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', contrast, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', gamma, -100, 0, 100);\n var makeColorTransform = function (red, green, blue) {\n return function (ir) {\n return 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 = Optional.some(sharpen);\n var invertTransform = Optional.some(invert);\n var buttonPanelComponents = [\n createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, Optional.none(), cropPanelUpdate), false),\n createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, Optional.none(), resizePanelUpdate), false),\n createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, Optional.none(), noop$1), false),\n createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, Optional.none(), noop$1), false),\n createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false),\n createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, Optional.none(), noop$1), false),\n createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, Optional.none(), noop$1), false),\n createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, Optional.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 global$4 = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Observable');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var getDocumentSize = function (doc) {\n var max = Math.max;\n var documentElement = doc.documentElement;\n var body = doc.body;\n var scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n var clientWidth = max(documentElement.clientWidth, body.clientWidth);\n var offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n var scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n var clientHeight = max(documentElement.clientHeight, body.clientHeight);\n var offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n return {\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n };\n };\n var isTouchEvent$1 = function (e) {\n return isNonNullable(e.changedTouches);\n };\n var updateWithTouchData = function (e) {\n if (isTouchEvent$1(e)) {\n var keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n for (var 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 _a, _b, _c;\n var eventOverlay;\n var handleEvents = [];\n var overlayEvents = [];\n var doc = (_a = settings.document) !== null && _a !== void 0 ? _a : document;\n var root = (_b = settings.root) !== null && _b !== void 0 ? _b : doc;\n var sugarDoc = SugarElement.fromDom(doc);\n var downButton;\n var startX;\n var startY;\n var handleElement = SugarElement.fromDom(root.getElementById((_c = settings.handle) !== null && _c !== void 0 ? _c : id));\n var start = function (e) {\n var rawEvent = e.raw;\n var docSize = getDocumentSize(doc);\n updateWithTouchData(rawEvent);\n e.prevent();\n downButton = rawEvent.button;\n startX = rawEvent.screenX;\n startY = rawEvent.screenY;\n var cursor = get$c(handleElement, 'cursor');\n eventOverlay = SugarElement.fromTag('div', doc);\n setAll(eventOverlay, {\n 'position': 'absolute',\n 'top': '0',\n 'left': '0',\n 'width': docSize.width + 'px',\n 'height': docSize.height + 'px',\n 'z-index': 2147483647 + '',\n 'opacity': '0.0001',\n cursor: cursor\n });\n append$2(getBody(sugarDoc), eventOverlay);\n overlayEvents.push(bind(sugarDoc, 'mousemove', drag), bind(sugarDoc, 'touchmove', drag), bind(sugarDoc, 'mouseup', stop), bind(sugarDoc, 'touchend', stop));\n settings.start(rawEvent);\n };\n var drag = function (e) {\n var rawEvent = e.raw;\n updateWithTouchData(rawEvent);\n if (rawEvent.button !== downButton) {\n return stop(e);\n }\n rawEvent.deltaX = rawEvent.screenX - startX;\n rawEvent.deltaY = rawEvent.screenY - startY;\n e.prevent();\n settings.drag(rawEvent);\n };\n var stop = function (e) {\n updateWithTouchData(e.raw);\n each$1(overlayEvents, function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n remove$5(eventOverlay);\n if (settings.stop) {\n settings.stop(e.raw);\n }\n };\n var destroy = function () {\n each$1(overlayEvents.concat(handleEvents), function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n handleEvents = [];\n if (isNonNullable(eventOverlay)) {\n remove$5(eventOverlay);\n }\n };\n handleEvents.push(bind(handleElement, 'mousedown', start), bind(handleElement, 'touchstart', start));\n return { destroy: destroy };\n }\n\n var count = 0;\n var create$2 = function (currentRect, viewPortRect, clampRect, containerElm, action) {\n var dragHelpers;\n var events = [];\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n var container = SugarElement.fromDom(containerElm);\n var 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 var blockers = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ];\n var getAbsoluteRect = function (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 var getRelativeRect = function (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 var getInnerRect = function () {\n return getRelativeRect(clampRect, currentRect);\n };\n var moveRect = function (handle, startRect, deltaX, deltaY) {\n var x = startRect.x + deltaX * handle.deltaX;\n var y = startRect.y + deltaY * handle.deltaY;\n var w = Math.max(20, startRect.w + deltaX * handle.deltaW);\n var h = Math.max(20, startRect.h + deltaY * handle.deltaH);\n var rect = currentRect = global$4.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 var render = function () {\n var createDragHelper = function (handle) {\n var startRect;\n return DragHelper(id, {\n document: containerElm.ownerDocument,\n root: getRootNode(container).dom,\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 var cropContainer = SugarElement.fromTag('div');\n setAll$1(cropContainer, {\n id: id,\n 'class': prefix + 'croprect-container',\n 'role': 'grid',\n 'aria-dropeffect': 'execute'\n });\n append$2(container, cropContainer);\n each$1(blockers, function (blocker) {\n descendant(container, '#' + id).each(function (blockerElm) {\n var cropBlocker = SugarElement.fromTag('div');\n setAll$1(cropBlocker, {\n 'id': id + '-' + blocker,\n 'class': prefix + 'croprect-block',\n 'data-mce-bogus': 'all'\n });\n set$7(cropBlocker, 'display', 'none');\n append$2(blockerElm, cropBlocker);\n });\n });\n each$1(handles, function (handle) {\n descendant(container, '#' + id).each(function (handleElm) {\n var cropHandle = SugarElement.fromTag('div');\n setAll$1(cropHandle, {\n 'id': id + '-' + handle.name,\n 'aria-label': handle.label,\n 'aria-grabbed': 'false',\n 'data-mce-bogus': 'all',\n 'role': 'gridcell',\n 'tabindex': '-1',\n 'title': handle.label\n });\n add$1(cropHandle, [\n prefix + 'croprect-handle',\n prefix + 'croprect-handle-' + handle.name\n ]);\n set$7(cropHandle, 'display', 'none');\n append$2(handleElm, cropHandle);\n });\n });\n dragHelpers = map$2(handles, createDragHelper);\n repaint(currentRect);\n var handleFocus = function (e) {\n set$8(e.target, 'aria-grabbed', e.raw.type === 'focus' ? 'true' : 'false');\n };\n var handleKeydown = function (e) {\n var activeHandle;\n each$1(handles, function (handle) {\n if (get$d(e.target, 'id') === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n var moveAndBlock = function (evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n };\n switch (e.raw.keyCode) {\n case global$2.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n case global$2.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n case global$2.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n case global$2.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n case global$2.ENTER:\n case global$2.SPACEBAR:\n e.prevent();\n action();\n break;\n }\n };\n events.push(bind(container, 'focusin', handleFocus), bind(container, 'focusout', handleFocus), bind(container, 'keydown', handleKeydown));\n };\n var toggleVisibility = function (state) {\n var selectors = __spreadArray(__spreadArray([], map$2(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }), true), map$2(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n }), true).join(',');\n var elems = descendants(container, selectors);\n if (state) {\n each$1(elems, function (elm) {\n return remove$6(elm, 'display');\n });\n } else {\n each$1(elems, function (elm) {\n return set$7(elm, 'display', 'none');\n });\n }\n };\n var repaint = function (rect) {\n var updateElementRect = function (name, newRect) {\n descendant(container, '#' + id + '-' + name).each(function (elm) {\n setAll(elm, {\n left: newRect.x + 'px',\n top: newRect.y + 'px',\n width: Math.max(0, newRect.w) + 'px',\n height: Math.max(0, newRect.h) + 'px'\n });\n });\n };\n each$1(handles, function (handle) {\n descendant(container, '#' + id + '-' + handle.name).each(function (elm) {\n setAll(elm, {\n left: rect.w * handle.xMul + rect.x + 'px',\n top: rect.h * handle.yMul + rect.y + 'px'\n });\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 var setRect = function (rect) {\n currentRect = rect;\n repaint(currentRect);\n };\n var setViewPortRect = function (rect) {\n viewPortRect = rect;\n repaint(currentRect);\n };\n var setInnerRect = function (rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n };\n var setClampRect = function (rect) {\n clampRect = rect;\n repaint(currentRect);\n };\n var destroy = function () {\n each$1(dragHelpers, function (helper) {\n return helper.destroy();\n });\n dragHelpers = [];\n each$1(events, function (e) {\n return e.unbind();\n });\n events = [];\n };\n render();\n var instance = __assign(__assign({}, global$3), {\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n });\n return instance;\n };\n var CropRect = { create: create$2 };\n\n var loadImage = function (image) {\n return new global$c(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 = api$1();\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$a(panel.element);\n var panelH = get$b(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(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll(bg.element, css);\n });\n cropRect.run(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$a(panel.element);\n var panelH = get$b(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 = SugarElement.fromTag('img');\n set$8(img, 'src', url);\n return loadImage(img.dom).then(function () {\n if (anyInSystem.getSystem().isConnected()) {\n memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external$2({ element: img });\n Replacing.replaceAt(panel, 1, Optional.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$4.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 });\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.run(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n var hideCrop = function () {\n cropRect.run(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', [\n runOnAttached(function (comp) {\n memContainer.getOpt(comp).each(function (container) {\n var el = container.element.dom;\n var cRect = CropRect.create({\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, noop);\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(cRect);\n });\n }),\n runOnDetached(function () {\n cropRect.clear();\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 createButton = function (innerHtml, icon, disabled, action, providersBackstage) {\n return renderIconButton({\n name: innerHtml,\n icon: Optional.some(icon),\n disabled: disabled,\n tooltip: Optional.some(innerHtml),\n primary: false,\n borderless: false\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 function UndoStack () {\n var data = [];\n var index = -1;\n var add = function (state) {\n var removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n };\n var undo = function () {\n if (canUndo()) {\n return data[--index];\n }\n };\n var redo = function () {\n if (canRedo()) {\n return data[++index];\n }\n };\n var canUndo = function () {\n return index > 0;\n };\n var canRedo = function () {\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 = value$1();\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().getOrThunk(blobState.get);\n };\n var updateTempState = function (blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(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$5.each(states, destroyState);\n };\n var destroyTempState = function () {\n tempState.on(destroyState);\n tempState.clear();\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(newState);\n return newState.url;\n };\n var applyTempState = function (postApply) {\n return tempState.get().fold(noop, 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.formActionEvent, {\n name: external.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.formActionEvent, {\n name: external.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.formActionEvent, {\n name: external.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 blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url);\n }).then(function () {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n }).catch(function (err) {\n console.log(err);\n if (anyInSystem.getSystem().isConnected()) {\n unblock(anyInSystem);\n }\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$1(internal.undo(), undo),\n run$1(internal.redo(), redo),\n run$1(internal.zoom(), zoom),\n run$1(internal.back(), back),\n run$1(internal.apply(), apply),\n run$1(internal.transform(), transform),\n run$1(internal.tempTransform(), tempTransform),\n run$1(internal.transformApply(), transformApply),\n run$1(internal.swap(), swap)\n ]),\n ComposingConfigs.self()\n ])\n };\n };\n\n var renderLabel = 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$2(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(Optional.none()),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n\n var isSingleListItem = function (item) {\n return !has$2(item, 'items');\n };\n var dataAttribute = 'data-value';\n var fetchItems = function (dropdownComp, name, items, selectedValue) {\n return map$2(items, function (item) {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: function () {\n return fetchItems(dropdownComp, name, item.items, selectedValue);\n }\n };\n } else {\n return {\n type: 'togglemenuitem',\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: function () {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, { name: name });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n };\n var findItemByValue = function (items, value) {\n return findMap(items, function (item) {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n };\n var renderListBox = function (spec, backstage) {\n var providersBackstage = backstage.shared.providers;\n var initialItem = head(spec.items).filter(isSingleListItem);\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: function (sketchSpec) {\n return renderCommonDropdown({\n uid: sketchSpec.uid,\n text: initialItem.map(function (item) {\n return item.text;\n }),\n icon: Optional.none(),\n tooltip: spec.label,\n role: Optional.none(),\n fetch: function (comp, callback) {\n var items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp));\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n },\n onSetup: constant$1(noop),\n getApi: constant$1({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [\n Tabstopping.config({}),\n Representing.config({\n store: {\n mode: 'manual',\n initialValue: initialItem.map(function (item) {\n return item.value;\n }).getOr(''),\n getValue: function (comp) {\n return get$d(comp.element, dataAttribute);\n },\n setValue: function (comp, data) {\n findItemByValue(spec.items, data).each(function (item) {\n set$8(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, { text: item.text });\n });\n }\n }\n })\n ]\n }, 'tox-listbox', backstage.shared);\n }\n }\n });\n var listBoxWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-listboxfield']\n },\n components: [pField]\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [listBoxWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: constant$1(spec.disabled),\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n var renderPanel = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n };\n };\n\n var factory$e = function (detail, _spec) {\n var options = map$2(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$5(detail.options, function (opt) {\n return opt.value === newValue;\n });\n if (found.isSome()) {\n set$4(select.element, newValue);\n }\n }\n }, initialValues)\n })\n ])\n };\n };\n var HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [\n required$1('options'),\n field('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted('selectClasses', []),\n defaulted('selectAttributes', {}),\n option('data')\n ],\n factory: factory$e\n });\n\n var renderSelectBox = function (spec, providersBackstage) {\n var translatedOptions = map$2(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$2(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 Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n Tabstopping.config({}),\n config('selectbox-change', [run$1(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var chevron = spec.size > 1 ? Optional.none() : Optional.some(render$3('chevron-down', {\n tag: 'div',\n classes: ['tox-selectfield__icon-js']\n }, providersBackstage.icons));\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 fieldBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ])\n });\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$2(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$2(row, renderTd)\n };\n };\n var renderRows = function (rows) {\n return {\n dom: { tag: 'tbody' },\n components: map$2(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 renderTextField = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var baseInputBehaviours = [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\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 Optional.some(true);\n }\n }),\n config('textfield-change', [\n run$1(input(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run$1(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 placeholder = spec.placeholder.fold(constant$1({}), function (p) {\n return { placeholder: providersBackstage.translate(p) };\n });\n var inputMode = spec.inputMode.fold(constant$1({}), function (mode) {\n return { inputmode: mode };\n });\n var inputAttributes = __assign(__assign({}, placeholder), inputMode);\n var pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n inputAttributes: inputAttributes,\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 var extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n var extraBehaviours = [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n var renderInput = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: spec.disabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n var renderTextarea = function (spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Optional.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: spec.disabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n\n var events$6 = function (streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive$2([\n run$1(streamConfig.event, processor),\n runOnDetached(function () {\n return streamState.cancel();\n })\n ].concat(streamConfig.cancelEvent.map(function (e) {\n return [run$1(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6\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$8({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n var init$9 = function (spec) {\n return spec.stream.streams.state(spec);\n };\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$9\n });\n\n var setup$c = function (streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last(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 requiredOf('stream', choose$1('mode', {\n throttle: [\n required$1('delay'),\n defaulted('stopEvent', true),\n output$1('streams', {\n setup: setup$c,\n state: throttle\n })\n ]\n })),\n defaulted('event', 'input'),\n option('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n var Streaming = create$8({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\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$d(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 Optional.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 ? Optional.some(function () {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay_1.length);\n }) : Optional.none();\n }\n };\n\n var itemExecute = constant$1('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(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$3(menus, function (menu) {\n return filter$2(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map$2(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$4(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 Optional.none();\n });\n });\n });\n };\n open(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 Optional.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 Optional.some(true);\n }\n return Optional.none();\n },\n onUp: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.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 Optional.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox$1(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n config('typeaheadevents', [\n runOnExecute$1(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }),\n run$1(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$1(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n return {\n uid: detail.uid,\n dom: dom(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: __assign(__assign({}, focusBehaviours$1), augment(detail.typeaheadBehaviours, behaviours)),\n eventOrder: detail.eventOrder\n };\n };\n\n var schema$g = constant$1([\n option('lazySink'),\n required$1('fetch'),\n defaulted('minChars', 5),\n defaulted('responseTime', 1000),\n onHandler('onOpen'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n defaulted('layouts', Optional.none()),\n defaulted('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }),\n defaulted('selectsOver', true),\n defaulted('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted('inputClasses', []),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('matchWidth', true),\n defaulted('useMinWidth', false),\n defaulted('dismissOnBlur', true),\n markers$1(['openClass']),\n option('initialData'),\n field('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n customField('previewing', function () {\n return Cell(true);\n })\n ].concat(schema$k()).concat(sandboxFields()));\n var parts$b = constant$1([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).toOptional().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({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\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 = setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return __assign(__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$1 = function (worker) {\n return wrap(Future.nu(worker));\n };\n var value = function (value) {\n return wrap(Future.pure(Result.value(value)));\n };\n var error = 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$1(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$1,\n wrap: wrap,\n pure: value,\n value: value,\n error: error,\n fromResult: fromResult,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var separator$1 = { 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: noop\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: noop\n };\n };\n var toMenuItems = function (targets) {\n return map$2(targets, toMenuItem);\n };\n var filterLinkTargets = function (type, targets) {\n return filter$2(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 Optional.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var anchorTargetBottom = function (linkInfo) {\n return Optional.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var historyTargets = function (history) {\n return map$2(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$1, b);\n }, []);\n };\n var filterByQuery = function (term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter$2(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 errorId = generate$6('aria-invalid');\n var renderUrlInput = function (spec, backstage, urlBackstage) {\n var _a;\n var providersBackstage = backstage.shared.providers;\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 inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: function (input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\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 onInvalid: function (comp, err) {\n memInvalidIcon.getOpt(comp).each(function (invalidComp) {\n set$8(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\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 if (validation.status === 'invalid') {\n var err = Result.error(validation.message);\n completer(err);\n } else {\n var val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n });\n }).toArray(),\n [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n Tabstopping.config({}),\n config('urlinput-events', flatten([\n spec.filetype === 'file' ? [run$1(input(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n })] : [],\n [\n run$1(change(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run$1(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: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.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$2(label, providersBackstage);\n });\n var makeIcon = function (name, errId, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n if (label === void 0) {\n label = name;\n }\n return render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: __assign({\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite'\n }, errId.fold(function () {\n return {};\n }, function (id) {\n return { id: id };\n }))\n }, providersBackstage.icons);\n };\n var memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n var memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n var optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n var browseUrlEvent = generate$6('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 behaviours: derive$1([Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n })])\n });\n var memUrlPickerButton = record(renderButton({\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.label.getOr(''),\n disabled: spec.disabled,\n primary: false,\n borderless: true\n }, function (component) {\n return emit(component, browseUrlEvent);\n }, providersBackstage, [], ['tox-browse-url']));\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 memUrlPickerButton.asSpec();\n }).toArray()\n ])\n };\n };\n var openUrlPicker = function (comp) {\n Composing.getCurrent(comp).each(function (field) {\n var componentData = Representing.getValue(field);\n var urlData = __assign({ fieldname: spec.name }, componentData);\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([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n receivingConfig(),\n config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\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$1(spec.icon, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: function (comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n },\n buttonBehaviours: derive$1([addFocusableBehaviour()])\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 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 Optional.some(true);\n };\n var pField = FormField.parts.field({\n factory: { sketch: identity$1 },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n }\n }),\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$1(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 render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ]\n }, providerBackstage.icons);\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 fieldBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n },\n disableClass: 'tox-checkbox--disabled',\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\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 make$2 = function (render) {\n return function (parts, spec, backstage) {\n return get$e(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$2(render)(parts, iframeSpec, backstage);\n };\n };\n var factories = {\n bar: make$2(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$2(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alertbanner: make$2(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$2(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$2(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n label: make$2(function (spec, backstage) {\n return renderLabel(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n button: make$2(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$2(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$2(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$2(renderColorPicker),\n dropzone: make$2(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$2(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n listbox: make$2(function (spec, backstage) {\n return renderListBox(spec, backstage);\n }),\n selectbox: make$2(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$2(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$2(function (spec, backstage) {\n return renderUrlInput(spec, backstage, backstage.urlinput);\n }),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2(renderHtmlPanel),\n imagetools: make$2(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$2(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n }),\n panel: make$2(function (spec, backstage) {\n return renderPanel(spec, backstage);\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 get$e(factories, spec.type).fold(function () {\n 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 bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n var getInlineDialogAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var bubbleSize = 12;\n var overrides = { maxHeightFunction: expandable$1() };\n var editableAreaAnchor = function () {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function () {\n return [northeast];\n },\n onLtr: function () {\n return [northwest];\n }\n },\n overrides: overrides\n };\n };\n var standardAnchor = function () {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function () {\n return [southeast$2];\n },\n onLtr: function () {\n return [southwest$2];\n }\n },\n overrides: overrides\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getBannerAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var editableAreaAnchor = function () {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: function () {\n return [north];\n },\n onLtr: function () {\n return [north];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function () {\n return [south$2];\n },\n onLtr: function () {\n return [south$2];\n }\n }\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getCursorAnchor = function (editor, bodyElement) {\n return function () {\n return {\n type: 'selection',\n root: bodyElement(),\n getSelection: function () {\n var rng = editor.selection.getRng();\n return Optional.some(SimSelection.range(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n }\n };\n };\n };\n var getNodeAnchor$1 = function (bodyElement) {\n return function (element) {\n return {\n type: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n var getAnchors = function (editor, lazyAnchorbar, isToolbarTop) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n var bodyElement = function () {\n return SugarElement.fromDom(editor.getBody());\n };\n var contentAreaElement = function () {\n return SugarElement.fromDom(editor.getContentAreaContainer());\n };\n var lazyUseEditableAreaAnchor = function () {\n return useFixedToolbarContainer || !isToolbarTop();\n };\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor$1(bodyElement)\n };\n };\n\n var colorPicker = function (editor) {\n return function (callback, value) {\n var dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n var hasCustomColors = function (editor) {\n return function () {\n return hasCustomColors$1(editor);\n };\n };\n var getColors = function (editor) {\n return function () {\n return getColors$2(editor);\n };\n };\n var getColorCols = function (editor) {\n return function () {\n return getColorCols$1(editor);\n };\n };\n var ColorInputBackstage = function (editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n };\n };\n\n var isDraggableModal = function (editor) {\n return function () {\n return isDraggableModal$1(editor);\n };\n };\n var DialogBackstage = function (editor) {\n return { isDraggableModal: isDraggableModal(editor) };\n };\n\n var HeaderBackstage = function (editor) {\n var mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: function () {\n return mode.get() === 'top';\n },\n getDockingMode: mode.get,\n setDockingMode: mode.set\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 format: 'bold'\n },\n {\n title: 'Italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n format: 'subscript'\n },\n {\n title: '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 format: 'alignleft'\n },\n {\n title: 'Center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n var isNestedFormat = function (format) {\n return has$2(format, 'items');\n };\n var isBlockFormat = function (format) {\n return has$2(format, 'block');\n };\n var isInlineFormat = function (format) {\n return has$2(format, 'inline');\n };\n var isSelectorFormat = function (format) {\n return has$2(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 = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n var formatNameWithPrefix = 'custom-' + formatName;\n return {\n customFormats: acc.customFormats.concat([{\n name: formatNameWithPrefix,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatNameWithPrefix,\n icon: fmt.icon\n }])\n };\n } else {\n return __assign(__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$1(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$8 = 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 = { type: 'submenu' };\n return deepMerge(item, submenuSpec);\n };\n var enrichCustom = function (item) {\n var formatName = isString(item.name) ? item.name : generate$6(item.title);\n var formatNameWithPrefix = 'custom-' + formatName;\n var customSpec = {\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\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$2(items, function (item) {\n var keys$1 = keys(item);\n if (hasNonNullableKey(item, 'items')) {\n var newItems = doEnrich(item.items);\n return deepMerge(enrichMenu(item), { getStyleItems: constant$1(newItems) });\n } else if (hasNonNullableKey(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains$2(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$8 = 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 ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n var flatten = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(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('PreInit', function (_e) {\n var formats = getStyleFormats(editor);\n var enriched = register$8(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind$3(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$8(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind$3(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 isElement = function (node) {\n return isNonNullable(node) && node.nodeType === 1;\n };\n var trim = global$5.trim;\n var hasContentEditableState = function (value) {\n return function (node) {\n if (isElement(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 isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var create$1 = 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$2(descendants(SugarElement.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$6('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$1('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$1('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n var getHeaderTargets = function (elms) {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n var getAnchorTargets = function (elms) {\n return map$2(filter$2(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(target.title).length > 0;\n };\n var find = function (elm) {\n var elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n var LinkTargets = { find: find };\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$4(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n var getAllHistory = function () {\n var unparsedHistory = global$8.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 console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n 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 global$8.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n var getHistory = function (fileType) {\n var history = getAllHistory();\n return get$e(history, fileType).getOr([]);\n };\n var addToHistory = function (url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n var history = getAllHistory();\n var items = get$e(history, fileType).getOr([]);\n var itemsWithoutUrl = filter$2(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 isTruthy = function (value) {\n return !!value;\n };\n var makeMap = function (value) {\n return map$1(global$5.makeMap(value, /[, ]/), isTruthy);\n };\n var getPicker = function (editor) {\n return Optional.from(getFilePickerCallback(editor)).filter(isFunction);\n };\n var getPickerTypes = function (editor) {\n var optFileTypes = Optional.some(getFilePickerTypes(editor)).filter(isTruthy);\n var optLegacyTypes = Optional.some(getFileBrowserCallbackTypes(editor)).filter(isTruthy);\n var optTypes = optFileTypes.or(optLegacyTypes).map(makeMap);\n return getPicker(editor).fold(never, function (_picker) {\n return optTypes.fold(always, function (types) {\n return keys(types).length > 0 ? types : false;\n });\n });\n };\n var getPickerSetting = function (editor, filetype) {\n var pickerTypes = getPickerTypes(editor);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n var getUrlPicker = function (editor, filetype) {\n return getPickerSetting(editor, 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 = __assign({\n filetype: filetype,\n fieldname: entry.fieldname\n }, Optional.from(entry.meta).getOr({}));\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n var getTextSetting = function (value) {\n return Optional.from(value).filter(isString).getOrUndefined();\n };\n var getLinkInformation = function (editor) {\n if (noTypeaheadUrls(editor)) {\n return Optional.none();\n }\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n var getValidationHandler = function (editor) {\n return Optional.from(getFilePickerValidatorHandler(editor));\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$7 = function (sink, editor, lazyAnchorbar) {\n var contextMenuState = Cell(false);\n var toolbar = HeaderBackstage(editor);\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$e.translate,\n isDisabled: function () {\n return editor.mode.isReadOnly() || editor.ui.isDisabled();\n },\n getSetting: editor.getParam.bind(editor)\n },\n interpreter: function (s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),\n header: toolbar,\n getSink: function () {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$8(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: function () {\n return contextMenuState.get();\n },\n setContextMenuState: function (state) {\n return contextMenuState.set(state);\n }\n };\n return backstage;\n };\n\n var setup$b = function (editor, mothership, uiMothership) {\n var broadcastEvent = function (name, evt) {\n each$1([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastEvent(name, evt);\n });\n };\n var broadcastOn = function (channel, message) {\n each$1([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([channel], message);\n });\n };\n var fireDismissPopups = function (evt) {\n return broadcastOn(dismissPopups(), { target: evt.target });\n };\n var doc = getDocument();\n var onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n var onTouchmove = bind(doc, 'touchmove', function (evt) {\n return broadcastEvent(documentTouchmove(), evt);\n });\n var onTouchend = bind(doc, 'touchend', function (evt) {\n return broadcastEvent(documentTouchend(), evt);\n });\n var onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n var onMouseup = bind(doc, 'mouseup', function (evt) {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target });\n }\n });\n var onContentClick = function (raw) {\n return broadcastOn(dismissPopups(), { target: SugarElement.fromDom(raw.target) });\n };\n var onContentMouseup = function (raw) {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: SugarElement.fromDom(raw.target) });\n }\n };\n var onContentMousedown = function () {\n each$1(editor.editorManager.get(), function (loopEditor) {\n if (editor !== loopEditor) {\n loopEditor.fire('DismissPopups', { relatedTarget: editor });\n }\n });\n };\n var onWindowScroll = function (evt) {\n return broadcastEvent(windowScroll(), fromRawEvent(evt));\n };\n var onWindowResize = function (evt) {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n var onEditorResize = function () {\n return broadcastOn(repositionPopups(), {});\n };\n var onEditorProgress = function (evt) {\n if (evt.state) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(editor.getContainer()) });\n }\n };\n var onDismissPopups = function (event) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(event.relatedTarget.getContainer()) });\n };\n editor.on('PostRender', function () {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('mousedown', onContentMousedown);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n editor.on('DismissPopups', onDismissPopups);\n });\n editor.on('remove', function () {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('mousedown', onContentMousedown);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\n editor.off('DismissPopups', onDismissPopups);\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.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\n var parts$a = AlloyParts;\n var partType = PartType;\n\n var schema$f = constant$1([\n defaulted('shell', false),\n required$1('makeItem'),\n defaulted('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n var customListDetail = function () {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n var parts$9 = constant$1([itemsPart]);\n var name = constant$1('CustomList');\n\n var factory$d = function (detail, components, _spec, _external) {\n var setItems = function (list, items) {\n getListContainer(list).fold(function () {\n console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, function (container) {\n var itemComps = Replacing.contents(container);\n var numListsRequired = items.length;\n var numListsToAdd = numListsRequired - itemComps.length;\n var itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, function () {\n return detail.makeItem();\n }) : [];\n var itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, function (item) {\n return Replacing.remove(container, item);\n });\n each$1(itemsToAdd, function (item) {\n return Replacing.append(container, item);\n });\n var builtLists = Replacing.contents(container);\n each$1(builtLists, function (item, i) {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n var getListContainer = function (component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems: setItems }\n };\n };\n var CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$d,\n apis: {\n setItems: function (apis, list, items) {\n apis.setItems(list, items);\n }\n }\n });\n\n var schema$e = constant$1([\n required$1('dom'),\n defaulted('shell', true),\n field('toolbarBehaviours', [Replacing])\n ]);\n var enhanceGroups = function () {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n var factory$c = function (detail, components, _spec, _externals) {\n var setGroups = function (toolbar, groups) {\n getGroupContainer(toolbar).fold(function () {\n 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 ? Optional.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({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$c,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n var setup$a = noop;\n var isDocked$2 = never;\n var getBehaviours$1 = constant$1([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$1\n });\n\n var getOffsetParent = function (element) {\n var isFixed = is$1(getRaw(element, 'position'), 'fixed');\n var offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(function () {\n var marker = SugarElement.fromTag('span');\n return parent(element).bind(function (parent) {\n append$2(parent, marker);\n var offsetParent$1 = offsetParent(marker);\n remove$5(marker);\n return offsetParent$1;\n });\n });\n };\n var getOrigin = function (element) {\n return getOffsetParent(element).map(absolute$3).getOrThunk(function () {\n return SugarPosition(0, 0);\n });\n };\n\n var morphAdt = Adt.generate([\n { static: [] },\n { absolute: ['positionCss'] },\n { fixed: ['positionCss'] }\n ]);\n var appear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n var disappear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n var isPartiallyVisible = function (box, viewport) {\n return box.y < viewport.bottom && box.bottom > viewport.y;\n };\n var isTopCompletelyVisible = function (box, viewport) {\n return box.y >= viewport.y;\n };\n var isBottomCompletelyVisible = function (box, viewport) {\n return box.bottom <= viewport.bottom;\n };\n var isVisibleForModes = function (modes, box, viewport) {\n return forall(modes, function (mode) {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n };\n var getPrior = function (elem, state) {\n return state.getInitialPos().map(function (pos) {\n return bounds(pos.bounds.x, pos.bounds.y, get$a(elem), get$b(elem));\n });\n };\n var storePrior = function (elem, box, state) {\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$c(elem, 'position') || 'static',\n bounds: box\n });\n };\n var revertToOriginal = function (elem, box, state) {\n return state.getInitialPos().bind(function (position) {\n state.clearInitialPos();\n switch (position.position) {\n case 'static':\n return Optional.some(morphAdt.static());\n case 'absolute':\n var offsetBox_1 = getOffsetParent(elem).map(box$1).getOrThunk(function () {\n return box$1(body());\n });\n return Optional.some(morphAdt.absolute(NuPositionCss('absolute', get$e(position.style, 'left').map(function (_left) {\n return box.x - offsetBox_1.x;\n }), get$e(position.style, 'top').map(function (_top) {\n return box.y - offsetBox_1.y;\n }), get$e(position.style, 'right').map(function (_right) {\n return offsetBox_1.right - box.right;\n }), get$e(position.style, 'bottom').map(function (_bottom) {\n return offsetBox_1.bottom - box.bottom;\n }))));\n default:\n return Optional.none();\n }\n });\n };\n var morphToOriginal = function (elem, viewport, state) {\n return getPrior(elem, state).filter(function (box) {\n return isVisibleForModes(state.getModes(), box, viewport);\n }).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n var morphToFixed = function (elem, viewport, state) {\n var box = box$1(elem);\n if (!isVisibleForModes(state.getModes(), box, viewport)) {\n storePrior(elem, box, state);\n var winBox = win();\n var left = box.x - winBox.x;\n var top_1 = viewport.y - winBox.y;\n var bottom = winBox.bottom - viewport.bottom;\n var isTop = box.y <= viewport.y;\n return Optional.some(morphAdt.fixed(NuPositionCss('fixed', Optional.some(left), isTop ? Optional.some(top_1) : Optional.none(), Optional.none(), !isTop ? Optional.some(bottom) : Optional.none())));\n } else {\n return Optional.none();\n }\n };\n var getMorph = function (component, viewport, state) {\n var elem = component.element;\n var isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? morphToOriginal(elem, viewport, state) : morphToFixed(elem, viewport, state);\n };\n var getMorphToOriginal = function (component, state) {\n var elem = component.element;\n return getPrior(elem, state).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n\n var morphToStatic = function (component, config, state) {\n state.setDocked(false);\n each$1([\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'position'\n ], function (prop) {\n return remove$6(component.element, prop);\n });\n config.onUndocked(component);\n };\n var morphToCoord = function (component, config, state, position) {\n var isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n var method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n var updateVisibility = function (component, config, state, viewport, morphToDocked) {\n if (morphToDocked === void 0) {\n morphToDocked = false;\n }\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (box) {\n var isVisible = isPartiallyVisible(box, viewport);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$1(component.element, [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n var method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n var refreshInternal = function (component, config, state) {\n var viewport = config.lazyViewport(component);\n var isDocked = state.isDocked();\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n getMorph(component, viewport, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, function (position) {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, position);\n });\n });\n };\n var resetInternal = function (component, config, state) {\n var elem = component.element;\n state.setDocked(false);\n getMorphToOriginal(component, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, noop);\n });\n state.setVisible(true);\n config.contextual.each(function (contextInfo) {\n remove$1(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n var refresh$4 = function (component, config, state) {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n var reset = function (component, config, state) {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n var isDocked$1 = function (component, config, state) {\n return state.isDocked();\n };\n var setModes = function (component, config, state, modes) {\n return state.setModes(modes);\n };\n var getModes = function (component, config, state) {\n return state.getModes();\n };\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$4,\n reset: reset,\n isDocked: isDocked$1,\n getModes: getModes,\n setModes: setModes\n });\n\n var events$5 = function (dockInfo, dockState) {\n return derive$2([\n runOnSource(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$1(component.element, [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n var notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run$1(windowScroll(), function (component, _) {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(windowResize(), function (component, _) {\n reset(component, dockInfo, dockState);\n })\n ]);\n };\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$5\n });\n\n var DockingSchema = [\n optionObjOf('contextual', [\n requiredString('fadeInClass'),\n requiredString('fadeOutClass'),\n requiredString('transitionClass'),\n requiredFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', win),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n var init$6 = function (spec) {\n var docked = Cell(false);\n var visible = Cell(true);\n var initialBounds = value$1();\n var modes = Cell(spec.modes);\n var readState = function () {\n return 'docked: ' + docked.get() + ', visible: ' + visible.get() + ', modes: ' + modes.get().join(',');\n };\n return nu$8({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPos: initialBounds.get,\n setInitialPos: initialBounds.set,\n clearInitialPos: initialBounds.clear,\n isVisible: visible.get,\n setVisible: visible.set,\n getModes: modes.get,\n setModes: modes.set,\n readState: readState\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$6\n });\n\n var Docking = create$8({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\n var toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n\n var visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n var editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n var editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n var scrollFromBehindHeader = function (e, containerHeader) {\n var doc = owner$4(containerHeader);\n var viewHeight = doc.dom.defaultView.innerHeight;\n var scrollPos = get$9(doc);\n var markerElement = SugarElement.fromDom(e.elm);\n var markerPos = absolute$2(markerElement);\n var markerHeight = get$b(markerElement);\n var markerTop = markerPos.y;\n var markerBottom = markerTop + markerHeight;\n var editorHeaderPos = absolute$3(containerHeader);\n var editorHeaderHeight = get$b(containerHeader);\n var editorHeaderTop = editorHeaderPos.top;\n var editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n var editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n var editorHeaderDockedAtBottom = Math.abs(editorHeaderBottom - (scrollPos.top + viewHeight)) < 2;\n if (editorHeaderDockedAtTop && markerTop < editorHeaderBottom) {\n to(scrollPos.left, markerTop - editorHeaderHeight, doc);\n } else if (editorHeaderDockedAtBottom && markerBottom > editorHeaderTop) {\n var y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n var isDockedMode = function (header, mode) {\n return contains$2(Docking.getModes(header), mode);\n };\n var updateIframeContentFlow = function (header) {\n var getOccupiedHeight = function (elm) {\n return getOuter$2(elm) + (parseInt(get$c(elm, 'margin-top'), 10) || 0) + (parseInt(get$c(elm, 'margin-bottom'), 10) || 0);\n };\n var elm = header.element;\n parent(elm).each(function (parentElem) {\n var padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n var parentWidth = get$a(parentElem);\n set$7(elm, 'width', parentWidth + 'px');\n set$7(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, padding);\n }\n });\n };\n var updateSinkVisibility = function (sinkElem, visible) {\n if (visible) {\n remove$2(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$2(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n var updateEditorClasses = function (editor, docked) {\n var editorContainer = SugarElement.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$2(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$2(editorContainer, editorStickyOnClass);\n }\n };\n var restoreFocus = function (headerElem, focusedElem) {\n var ownerDoc = owner$4(focusedElem);\n active(ownerDoc).filter(function (activeElm) {\n return !eq(focusedElem, activeElm);\n }).filter(function (activeElm) {\n return eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm);\n }).each(function () {\n return focus$3(focusedElem);\n });\n };\n var findFocusedElem = function (rootElm, lazySink) {\n return search(rootElm).orThunk(function () {\n return lazySink().toOptional().bind(function (sink) {\n return search(sink.element);\n });\n });\n };\n var setup$9 = function (editor, sharedBackstage, lazyHeader) {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('ResizeWindow ResizeEditor', function () {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', function () {\n lazyHeader().each(function (comp) {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('AfterScrollIntoView', function (e) {\n lazyHeader().each(function (header) {\n Docking.refresh(header);\n var headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', function () {\n updateEditorClasses(editor, false);\n });\n };\n var isDocked = function (lazyHeader) {\n return lazyHeader().map(Docking.isDocked).getOr(false);\n };\n var getIframeBehaviours = function () {\n var _a;\n return [Receiving.config({ channels: (_a = {}, _a[toolbarHeightChange()] = { onReceive: updateIframeContentFlow }, _a) })];\n };\n var getBehaviours = function (editor, sharedBackstage) {\n var focusedElm = value$1();\n var lazySink = sharedBackstage.getSink;\n var runOnSinkElement = function (f) {\n lazySink().each(function (sink) {\n return f(sink.element);\n });\n };\n var onDockingSwitch = function (comp) {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(function (sink) {\n return sink.getSystem().broadcastOn([repositionPopups()], {});\n });\n };\n var additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return __spreadArray([\n Focusing.config({}),\n Docking.config({\n contextual: __assign({\n lazyContext: function (comp) {\n var headerHeight = getOuter$2(comp.element);\n var container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n var box = box$1(SugarElement.fromDom(container));\n var boxHeight = box.height - headerHeight;\n var topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return Optional.some(bounds(box.x, topBound, box.width, boxHeight));\n },\n onShow: function () {\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, true);\n });\n },\n onShown: function (comp) {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n });\n focusedElm.get().each(function (elem) {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: function (comp) {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, false);\n });\n },\n onHidden: function () {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [visibility.transitionClass]);\n });\n }\n }, visibility),\n lazyViewport: function (comp) {\n var win$1 = win();\n var offset = getStickyToolbarOffset(editor);\n var top = win$1.y + (isDockedMode(comp, 'top') ? offset : 0);\n var height = win$1.height - (isDockedMode(comp, 'bottom') ? offset : 0);\n return bounds(win$1.x, top, win$1.width, height);\n },\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n })\n ], additionalBehaviours, true);\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n\n var renderHeader = function (spec) {\n var editor = spec.editor;\n var getBehaviours$2 = spec.sticky ? getBehaviours : getBehaviours$1;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours$2(editor, spec.sharedBackstage))\n };\n };\n\n var groupToolbarButtonSchema = objOf([\n requiredString('type'),\n requiredOf('items', oneOf([\n arrOfObj([\n requiredString('name'),\n requiredArrayOf('items', string)\n ]),\n string\n ]))\n ].concat(baseToolbarButtonFields));\n var createGroupToolbarButton = function (spec) {\n return asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n };\n\n var baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n requiredFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n\n var MenuButtonSchema = objOf(__spreadArray([requiredString('type')], baseMenuButtonFields, true));\n var createMenuButton = function (spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n\n var splitButtonSchema = objOf([\n requiredString('type'),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n optionFunction('select'),\n requiredFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaulted('columns', 1),\n requiredFunction('onAction'),\n requiredFunction('onItemAction')\n ]);\n var createSplitButton = function (spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n\n var factory$b = function (detail, spec) {\n var setMenus = function (comp, menus) {\n var newMenus = map$2(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', spec.backstage, Optional.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$1(mouseover(), function (comp, se) {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$1(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$1(focusShifted(), function (comp, se) {\n se.event.prevFocus.bind(function (prev) {\n return comp.getSystem().getByDom(prev).toOptional();\n }).each(function (prev) {\n se.event.newFocus.bind(function (nu) {\n return comp.getSystem().getByDom(nu).toOptional();\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 Optional.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis: apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single({\n factory: factory$b,\n name: 'silver.Menubar',\n configFields: [\n required$1('dom'),\n required$1('uid'),\n required$1('onEscape'),\n required$1('backstage'),\n defaulted('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 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$1(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n var setShrunk = function (component, slideConfig) {\n remove$2(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$7(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n var setGrown = function (component, slideConfig) {\n remove$2(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$7(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$7(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n var root = getAnimationRoot(component, slideConfig);\n remove$2(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, Optional.some(size));\n };\n var doStartGrow = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has(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$7(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$2(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$7(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n var refresh$3 = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element, getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element);\n set$7(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);\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(root, slideConfig.growingClass) === true;\n };\n var isShrinking = function (component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n var isTransitioning = function (component, slideConfig, slideState) {\n return isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\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 __proto__: null,\n refresh: refresh$3,\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 = function (base, slideConfig, _slideState) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$7({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$7({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n var events$4 = function (slideConfig, slideState) {\n return derive$2([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 __proto__: null,\n exhibit: exhibit,\n events: events$4\n });\n\n var SlidingSchema = [\n required$1('closedClass'),\n required$1('openClass'),\n required$1('shrinkingClass'),\n required$1('growingClass'),\n option('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted('expanded', false),\n requiredOf('dimension', choose$1('property', {\n width: [\n output$1('property', 'width'),\n output$1('getDimension', function (elem) {\n return get$a(elem) + 'px';\n })\n ],\n height: [\n output$1('property', 'height'),\n output$1('getDimension', function (elem) {\n return get$b(elem) + 'px';\n })\n ]\n }))\n ];\n\n var init$5 = function (spec) {\n var state = Cell(spec.expanded);\n var readState = function () {\n return 'expanded: ' + state.get();\n };\n return nu$8({\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 __proto__: null,\n init: init$5\n });\n\n var Sliding = create$8({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n var owner = 'container';\n var schema$d = [field('slotBehaviours', [])];\n var getPartName = function (name) {\n return '';\n };\n var sketch = function (sSpec) {\n var parts = function () {\n var record = [];\n var slot = function (name, config) {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n return {\n slot: slot,\n record: constant$1(record)\n };\n }();\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n var make$1 = function (detail, components) {\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 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$1(keys, function (key) {\n return f(container, key);\n });\n };\n };\n var doShowing = function (comp, _key) {\n return get$d(comp.element, 'aria-hidden') !== 'true';\n };\n var doShow = function (comp, key) {\n if (!doShowing(comp)) {\n var element = comp.element;\n remove$6(element, 'display');\n remove$7(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)) {\n var element = comp.element;\n set$7(element, 'display', 'none');\n set$8(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());\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$2(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 }, function (value) {\n return makeApi(value);\n });\n var SlotContainer = __assign(__assign({}, slotApis), { sketch: sketch });\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$8 = function (editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each$1(keys(sidebars), function (name) {\n var spec = sidebars[name];\n var isActive = function () {\n return is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), 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$2(keys(panelConfigs), function (name) {\n var spec = panelConfigs[name];\n var bridged = getOrDie(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$2(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$1(slotVisibility(), function (sidepanel, se) {\n var data = se.event;\n var optSidePanelSpec = find$5(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$5(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Optional.none();\n }\n });\n };\n var fixSize = generate$6('FixSizeEvent');\n var autoSize = generate$6('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$a(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$1(fixSize, function (comp, se) {\n set$7(comp.element, 'width', se.event.width);\n }),\n run$1(autoSize, function (comp, _se) {\n remove$6(comp.element, 'width');\n })\n ])\n ])\n };\n };\n\n var block = function (component, config, state, getBusySpec) {\n set$8(component.element, 'aria-busy', true);\n var root = config.getRoot(component).getOr(component);\n var blockerBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Optional.some(true);\n },\n onShiftTab: function () {\n return Optional.some(true);\n }\n }),\n Focusing.config({})\n ]);\n var blockSpec = getBusySpec(root, blockerBehaviours);\n var blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade(blocker));\n if (blocker.hasConfigured(Keying) && config.focus) {\n Keying.focusIn(blocker);\n }\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n state.blockWith(function () {\n return Replacing.remove(root, blocker);\n });\n };\n var unblock = function (component, config, state) {\n remove$7(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock\n });\n\n var BlockingSchema = [\n defaultedFunction('getRoot', Optional.none),\n defaultedBoolean('focus', true),\n onHandler('onBlock'),\n onHandler('onUnblock')\n ];\n\n var init$4 = function () {\n var blocker = destroyable();\n var blockWith = function (destroy) {\n blocker.set({ destroy: destroy });\n };\n return nu$8({\n readState: blocker.isSet,\n blockWith: blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n\n var Blocking = create$8({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\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(__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 = function (html) {\n var elem = SugarElement.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$7(elem) };\n return __assign({\n tag: name$2(elem),\n classes: classes,\n attributes: attrs\n }, contents);\n };\n\n var getBusySpec$1 = function (providerBackstage) {\n return function (_root, _behaviours) {\n return {\n dom: {\n tag: 'div',\n attributes: {\n 'aria-label': providerBackstage.translate('Loading...'),\n 'tabindex': '0'\n },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml('
') }]\n };\n };\n };\n var focusBusyComponent = function (throbber) {\n return Composing.getCurrent(throbber).each(function (comp) {\n return focus$3(comp.element);\n });\n };\n var toggleEditorTabIndex = function (editor, state) {\n var tabIndexAttr = 'tabindex';\n var dataTabIndexAttr = 'data-mce-' + tabIndexAttr;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(function (iframe) {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(function (tabIndex) {\n return set$8(iframe, dataTabIndexAttr, tabIndex);\n });\n set$8(iframe, tabIndexAttr, -1);\n } else {\n remove$7(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(function (tabIndex) {\n set$8(iframe, tabIndexAttr, tabIndex);\n remove$7(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n var toggleThrobber = function (editor, comp, state, providerBackstage) {\n var element = comp.element;\n toggleEditorTabIndex(editor, state);\n if (state) {\n Blocking.block(comp, getBusySpec$1(providerBackstage));\n remove$6(element, 'display');\n remove$7(element, 'aria-hidden');\n if (editor.hasFocus()) {\n focusBusyComponent(comp);\n }\n } else {\n var throbberFocus = Composing.getCurrent(comp).exists(function (busyComp) {\n return hasFocus(busyComp.element);\n });\n Blocking.unblock(comp);\n set$7(element, 'display', 'none');\n set$8(element, 'aria-hidden', 'true');\n if (throbberFocus) {\n editor.focus();\n }\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([\n Replacing.config({}),\n Blocking.config({ focus: false }),\n Composing.config({\n find: function (comp) {\n return head(comp.components());\n }\n })\n ]),\n components: []\n };\n };\n var isFocusEvent = function (event) {\n return event.type === 'focusin';\n };\n var isPasteBinTarget = function (event) {\n if (isFocusEvent(event)) {\n var node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$2).exists(function (targetElm) {\n return has(targetElm, 'mce-pastebin');\n });\n } else {\n return false;\n }\n };\n var setup$7 = function (editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = value$1();\n var stealFocus = function (e) {\n if (throbberState.get() && !isPasteBinTarget(e)) {\n e.preventDefault();\n focusBusyComponent(lazyThrobber());\n editor.editorManager.setActive(editor);\n }\n };\n if (!editor.inline) {\n editor.on('PreInit', function () {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', function (e) {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n var toggle = function (state) {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n editor.fire('AfterProgressState', { state: state });\n }\n };\n editor.on('ProgressState', function (e) {\n timer.on(global$f.clearTimeout);\n if (isNumber(e.time)) {\n var timerId = global$f.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n\n var generate$1 = 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$1(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 = function (within, extra, withinWidth) {\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n var apportion = function (units, total, len) {\n var parray = generate$1(units, function (unit, current) {\n var width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width: width\n });\n });\n var within = filter$2(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: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n var toUnit = function (parray) {\n return map$2(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(fits, [], withinWidth);\n };\n var overflow = function (within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n var fitAll = function (within, extra, withinWidth) {\n return output(toUnit(within), [], withinWidth);\n };\n var tryFit = function (total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n var partition = 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 setGroups$1 = function (toolbar, storedGroups) {\n var bGroups = map$2(storedGroups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(toolbar, bGroups);\n };\n var findFocusedComp = function (comps) {\n return findMap(comps, function (comp) {\n return search(comp.element).bind(function (focusedElm) {\n return comp.getSystem().getByDom(focusedElm).toOptional();\n });\n });\n };\n var refresh$2 = function (toolbar, detail, setOverflow) {\n var builtGroups = detail.builtGroups.get();\n if (builtGroups.length === 0) {\n return;\n }\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$7(primary.element, 'visibility', 'hidden');\n var groups = builtGroups.concat([overflowGroup]);\n var focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n var availableWidth = get$a(primary.element);\n var overflows = partition(availableWidth, detail.builtGroups.get(), function (comp) {\n return get$a(comp.element);\n }, overflowGroup);\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups$1(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n remove$6(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n\n var schema$c = constant$1([\n field('splitToolbarBehaviours', [Coupling]),\n customField('builtGroups', function () {\n return Cell([]);\n })\n ]);\n\n var schema$b = constant$1([\n markers$1(['overflowToggledClass']),\n optionFunction('getOverflowBounds'),\n required$1('lazySink'),\n customField('overflowGroups', function () {\n return Cell([]);\n })\n ].concat(schema$c()));\n var parts$7 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n external$1({\n schema: schema$e(),\n name: 'overflow'\n }),\n external$1({ name: 'overflow-button' }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var expandable = constant$1(function (element, available) {\n setMax(element, Math.floor(available));\n });\n\n var schema$a = constant$1([\n markers$1(['toggledClass']),\n required$1('lazySink'),\n requiredFunction('fetch'),\n optionFunction('getBounds'),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n schema$y()\n ]);\n var parts$6 = constant$1([\n external$1({\n name: 'button',\n overrides: function (detail) {\n return {\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })\n ]);\n\n var toggle = function (button, externals) {\n var toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n var position = function (button, toolbar, detail, layouts) {\n var bounds = detail.getBounds.map(function (bounder) {\n return bounder();\n });\n var sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts: layouts,\n overrides: { maxWidthFunction: expandable() }\n }\n }, bounds);\n };\n var setGroups = function (button, toolbar, detail, layouts, groups) {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n var makeSandbox = function (button, spec, detail) {\n var ariaOwner = manager();\n var onOpen = function (sandbox, toolbar) {\n detail.fetch().get(function (groups) {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n ariaOwner.link(button.element);\n Keying.focusIn(toolbar);\n });\n };\n var onClose = function () {\n Toggling.off(button);\n Focusing.focus(button);\n ariaOwner.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaOwner.id }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: function () {\n return detail.lazySink(button).getOrDie();\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel$1(__assign({ isExtraPart: never }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))), receivingChannel({\n doReposition: function () {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n }))\n })\n ])\n };\n };\n var factory$a = function (detail, components, spec, externals) {\n return __assign(__assign({}, Button.sketch(__assign(__assign({}, externals.button()), {\n action: function (button) {\n toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({ dump: externals.button().buttonBehaviours }, [Coupling.config({\n others: {\n toolbarSandbox: function (button) {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }))), {\n apis: {\n setGroups: function (button, groups) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: function (button) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: function (button) {\n toggle(button, externals);\n },\n getToolbar: function (button) {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: function (button) {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n };\n var FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$a,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: function (apis, button, groups) {\n apis.setGroups(button, groups);\n },\n reposition: function (apis, button) {\n apis.reposition(button);\n },\n toggle: function (apis, button) {\n apis.toggle(button);\n },\n getToolbar: function (apis, button) {\n return apis.getToolbar(button);\n },\n isOpen: function (apis, button) {\n return apis.isOpen(button);\n }\n }\n });\n\n var schema$9 = constant$1([\n required$1('items'),\n markers$1(['itemSelector']),\n field('tgroupBehaviours', [Keying])\n ]);\n var parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n\n var factory$9 = 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({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$9\n });\n\n var buildGroups = function (comps) {\n return map$2(comps, function (g) {\n return premade(g);\n });\n };\n var refresh$1 = function (toolbar, memFloatingToolbarButton, detail) {\n refresh$2(toolbar, detail, function (overflowGroups) {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n var factory$8 = function (detail, components, spec, externals) {\n var memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(buildGroups(detail.overflowGroups.get()));\n });\n },\n layouts: {\n onLtr: function () {\n return [\n southwest$2,\n southeast$2\n ];\n },\n onRtl: function () {\n return [\n southeast$2,\n southwest$2\n ];\n },\n onBottomLtr: function () {\n return [\n northwest$2,\n northeast$2\n ];\n },\n onBottomRtl: function () {\n return [\n northeast$2,\n northwest$2\n ];\n }\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: { toggledClass: detail.markers.overflowToggledClass },\n parts: {\n button: externals['overflow-button'](),\n toolbar: externals.overflow()\n }\n }));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: function () {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), { items: [memFloatingToolbarButton.asSpec()] }));\n }\n }\n })]),\n apis: {\n setGroups: function (toolbar, groups) {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: function (toolbar) {\n return refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n toggle: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n isOpen: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false);\n },\n reposition: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar);\n }\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$8,\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 reposition: function (apis, toolbar) {\n apis.reposition(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n }\n }\n });\n\n var schema$8 = constant$1([\n markers$1([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n var parts$4 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$e(),\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 onShrunk: function (comp) {\n getPart(comp, detail, 'overflow-button').each(function (button) {\n Toggling.off(button);\n Focusing.focus(button);\n });\n detail.onClosed(comp);\n },\n onGrown: function (comp) {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })\n ])\n };\n }\n }),\n external$1({\n name: 'overflow-button',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var isOpen = function (toolbar, detail) {\n return getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n };\n var toggleToolbar = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow-button').bind(function () {\n return getPart(toolbar, detail, 'overflow');\n }).each(function (overf) {\n refresh(toolbar, detail);\n Sliding.toggleGrow(overf);\n });\n };\n var refresh = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow').each(function (overflow) {\n refresh$2(toolbar, detail, function (groups) {\n var builtGroups = map$2(groups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(function (button) {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n var factory$7 = function (detail, components, spec, externals) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n var doSetGroups = function (toolbar, groups) {\n var built = map$2(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: {\n overflowGroup: function (toolbar) {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), {\n items: [Button.sketch(__assign(__assign({}, externals['overflow-button']()), {\n action: function (_button) {\n emit(toolbar, toolbarToggleEvent);\n }\n }))]\n }));\n }\n }\n }),\n config('toolbar-toggle-events', [run$1(toolbarToggleEvent, function (toolbar) {\n toggleToolbar(toolbar, detail);\n })])\n ]),\n apis: {\n setGroups: function (toolbar, groups) {\n doSetGroups(toolbar, groups);\n refresh(toolbar, detail);\n },\n refresh: function (toolbar) {\n return refresh(toolbar, detail);\n },\n toggle: function (toolbar) {\n return toggleToolbar(toolbar, detail);\n },\n isOpen: function (toolbar) {\n return isOpen(toolbar, detail);\n }\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$7,\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 toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(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) {\n var onAttached = runOnAttached(function (component) {\n var groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n DisablingConfigs.toolbarButton(toolbarSpec.providers.isDisabled),\n receivingConfig(),\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached])\n ]);\n };\n var renderMoreToolbarCommon = function (toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Optional.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n name: 'more',\n icon: Optional.some('more-drawer'),\n disabled: false,\n tooltip: Optional.some('More...'),\n primary: false,\n borderless: false\n }, Optional.none(), toolbarSpec.providers)\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n };\n };\n var renderFloatingMoreToolbar = function (toolbarSpec) {\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n var overflowXOffset = 4;\n var primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch(__assign(__assign({}, baseSpec), {\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: function () {\n var headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n var headerBounds = absolute$2(headerElem);\n var docElem = documentElement(headerElem);\n var docBounds = absolute$2(docElem);\n var height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: __assign(__assign({}, baseSpec.parts), {\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: toolbarSpec.attributes\n }\n }\n }),\n components: [primary],\n markers: { overflowToggledClass: 'tox-tbtn--enabled' }\n }));\n };\n var renderSlidingMoreToolbar = function (toolbarSpec) {\n var primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n var overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch(__assign(__assign({}, baseSpec), {\n components: [\n primary,\n overflow\n ],\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 onOpened: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n },\n onClosed: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n }\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'].concat(toolbarSpec.type === ToolbarMode.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n });\n };\n\n var factory$6 = function (detail, components, _spec) {\n var apis = {\n getSocket: function (comp) {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: function (comp, panelConfigs) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function (comp, name) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function (comp) {\n return parts$a.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: function (comp) {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: function (comp) {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function (comp, groups) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: function (comp, toolbars) {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(function (mToolbar) {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: function (comp) {\n var toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(function (toolbar) {\n return toolbar.getApis().refresh(toolbar);\n });\n },\n toggleToolbarDrawer: function (comp) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n mapFrom(toolbar.getApis().toggle, function (toggle) {\n return toggle(toolbar);\n });\n });\n },\n isToolbarDrawerToggled: function (comp) {\n return parts$a.getPart(comp, detail, 'toolbar').bind(function (toolbar) {\n return Optional.from(toolbar.getApis().isOpen).map(function (isOpen) {\n return isOpen(toolbar);\n });\n }).getOr(false);\n },\n getThrobber: function (comp) {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function (comp) {\n var optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(function () {\n return parts$a.getPart(comp, detail, 'multiple-toolbar');\n });\n optToolbar.each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function (comp, menus) {\n parts$a.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function (comp) {\n parts$a.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.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n var toolbarFactory = function (spec) {\n if (spec.type === ToolbarMode.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n var partMultipleToolbar = partType.optional({\n factory: {\n sketch: function (spec) {\n return CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: function () {\n return renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: function () {\n spec.onEscape();\n return Optional.some(true);\n }\n });\n },\n setupItem: function (_mToolbar, tc, data, _index) {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n });\n }\n },\n name: 'multiple-toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape')\n ]\n });\n var partToolbar = partType.optional({\n factory: {\n sketch: function (spec) {\n var renderer = toolbarFactory(spec);\n var toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: function () {\n spec.onEscape();\n return Optional.some(true);\n },\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n providers: spec.providers,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n },\n attributes: spec.attributes\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape'),\n required$1('getSink')\n ]\n });\n var partHeader = partType.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [required$1('dom')]\n });\n var partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n var partSidebar = partType.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n var partThrobber = partType.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [\n required$1('dom'),\n required$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\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 getHeader: function (apis, comp) {\n return apis.getHeader(comp);\n },\n getToolbar: function (apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function (apis, comp, grps) {\n var groups = map$2(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: function (apis, comp, ts) {\n var renderedToolbars = map$2(ts, function (g) {\n return map$2(g, renderToolbarGroup);\n });\n apis.setToolbars(comp, renderedToolbars);\n },\n refreshToolbar: function (apis, comp) {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: function (apis, comp) {\n apis.toggleToolbarDrawer(comp);\n },\n isToolbarDrawerToggled: function (apis, comp) {\n return apis.isToolbarDrawerToggled(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 | export 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 lineheight | forecolor backcolor | language | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'spellchecker spellcheckerlanguage | a11ycheck code wordcount'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n var make = function (menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function () {\n return bind$3(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 = __assign(__assign({}, 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$2(menubar, function (menuName) {\n var isDefaultMenu = has$2(defaultMenus, menuName);\n if (userDefinedMenus) {\n return isDefaultMenu || get$e(registry.menus, menuName).exists(function (menu) {\n return has$2(menu, 'items');\n });\n } else {\n return isDefaultMenu;\n }\n });\n var menus = map$2(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(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 var done = function () {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n var fireSkinLoadError = function (editor, err) {\n return function () {\n return fireSkinLoadError$1(editor, { message: err });\n };\n };\n\n var loadStylesheet = function (editor, stylesheetUrl, styleSheetLoader) {\n return new global$c(function (resolve, reject) {\n styleSheetLoader.load(stylesheetUrl, resolve, reject);\n editor.on('remove', function () {\n return styleSheetLoader.unload(stylesheetUrl);\n });\n });\n };\n var loadUiSkins = function (editor, skinUrl) {\n var skinUiCss = skinUrl + '/skin.min.css';\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n };\n var loadShadowDomUiSkins = function (editor, skinUrl) {\n var isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (isInShadowRoot$1) {\n var shadowDomSkinCss = skinUrl + '/skin.shadowdom.min.css';\n return loadStylesheet(editor, shadowDomSkinCss, global$b.DOM.styleSheetLoader);\n } else {\n return global$c.resolve();\n }\n };\n var loadSkin = function (isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n if (skinUrl) {\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (isSkinDisabled(editor) === false && isString(skinUrl)) {\n global$c.all([\n loadUiSkins(editor, skinUrl),\n loadShadowDomUiSkins(editor, skinUrl)\n ]).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n } else {\n fireSkinLoaded(editor)();\n }\n };\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n\n var onSetupFormatToggle = function (editor, name) {\n return function (api) {\n var boundCallback = unbindable();\n var init = function () {\n api.setActive(editor.formatter.match(name));\n var binding = editor.formatter.formatChanged(name, api.setActive);\n boundCallback.set(binding);\n };\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n boundCallback.clear();\n };\n };\n };\n var onSetupEvent = function (editor, event, f) {\n return function (api) {\n var handleEvent = function () {\n return f(api);\n };\n var init = function () {\n f(api);\n editor.on(event, handleEvent);\n };\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n };\n var onActionToggleFormat$1 = 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 var onActionExecCommand = function (editor, command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n var generateSelectItems = function (_editor, backstage, spec) {\n var generateItem = function (rawItem, response, disabled, value) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Optional.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n var items = bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n disabled: items.length <= 0,\n getSubmenuItems: function () {\n return bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n }\n });\n }\n } else {\n return Optional.some(__assign({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\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, value) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n var validateItems = function (preItems) {\n var value = spec.getCurrentValue();\n var response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, function (item) {\n return validate(item, response, value);\n });\n };\n var getFetch = function (backstage, getStyleItems) {\n return function (comp, callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n };\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n var createMenuItems = function (editor, backstage, spec) {\n var dataset = spec.dataset;\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map$2(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, spec) {\n var _a = createMenuItems(editor, backstage, spec), items = _a.items, getStyleItems = _a.getStyleItems;\n var getApi = function (comp) {\n return { getComponent: constant$1(comp) };\n };\n var onSetup = onSetupEvent(editor, 'NodeChange', function (api) {\n var comp = api.getComponent();\n spec.updateText(comp);\n });\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Optional.none() : spec.text,\n icon: spec.icon,\n tooltip: Optional.from(spec.tooltip),\n role: Optional.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$2(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 = editor.getParam(settingName, defaults, 'string');\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 command: 'JustifyLeft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }\n ];\n var getSpec$4 = function (editor) {\n var getMatchingValue = function () {\n return find$5(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 Optional.none;\n };\n var updateSelectMenuIcon = function (comp) {\n var match = getMatchingValue();\n var alignment = match.fold(constant$1('left'), function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, { icon: 'align-' + alignment });\n };\n var dataset = buildBasicStaticDataset(alignMenuItems);\n var onAction = function (rawItem) {\n return function () {\n return find$5(alignMenuItems, function (item) {\n return item.format === rawItem.format;\n }).each(function (item) {\n return editor.execCommand(item.command);\n });\n };\n };\n return {\n tooltip: 'Align',\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuIcon,\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 return createSelectButton(editor, backstage, getSpec$4(editor));\n };\n var alignSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$4(editor));\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 splitFonts = function (fontFamily) {\n var fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, function (font) {\n return font.replace(/^['\"]+|['\"]+$/g, '');\n });\n };\n var isSystemFontStack = function (fontFamily) {\n var matchesSystemStack = function () {\n var fonts = splitFonts(fontFamily.toLowerCase());\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$3 = function (editor) {\n var systemFont = 'System Font';\n var getMatchingValue = function () {\n var getFirstFont = function (fontFamily) {\n return fontFamily ? splitFonts(fontFamily)[0] : '';\n };\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n var matchOpt = find$5(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n return someIf(isSystemFontStack(font), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt: matchOpt,\n font: fontFamily\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = function (item) {\n return function () {\n return Optional.some({\n tag: 'div',\n styles: 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 updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, font = _a.font;\n var text = matchOpt.fold(constant$1(font), function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: getCurrentValue,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$3(editor));\n };\n var fontSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\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 legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n var keywordFontSizes = {\n 'xx-small': '7pt',\n 'x-small': '8pt',\n 'small': '10pt',\n 'medium': '12pt',\n 'large': '14pt',\n 'x-large': '18pt',\n 'xx-large': '24pt'\n };\n var round = 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(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$e(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n var toLegacy = function (fontSize) {\n return get$e(legacyFontSizes, fontSize).getOr('');\n };\n var getSpec$2 = function (editor) {\n var getMatchingValue = function () {\n var matchOpt = Optional.none();\n var items = dataset.data;\n var fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n var _loop_1 = function (precision) {\n var pt = toPt(fontSize, precision);\n var legacy = toLegacy(pt);\n matchOpt = find$5(items, function (item) {\n return item.format === fontSize || item.format === pt || item.format === legacy;\n });\n };\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n return {\n matchOpt: matchOpt,\n size: fontSize\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = constant$1(Optional.none);\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 updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, size = _a.size;\n var text = matchOpt.fold(constant$1(size), function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n text: Optional.some('12pt'),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n getCurrentValue: getCurrentValue,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontsizeSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$2(editor));\n };\n var fontsizeSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\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) {\n var styles = getStyles();\n var formats = map$2(styles, function (style) {\n return style.format;\n });\n return Optional.from(editor.formatter.closest(formats)).bind(function (fmt) {\n return find$5(styles, function (data) {\n return data.format === fmt;\n });\n }).orThunk(function () {\n return someIf(editor.formatter.match('p'), {\n title: 'Paragraph',\n format: 'p'\n });\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$1 = function (editor) {\n var fallbackFormat = 'Paragraph';\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 Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var detectedFormat = findNearest(editor, function () {\n return dataset.data;\n });\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\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 return createSelectButton(editor, backstage, getSpec$1(editor));\n };\n var formatSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\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 = function (editor, dataset) {\n var fallbackFormat = 'Paragraph';\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 ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n var updateSelectMenuText = function (comp) {\n var getFormatItems = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n var flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n var detectedFormat = findNearest(editor, constant$1(flattenedItems));\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n return {\n tooltip: 'Formats',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n },\n dataset: dataset\n };\n };\n var createStyleSelect = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n return createSelectButton(editor, backstage, getSpec(editor, dataset));\n };\n var styleSelectMenu = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n var menuItems = createMenuItems(editor, backstage, getSpec(editor, dataset));\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 events$3 = 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 var newChildren = map$2(newComponents, component.getSystem().build);\n replaceChildren(component, newChildren);\n });\n };\n return derive$2([\n run$1(receive(), function (component, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n var channel = reflectingConfig.channel;\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\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 __proto__: null,\n events: events$3\n });\n\n var getState = function (component, replaceConfig, reflectState) {\n return reflectState;\n };\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n\n var ReflectingSchema = [\n required$1('channel'),\n option('renderComponents'),\n option('updateState'),\n option('initialData')\n ];\n\n var init$3 = function () {\n var cell = Cell(Optional.none());\n var clear = function () {\n return cell.set(Optional.none());\n };\n var readState = function () {\n return cell.get().getOr('none');\n };\n return {\n readState: readState,\n get: cell.get,\n set: cell.set,\n clear: clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$3\n });\n\n var Reflecting = create$8({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n var schema$7 = constant$1([\n required$1('toggleClass'),\n required$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n onStrictHandler('onItemExecute'),\n option('lazySink'),\n required$1('dom'),\n onHandler('onOpen'),\n field('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n defaulted('eventOrder', {}),\n option('role')\n ].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: function () {\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: [required$1('dom')],\n name: 'button',\n defaults: function () {\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$3 = constant$1([\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: [required$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$1()\n ]);\n\n var factory$5 = function (detail, components, spec, externals) {\n var _a;\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, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var openMenu = function (comp) {\n action(comp);\n return Optional.some(true);\n };\n var executeOnButton = function (comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n var buttonEvents = __assign(__assign({}, derive$2([runOnAttached(function (component, _simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$6('aria');\n set$8(descriptor.element, 'id', descriptorId);\n set$8(component.element, 'aria-describedby', descriptorId);\n });\n })])), events$a(Optional.some(action)));\n var apis = {\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\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$1(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({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: {\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\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 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$6('focus-button');\n var renderCommonStructure = function (icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _d;\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: (_d = {}, _d[mousedown()] = [\n 'focusing',\n 'alloy.base.behaviour',\n 'common-button-display-events'\n ], _d),\n buttonBehaviours: derive$1([\n DisablingConfigs.toolbarButton(providersBackstage.isDisabled),\n receivingConfig(),\n config('common-button-display-events', [run$1(mousedown(), function (button, se) {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })])\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 renderFloatingToolbarButton = function (spec, backstage, identifyButtons, attributes) {\n var sharedBackstage = backstage.shared;\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n });\n },\n markers: { toggledClass: 'tox-tbtn--enabled' },\n parts: {\n button: renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.none(), sharedBackstage.providers),\n toolbar: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: attributes\n }\n }\n }\n });\n };\n var renderCommonToolbarButton = function (spec, specialisation, providersBackstage) {\n var editorOffCell = Cell(noop);\n var structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.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.toolbarButton(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }),\n receivingConfig()\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 Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), 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 (_d) {\n var numRows = _d.numRows, numColumns = _d.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n var renderSplitButton = function (spec, sharedBackstage) {\n var _d;\n var displayChannel = generate$6('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(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function (id, value) {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'stroke', value);\n });\n },\n setActive: function (state) {\n set$8(comp.element, 'aria-pressed', state);\n descendant(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(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: __assign({ '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(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n config('split-dropdown-events', [\n run$1(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n Unselecting.config({})\n ]),\n eventOrder: (_d = {}, _d[attachedToDom()] = [\n 'alloy.base.behaviour',\n 'split-dropdown-events'\n ], _d),\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, Optional.none(), Optional.some(displayChannel), Optional.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$1('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n addFocusableBehaviour()\n ])\n }),\n SplitDropdown.parts['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\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, editor) {\n var internal = bridgeBuilder(spec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return render(internal, extras, editor);\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, Optional.none());\n }),\n splitbutton: renderFromBridge(createSplitButton, function (s, extras) {\n return renderSplitButton(s, extras.backstage.shared);\n }),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, function (s, extras, editor) {\n var _a;\n var buttons = editor.ui.registry.getAll().buttons;\n var identify = function (toolbar) {\n return identifyButtons(editor, {\n buttons: buttons,\n toolbar: toolbar,\n allowToolbarGroups: false\n }, extras, Optional.none());\n };\n var attributes = (_a = {}, _a[Attribute] = extras.backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop, _a);\n switch (getToolbarMode(editor)) {\n case ToolbarMode.floating:\n return renderFloatingToolbarButton(s, extras.backstage, identify, attributes);\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\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 = function (spec, extras, editor) {\n return get$e(types, spec.type).fold(function () {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, function (render) {\n return Optional.some(render(spec, extras, editor));\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$2(defaultToolbar, function (group) {\n var items = filter$2(group.items, function (subItem) {\n return has$2(buttons, subItem) || has$2(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter$2(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n var convertStringToolbar = function (strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, function (g) {\n return { items: g.trim().split(' ') };\n });\n };\n var isToolbarGroupSettingArray = function (toolbar) {\n return isArrayOf(toolbar, function (t) {\n return has$2(t, 'name') && has$2(t, 'items');\n });\n };\n var createToolbar = function (toolbarConfig) {\n var toolbar = toolbarConfig.toolbar;\n var buttons = toolbarConfig.buttons;\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n var lookupButton = function (editor, buttons, toolbarItem, allowToolbarGroups, extras, prefixes) {\n return get$e(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get$e(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get$e(bespokeButtons, toolbarItem.toLowerCase()).map(function (r) {\n return r(editor, extras);\n }).orThunk(function () {\n return Optional.none();\n });\n }, function (spec) {\n if (spec.type === 'grouptoolbarbutton' && !allowToolbarGroups) {\n console.warn('Ignoring the \\'' + toolbarItem + '\\' toolbar button. Group toolbar buttons are only supported when using floating toolbar mode and cannot be nested.');\n return Optional.none();\n } else {\n return extractFrom(spec, extras, editor);\n }\n });\n };\n var identifyButtons = function (editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map$2(toolbarGroups, function (group) {\n var items = bind$3(group.items, function (toolbarItem) {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, extras, prefixes).toArray();\n });\n return {\n title: Optional.from(editor.translate(group.name)),\n items: items\n };\n });\n return filter$2(groups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var setToolbar = function (editor, uiComponents, rawUiConfig, backstage) {\n var comp = uiComponents.outerContainer;\n var toolbarConfig = rawUiConfig.toolbar;\n var toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n var toolbars = toolbarConfig.map(function (t) {\n var config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, { backstage: backstage }, Optional.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, { backstage: backstage }, Optional.none()));\n }\n };\n\n var detection = detect$1();\n var isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n var setupEvents$1 = function (editor, uiComponents) {\n var dom = editor.dom;\n var contentWindow = editor.getWin();\n var initialDocEle = editor.getDoc().documentElement;\n var lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n var lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n var resizeWindow = function () {\n var outer = lastWindowDimensions.get();\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n var resizeDocument = function () {\n var docEle = editor.getDoc().documentElement;\n var inner = lastDocumentDimensions.get();\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n var scroll = function (e) {\n return fireScrollContent(editor, e);\n };\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n var elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n var mothership = uiComponents.uiMothership.element;\n editor.on('hide', function () {\n set$7(mothership, 'display', 'none');\n });\n editor.on('show', function () {\n remove$6(mothership, 'display');\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', function () {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n var render$1 = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var lastToolbarWidth = Cell(0);\n var outerContainer = uiComponents.outerContainer;\n iframe(editor);\n var eTargetNode = SugarElement.fromDom(args.targetNode);\n var uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, uiComponents.mothership);\n attachSystem(uiRoot, uiComponents.uiMothership);\n editor.on('PostRender', function () {\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setSidebar(outerContainer, rawUiConfig.sidebar);\n setupEvents$1(editor, uiComponents);\n });\n var socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12) {\n setAll(socket.element, {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n var limit = first(function () {\n editor.fire('ScrollContent');\n }, 20);\n var unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n setupReadonlyModeSwitch(editor, uiComponents);\n editor.addCommand('ToggleSidebar', function (_ui, value) {\n OuterContainer.toggleSidebar(outerContainer, value);\n editor.fire('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', function () {\n return OuterContainer.whichSidebar(outerContainer);\n });\n var toolbarMode = getToolbarMode(editor);\n var refreshDrawer = function () {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n if (toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n var width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n var api = {\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n\n var parseToInt = function (val) {\n var re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n var numToPx = function (val) {\n return isNumber(val) ? val + 'px' : val;\n };\n var calcCappedSize = function (size, minSize, maxSize) {\n var minOverride = minSize.filter(function (min) {\n return size < min;\n });\n var maxOverride = maxSize.filter(function (max) {\n return size > max;\n });\n return minOverride.or(maxOverride).getOr(size);\n };\n\n var getHeight = function (editor) {\n var baseHeight = getHeightSetting(editor);\n var minHeight = getMinHeightSetting(editor);\n var maxHeight = getMaxHeightSetting(editor);\n return parseToInt(baseHeight).map(function (height) {\n return calcCappedSize(height, minHeight, maxHeight);\n });\n };\n var getHeightWithFallback = function (editor) {\n var height = getHeight(editor);\n return height.getOr(getHeightSetting(editor));\n };\n var getWidth = function (editor) {\n var baseWidth = getWidthSetting(editor);\n var minWidth = getMinWidthSetting(editor);\n var maxWidth = getMaxWidthSetting(editor);\n return parseToInt(baseWidth).map(function (width) {\n return calcCappedSize(width, minWidth, maxWidth);\n });\n };\n var getWidthWithFallback = function (editor) {\n var width = getWidth(editor);\n return width.getOr(getWidthSetting(editor));\n };\n\n var InlineHeader = function (editor, targetElm, uiComponents, backstage, floatContainer) {\n var uiMothership = uiComponents.uiMothership, outerContainer = uiComponents.outerContainer;\n var DOM = global$b.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var isSticky = isStickyToolbar(editor);\n var editorMaxWidthOpt = getMaxWidthSetting(editor).or(getWidth(editor));\n var headerBackstage = backstage.shared.header;\n var isPositionedAtTop = headerBackstage.isPositionedAtTop;\n var toolbarMode = getToolbarMode(editor);\n var isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n var visible = Cell(false);\n var isVisible = function () {\n return visible.get() && !editor.removed;\n };\n var calcToolbarOffset = function (toolbar) {\n return isSplitToolbar ? toolbar.fold(constant$1(0), function (tbar) {\n return tbar.components().length > 1 ? get$b(tbar.components()[1].element) : 0;\n }) : 0;\n };\n var calcMode = function (container) {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n var toolbar_1 = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar_1);\n var toolbarHeight = get$b(container.element) - offset;\n var targetBounds = box$1(targetElm);\n var roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n var doc = documentElement(targetElm);\n var docHeight = Math.max(doc.dom.scrollHeight, get$b(doc));\n var roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n if (roomAtBottom) {\n return 'bottom';\n } else {\n var winBounds = win();\n var isRoomAtBottomViewport = winBounds.bottom < targetBounds.bottom - toolbarHeight;\n return isRoomAtBottomViewport ? 'bottom' : 'top';\n }\n }\n case ToolbarLocation.bottom:\n return 'bottom';\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n var setupMode = function (mode) {\n var container = floatContainer.get();\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n var verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$8(container.element, Attribute, verticalDir);\n };\n var updateChromeWidth = function () {\n var maxWidth = editorMaxWidthOpt.getOrThunk(function () {\n var bodyMargin = parseToInt(get$c(body(), 'margin-left')).getOr(0);\n return get$a(body()) - absolute$3(targetElm).left + bodyMargin;\n });\n set$7(floatContainer.get().element, 'max-width', maxWidth + 'px');\n };\n var updateChromePosition = function () {\n var toolbar = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar);\n var targetBounds = box$1(targetElm);\n var top = isPositionedAtTop() ? Math.max(targetBounds.y - get$b(floatContainer.get().element) + offset, 0) : targetBounds.bottom;\n setAll(outerContainer.element, {\n position: 'absolute',\n top: Math.round(top) + 'px',\n left: Math.round(targetBounds.x) + 'px'\n });\n };\n var repositionPopups$1 = function () {\n uiMothership.broadcastOn([repositionPopups()], {});\n };\n var updateChromeUi = function (resetDocking) {\n if (resetDocking === void 0) {\n resetDocking = false;\n }\n if (!isVisible()) {\n return;\n }\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(outerContainer);\n }\n if (!useFixedToolbarContainer) {\n updateChromePosition();\n }\n if (isSticky) {\n var floatContainerComp = floatContainer.get();\n resetDocking ? Docking.reset(floatContainerComp) : Docking.refresh(floatContainerComp);\n }\n repositionPopups$1();\n };\n var updateMode = function (updateUi) {\n if (updateUi === void 0) {\n updateUi = true;\n }\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return;\n }\n var currentMode = headerBackstage.getDockingMode();\n var newMode = calcMode(floatContainer.get());\n if (newMode !== currentMode) {\n setupMode(newMode);\n if (updateUi) {\n updateChromeUi(true);\n }\n }\n };\n var show = function () {\n visible.set(true);\n set$7(outerContainer.element, 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n remove$6(uiMothership.element, 'display');\n updateMode(false);\n updateChromeUi();\n };\n var hide = function () {\n visible.set(false);\n if (uiComponents.outerContainer) {\n set$7(outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n set$7(uiMothership.element, 'display', 'none');\n };\n return {\n isVisible: isVisible,\n isPositionedAtTop: isPositionedAtTop,\n show: show,\n hide: hide,\n update: updateChromeUi,\n updateMode: updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n\n var getTargetPosAndBounds = function (targetElm, isToolbarTop) {\n var bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds: bounds\n };\n };\n var setupEvents = function (editor, targetElm, ui, toolbarPersist) {\n var prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n var resizeContent = function (e) {\n var _a = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()), pos = _a.pos, bounds = _a.bounds;\n var _b = prevPosAndBounds.get(), prevPos = _b.pos, prevBounds = _b.bounds;\n var hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos: pos,\n bounds: bounds\n });\n if (hasResized) {\n fireResizeContent(editor, e);\n }\n if (ui.isVisible()) {\n if (prevPos !== pos) {\n ui.update(true);\n } else if (hasResized) {\n ui.updateMode();\n ui.repositionPopups();\n }\n }\n };\n if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n editor.on('SkinLoaded ResizeWindow', function () {\n return ui.update(true);\n });\n editor.on('NodeChange keydown', function (e) {\n global$f.requestAnimationFrame(function () {\n return resizeContent(e);\n });\n });\n editor.on('ScrollWindow', function () {\n return ui.updateMode();\n });\n var elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', resizeContent));\n editor.on('remove', function () {\n elementLoad.clear();\n });\n };\n var render = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var mothership = uiComponents.mothership, uiMothership = uiComponents.uiMothership, outerContainer = uiComponents.outerContainer;\n var floatContainer = Cell(null);\n var targetElm = SugarElement.fromDom(args.targetNode);\n var ui = InlineHeader(editor, targetElm, uiComponents, backstage, floatContainer);\n var toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n var render = function () {\n if (floatContainer.get()) {\n ui.show();\n return;\n }\n floatContainer.set(OuterContainer.getHeader(outerContainer).getOrDie());\n var uiContainer = getUiContainer(editor);\n attachSystem(uiContainer, mothership);\n attachSystem(uiContainer, uiMothership);\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n ui.show();\n setupEvents(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n editor.on('show', render);\n editor.on('hide', ui.hide);\n if (!toolbarPersist) {\n editor.on('focus', render);\n editor.on('blur', ui.hide);\n }\n editor.on('init', function () {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n var api = {\n show: function () {\n ui.show();\n },\n hide: function () {\n ui.hide();\n },\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n\n var showContextToolbarEvent = 'contexttoolbar-show';\n var hideContextToolbarEvent = 'contexttoolbar-hide';\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 = function (memInput, original) {\n return run$1(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; _a.primary; var rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToolbarButton(__assign(__assign({}, rest), {\n type: 'button',\n onAction: noop\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n var renderContextToggleButton = function (memInput, button, extras) {\n var _a = button.original; _a.primary; var rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToggleButton(__assign(__assign({}, rest), {\n type: 'togglebutton',\n onAction: noop\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n var generateOne = 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 = function (memInput, buttons, providersBackstage) {\n var mementos = map$2(buttons, function (button) {\n return record(generateOne(memInput, button, providersBackstage));\n });\n var asSpecs = function () {\n return map$2(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 Optional.from(mementos[i]).bind(function (mem) {\n return mem.getOpt(compInSystem);\n }).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n };\n return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n\n var buildInitGroups = function (ctx, providers) {\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 Optional.none();\n },\n onRight: function (comp, se) {\n se.cut();\n return Optional.none();\n }\n })])\n }));\n var commands = generate(memInput, ctx.commands, providers);\n return [\n {\n title: Optional.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Optional.none(),\n items: commands.asSpecs()\n }\n ];\n };\n var renderContextForm = function (toolbarType, ctx, providers) {\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: providers\n });\n };\n var ContextForm = {\n renderContextForm: renderContextForm,\n buildInitGroups: buildInitGroups\n };\n\n var isVerticalOverlap = function (a, b, threshold) {\n if (threshold === void 0) {\n threshold = 0.01;\n }\n return b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n };\n var getRangeRect = function (rng) {\n var rect = rng.getBoundingClientRect();\n if (rect.height <= 0 && rect.width <= 0) {\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n var elm = isText$1(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$2).map(function (e) {\n return e.dom.getBoundingClientRect();\n }).getOr(rect);\n } else {\n return rect;\n }\n };\n var getSelectionBounds = function (editor) {\n var rng = editor.selection.getRng();\n var rect = getRangeRect(rng);\n if (editor.inline) {\n var scroll_1 = get$9();\n return bounds(scroll_1.left + rect.left, scroll_1.top + rect.top, rect.width, rect.height);\n } else {\n var bodyPos = absolute$2(SugarElement.fromDom(editor.getBody()));\n return bounds(bodyPos.x + rect.left, bodyPos.y + rect.top, rect.width, rect.height);\n }\n };\n var getAnchorElementBounds = function (editor, lastElement) {\n return lastElement.filter(inBody).map(absolute$2).getOrThunk(function () {\n return getSelectionBounds(editor);\n });\n };\n var getHorizontalBounds = function (contentAreaBox, viewportBounds, margin) {\n var x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n var right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x: x,\n width: right - x\n };\n };\n var getVerticalBounds = function (editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) {\n var container = SugarElement.fromDom(editor.getContainer());\n var header = descendant(container, '.tox-editor-header').getOr(container);\n var headerBox = box$1(header);\n var isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n var isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n }\n var containerBounds = toolbarType === 'line' ? box$1(container) : contentAreaBox;\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom - margin, viewportBounds.bottom)\n };\n }\n return {\n y: Math.max(containerBounds.y + margin, viewportBounds.y),\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n };\n var getContextToolbarBounds = function (editor, sharedBackstage, toolbarType, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n var viewportBounds = getBounds$3(window);\n var contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds, margin), x = _a.x, width = _a.width;\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n var isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n var _b = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin), y = _b.y, bottom = _b.bottom;\n return bounds(x, y, width, bottom - y);\n }\n };\n\n var bubbleSize$1 = 12;\n var bubbleAlignments$1 = {\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 inset: ['tox-pop--inset']\n };\n var anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n var isEntireElementSelected = function (editor, elem) {\n var rng = editor.selection.getRng();\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n return rng.startContainer === rng.endContainer && rng.startOffset === rng.endOffset - 1 && eq(leaf$1.element, elem);\n };\n var preservePosition = function (elem, position, f) {\n var currentPosition = getRaw(elem, 'position');\n set$7(elem, 'position', position);\n var result = f(elem);\n currentPosition.each(function (pos) {\n return set$7(elem, 'position', pos);\n });\n return result;\n };\n var shouldUseInsetLayouts = function (position) {\n return position === 'node';\n };\n var determineInsetLayout = function (editor, contextbar, elem, data, bounds) {\n var selectionBounds = getSelectionBounds(editor);\n var isSameAnchorElement = data.lastElement().exists(function (prev) {\n return eq(elem, prev);\n });\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), function () {\n var isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar));\n return isOverlapping && !data.isReposition() ? flip$2 : preserve;\n });\n } else {\n var yBounds = data.getMode() === 'fixed' ? bounds.y + get$9().top : bounds.y;\n var contextbarHeight = get$b(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n var getAnchorSpec$2 = function (editor, mobile, data, position) {\n var smartInsetLayout = function (elem) {\n return function (anchor, element, bubbles, placee, bounds) {\n var layout = determineInsetLayout(editor, placee, elem, data, bounds);\n var newAnchor = __assign(__assign({}, anchor), {\n y: bounds.y,\n height: bounds.height\n });\n return __assign(__assign({}, layout(newAnchor, element, bubbles, placee, bounds)), { alwaysFit: true });\n };\n };\n var getInsetLayouts = function (elem) {\n return shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n };\n var desktopAnchorSpecLayouts = {\n onLtr: function (elem) {\n return [\n north$2,\n south$2,\n northeast$2,\n southeast$2,\n northwest$2,\n southwest$2\n ].concat(getInsetLayouts(elem));\n },\n onRtl: function (elem) {\n return [\n north$2,\n south$2,\n northwest$2,\n southwest$2,\n northeast$2,\n southeast$2\n ].concat(getInsetLayouts(elem));\n }\n };\n var mobileAnchorSpecLayouts = {\n onLtr: function (elem) {\n return [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2\n ].concat(getInsetLayouts(elem));\n },\n onRtl: function (elem) {\n return [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2\n ].concat(getInsetLayouts(elem));\n }\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n var getAnchorLayout = function (editor, position, isTouch, data) {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: function () {\n return [east$2];\n },\n onRtl: function () {\n return [west$2];\n }\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$5(0, bubbleSize$1, bubbleAlignments$1, 1 / bubbleSize$1),\n layouts: getAnchorSpec$2(editor, isTouch, data, position),\n overrides: anchorOverrides\n };\n }\n };\n\n var matchTargetWith = function (elem, candidates) {\n var ctxs = filter$2(candidates, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom);\n });\n var _a = partition$3(ctxs, function (t) {\n return t.type === 'contexttoolbar';\n }), pass = _a.pass, fail = _a.fail;\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n var filterByPositionForStartNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var doesPositionExist = function (value) {\n return exists(toolbars, function (t) {\n return t.position === value;\n });\n };\n var filterToolbarsByPosition = function (value) {\n return filter$2(toolbars, function (t) {\n return t.position === value;\n });\n };\n var hasSelectionToolbars = doesPositionExist('selection');\n var hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n var nodeToolbars = filterToolbarsByPosition('node');\n var selectionToolbars = map$2(filterToolbarsByPosition('selection'), function (t) {\n return __assign(__assign({}, t), { position: 'node' });\n });\n return nodeToolbars.concat(selectionToolbars);\n } else {\n return hasSelectionToolbars ? filterToolbarsByPosition('selection') : filterToolbarsByPosition('node');\n }\n } else {\n return filterToolbarsByPosition('line');\n }\n }\n };\n var filterByPositionForAncestorNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var findPosition_1 = function (value) {\n return find$5(toolbars, function (t) {\n return t.position === value;\n });\n };\n var basePosition = findPosition_1('selection').orThunk(function () {\n return findPosition_1('node');\n }).orThunk(function () {\n return findPosition_1('line');\n }).map(function (t) {\n return t.position;\n });\n return basePosition.fold(function () {\n return [];\n }, function (pos) {\n return filter$2(toolbars, function (t) {\n return t.position === pos;\n });\n });\n }\n };\n var matchStartNode = function (elem, nodeCandidates, editorCandidates) {\n var nodeMatches = matchTargetWith(elem, nodeCandidates);\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n var editorMatches = matchTargetWith(elem, editorCandidates);\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n var toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem: elem,\n toolbars: toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n var matchAncestor = function (isRoot, startNode, scopes) {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, function (ancestorElem) {\n if (isElement$2(ancestorElem)) {\n var _a = matchTargetWith(ancestorElem, scopes.inNodeScope), contextToolbars = _a.contextToolbars, contextForms = _a.contextForms;\n var toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars: toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n var lookup$1 = function (scopes, editor) {\n var rootElem = SugarElement.fromDom(editor.getBody());\n var isRoot = function (elem) {\n return eq(elem, rootElem);\n };\n var isOutsideRoot = function (startNode) {\n return !isRoot(startNode) && !contains(rootElem, startNode);\n };\n var startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(function () {\n return matchAncestor(isRoot, startNode, scopes);\n });\n };\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, toolbarSpec) {\n var contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(function (launch) {\n formNavigators['form:' + key + ''] = __assign(__assign({}, toolbarSpec.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, toolbarSpec) {\n createContextToolbar(toolbarSpec).each(function (contextToolbar) {\n if (toolbarSpec.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$1(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\n var forwardSlideEvent = generate$6('forward-slide');\n var backSlideEvent = generate$6('backward-slide');\n var changeSlideEvent = generate$6('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$2(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 if (se.event.raw.propertyName === 'width') {\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n }\n }),\n run$1(changeSlideEvent, function (comp, se) {\n var elem = comp.element;\n remove$6(elem, 'width');\n var currentWidth = get$a(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n var newWidth = get$a(elem);\n set$7(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event.focus.bind(function (f) {\n focus$3(f);\n return search(elem);\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active(getRootNode(elem));\n });\n });\n global$f.setTimeout(function () {\n set$7(comp.element, 'width', newWidth + 'px');\n }, 0);\n }),\n run$1(forwardSlideEvent, function (comp, se) {\n InlineView.getContent(comp).each(function (oldContents) {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }),\n run$1(backSlideEvent, function (comp, _se) {\n last$2(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n return last$2(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n });\n }\n })\n ]),\n lazySink: function () {\n return Result.value(spec.sink);\n }\n });\n };\n\n var transitionClass = 'tox-pop--transition';\n var register$7 = function (editor, registryContextToolbars, sink, extras) {\n var backstage = extras.backstage;\n var sharedBackstage = backstage.shared;\n var isTouch = detect$1().deviceType.isTouch;\n var lastElement = value$1();\n var lastTrigger = value$1();\n var lastContextPosition = value$1();\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function () {\n editor.focus();\n return Optional.some(true);\n }\n }));\n var getBounds = function () {\n var position = lastContextPosition.get().getOr('node');\n var margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n var canLaunchToolbar = function () {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n var isSameLaunchElement = function (elem) {\n return is$1(lift2(elem, lastElement.get(), eq), true);\n };\n var shouldContextToolbarHide = function () {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n var contextToolbarBounds = getBounds();\n var anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds);\n }\n };\n var close = function () {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n var hideOrRepositionIfNecessary = function () {\n if (InlineView.isOpen(contextbar)) {\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\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 categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n });\n });\n var buildContextToolbarGroups = function (allButtons, ctx) {\n return identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras, Optional.some(['form:']));\n };\n var buildContextFormGroups = function (ctx, providers) {\n return ContextForm.buildInitGroups(ctx, providers);\n };\n var buildToolbar = function (toolbars) {\n var buttons = editor.ui.registry.getAll().buttons;\n var scopes = getScopes();\n var allButtons = __assign(__assign({}, buttons), scopes.formNavigators);\n var toolbarType = getToolbarMode(editor) === ToolbarMode.scrolling ? ToolbarMode.scrolling : ToolbarMode.default;\n var initGroups = flatten(map$2(toolbars, function (ctx) {\n return ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextFormGroups(ctx, sharedBackstage.providers);\n }));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n var getAnchor = function (position, element) {\n var anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n var anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: function () {\n return is$1(lastTrigger.get(), 0);\n },\n getMode: function () {\n return Positioning.getMode(sink);\n }\n });\n return deepMerge(anchorage, anchorLayout);\n };\n var launchContext = function (toolbarApi, elem) {\n launchContextToolbar.cancel();\n if (!canLaunchToolbar()) {\n return;\n }\n var toolbarSpec = buildToolbar(toolbarApi);\n var position = toolbarApi[0].position;\n var anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (!isSameLaunchElement(elem)) {\n remove$2(contextBarEle, transitionClass);\n Positioning.reset(sink, contextbar);\n }\n InlineView.showWithinBounds(contextbar, wrapInPopDialog(toolbarSpec), {\n anchor: anchor,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, function () {\n return Optional.some(getBounds());\n });\n elem.fold(lastElement.clear, lastElement.set);\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n }\n };\n var launchContextToolbar = last(function () {\n if (!editor.hasFocus() || editor.removed) {\n return;\n }\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n var scopes = getScopes();\n lookup$1(scopes, editor).fold(close, function (info) {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', function () {\n editor.on('remove', close);\n editor.on('ScrollContent ScrollWindow ObjectResized ResizeEditor longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent', launchContextToolbar.throttle);\n editor.on(hideContextToolbarEvent, close);\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n get$e(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n editor.on('focusout', function (_e) {\n global$f.setEditorTimeout(editor, function () {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', function () {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('AfterProgressState', function (event) {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('NodeChange', function (_e) {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n\n var register$6 = 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 each$1(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n icon: item.icon,\n onAction: onActionExecCommand(editor, item.cmd),\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n editor.ui.registry.addButton('alignnone', {\n tooltip: 'No alignment',\n icon: 'align-none',\n onAction: onActionExecCommand(editor, 'JustifyNone')\n });\n };\n\n var units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n var pattern = function () {\n var decimalDigits = '[0-9]+';\n var signedInteger = '[+-]?' + decimalDigits;\n var exponentPart = '[eE]' + signedInteger;\n var dot = '\\\\.';\n var opt = function (input) {\n return '(?:' + input + ')?';\n };\n var unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n var float = '[+-]?(?:' + unsignedDecimalLiteral + ')';\n return new RegExp('^(' + float + ')(.*)$');\n }();\n var isUnit = function (unit, accepted) {\n return exists(accepted, function (acc) {\n return exists(units[acc], function (check) {\n return unit === check;\n });\n });\n };\n var parse = function (input, accepted) {\n var match = Optional.from(pattern.exec(input));\n return match.bind(function (array) {\n var value = Number(array[1]);\n var unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value: value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n var normalise = function (input, accepted) {\n return parse(input, accepted).map(function (_a) {\n var value = _a.value, unit = _a.unit;\n return value + unit;\n });\n };\n\n var registerController = function (editor, spec) {\n var getMenuItems = function () {\n var options = spec.getOptions(editor);\n var initial = spec.getCurrent(editor).map(spec.hash);\n var current = value$1();\n return map$2(options, function (value) {\n return {\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: function (api) {\n var setActive = function (active) {\n if (active) {\n current.on(function (oldApi) {\n return oldApi.setActive(false);\n });\n current.set(api);\n }\n api.setActive(active);\n };\n setActive(is$1(initial, spec.hash(value)));\n var unbindWatcher = spec.watcher(editor, value, setActive);\n return function () {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: function () {\n return spec.setCurrent(editor, value);\n }\n };\n });\n };\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: function (callback) {\n return callback(getMenuItems());\n },\n onSetup: spec.onToolbarSetup\n });\n editor.ui.registry.addNestedMenuItem(spec.name, {\n type: 'nestedmenuitem',\n text: spec.text,\n getSubmenuItems: getMenuItems,\n onSetup: spec.onMenuSetup\n });\n };\n var lineHeightSpec = {\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: function (input) {\n return normalise(input, [\n 'fixed',\n 'relative',\n 'empty'\n ]).getOr(input);\n },\n display: identity$1,\n watcher: function (editor, value, callback) {\n return editor.formatter.formatChanged('lineheight', callback, false, { value: value }).unbind;\n },\n getCurrent: function (editor) {\n return Optional.from(editor.queryCommandValue('LineHeight'));\n },\n setCurrent: function (editor, value) {\n return editor.execCommand('LineHeight', false, value);\n }\n };\n var languageSpec = function (editor) {\n var settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(function (settings) {\n return {\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: function (input) {\n return isUndefined(input.customCode) ? input.code : input.code + '/' + input.customCode;\n },\n display: function (input) {\n return input.title;\n },\n watcher: function (editor, value, callback) {\n return editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: value.customCode\n }).unbind;\n },\n getCurrent: function (editor) {\n var node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, function (n) {\n return Optional.some(n).filter(isElement$2).bind(function (ele) {\n var codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(function (code) {\n var customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code: code,\n customCode: customCode,\n title: ''\n };\n });\n });\n });\n },\n setCurrent: function (editor, lang) {\n return editor.execCommand('Lang', false, lang);\n },\n onToolbarSetup: function (api) {\n var unbinder = unbindable();\n api.setActive(editor.formatter.match('lang', {}, undefined, true));\n unbinder.set(editor.formatter.formatChanged('lang', api.setActive, true));\n return unbinder.clear;\n }\n };\n });\n };\n var register$5 = function (editor) {\n registerController(editor, lineHeightSpec);\n languageSpec(editor).each(function (spec) {\n return registerController(editor, spec);\n });\n };\n\n var register$4 = 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\n var onSetupOutdentState = function (editor) {\n return onSetupEvent(editor, 'NodeChange', function (api) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n });\n };\n var registerButtons$2 = function (editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: onSetupOutdentState(editor),\n onAction: onActionExecCommand(editor, 'outdent')\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: onActionExecCommand(editor, 'indent')\n });\n };\n var register$3 = function (editor) {\n registerButtons$2(editor);\n };\n\n var onActionToggleFormat = function (editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n var registerFormatButtons = function (editor) {\n global$5.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: onActionToggleFormat(editor, btn.name)\n });\n });\n for (var i = 1; i <= 6; i++) {\n var name_1 = 'h' + i;\n editor.ui.registry.addToggleButton(name_1, {\n text: name_1.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name_1),\n onAction: onActionToggleFormat(editor, name_1)\n });\n }\n };\n var registerCommandButtons = function (editor) {\n global$5.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: onActionExecCommand(editor, btn.action)\n });\n });\n };\n var registerCommandToggleButtons = function (editor) {\n global$5.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: onActionExecCommand(editor, btn.action),\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n var registerButtons$1 = function (editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n var registerMenuItems$2 = function (editor) {\n global$5.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: onActionExecCommand(editor, btn.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n var register$2 = function (editor) {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n\n var onSetupUndoRedoState = function (editor, type) {\n return onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function (api) {\n api.setDisabled(editor.mode.isReadOnly() || !editor.undoManager[type]());\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: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n var registerButtons = function (editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n var register$1 = function (editor) {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n\n var onSetupVisualAidState = function (editor) {\n return onSetupEvent(editor, 'VisualAid', function (api) {\n api.setActive(editor.hasVisual);\n });\n };\n var registerMenuItems = function (editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n var registerToolbarButton = function (editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n var register = function (editor) {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n\n var setup$6 = function (editor, backstage) {\n register$6(editor);\n register$2(editor);\n register$4(editor, backstage);\n register$1(editor);\n register$a(editor);\n register(editor);\n register$3(editor);\n register$5(editor);\n };\n\n var nu = function (x, y) {\n return {\n type: 'makeshift',\n x: x,\n y: y\n };\n };\n var transpose = function (pos, dx, dy) {\n return nu(pos.x + dx, pos.y + dy);\n };\n var isTouchEvent = function (e) {\n return e.type === 'longpress' || e.type.indexOf('touch') === 0;\n };\n var fromPageXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n var fromClientXY = function (e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n var transposeContentAreaContainer = function (element, pos) {\n var containerPos = global$b.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n var getPointAnchor = function (editor, e) {\n if (e.type === 'contextmenu' || e.type === 'longpress') {\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 type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n var getNodeAnchor = function (editor) {\n return {\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n };\n };\n var getAnchorSpec$1 = function (editor, e, anchorType) {\n switch (anchorType) {\n case 'node':\n return getNodeAnchor(editor);\n case 'point':\n return getPointAnchor(editor, e);\n case 'selection':\n return getSelectionAnchor(editor);\n }\n };\n\n var initAndShow$1 = function (editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var items = buildMenu();\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, { anchor: anchorSpec }, {\n menu: { markers: markers('normal') },\n data: menuData\n });\n });\n };\n\n var layouts = {\n onLtr: function () {\n return [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2,\n north,\n south,\n northeast,\n southeast,\n northwest,\n southwest\n ];\n },\n onRtl: function () {\n return [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2,\n north,\n south,\n northwest,\n southwest,\n northeast,\n southeast\n ];\n }\n };\n var bubbleSize = 12;\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 isTouchWithinSelection = function (editor, e) {\n var selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n var touch_1 = e.touches[0];\n var rng = selection.getRng();\n var rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(function (rngRect) {\n return rngRect.left <= touch_1.clientX && rngRect.right >= touch_1.clientX && rngRect.top <= touch_1.clientY && rngRect.bottom >= touch_1.clientY;\n });\n }\n };\n var setupiOSOverrides = function (editor) {\n var originalSelection = editor.selection.getRng();\n var selectionReset = function () {\n global$f.setEditorTimeout(editor, function () {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n var preventMousedown = function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n var clearSelectionReset = function () {\n return unbindEventListeners();\n };\n editor.once('longpresscancel', clearSelectionReset);\n var unbindEventListeners = function () {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n var getAnchorSpec = function (editor, e, anchorType) {\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n var bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return __assign({\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n }\n }, anchorSpec);\n };\n var show = function (editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) {\n var anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, { anchor: anchorSpec }, {\n menu: {\n markers: markers('normal'),\n highlightImmediately: highlightImmediately\n },\n data: menuData,\n type: 'horizontal'\n }, function () {\n return Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection'));\n });\n editor.fire(hideContextToolbarEvent);\n });\n };\n var initAndShow = function (editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var detection = detect$1();\n var isiOS = detection.os.isiOS();\n var isOSX = detection.os.isOSX();\n var isAndroid = detection.os.isAndroid();\n var isTouch = detection.deviceType.isTouch();\n var shouldHighlightImmediately = function () {\n return !(isAndroid || isiOS || isOSX && isTouch);\n };\n var open = function () {\n var items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n if ((isOSX || isiOS) && anchorType !== 'node') {\n var openiOS_1 = function () {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS_1();\n } else {\n editor.once('selectionchange', openiOS_1);\n editor.once('touchend', function () {\n return editor.off('selectionchange', openiOS_1);\n });\n }\n } else {\n open();\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.getParam('contextmenu_never_use_native', false, 'boolean');\n };\n var getMenuItems = function (editor, name, defaultItems) {\n var contextMenus = editor.ui.registry.getAll().contextMenus;\n return Optional.from(editor.getParam(name)).map(patchPipeConfig).getOrThunk(function () {\n return filter$2(patchPipeConfig(defaultItems), function (item) {\n return has$2(contextMenus, item);\n });\n });\n };\n var isContextMenuDisabled = function (editor) {\n return editor.getParam('contextmenu') === false;\n };\n var getContextMenu = function (editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n var getAvoidOverlapSelector = function (editor) {\n return editor.getParam('contextmenu_avoid_overlap', '', 'string');\n };\n\n var isSeparator = function (item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n var separator = { type: 'separator' };\n var makeContextItem = function (item) {\n var commonMenuItem = function (item) {\n return {\n text: item.text,\n icon: item.icon,\n disabled: item.disabled,\n shortcut: item.shortcut\n };\n };\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator;\n case 'submenu':\n return __assign(__assign({ type: 'nestedmenuitem' }, commonMenuItem(item)), {\n getSubmenuItems: function () {\n var items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map$2(items, makeContextItem);\n }\n }\n });\n default:\n return __assign(__assign({ type: 'menuitem' }, commonMenuItem(item)), { onAction: noarg(item.onAction) });\n }\n }\n };\n var addContextMenuGroup = function (xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n var lastMenuItem = last$2(xs).filter(function (item) {\n return !isSeparator(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator];\n });\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n var generateContextMenu = function (contextMenus, menuConfig, selectedElement) {\n var sections = foldl(menuConfig, function (acc, name) {\n return get$e(contextMenus, name.toLowerCase()).map(function (menu) {\n var items = menu.update(selectedElement);\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n var allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(function () {\n return acc.concat([name]);\n });\n }, []);\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n var isNativeOverrideKeyEvent = function (editor, e) {\n return e.ctrlKey && !shouldNeverUseNative(editor);\n };\n var isTriggeredByKeyboard = function (editor, e) {\n return e.type !== 'longpress' && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n };\n var getSelectedElement = function (editor, e) {\n return isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n };\n var getAnchorType = function (editor, e) {\n var selector = getAvoidOverlapSelector(editor);\n var anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n if (isNotEmpty(selector)) {\n var target = getSelectedElement(editor, e);\n var selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n var setup$5 = function (editor, lazySink, backstage) {\n var detection = detect$1();\n var isTouch = detection.deviceType.isTouch;\n var contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink: lazySink,\n onEscape: function () {\n return editor.focus();\n },\n onShow: function () {\n return backstage.setContextMenuState(true);\n },\n onHide: function () {\n return backstage.setContextMenuState(false);\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), function (comp, _se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n var hideContextMenu = function (_e) {\n return InlineView.hide(contextmenu);\n };\n var showContextMenu = function (e) {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n var anchorType = getAnchorType(editor, e);\n var buildMenu = function () {\n var selectedElement = getSelectedElement(editor, e);\n var registry = editor.ui.registry.getAll();\n var menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n var initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n editor.on('init', function () {\n var hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n\n var adt = 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 = function (change) {\n return function (point) {\n return point.translate(change.left, change.top);\n };\n };\n var transform = function (changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, SugarPosition(x, y));\n };\n };\n var asFixed = function (coord, scroll, origin) {\n return coord.fold(transform([\n add(origin),\n subtract(scroll)\n ]), transform([subtract(scroll)]), transform([]));\n };\n var asAbsolute = function (coord, scroll, origin) {\n return coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n };\n var asOffset = function (coord, scroll, origin) {\n return coord.fold(transform([]), transform([subtract(origin)]), transform([\n add(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 getDeltas = function (coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n var left = Math.abs(a1.left - a2.left);\n var top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n var toStyles = function (coord, scroll, origin) {\n var stylesOpt = coord.fold(function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n });\n return __assign({\n right: Optional.none(),\n bottom: Optional.none()\n }, stylesOpt);\n };\n var translate = function (coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return absolute(x + deltaX, y + deltaY);\n }, function (x, y) {\n return 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, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n var offset = adt.offset;\n var absolute = adt.absolute;\n var fixed = adt.fixed;\n\n var parseAttrToInt = function (element, name) {\n var value = get$d(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n var get = function (component, snapsInfo) {\n var element = component.element;\n var x = parseAttrToInt(element, snapsInfo.leftAttr);\n var y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n var set = function (component, snapsInfo, pt) {\n var element = component.element;\n set$8(element, snapsInfo.leftAttr, pt.left + 'px');\n set$8(element, snapsInfo.topAttr, pt.top + 'px');\n };\n var clear = function (component, snapsInfo) {\n var element = component.element;\n remove$7(element, snapsInfo.leftAttr);\n remove$7(element, snapsInfo.topAttr);\n };\n\n var getCoords = function (component, snapInfo, coord, delta) {\n return get(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed$1) {\n return fixed(fixed$1.left + delta.left, fixed$1.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 = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n var fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.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 findMatchingSnap = function (snaps, newCoord, scroll, origin) {\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 ? Optional.some({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }) : Optional.none();\n });\n };\n var findClosestSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n var matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(function () {\n var bestSnap = foldl(snaps, function (acc, snap) {\n var sensor = snap.sensor;\n var deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(function () {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n }, function (bestDeltas) {\n var currAvg = (deltas.left + deltas.top) / 2;\n var bestAvg = (bestDeltas.left + bestDeltas.top) / 2;\n if (currAvg <= bestAvg) {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Optional.none(),\n snap: Optional.none()\n });\n return bestSnap.snap.map(function (snap) {\n return {\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n };\n });\n });\n };\n var findSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n var snapTo$1 = function (snap, scroll, origin) {\n return {\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n };\n };\n\n var snapTo = function (component, dragConfig, _state, snap) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var snapPin = snapTo$1(snap, scroll_1, origin_1);\n var styles = toStyles(snapPin.coord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n\n var initialAttribute = 'data-initial-z-index';\n var resetZIndex = function (blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getOpt(root, initialAttribute).fold(function () {\n return remove$6(root, 'z-index');\n }, function (zIndex) {\n return set$7(root, 'z-index', zIndex);\n });\n remove$7(root, initialAttribute);\n });\n };\n var changeZIndex = function (blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$8(root, initialAttribute, zindex);\n });\n set$7(root, 'z-index', get$c(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 var createComponent = function (component, blockerClass, blockerEvents) {\n return 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: [blockerClass]\n },\n events: blockerEvents\n }));\n };\n\n var SnapSchema = optionObjOf('snaps', [\n required$1('getSnapPoints'),\n onHandler('onSensor'),\n required$1('leftAttr'),\n required$1('topAttr'),\n defaulted('lazyViewport', win),\n defaulted('mustSnap', false)\n ]);\n\n var schema$6 = [\n defaulted('useFixed', never),\n required$1('blockerClass'),\n defaulted('getTarget', identity$1),\n defaulted('onDrag', noop),\n defaulted('repositionTarget', true),\n defaulted('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema\n ];\n\n var getCurrentCoord = function (target) {\n return lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), function (left, top, position) {\n var nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(function () {\n var location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n };\n var clampCoords = function (component, coords, scroll, origin, startData) {\n var bounds = startData.bounds;\n var absoluteCoord = asAbsolute(coords, scroll, origin);\n var newX = clamp$1(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n var newY = clamp$1(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n var newCoords = absolute(newX, newY);\n return coords.fold(function () {\n var offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), function () {\n var fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n var calcNewCoord = function (component, optSnaps, currentCoord, scroll, origin, delta, startData) {\n var newCoord = optSnaps.fold(function () {\n var translated = translate(currentCoord, delta.left, delta.top);\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed(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 return clampCoords(component, newCoord, scroll, origin, startData);\n };\n var dragBy = function (component, dragConfig, startData, delta) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var currentCoord = getCurrentCoord(target);\n var newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll_1, origin_1, delta, startData);\n var styles = toStyles(newCoord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n var calcStartData = function (dragConfig, comp) {\n return {\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n };\n };\n var move = function (component, dragConfig, dragState, dragMode, event) {\n var delta = dragState.update(dragMode, event);\n var dragStartData = dragState.getStartData().getOrThunk(function () {\n return calcStartData(dragConfig, component);\n });\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n var stop = function (component, blocker, dragConfig, dragState) {\n blocker.each(discard);\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 var handlers = function (events) {\n return function (dragConfig, dragState) {\n var updateStartState = function (comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive$2(__spreadArray([run$1(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n })], events(dragConfig, dragState, updateStartState), true));\n };\n };\n\n var init$2 = function (dragApi) {\n return derive$2([\n run$1(mousedown(), dragApi.forceDrop),\n run$1(mouseup(), dragApi.drop),\n run$1(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n }),\n run$1(mouseout(), dragApi.delayDrop)\n ]);\n };\n\n var getData$1 = function (event) {\n return Optional.from(SugarPosition(event.x, event.y));\n };\n var getDelta$1 = function (old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n\n var MouseData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n var events$2 = function (dragConfig, dragState, updateStartState) {\n return [run$1(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n var stop$1 = function () {\n return stop(component, Optional.some(blocker), dragConfig, dragState);\n };\n var delayDrop = DelayedFunction(stop$1, 200);\n var dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: function (event) {\n delayDrop.cancel();\n move(component, dragConfig, dragState, MouseData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n };\n var schema$5 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', { handlers: handlers(events$2) })], false);\n\n var init$1 = function (dragApi) {\n return derive$2([\n run$1(touchstart(), dragApi.forceDrop),\n run$1(touchend(), dragApi.drop),\n run$1(touchcancel(), dragApi.drop),\n run$1(touchmove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n })\n ]);\n };\n\n var getDataFrom = function (touches) {\n var touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n var getData = function (event) {\n var raw = event.raw;\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n var getDelta = function (old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n\n var TouchData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData,\n getDelta: getDelta\n });\n\n var events$1 = function (dragConfig, dragState, updateStartState) {\n var blockerSingleton = value$1();\n var stopBlocking = function (component) {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n return [\n run$1(touchstart(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n var stop = function () {\n return stopBlocking(component);\n };\n var dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: function (event) {\n move(component, dragConfig, dragState, TouchData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$1(dragApi));\n blockerSingleton.set(blocker);\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run$1(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }),\n run$1(touchend(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n stopBlocking(component);\n }),\n run$1(touchcancel(), stopBlocking)\n ];\n };\n var schema$4 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', { handlers: handlers(events$1) })], false);\n\n var events = function (dragConfig, dragState, updateStartState) {\n return __spreadArray(__spreadArray([], events$2(dragConfig, dragState, updateStartState), true), events$1(dragConfig, dragState, updateStartState), true);\n };\n var schema$3 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', { handlers: handlers(events) })], false);\n\n var mouse = schema$5;\n var touch = schema$4;\n var mouseOrTouch = schema$3;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n var init = function () {\n var previous = Optional.none();\n var startData = Optional.none();\n var reset = function () {\n previous = Optional.none();\n startData = Optional.none();\n };\n var calculateDelta = function (mode, nu) {\n var result = previous.map(function (old) {\n return mode.getDelta(old, nu);\n });\n previous = Optional.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 setStartData = function (data) {\n startData = Optional.some(data);\n };\n var getStartData = function () {\n return startData;\n };\n var readState = constant$1({});\n return nu$8({\n readState: readState,\n reset: reset,\n update: update,\n getStartData: getStartData,\n setStartData: setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n\n var Dragging = createModes({\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: function (sConfig) {\n return {\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n };\n }\n },\n state: DragState,\n apis: DraggingApis\n });\n\n var snapWidth = 40;\n var snapOffset = snapWidth / 2;\n var calcSnap = function (selectorOpt, td, x, y, width, height) {\n return selectorOpt.fold(function () {\n return Dragging.snap({\n sensor: absolute(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute(Optional.some(x), Optional.some(y)),\n extra: { td: td }\n });\n }, function (selectorHandle) {\n var sensorLeft = x - snapOffset;\n var sensorTop = y - snapOffset;\n var sensorWidth = snapWidth;\n var sensorHeight = snapWidth;\n var rect = selectorHandle.element.dom.getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: { td: td }\n });\n });\n };\n var getSnapsConfig = function (getSnapPoints, cell, onChange) {\n var isSameCell = function (cellOpt, td) {\n return cellOpt.exists(function (currentTd) {\n return eq(currentTd, td);\n });\n };\n return {\n getSnapPoints: getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: function (component, extra) {\n var td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n var createSelector = function (snaps) {\n return record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps: snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n };\n var setup$4 = function (editor, sink) {\n var tlTds = Cell([]);\n var brTds = Cell([]);\n var isVisible = Cell(false);\n var startCell = value$1();\n var finishCell = value$1();\n var getTopLeftSnap = function (td) {\n var box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n var getTopLeftSnaps = function () {\n return map$2(tlTds.get(), function (td) {\n return getTopLeftSnap(td);\n });\n };\n var getBottomRightSnap = function (td) {\n var box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n var getBottomRightSnaps = function () {\n return map$2(brTds.get(), function (td) {\n return getBottomRightSnap(td);\n });\n };\n var topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, function (start) {\n finishCell.get().each(function (finish) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, function (finish) {\n startCell.get().each(function (start) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var memTopLeft = createSelector(topLeftSnaps);\n var memBottomRight = createSelector(bottomRightSnaps);\n var topLeft = build$1(memTopLeft.asSpec());\n var bottomRight = build$1(memBottomRight.asSpec());\n var showOrHideHandle = function (selector, cell, isAbove, isBelow) {\n var cellRect = cell.dom.getBoundingClientRect();\n remove$6(selector.element, 'display');\n var viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n var aboveViewport = isAbove(cellRect);\n var belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$7(selector.element, 'display', 'none');\n }\n };\n var snapTo = function (selector, cell, getSnapConfig, pos) {\n var snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n var isAbove = function (rect) {\n return rect[pos] < 0;\n };\n var isBelow = function (rect, viewportHeight) {\n return rect[pos] > viewportHeight;\n };\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n var snapTopLeft = function (cell) {\n return snapTo(topLeft, cell, getTopLeftSnap, 'top');\n };\n var snapLastTopLeft = function () {\n return startCell.get().each(snapTopLeft);\n };\n var snapBottomRight = function (cell) {\n return snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n };\n var snapLastBottomRight = function () {\n return finishCell.get().each(snapBottomRight);\n };\n if (detect$1().deviceType.isTouch()) {\n editor.on('TableSelectionChange', function (e) {\n if (!isVisible.get()) {\n attach(sink, topLeft);\n attach(sink, bottomRight);\n isVisible.set(true);\n }\n startCell.set(e.start);\n finishCell.set(e.finish);\n e.otherCells.each(function (otherCells) {\n tlTds.set(otherCells.upOrLeftCells);\n brTds.set(otherCells.downOrRightCells);\n snapTopLeft(e.start);\n snapBottomRight(e.finish);\n });\n });\n editor.on('ResizeEditor ResizeWindow ScrollContent', function () {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', function () {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n startCell.clear();\n finishCell.clear();\n });\n }\n };\n\n var isHidden = 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, providersBackstage) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n var getDataPath = function (data) {\n var parts = data || [];\n var newPathElements = map$2(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 buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\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_1 = parents[i];\n if (parent_1.nodeType === 1 && !isHidden(parent_1)) {\n var args = editor.fire('ResolveName', {\n name: parent_1.nodeName.toLowerCase(),\n target: parent_1\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent_1\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 Disabling.config({ disabled: providersBackstage.isDisabled }),\n receivingConfig(),\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 } else {\n Replacing.set(comp, []);\n }\n });\n })])\n ]),\n components: []\n };\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 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 = function (editor, deltas, resizeType) {\n var container = SugarElement.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$b(container), get$a(container));\n each(dimensions, function (val, dim) {\n return set$7(container, dim, numToPx(val));\n });\n fireResizeEditor(editor);\n };\n\n var getResizeType = function (editor) {\n var fallback = !editor.hasPlugin('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 keyboardHandler = function (editor, resizeType, x, y) {\n var scale = 20;\n var delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n var renderResizeHandler = function (editor, providersBackstage) {\n var resizeType = getResizeType(editor);\n if (resizeType === ResizeTypes.None) {\n return Optional.none();\n }\n return Optional.some(render$3('resize-handle', {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: { title: providersBackstage.translate('Resize') },\n behaviours: [\n Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function (_comp, _target, delta) {\n return resize(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n }),\n Keying.config({\n mode: 'special',\n onLeft: function () {\n return keyboardHandler(editor, resizeType, -1, 0);\n },\n onRight: function () {\n return keyboardHandler(editor, resizeType, 1, 0);\n },\n onUp: function () {\n return keyboardHandler(editor, resizeType, 0, -1);\n },\n onDown: function () {\n return keyboardHandler(editor, resizeType, 0, 1);\n }\n }),\n Tabstopping.config({}),\n Focusing.config({})\n ]\n }, providersBackstage.icons));\n };\n\n var renderWordCount = function (editor, providersBackstage) {\n var _a;\n var replaceCountText = function (comp, count, mode) {\n return Replacing.set(comp, [text$1(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 DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig(),\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 runOnExecute$1(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[execute$5()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'wordcount-events'\n ], _a)\n });\n };\n\n var renderStatusbar = function (editor, providersBackstage) {\n var renderBranding = function () {\n var label = global$e.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 getTextComponents = function () {\n var components = [];\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (editor.hasPlugin('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 resizeHandler = renderResizeHandler(editor, providersBackstage);\n return components.concat(resizeHandler.toArray());\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n var setup$3 = function (editor) {\n var _a;\n var isInline = editor.inline;\n var mode = isInline ? Inline : Iframe;\n var header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n var lazyOuterContainer = Optional.none();\n var platform = detect$1();\n var isIE = platform.browser.isIE();\n var platformClasses = isIE ? ['tox-platform-ie'] : [];\n var isTouch = platform.deviceType.isTouch();\n var touchPlatformClass = 'tox-platform-touch';\n var deviceClasses = isTouch ? [touchPlatformClass] : [];\n var isToolbarBottom = isToolbarLocationBottom(editor);\n var uiContainer = getUiContainer(editor);\n var dirAttributes = global$e.isRtl() ? { attributes: { dir: 'rtl' } } : {};\n var verticalDirAttributes = { attributes: (_a = {}, _a[Attribute] = isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom, _a) };\n var lazyHeader = function () {\n return lazyOuterContainer.bind(OuterContainer.getHeader);\n };\n var isHeaderDocked = function () {\n return header.isDocked(lazyHeader);\n };\n var resizeUiMothership = function () {\n set$7(uiMothership.element, 'width', document.body.clientWidth + 'px');\n };\n var makeSinkDefinition = function () {\n var isGridUiContainer = eq(body(), uiContainer) && get$c(uiContainer, 'display') === 'grid';\n var sinkSpec = {\n dom: __assign({\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(platformClasses).concat(deviceClasses)\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({\n useFixed: function () {\n return isHeaderDocked();\n }\n })])\n };\n var reactiveWidthSpec = {\n dom: { styles: { width: document.body.clientWidth + 'px' } },\n events: derive$2([run$1(windowResize(), resizeUiMothership)])\n };\n return deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {});\n };\n var sink = build$1(makeSinkDefinition());\n var lazySink = function () {\n return Result.value(sink);\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 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$7(sink, editor, lazyAnchorBar);\n var partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstage,\n onEscape: function () {\n editor.focus();\n }\n });\n var toolbarMode = getToolbarMode(editor);\n var partToolbar = OuterContainer.parts.toolbar(__assign({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySink,\n providers: backstage.shared.providers,\n onEscape: function () {\n editor.focus();\n },\n type: toolbarMode,\n lazyToolbar: lazyToolbar,\n lazyHeader: function () {\n return lazyHeader().getOrDie('Could not find header element');\n }\n }, verticalDirAttributes));\n var partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstage.shared.providers,\n onEscape: function () {\n editor.focus();\n },\n type: toolbarMode\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 sb = editor.getParam('statusbar', true, 'boolean');\n var statusbar = sb && !isInline ? Optional.some(renderStatusbar(editor, backstage.shared.providers)) : Optional.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 hasMultipleToolbar = isMultipleToolbars(editor);\n var hasToolbar = isToolbarEnabled(editor);\n var hasMenubar = isMenubarEnabled(editor);\n var getPartToolbar = function () {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n var partHeader = OuterContainer.parts.header({\n dom: __assign({\n tag: 'div',\n classes: ['tox-editor-header']\n }, verticalDirAttributes),\n components: flatten([\n hasMenubar ? [partMenubar] : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor: editor,\n sharedBackstage: backstage.shared\n });\n var editorComponents = flatten([\n isToolbarBottom ? [] : [partHeader],\n isInline ? [] : [socketSidebarContainer],\n isToolbarBottom ? [partHeader] : []\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 isHidden = isDistractionFree(editor);\n var attributes = __assign(__assign({ role: 'application' }, global$e.isRtl() ? { dir: 'rtl' } : {}), isHidden ? { 'aria-hidden': 'true' } : {});\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'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses).concat(platformClasses),\n styles: __assign({ visibility: 'hidden' }, isHidden ? {\n opacity: '0',\n border: '0'\n } : {}),\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1([\n receivingConfig(),\n Disabling.config({ disableClass: 'tox-tinymce--disabled' }),\n 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, .tox-statusbar__resize-handle'\n })\n ])\n }));\n lazyOuterContainer = Optional.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 editor.addCommand('ToggleToolbarDrawer', function () {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', function () {\n return OuterContainer.isToolbarDrawerToggled(outerContainer);\n });\n var mothership = takeover(outerContainer);\n var uiMothership = takeover(sink);\n setup$b(editor, mothership, uiMothership);\n var getUi = function () {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: noop\n };\n return { channels: channels };\n };\n var setEditorSize = function () {\n var parsedHeight = numToPx(getHeightWithFallback(editor));\n var parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$7(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue('div', 'height', parsedHeight)) {\n set$7(outerContainer.element, 'height', parsedHeight);\n } else {\n set$7(outerContainer.element, 'height', '200px');\n }\n }\n return parsedHeight;\n };\n var renderUI = function () {\n header.setup(editor, backstage.shared, lazyHeader);\n setup$6(editor, backstage);\n setup$5(editor, lazySink, backstage);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstage.shared);\n map$1(getToolbarGroups(editor), function (toolbarGroupButtonConfig, name) {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n var _a = editor.ui.registry.getAll(), buttons = _a.buttons, menuItems = _a.menuItems, contextToolbars = _a.contextToolbars, sidebars = _a.sidebars;\n var toolbarOpt = getMultipleToolbarsSetting(editor);\n var rawUiConfig = {\n menuItems: menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(function () {\n return getToolbar(editor);\n }),\n allowToolbarGroups: toolbarMode === ToolbarMode.floating,\n buttons: buttons,\n sidebar: sidebars\n };\n register$7(editor, contextToolbars, sink, { backstage: backstage });\n setup$4(editor, sink);\n var elm = editor.getElement();\n var height = setEditorSize();\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\n var describedBy = function (describedElement, describeElement) {\n var describeId = Optional.from(get$d(describedElement, 'id')).fold(function () {\n var id = generate$6('dialog-describe');\n set$8(describeElement, 'id', id);\n return id;\n }, identity$1);\n set$8(describedElement, 'aria-describedby', describeId);\n };\n\n var labelledBy = function (labelledElement, labelElement) {\n var labelId = getOpt(labelledElement, 'id').fold(function () {\n var id = generate$6('dialog-label');\n set$8(labelElement, 'id', id);\n return id;\n }, identity$1);\n set$8(labelledElement, 'aria-labelledby', labelId);\n };\n\n var schema$2 = constant$1([\n required$1('lazySink'),\n option('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted('useTabstopAt', always),\n defaulted('eventOrder', {}),\n field('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n var basic = { sketch: identity$1 };\n var parts$2 = constant$1([\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(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 getBounds: detail.getDragBounds\n })])\n };\n }\n }),\n required({\n schema: [required$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }),\n external$1({\n factory: {\n sketch: function (spec, detail) {\n return __assign(__assign({}, spec), {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [\n defaulted('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('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n var factory$4 = function (detail, components, spec, externals) {\n var _a;\n var dialogComp = value$1();\n var showDialog = function (dialog) {\n dialogComp.set(dialog);\n var sink = detail.lazySink(dialog).getOrDie();\n var externalBlocker = externals.blocker();\n var blocker = sink.getSystem().build(__assign(__assign({}, externalBlocker), {\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [runOnSource(focusin(), function () {\n Keying.focusIn(dialog);\n })])\n ])\n }));\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n var hideDialog = function (dialog) {\n dialogComp.clear();\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 Blocking.block(dialog, getBusySpec);\n };\n var setIdle = function (dialog) {\n Blocking.unblock(dialog);\n };\n var modalEventsId = generate$6('modal-events');\n var eventOrder = __assign(__assign({}, detail.eventOrder), (_a = {}, _a[attachedToDom()] = [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []), _a));\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 Blocking.config({ getRoot: dialogComp.get }),\n config(modalEventsId, [runOnAttached(function (c) {\n 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({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\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 dialogToggleMenuItemSchema = objOf([\n requiredString('type'),\n requiredString('name')\n ].concat(commonMenuItemFields));\n var dialogToggleMenuItemDataProcessor = boolean;\n\n var baseFooterButtonFields = [\n field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string),\n optionString('icon'),\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n defaultedBoolean('primary', false),\n defaultedBoolean('disabled', false)\n ];\n var dialogFooterButtonFields = __spreadArray(__spreadArray([], baseFooterButtonFields, true), [requiredString('text')], false);\n var normalFooterButtonFields = __spreadArray([requiredStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ])], dialogFooterButtonFields, true);\n var menuFooterButtonFields = __spreadArray([\n requiredStringEnum('type', ['menu']),\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n requiredArrayOf('items', dialogToggleMenuItemSchema)\n ], baseFooterButtonFields, true);\n var dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields\n });\n\n var alertBannerFields = [\n requiredString('type'),\n requiredString('text'),\n requiredStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n requiredString('icon'),\n defaulted('url', '')\n ];\n var alertBannerSchema = objOf(alertBannerFields);\n\n var createBarFields = function (itemsField) {\n return [\n requiredString('type'),\n itemsField\n ];\n };\n\n var buttonFields = [\n requiredString('type'),\n requiredString('text'),\n defaultedBoolean('disabled', false),\n defaultedBoolean('primary', false),\n field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string),\n optionString('icon'),\n defaultedBoolean('borderless', false)\n ];\n var buttonSchema = objOf(buttonFields);\n\n var checkboxFields = [\n requiredString('type'),\n requiredString('name'),\n requiredString('label'),\n defaultedBoolean('disabled', false)\n ];\n var checkboxSchema = objOf(checkboxFields);\n var checkboxDataProcessor = boolean;\n\n var formComponentFields = [\n requiredString('type'),\n requiredString('name')\n ];\n var formComponentWithLabelFields = formComponentFields.concat([optionString('label')]);\n\n var collectionFields = formComponentWithLabelFields.concat([defaulted('columns', 'auto')]);\n var collectionSchema = objOf(collectionFields);\n var collectionDataProcessor = arrOfObj([\n requiredString('value'),\n requiredString('text'),\n requiredString('icon')\n ]);\n\n var colorInputFields = formComponentWithLabelFields;\n var colorInputSchema = objOf(colorInputFields);\n var colorInputDataProcessor = string;\n\n var colorPickerFields = formComponentWithLabelFields;\n var colorPickerSchema = objOf(colorPickerFields);\n var colorPickerDataProcessor = string;\n\n var customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredString('scriptId'),\n requiredString('scriptUrl'),\n defaultedPostMsg('settings', undefined)\n ]);\n var customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredFunction('init')\n ]);\n var customEditorSchema = valueOf(function (v) {\n return asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(function () {\n return asRaw('customeditor.new', objOfOnly(customEditorFields), v);\n });\n });\n var customEditorDataProcessor = string;\n\n var dropZoneFields = formComponentWithLabelFields;\n var dropZoneSchema = objOf(dropZoneFields);\n var dropZoneDataProcessor = arrOfVal();\n\n var createGridFields = function (itemsField) {\n return [\n requiredString('type'),\n requiredNumber('columns'),\n itemsField\n ];\n };\n\n var htmlPanelFields = [\n requiredString('type'),\n requiredString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ])\n ];\n var htmlPanelSchema = objOf(htmlPanelFields);\n\n var iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeSchema = objOf(iframeFields);\n var iframeDataProcessor = string;\n\n var imageToolsFields = formComponentWithLabelFields.concat([requiredOf('currentState', objOf([\n required$1('blob'),\n requiredString('url')\n ]))]);\n var imageToolsSchema = objOf(imageToolsFields);\n\n var inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var inputSchema = objOf(inputFields);\n var inputDataProcessor = string;\n\n var createLabelFields = function (itemsField) {\n return [\n requiredString('type'),\n requiredString('label'),\n itemsField\n ];\n };\n\n var listBoxSingleItemFields = [\n requiredString('text'),\n requiredString('value')\n ];\n var listBoxNestedItemFields = [\n requiredString('text'),\n requiredArrayOf('items', thunkOf('items', function () {\n return listBoxItemSchema;\n }))\n ];\n var listBoxItemSchema = oneOf([\n objOf(listBoxSingleItemFields),\n objOf(listBoxNestedItemFields)\n ]);\n var listBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOf('items', listBoxItemSchema),\n defaultedBoolean('disabled', false)\n ]);\n var listBoxSchema = objOf(listBoxFields);\n var listBoxDataProcessor = string;\n\n var selectBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOfObj('items', [\n requiredString('text'),\n requiredString('value')\n ]),\n defaultedNumber('size', 1),\n defaultedBoolean('disabled', false)\n ]);\n var selectBoxSchema = objOf(selectBoxFields);\n var selectBoxDataProcessor = string;\n\n var sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n defaultedBoolean('disabled', false)\n ]);\n var sizeInputSchema = objOf(sizeInputFields);\n var sizeInputDataProcessor = objOf([\n requiredString('width'),\n requiredString('height')\n ]);\n\n var tableFields = [\n requiredString('type'),\n requiredArrayOf('header', string),\n requiredArrayOf('cells', arrOf(string))\n ];\n var tableSchema = objOf(tableFields);\n\n var textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var textAreaSchema = objOf(textAreaFields);\n var textAreaDataProcessor = string;\n\n var urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n defaulted('disabled', false)\n ]);\n var urlInputSchema = objOf(urlInputFields);\n var urlInputDataProcessor = objOf([\n requiredString('value'),\n defaulted('meta', {})\n ]);\n\n var createItemsField = function (name) {\n return field$1('items', 'items', required$2(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n var itemSchema = valueThunk(function () {\n return choose$2('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n listbox: listBoxSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagetools: imageToolsSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n panel: panelSchema\n });\n });\n var panelFields = [\n requiredString('type'),\n defaulted('classes', []),\n requiredArrayOf('items', itemSchema)\n ];\n var panelSchema = objOf(panelFields);\n\n var tabFields = [\n field$1('name', 'name', defaultedThunk(function () {\n return generate$6('tab-name');\n }), string),\n requiredString('title'),\n requiredArrayOf('items', itemSchema)\n ];\n var tabPanelFields = [\n requiredString('type'),\n requiredArrayOfObj('tabs', tabFields)\n ];\n var tabPanelSchema = objOf(tabPanelFields);\n\n var dialogButtonFields = dialogFooterButtonFields;\n var dialogButtonSchema = dialogFooterButtonSchema;\n var dialogSchema = objOf([\n requiredString('title'),\n requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n requiredArrayOf('buttons', dialogButtonSchema),\n defaulted('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaulted('onTabChange', noop)\n ]);\n var createDialog = function (spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n\n var urlDialogButtonSchema = objOf(__spreadArray([requiredStringEnum('type', [\n 'cancel',\n 'custom'\n ])], dialogButtonFields, true));\n var urlDialogSchema = objOf([\n requiredString('title'),\n requiredString('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 getAllObjects = function (obj) {\n if (isObject(obj)) {\n return [obj].concat(bind$3(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind$3(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 listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n var getDataProcessor = function (item) {\n return Optional.from(dataProcessors[item.type]);\n };\n var getNamedItems = function (structure) {\n return filter$2(getAllObjects(structure), isNamedItem);\n };\n\n var createDataValidator = function (structure) {\n var namedItems = getNamedItems(structure);\n var fields = bind$3(namedItems, function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [requiredOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n\n var extract = function (structure) {\n var internalDialog = getOrDie(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(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function (factory, structure) {\n var internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function (structure) {\n return extract(structure);\n }\n };\n\n var toValidValues = function (values) {\n var errors = [];\n var result = {};\n each(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'].concat(spec.classes)\n },\n components: map$2(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(isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n RepresentingConfigs.memento(memForm, {\n postprocess: function (formValue) {\n return toValidValues(formValue).fold(function (err) {\n console.error(err);\n return {};\n }, identity$1);\n }\n })\n ])\n };\n };\n\n var factory$3 = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$a(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({\n name: 'TabButton',\n configFields: [\n defaulted('uid', undefined),\n required$1('value'),\n field$1('dom', 'dom', mergeWithThunk(function () {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue()),\n option('action'),\n defaulted('domModification', {}),\n field('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n required$1('view')\n ],\n factory: factory$3\n });\n\n var schema$1 = constant$1([\n required$1('tabs'),\n required$1('dom'),\n defaulted('clickToDismiss', false),\n field('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers$1([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function (barDetail) {\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$1 = constant$1([tabsPart]);\n\n var factory$2 = 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$8(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: function (tabbar, tab) {\n set$8(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({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n\n var factory$1 = 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({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n\n var schema = constant$1([\n defaulted('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted('tabs', []),\n field('tabSectionBehaviours', [])\n ]);\n var barPart = required({\n factory: Tabbar,\n schema: [\n required$1('dom'),\n requiredObjOf('markers', [\n required$1('tabClass'),\n required$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 = constant$1([\n barPart,\n viewPart\n ]);\n\n var factory = 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$5(detail.tabs, function (t) {\n return t.value === tabValue;\n });\n tabWithValue.each(function (tabData) {\n var panel = tabData.view();\n getOpt(button.element, 'id').each(function (id) {\n set$8(tabview.element, 'aria-labelledby', id);\n });\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$2(detail.tabSectionBehaviours),\n events: derive$2(flatten([\n detail.selectFirst ? [runOnAttached(function (section, _simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run$1(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n changeTab$1(button);\n }),\n run$1(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$5(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({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory: factory,\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$2(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, tabview, tablist) {\n var documentElement$1 = documentElement(dialog).dom;\n var rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$c(rootElm, 'position') === 'fixed';\n var maxHeight;\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n var tabviewHeight = get$b(tabview);\n var isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$a(tablist);\n var currentTabHeight = isTabListBeside ? Math.max(get$b(tablist), tabviewHeight) : tabviewHeight;\n var dialogTopMargin = parseInt(get$c(dialog, 'margin-top'), 10) || 0;\n var dialogBottomMargin = parseInt(get$c(dialog, 'margin-bottom'), 10) || 0;\n var dialogHeight = get$b(dialog) + dialogTopMargin + dialogBottomMargin;\n var chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n var showTab = function (allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n var setTabviewHeight = function (tabview, height) {\n set$7(tabview, 'height', height + 'px');\n if (!detect$1().browser.isIE()) {\n set$7(tabview, 'flex-basis', height + 'px');\n } else {\n remove$6(tabview, 'flex-basis');\n }\n };\n var updateTabviewHeight = function (dialogBody, tabview, maxTabHeight) {\n ancestor(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n descendant(dialog, '[role=\"tablist\"]').each(function (tablist) {\n maxTabHeight.get().map(function (height) {\n set$7(tabview, 'height', '0');\n set$7(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(function (height) {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n var getTabview = function (dialog) {\n return descendant(dialog, '[role=\"tabpanel\"]');\n };\n var setMode = function (allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = value$1();\n var extraEvents = [\n runOnAttached(function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n set$7(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(function (tabviewComp) {\n var heights = measureHeights(allTabs, tabview, tabviewComp);\n var maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeightOpt.fold(maxTabHeight.clear, maxTabHeight.set);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$f.requestAnimationFrame(function () {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run$1(windowResize(), function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run$1(formResizeEvent, function (comp, _se) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n var oldFocus = active(getRootNode(tabview));\n set$7(tabview, 'visibility', 'hidden');\n var oldHeight = getRaw(tabview, 'height').map(function (h) {\n return parseInt(h, 10);\n });\n remove$6(tabview, 'height');\n remove$6(tabview, 'flex-basis');\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(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n setTabviewHeight(tabview, h);\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$3);\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$2(spec.tabs, function (tab) {\n return {\n value: tab.name,\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$2(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll([\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 name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name: name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\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$6('update-dialog');\n var titleChannel = generate$6('update-title');\n var bodyChannel = generate$6('update-body');\n var footerChannel = generate$6('update-footer');\n var bodySendMessageChannel = generate$6('body-send-message');\n\n var renderBody = function (spec, id, backstage, ariaAttrs) {\n var renderComponents = function (incoming) {\n switch (incoming.body.type) {\n case 'tabpanel': {\n return [renderTabPanel(incoming.body, backstage)];\n }\n default: {\n return [renderBodyPanel(incoming.body, backstage)];\n }\n }\n };\n var updateState = function (_comp, incoming) {\n return Optional.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(__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: spec\n })\n ])\n };\n };\n var renderInlineBody = function (spec, contentId, backstage, ariaAttrs) {\n return renderBody(spec, Optional.some(contentId), backstage, ariaAttrs);\n };\n var renderModalBody = function (spec, backstage) {\n var bodySpec = renderBody(spec, Optional.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: [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(isPseudoStop)\n })])\n };\n return ModalDialog.parts.body(bodySpec);\n };\n\n function _typeof(obj) {\n '@babel/helpers - typeof';\n return _typeof = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && 'function' == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n }, _typeof(obj);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct)\n return false;\n if (Reflect.construct.sham)\n return false;\n if (typeof Proxy === 'function')\n return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class)\n _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr))\n return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null || iter['@@iterator'] != null)\n return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o)\n return;\n if (typeof o === 'string')\n return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === 'Object' && o.constructor)\n n = o.constructor.name;\n if (n === 'Map' || n === 'Set')\n return Array.from(o);\n if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++)\n arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n }\n var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze, seal = Object.seal, create = Object.create;\n var _ref = typeof Reflect !== 'undefined' && Reflect, apply = _ref.apply, construct = _ref.construct;\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n function addToSet(set, array) {\n if (setPrototypeOf) {\n setPrototypeOf(set, null);\n }\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n function clone(object) {\n var newObject = create(null);\n var property;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n return newObject;\n }\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n return fallbackValue;\n }\n var html$1 = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr'\n ]);\n var svg$1 = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern'\n ]);\n var svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence'\n ]);\n var svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use'\n ]);\n var mathMl$1 = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover'\n ]);\n var mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none'\n ]);\n var text = freeze(['#text']);\n var html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n 'slot'\n ]);\n var svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan'\n ]);\n var mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns'\n ]);\n var xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink'\n ]);\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm);\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/);\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/);\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i);\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g);\n var DOCTYPE_NAME = seal(/^html$/i);\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n }\n });\n } catch (_) {\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n DOMPurify.version = '2.3.8';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment, HTMLTemplateElement = window.HTMLTemplateElement, Node = window.Node, Element = window.Element, NodeFilter = window.NodeFilter, _window$NamedNodeMap = window.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window.HTMLFormElement, DOMParser = window.DOMParser, trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {\n }\n var hooks = {};\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n var FORBID_TAGS = null;\n var FORBID_ATTR = null;\n var ALLOW_ARIA_ATTR = true;\n var ALLOW_DATA_ATTR = true;\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n var SAFE_FOR_TEMPLATES = false;\n var WHOLE_DOCUMENT = false;\n var SET_CONFIG = false;\n var FORCE_BODY = false;\n var RETURN_DOM = false;\n var RETURN_DOM_FRAGMENT = false;\n var RETURN_TRUSTED_TYPE = false;\n var SANITIZE_DOM = true;\n var KEEP_CONTENT = true;\n var IN_PLACE = false;\n var USE_PROFILES = {};\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp'\n ]);\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track'\n ]);\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns'\n ]);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = [\n 'application/xhtml+xml',\n 'text/html'\n ];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n var CONFIG = null;\n var formElement = document.createElement('form');\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n cfg = clone(cfg);\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;\n RETURN_DOM = cfg.RETURN_DOM || false;\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;\n FORCE_BODY = cfg.FORCE_BODY || false;\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false;\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false;\n IN_PLACE = cfg.IN_PLACE || false;\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, [\n 'html',\n 'head',\n 'body'\n ]);\n }\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext'\n ]);\n var HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml'\n ]);\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script'\n ]);\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n if (element.namespaceURI === SVG_NAMESPACE) {\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n return false;\n };\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {\n }\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {\n }\n }\n }\n };\n var _initDocument = function _initDocument(dirty) {\n var doc;\n var leadingWhitespace;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n dirty = '' + dirty + '';\n }\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {\n }\n }\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n }\n }\n var body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n _executeHook('beforeSanitizeElements', currentNode, null);\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n return true;\n }\n var tagName = transformCaseFunc(currentNode.nodeName);\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n if (tagName === 'select' && regExpTest(/