{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/js/tinymce/tinymce.js","webpack:///./src/assets/js/tinymce/plugins/code/plugin.js","webpack:///./src/common/components/loading.vue?c98c","webpack:///./src/common/cache.js","webpack:///./src/common/directives/datepicker.js","webpack:///./src/assets/imagens/logos/logo-CNA-mobile.png","webpack:///./src/assets/js/tinymce/plugins/link/plugin.js","webpack:///./src/assets/js/tinymce/plugins/paste/plugin.js","webpack:///./src/common/api.js","webpack:///./src/assets/js/tinymce/plugins/media/plugin.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/js/tinymce/plugins/advlist/plugin.js","webpack:///./src/assets/js/tinymce/plugins/preview/plugin.js","webpack:///./src/App.vue?39b9","webpack:///./src/App.vue","webpack:///./src/template/index.vue?de58","webpack:///./src/template/footer.vue?ec92","webpack:///src/template/footer.vue","webpack:///./src/template/footer.vue?0dbd","webpack:///./src/template/footer.vue","webpack:///./src/template/header.vue?69b3","webpack:///src/template/header.vue","webpack:///./src/template/header.vue?2cff","webpack:///./src/template/header.vue","webpack:///./src/common/components/loading.vue?e2b1","webpack:///src/common/components/loading.vue","webpack:///./src/common/components/loading.vue?df9f","webpack:///./src/common/components/loading.vue?b5e0","webpack:///src/template/index.vue","webpack:///./src/template/index.vue?7dc0","webpack:///./src/template/index.vue","webpack:///./src/views/home/index.vue?df87","webpack:///./src/common/tutor-step.js","webpack:///src/views/home/index.vue","webpack:///./src/views/home/index.vue?fcbb","webpack:///./src/views/home/index.vue","webpack:///./src/views/authorized/index.vue?39e3","webpack:///src/views/authorized/index.vue","webpack:///./src/views/authorized/index.vue?2b21","webpack:///./src/views/authorized/index.vue","webpack:///./src/views/trocarescola/index.vue?d854","webpack:///src/views/trocarescola/index.vue","webpack:///./src/views/trocarescola/index.vue?b7ca","webpack:///./src/views/trocarescola/index.vue","webpack:///./src/views/acessonegado/index.vue?a22b","webpack:///src/views/acessonegado/index.vue","webpack:///./src/views/acessonegado/index.vue?4b38","webpack:///./src/views/acessonegado/index.vue","webpack:///./src/views/estagio/configuracao.vue?77b2","webpack:///./src/views/estagio/estagioconteudo/index.vue?2ee2","webpack:///./src/views/estagio/estagioconteudo/form-create.vue?280a","webpack:///src/views/estagio/estagioconteudo/form-create.vue","webpack:///./src/views/estagio/estagioconteudo/form-create.vue?a685","webpack:///./src/views/estagio/estagioconteudo/form-create.vue","webpack:///./src/views/estagio/estagioconteudo/form-edit.vue?c2fe","webpack:///src/views/estagio/estagioconteudo/form-edit.vue","webpack:///./src/views/estagio/estagioconteudo/form-edit.vue?d82e","webpack:///./src/views/estagio/estagioconteudo/form-edit.vue","webpack:///src/views/estagio/estagioconteudo/index.vue","webpack:///./src/views/estagio/estagioconteudo/index.vue?ef12","webpack:///./src/views/estagio/estagioconteudo/index.vue","webpack:///./src/views/estagio/estagioavaliacao/index.vue?3b51","webpack:///./src/views/estagio/estagioavaliacao/form-create.vue?4863","webpack:///src/views/estagio/estagioavaliacao/form-create.vue","webpack:///./src/views/estagio/estagioavaliacao/form-create.vue?148c","webpack:///./src/views/estagio/estagioavaliacao/form-create.vue","webpack:///./src/views/estagio/estagioavaliacao/form-edit.vue?9b3f","webpack:///src/views/estagio/estagioavaliacao/form-edit.vue","webpack:///./src/views/estagio/estagioavaliacao/form-edit.vue?a3ad","webpack:///./src/views/estagio/estagioavaliacao/form-edit.vue","webpack:///src/views/estagio/estagioavaliacao/index.vue","webpack:///./src/views/estagio/estagioavaliacao/index.vue?aded","webpack:///./src/views/estagio/estagioavaliacao/index.vue","webpack:///./src/views/estagio/escolaestagio/index.vue?9a57","webpack:///./src/views/estagio/escolaestagio/form-create.vue?3632","webpack:///src/views/estagio/escolaestagio/form-create.vue","webpack:///./src/views/estagio/escolaestagio/form-create.vue?8414","webpack:///./src/views/estagio/escolaestagio/form-create.vue","webpack:///./src/views/estagio/escolaestagio/form-edit.vue?3b63","webpack:///src/views/estagio/escolaestagio/form-edit.vue","webpack:///./src/views/estagio/escolaestagio/form-edit.vue?90d8","webpack:///./src/views/estagio/escolaestagio/form-edit.vue","webpack:///src/views/estagio/escolaestagio/index.vue","webpack:///./src/views/estagio/escolaestagio/index.vue?a79f","webpack:///./src/views/estagio/escolaestagio/index.vue","webpack:///./src/views/estagio/estagiomodalidade/index.vue?1503","webpack:///./src/views/estagio/estagiomodalidade/form-create.vue?b75d","webpack:///src/views/estagio/estagiomodalidade/form-create.vue","webpack:///./src/views/estagio/estagiomodalidade/form-create.vue?a965","webpack:///./src/views/estagio/estagiomodalidade/form-create.vue","webpack:///./src/views/estagio/estagiomodalidade/form-edit.vue?73c9","webpack:///src/views/estagio/estagiomodalidade/form-edit.vue","webpack:///./src/views/estagio/estagiomodalidade/form-edit.vue?4b5e","webpack:///./src/views/estagio/estagiomodalidade/form-edit.vue","webpack:///src/views/estagio/estagiomodalidade/index.vue","webpack:///./src/views/estagio/estagiomodalidade/index.vue?ead8","webpack:///./src/views/estagio/estagiomodalidade/index.vue","webpack:///./src/views/estagio/estagioduracaominima/index.vue?bbdf","webpack:///./src/views/estagio/estagioduracaominima/form-create.vue?c79f","webpack:///src/views/estagio/estagioduracaominima/form-create.vue","webpack:///./src/views/estagio/estagioduracaominima/form-create.vue?578d","webpack:///./src/views/estagio/estagioduracaominima/form-create.vue","webpack:///./src/views/estagio/estagioduracaominima/form-edit.vue?e1da","webpack:///src/views/estagio/estagioduracaominima/form-edit.vue","webpack:///./src/views/estagio/estagioduracaominima/form-edit.vue?8415","webpack:///./src/views/estagio/estagioduracaominima/form-edit.vue","webpack:///src/views/estagio/estagioduracaominima/index.vue","webpack:///./src/views/estagio/estagioduracaominima/index.vue?cb40","webpack:///./src/views/estagio/estagioduracaominima/index.vue","webpack:///./src/views/estagio/estagiosequencia/index.vue?c41b","webpack:///./src/views/estagio/estagiosequencia/form-create.vue?dbeb","webpack:///src/views/estagio/estagiosequencia/form-create.vue","webpack:///./src/views/estagio/estagiosequencia/form-create.vue?fa99","webpack:///./src/views/estagio/estagiosequencia/form-create.vue","webpack:///./src/views/estagio/estagiosequencia/form-edit.vue?dd52","webpack:///src/views/estagio/estagiosequencia/form-edit.vue","webpack:///./src/views/estagio/estagiosequencia/form-edit.vue?89e3","webpack:///./src/views/estagio/estagiosequencia/form-edit.vue","webpack:///src/views/estagio/estagiosequencia/index.vue","webpack:///./src/views/estagio/estagiosequencia/index.vue?bcad","webpack:///./src/views/estagio/estagiosequencia/index.vue","webpack:///./src/views/estagio/estoqueitemestagio/index.vue?c872","webpack:///./src/views/estagio/estoqueitemestagio/form-create.vue?9247","webpack:///src/views/estagio/estoqueitemestagio/form-create.vue","webpack:///./src/views/estagio/estoqueitemestagio/form-create.vue?c089","webpack:///./src/views/estagio/estoqueitemestagio/form-create.vue","webpack:///./src/views/estagio/estoqueitemestagio/form-edit.vue?3357","webpack:///src/views/estagio/estoqueitemestagio/form-edit.vue","webpack:///./src/views/estagio/estoqueitemestagio/form-edit.vue?fb89","webpack:///./src/views/estagio/estoqueitemestagio/form-edit.vue","webpack:///src/views/estagio/estoqueitemestagio/index.vue","webpack:///./src/views/estagio/estoqueitemestagio/index.vue?89fc","webpack:///./src/views/estagio/estoqueitemestagio/index.vue","webpack:///src/views/estagio/configuracao.vue","webpack:///./src/views/estagio/configuracao.vue?3ce3","webpack:///./src/views/estagio/configuracao.vue","webpack:///./src/router/generated.js","webpack:///./src/router/index.js","webpack:///./src/common/directives/canaccess.js","webpack:///./src/main.js","webpack:///./src/common/components/pagination.vue?72fe","webpack:///src/common/components/pagination.vue","webpack:///./src/common/components/pagination.vue?786b","webpack:///./src/common/components/pagination.vue","webpack:///./src/common/base.js","webpack:///./src/assets/js/tinymce/plugins/lists/plugin.js","webpack:///./src/common/cookie.js","webpack:///./src/common/auth.js","webpack:///./src/common/global.js","webpack:///./src/assets/loader.png","webpack:///./src/common/directives/select.js","webpack:///./src/assets/js/tinymce/plugins/image/plugin.js","webpack:///./src/assets/js/tinymce/themes/modern/theme.js","webpack:///./src/assets/imagens/logos/logo-CNA-big.png","webpack:///./src/common/directives/htmleditor.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","opera","webkit","ie","ie11","ie12","gecko","mac","iDevice","android","fileApi","phone","tablet","windowsPhone","noop","x","_i","arguments","compose","fa","fb","constant","identity","curry","f","args","Array","newArgs","concat","die","msg","never","always","never$1","always$1","none","NONE","eq","isNone","call$$1","thunk","id","noop$$1","nul","undef","me","fold","is","isSome","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","or","orThunk","map","ap","each","flatten","exists","forall","filter","equals","equals_","toArray","toString","freeze","some","a","constant_a","self","v","optfab","fab","elementEq","b","from","Option","typeOf","isPrototypeOf","String","isType","isString","isObject","isArray","isNull","isBoolean","isFunction","isNumber","rawIndexOf","pIndexOf","indexOf","fastIndex","xs","slowIndex","slowIndexOf","contains","pred","findIndex","len","eachr","partition","pass","fail","arr","foldr","acc","foldl","find","output","reverse","difference","a1","a2","mapToObject","sort","comparator","copy","last","from$1","Global","Function","path","parts","scope","split","unsafe","actual","$_89i3w1cjkmcwk2c","url","createObjectURL","blob","revokeObjectURL","u","$_ci16mbjkmcwk2b","nav","navigator","userAgent","matchMediaQuery","query","matchMedia","matches","test","appName","exec","requestAnimationFramePromise","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document$1","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains$1","contentEditable","parseInt","match","$_cvvl9iajkmcwk25","iOS","transparentSrc","caretAfter","range","getSelection","documentMode","ceFalse","cacheSuffix","container","overrideViewPort","experimentalShadowDom","canHaveCSP","desktop","fn","thisArg","this","TypeError","_state","_value","_deferreds","doResolve","asap","immediateFn","setImmediate","handle","deferred","cb","onFulfilled","onRejected","ret","newValue","then","finale","Handler","done","reason","ex","catch","remaining","res","val","constructor","race","values","promiseObj","requestAnimationFrame$$1","callback","element","requestAnimationFrameFunc","requestAnimationFrame","vendors","featurefill","wrappedSetTimeout","time","wrappedSetInterval","setInterval","wrappedClearTimeout","wrappedClearInterval","clearInterval","debounce","timer","func","stop","$_3l01gcijkmcwk99","body","setEditorTimeout","editor","removed","setEditorInterval","throttle","eventExpandoPrefix","mouseEventRe","deprecated","keyLocation","layerX","layerY","returnValue","webkitMovementX","webkitMovementY","keyIdentifier","hasIsDefaultPrevented","event$$1","isDefaultPrevented","returnTrue","returnFalse","addEvent","name$$1","capture","addEventListener","attachEvent","removeEvent","removeEventListener","detachEvent","getTargetFromShadowDom","defaultTarget","composedPath","fix","originalEvent","srcElement","pageX","clientX","eventDoc","ownerDocument","doc","documentElement","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","preventDefault","stopPropagation","isPropagationStopped","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","metaKey","bindOnReady","win","eventUtils","domLoaded","isDocReady","readyState","readyHandler","waitForDomLoaded","tryScroll","doScroll","top","EventUtils","count","expando","hasFocusIn","hasMouseEnterLeave","mouseEnterLeave","self$$1","events","Date","mouseenter","mouseleave","executeHandlers","evt","callbackList","names","fakeName","nativeHandler","defaultNativeHandler","nodeType","current","related","currentTarget","relatedTarget","parentNode","unbind","ci","eventMap","fire","defaultView","parentWindow","clean","children","getElementsByTagName","destroy","cancel","Event","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","strundefined","MAX_NEGATIVE","hasOwn","pop","push_native","push$1","slice$1","indexOf$1","elem","booleans","whitespace","identifier","attributes","pseudos","rtrim","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","childNodes","els","Sizzle","selector","context","results","seed","groups","old","nid","newContext","newSelector","getElementById","getElementsByClassName","qsa","nodeName","toLowerCase","getAttribute","replace","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","markFunction","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","node","hasCompare","parent$$1","getTop","getById","attrId","tag","tmp","className","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","bp","unshift","expr","elements","matchesSelector","attr","attrHandle","getAttributeNode","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","first","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","input","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","parent","header","button","length$$1","even","odd","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","filters","parseOnly","soFar","preFilters","cached","token","compiled","isArray$1","obj","array","each$1","map$1","out","item","index","filter$1","indexOf$2","reduce","collection","iteratee","accumulator","findIndex$1","predicate","find$1","last$1","$_9g1fibmjkmcwkbu","whiteSpaceRegExp","trim","str","makeMap","items","delim","prop","sp","cn","scn","de","createNS","onCreate","extend","static","ext","walk","resolve$1","explode","_addCacheSuffix","$_4ujg4tljkmcwkbk","grep","inArray","push$2","slice$2","rquickExpr$1","Event$$1","skipUniques","isDefined","isString$1","isWindow","createFragment","html","fragDoc","frag","createDocumentFragment","innerHTML","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","makeArray","hasClass","wrap","wrapper","lastParent","newWrapper","cloneNode","insertBefore","numericCssMap","booleanMap","propFix","for","class","readonly","cssFix","float","attrHooks","cssHooks","init","whiteSpaceRegExp$1","trim$1","each$2","charAt","add","nodes","unique","hook","set","removeAttr","css","elm","camel","toUpperCase","dashed","style","removeProperty","currentStyle","getComputedStyle","getPropertyValue","remove","removeChild","append","host","prepend","before","after","appendTo","prependTo","replaceWith","content","wrapAll","wrapInner","contents","unwrap","clone","addClass","toggleClass","removeClass","state","existingClassName","classState","on","off","trigger","show","hide","closest","offset","docElm","pos","y","getBoundingClientRect","left","el","until","sibling","siblingName","firstSibling","parents","next","prev","contentDocument","contentWindow","parentsUntil","nextUntil","prevUntil","overrideDefaults","defaults","sub","appendHooks","targetHooks","hooks","maxlength","maxLength","size","cssText","opacity","zoom","called","firstMatch","regexes","find$2","agent","major","minor","group","Number","nu","detect","versionRegexes","cleanedAgent","unknown","$_2kio3msjkmcwkcv","edge","chrome","ie$1","opera$1","firefox","safari","isBrowser","unknown$1","nu$1","version","info","isEdge","isChrome","isIE","isOpera","isFirefox","isSafari","$_ei4lq0rjkmcwkcq","windows","ios","android$1","linux","osx","solaris","freebsd","isOS","unknown$2","nu$2","isWindows","isiOS","isAndroid","isOSX","isLinux","isSolaris","isFreeBSD","$_85w4ndtjkmcwkcx","DeviceType","os","browser","isiPad","isiPhone","isAndroid3","isAndroid4","isTablet","isTouch","isPhone","iOSwebview","isWebView","detect$1","candidates","candidate","search","detectBrowser","browsers","detectOs","oses","$_6qxoukvjkmcwkd5","contains$2","substr","trim$2","normalVersionRegex","checkContains","uastring","monstrosity","$_6vxr68wjkmcwkdc","detect$2","deviceType","$_c5ox8vqjkmcwkco","detect$3","$_b1ykk4ojkmcwkcj","fromHtml","div","hasChildNodes","fromDom","fromTag","fromText","createTextNode","dom","fromPoint","elementFromPoint","Element$$1","$_c8e5uh12jkmcwke2","ATTRIBUTE","Node","ATTRIBUTE_NODE","CDATA_SECTION","CDATA_SECTION_NODE","COMMENT","COMMENT_NODE","DOCUMENT","DOCUMENT_NODE","DOCUMENT_TYPE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT","DOCUMENT_FRAGMENT_NODE","ELEMENT","ELEMENT_NODE","TEXT","TEXT_NODE","PROCESSING_INSTRUCTION","PROCESSING_INSTRUCTION_NODE","ENTITY_REFERENCE","ENTITY_REFERENCE_NODE","ENTITY","ENTITY_NODE","NOTATION","NOTATION_NODE","isType$1","isComment","isElement","isText","isDocument","$_2xwdjv11jkmcwke0","each$3","props","k","map$2","tupleMap","tuple","bifilter","branch","rawSet","setAll","attrs","hasAttribute","hasNone","transferOne","source","destination","transfer","$_29helg15jkmcwkf0","inBody","getBody","$_g4uup916jkmcwkfg","isSupported","$_crv2n17jkmcwkfl","internalSet","setProperty","internalRemove","set$1","setAll$1","setOptions","get$1","styles","getUnsafeProperty","getRaw","raw","getAllRaw","ruleName","isValidValue","remove$1","preserve","oldStyles","restore","sourceDom","targetDom","reflow","offsetWidth","transferOne$1","transfer$1","$_4enzit13jkmcwke5","Immutable","fields","struct","toArray$1","recurse","$_ea405s1djkmcwkgi","documentPositionPreceding","DOCUMENT_POSITION_PRECEDING","documentPositionContainedBy","DOCUMENT_POSITION_CONTAINED_BY","$_ggq6431fjkmcwkgt","is$1","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","one","querySelector","$_4jv6d81gjkmcwkgv","e1","e2","isEqualNode","member","regularContains","d1","d2","ieContains","contains$3","$_e4hu6h1ejkmcwkgj","owner","findIndex$2","kin","isRoot","rawParent","siblings","filterSelf","offsetParent","prevSibling","previousSibling","prevSiblings","nextSiblings","child","childNodesCount","spot","leaf","cs","$_ca6pc118jkmcwkfs","browser$1","firstElement","getTableCaptionDeltaY","caption","bodyTop","offsetTop","captionTop","captionHeight","offsetHeight","getPos","rootElm","offsetLeft","$_5o0xi0njkmcwkbz","nu$3","baseFn","callbacks","map$$1","nCallback","isReady","run","cbs","pure$1","LazyValue","pure","bounce","nu$4","aFutureB","anonBind","futureB","toLazy","pure$2","Future","par","asyncValues","asyncValue","par$1","futures","value$1","opt","onValue","toOption","isValue","isError","onError","Result","StyleSheetLoader","document$$1","settings","maxLoadTime","idCount","loadedStates","appendToHead","load","loadedCallback","errorCallback","link","startTime","passed","status","failed","isOldWebKit","webKitChunks","wait","testCallback","waitCallback","getTime","waitForWebKitLinkLoaded","styleSheet","styleSheets","ownerNode","owningElement","waitForGeckoLinkLoaded","cssRules","sheet","rel","async","defer","loadF","unbox","loadAll","urls","success","failure","TreeWalker","startNode","rootNode","findSibling","startName","shallow","findPreviousNode","prev2","namedEntities","baseEntities","reverseEntities","blocks","voids","tableCells","tableSections","textBlocks","headings","listItems","lists","wsElements","lazyLookup","lookup","isHeading","isBlock","isInline","isBr","isTextBlock","isList","isListItem","isVoid","isTableSection","isTableCell","isWsPreserveElement","isNodeType","isElement$1","matchNodeNames","matchStyleValues","cssValue","computed","hasPropValue","propName","propValue","attrName","attrValue","hasAttributeValue","isBogus","isBogusAll","isTable","tagName","hasContentEditableState","isText$1","isComment$1","isDocument$1","isBr$1","isContentEditableTrue","isContentEditableFalse","$_bjermr1rjkmcwkij","surroundedBySpans","previousIsSpan","nextIsSpan","isBookmarkNode","trimNode","trimmedLength","$_br9sxm1pjkmcwki4","makeMap$1","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","128","130","131","132","133","134","135","136","137","138","139","140","142","145","146","147","148","149","150","151","152","153","154","155","156","158","159","'","nativeDecode","buildEntitiesLookup","radix","chr","entity","encodeRaw","encodeAllRaw","encodeNumeric","charCodeAt","encodeNamed","entities","getEncodeFunc","entitiesMap","encodeNamedAndNumeric","encodeCustomNamed","nameMap","named","numeric","decode","$_33qwr1sjkmcwkip","mapCache","dummyObj","makeMap$2","each$4","extend$1","explode$1","inArray$1","compileSchema","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","schema","ni","attributesOrder","arrayToMap","addAttrs","schemaItem","table","compileElementMap","Schema","validStyles","invalidStyles","schemaItems","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","validClasses","blockElementsMap","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","textInlineElementsMap","patternElements","customElementsMap","specialElements","createLookupTable","option","defaultValue","extendWith","verify_html","valid_elements","valid_styles","invalid_styles","valid_classes","special","patternToRegExp","addValidElements","validElements","ei","ai","al","attrData","elementName","attrType","prefix","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","required","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","rule","inline","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","custom_elements","valid_children","extended_valid_elements","dd","dt","li","td","th","tr","tbody","thead","tfoot","legend","area","param","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getBlockElements","getTextBlockElements","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getNonEmptyElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","getSpecialElements","isValidChild","isValid","attrPatterns","getCustomElements","toHex","g","hex","Styles","encodingItems","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","color","parse","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","suffix","noJoin","right","bottom","box","canCompress","compress2","encode","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","lastIndex","border","serialize","serializeStyles","styleList","styleMap","each$5","grep$1","simpleSelectorRe","whiteSpaceRegExp$2","setupAttrHooks","getContext","keepValues","keep_values","keepUrlHook","$elm","updateInternalStyleAttr","rawValue","findNodeIndex","normalized","lastNodeType","DOMUtils","_this","addedStyles","files","counter","stdMode","boxModel","styleSheetLoader","boundEvents","ownEvents","proxy","$","getRoot","getElementsByName","$$","getAttrib","defaultVal","getAttribs","setAttrib","originalValue","onSetAttrib","attrElm","deep","clone_1","root_element","getViewPort","argWin","actWin","pageXOffset","pageYOffset","w","innerWidth","clientWidth","h","innerHeight","clientHeight","setStyle","update_styles","setStyles","stylesArg","getStyle","getSize","getRect","elms","getParents","collect","selectorVal","getParent","_findSib","getNext","getPrev","setAttribs","setHTML","canHaveHTML","parentElm","newElm","createHTML","outHtml","keepChildren","$node","removeAllAttribs","removeAttributeNode","parseStyle","serializeStyle","addStyle","styleElm","DOM","loadCSS","cls","isHidden","uniqueId","getOuterHTML","outerHTML","setOuterHTML","insertAfter","reference","referenceNode","oldElm","replaceChild","rename","attrNode","findCommonAncestor","pe","ps","rgbVal","isEmpty","walker","brCount","bogusVal","createRng","createRange","splitElm","replacementElm","bef","aft","pa","setStart","setEnd","extractContents","getContentEditable","getContentEditableParent","isChildOf","dumpRng","startContainer","startOffset","endContainer","endOffset","DOMUtils$1","each$6","grep$2","isFunction$1","ScriptLoader","QUEUED","LOADING","LOADED","FAILED","states","queue","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","onreadystatechange","log","isDone","markDone","loadQueue","loadScripts","scripts","failures","execCallbacks","loadingScripts","notifyCallbacks","each$7","AddOnManager","_listeners","instance","dependencies","requireLangPack","languages","language","languageLoad","addOn","listener","createUrl","baseUrl","dep","resource","addComponents","pluginName","pluginUrl","loadDependencies","addOnUrl","deps","newUrl","urlString","baseURL","substring","lastIndexOf","waitFor","PluginManager","ThemeManager","marker","appendAt","wrap$1","$_f4qt4v1yjkmcwkl2","before$1","after$1","prepend$1","append$1","$_1ev7t1xjkmcwkky","rogue","remove$2","$_eualm21wjkmcwkku","first$1","rate","last$3","Cell","initial","Toggler","turnOff","turnOn","active","toggle","isOn","read","remove$3","$_4m1njo26jkmcwkme","supports","classList","get$2","add$1","clazz","remove$4","$_ewhsr825jkmcwkm2","add$2","cleanClass","remove$5","toggle$1","toggler","hasClasslist","has$1","$_ftm4v023jkmcwklz","all$1","descendants","ancestors","siblings$1","children$1","$_733l9k28jkmcwkmj","all$2","ancestors$1","siblings$2","children$2","descendants$1","$_2gqm0n27jkmcwkmi","ClosestOrAncestor","ancestor","first$2","descendant","sibling$1","child$1","descend","$_253nd92ajkmcwkmp","first$3","ancestor$1","sibling$2","child$2","descendant$1","closest$1","$_4ki4d929jkmcwkmn","annotation","dataAnnotation","dataAnnotationId","identify","annotationName","rng","selection","getRng","an","newStart","getAttr","uid","findMarkers","isAnnotation","findAll","markers","directory","nodesAlready","setup","registry","changeCallbacks","initData","listeners","previous","withCallbacks","updateCallbacks","callbackMap","outputData","fireCallbacks","fireNoAnnotation","onNodeChange","annotations","_a","addListener","setup$1","identifyParserNode","span","optAnnotation","serializer","addNodeFilter","spans","persistent","create$1","register","generate","date","floor","add$3","classes","remove$6","toggle$2","hasAll","hasAny","getNative","get$3","$_dw1myr2hjkmcwko1","clone$1","original","shallowAs","copy$1","cloneChildren","mutate","$_44uvy22ijkmcwko5","slice$3","constant$1","negate","compose$2","and","curry$1","tempArgs","noop$1","$_fl2rax2ljkmcwkot","ZWSP","isZwsp","trim$3","$_cadvcr2pjkmcwkph","isElement$2","isText$2","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","hasContent","insertInline","textNode","endsWithCaretContainer","splitText","startsWithCaretContainer","isBeforeInline","isAfterInline","createBogusBr","br","insertBlock","blockName","blockNode","trimBogusBr","brs","lastBr","showCaretContainerBlock","caretContainer","isRangeInCaretContainerBlock","isContentEditableTrue$1","isContentEditableFalse$1","isBr$2","isText$3","isInvalidTextElement","isAtomicInline","isTable$1","isCaretContainer$1","isCaretCandidate","isNonUiContentEditableFalse","isUnselectable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","round","clone$2","rect","width","height","collapse","toStart","isEqual","rect1","rect2","isValidOverflow","overflowY","min","isAbove","isBelow","containsXY","overflowX","outer","inner","getOverflow","getSelectedNode","getNode","extendingChars","isExtendingChar","ch","liftN","isElement$3","isCaretCandidate$1","isBlock$1","isFloated","isValidElementCaretCandidate","isNotPre","isText$4","isBr$3","resolveIndex","isWhiteSpace","isRange","isHiddenWhiteSpaceRange","range$$1","getBrClientRect","brNode","clientRect","nbsp","getBoundingClientRectWebKitText","sc","ec","so","eo","newRng","cloneRange","setEndAfter","isZeroRect","clientRects","getClientRects","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","beforeNode","addUniqueAndValidRect","addCharacterOffset","isAtEnd","CaretPosition","isAtStart","toRange","isVisible","isEqual$$1","getNode$$1","fromRangeStart","fromRangeEnd","pos1","pos2","isTextPosition","isElementPosition","HDirection","CaretPosition$1","isText$5","isBogus$1","nodeIndex$1","normalizedParent","getChildNodes","normalizedTextOffset","equal$1","normalizedNodeIndex","numTextFragments","createPathItem","create$2","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","resolve$2","isContentEditableFalse$2","getNormalizedTextOffset","trimmedOffset","getPoint","point","max","getLocation","bookmark","isCollapsed","end","trimEmptyTextNode","findIndex$3","moveEndPoint","normalizeTableCellSelection","findAdjacentContentEditableFalseElm","getOffsetBookmark","getCaretBookmark","getRangeBookmark","createBookmarkSpan","filled","getPersistentBookmark","collapsed","rng2","endBookmarkNode","insertNode","startBookmarkNode","moveToBookmark","keep","getBookmark","$_aw3zi52jjkmcwkoa","getUndoBookmark","CARET_ID","isCaretNode","getParentCaretContainer","isElement$4","isText$6","removeNode","getNodeValue","setNodeValue","trimCount","trimmedText","removeUnchanged","remove$7","removeTextAndReposition","removeElementAndReposition","newPosition","removeTextCaretContainer","removeElementCaretContainer","removeAndReposition","caretContainerNode","$_xl2r331jkmcwkri","isContentEditableTrue$2","isContentEditableFalse$3","showCaret","direction","scrollIntoView","_selectionOverrides","getNodeRange","selectNode","renderCaretAtRange","normalizedRange","normalizeRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","caretRange","BreakType","isContentEditableFalse$4","isText$7","isElement$5","isBr$4","isCaretCandidate$2","isAtomic$1","isEditableCaretCandidate$1","nodeAtIndex","getCaretCandidatePosition","isForwards","isBackwards","isBrBeforeBlock","findCaretPosition","isInSameBlock","startPos","nextNode","innerNode","rootContentEditableFalseElm","findNode","CaretWalker","Forwards","Backwards","flip","positions","walk$1","caretWalker","getBreakType","currentPos","nextPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","newPos","lastPos","lastRect","newRect","lastDist","abs","newDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","getPositionsAbove","getPositionsBelow","getFirstLinePositions","$_1m3f3j2yjkmcwkqg","firstPositionIn","getLastLinePositions","lastPositionIn","deflate","delta","getCorners","getYAxisValue","tds","cell","findClosestCorner","corners","newCorner","oldCorner","oldDist","sqrt","getClosestCell","isTargetCorner","cells","corner","getBottomValue","getTopValue","isAbove$1","isBelow$1","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","getPos$1","fireScrollIntoViewEvent","alignToTop","scrollEvent","scrollElementIntoView","viewPort","viewPortY","viewPortH","offsetY","scrollContainer","getScrollContainer","getWin","scrollTo","getViewPortRect","scrollBy","dx","dy","scrollRangeIntoView","rngRect","bodyRect","overflow","margin","$_a6610x37jkmcwkt5","getBodySetting","getParam","bodyObj","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre","getForcedRootBlock","block","getForcedRootBlockAttrs","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","getFontStyleValues","getFontSizeClasses","$_2ycm1438jkmcwkta","browser$2","isFakeCaretTableBrowser","moveToRange","setRng","isAtTableCellLine","lineInfo","breakPos","isAtFirstTableCellLine","isAtLastTableCellLine","isCaretAtStartOrEndOfTable","caretPos","positionIn","navigateHorizontally","getClosestAbovePosition","getClosestBelowPosition","getTable","renderBlock","down","forcedRootBlock","undoManager","transact","moveCaret","last$$1","navigateVertically","moveH","moveV","isContentEditableFalse$5","isTableCell$1","getAbsoluteClientRect","scrollX","scrollY","rootRect","trimInlineCaretContainers","contentEditableFalseNodes","deleteData","FakeCaret","cursorInterval","lastVisualCaret","caret","caretState","startBlink","reposition","getCss","isFakeCaretTarget","isContentEditableFalse$6","isBlockLike","isCaretContainer$2","isCaretContainerBlock$1","curry$2","isElement$6","isCaretCandidate$3","skipCaretContainers","predicateFn","getParentBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","setStartBefore","setEndBefore","setStartAfter","isNodesInSameBlock","node1","node2","lean","before$2","after$2","leanLeft","leanRight","isNextToContentEditableFalse","isNextToTable","getRelativeCefElm","getNormalizedRangeEndPoint","isBeforeContentEditableFalse","isAfterContentEditableFalse","isBeforeTable","isAfterTable","walkToPositionIn","position","fromPosition","afterElement","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","to","isAtBr","shouldSkipPosition","navigate","nextPosition","prevPosition","isStringPathBookmark","isRangeBookmark","isIdBookmark","isIndexBookmark","isPathBookmark","addBogus","resolveCaretPositionBookmark","insertZwsp","tryFindRangePosition","padEmptyCaretContainer","setEndPoint","isValidTextNode","restoreEndPoint","appendData","alt","o1","o2","resolvePaths","resolveId","endPos","spos","epos","resolveIndex$1","resolve$3","$_1fx23n2wjkmcwkq6","getBookmark$1","isBookmarkNode$1","$_e4btcc2vjkmcwkq3","isInlineBlock","moveStart","isWhiteSpaceNode","getNonWhiteSpaceSibling","inc","isTextBlock$1","ed","replaceVars","vars","isEq","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$1","$_dli08w3ajkmcwktg","isBookmarkNode$2","getParents$2","isWhiteSpaceNode$1","isTextBlock$2","findLeaf","excludeTrailingWhitespace","isBogusBr","findParentContentEditable","findSpace","findWordEndPoint","lastTextNode","findSelectorEndPoint","format","curFormat","findBlockEndPoint","scopeRoot","findParentContainer","block_expand","expandRng","endPoint","expand","$_97afwh2ujkmcwkpw","each$8","getEndChild","walk$2","startPoint","exclude","collectSiblings","endNode","findEndPoint","walkBoundary","$_cuckrv3bjkmcwktk","zeroWidth","NodeValue","getOption","getOptionIE10","getOptionSafe","api","get$4","set$2","$_ckzc193ejkmcwktu","isZeroWidth","wrapName","__rest","getOwnPropertySymbols","applyWordGrab","annotate","decorate","_b","newWrappers","master","_c","_d","_e","finishWrapper","getOrOpenWrapper","processElements","processElement","ctx","processNodes","annotateWithBookmark","initialRng","Annotator","changes","annotationChanged","getAll","hasOnlyOneChild","isPaddingNode","isPaddedEmptyBlock","blockElements","isEmptyFragmentElement","nonEmptyElements","isListFragment","fragment","cleanupDomFragment","domFragment","toDomFragment","listItems$1","isPadding","isListItemPadded","isEmptyOrPadded","trimListItems","getParentLi","parentBlock","isParentBlockLi","getSplit","beforeRng","afterRng","cloneContents","findFirstIn","newCaretPos","findLastOf","insertMiddle","insertAtCaret","liTarget","liElms","BEGINNING","END","isAt","$_e6q31u3jjkmcwkvd","each$9","ElementUtils","attribs","compareObjects","obj1","obj2","getLastChildren","rawNode","removeTrailingBr","allBrs","fillWithPaddingBr","isPaddingContents","isPaddedElement","trimBlockTrailingBr","lastChildPrevSibling","$_zygeg3ljkmcwkvo","makeMap$3","Writer","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","entity_encoding","element_format","cdata","comment","pi","doctype","getContent","HtmlSerializer","writer","validate","handlers","3","8","7","10","4","11","sortedAttrs","elementRule","handler","shortEnded","createRange$1","normalizeBlockSelectionRange","commonAncestorContainer","newEndPos","normalize","$_bx30le3ojkmcwkw9","isTableCell$2","validInsertion","setContent","trimBrsFromTableCell","insertHtmlAtCaret","details","parser","bookmarkHtml","merge","textInlineElements","trimOrPaddLeftRight","hasSiblingText","trimNbspAfterDeleteAndPaddValue","reduceInlineTextElements","root_1","elementUtils_1","testNode","markFragmentElements","umarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","parentEditableFalseElm","nextRng","getContentEditableFalseParent","findNextCaretRng","paste","caretElement","parentElement","getDoc","execCommand","parserArgs","insert","showBlockCaretContainer","invalid","getStart","addVisual","processValue","insertAtCaret$1","$_g2yj883ijkmcwkv2","sectionResult","detection","mobilePlugins","defaultMobileSettings","theme","normalizePlugins","plugins","pluginNames","trimmedPlugins","filterMobilePlugins","extractSections","keys$$1","getSection","sections","sectionSettings","hasSection","getDefaultSettings","documentBaseUrl","delta_width","delta_height","popup_css","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","object_resizing","visual","font_size_style_values","font_size_legacy_values","forced_root_block","hidden_input","render_ui","indentation","inline_styles","convert_fonts_to_spans","convertURL","ie7_compat","getExternalPlugins","overrideSettings","userDefinedExternalPlugins","external_plugins","combinePlugins","forcedPlugins","processPlugins","isTouchDevice","defaultOverrideSettings","forced_plugins","platformPlugins","combinedPlugins","isOnMobile","combineSettings","defaultSettings","extendedSettings","content_editable","getEditorSettings","getFiltered","getString","getParamObject","isArrayOf","strongRtl","hasStrongRtl","isInlineTarget","isRtl","findInlineParents","findRootInline","hasSameParentBlock","block1","block2","isAtZwsp","normalizePosition","normalizeForwards","normalizeBackwards","$_crqmqb3tjkmcwkxd","isBeforeRoot","getParentBlock$1","placeCaretInEmptyBody","setCursorLocation","paddEmptyBody","willDeleteLastPositionInElement","fromPos","firstPos","normalizedFirstPos","normalizedLastPos","normalizedFromPos","prevPos","$_8z75uj3sjkmcwkx3","any","ancestor$2","sibling$3","child$3","descendant$2","closest$2","$_6rijl23xjkmcwl24","hasWhitespacePreserveParent","rootElement","isWhitespace","isNamedAnchor","isContent","isBookmark","isBogus$2","isBogusAll$1","isEmptyNode","targetNode","isEmpty$1","$_1jnfso3wjkmcwl1v","BlockPosition","BlockBoundary","getBlockPosition","containerElm","isDifferentBlocks","blockBoundary","hasSameParent","parent1","parent2","isEditable","skipLastBr","blockPosition","lastPositionInBlock","readFromRange","fromBlockPos","toBlockPos","blockPos","read$1","$_2x2kic3rjkmcwkwi","dropLast","parentsUntil$1","parents$1","parentsAndSelf","$_cir6zl3zjkmcwl2j","getChildrenUntilBlockBoundary","extractChildren","trimBr","removeEmptyRoot","findParentInsertPoint","toBlock","getInsertionPoint","fromBlock","mergeBlockInto","children_1","mergeBlocks","$_ezyxdl3yjkmcwl27","backspaceDelete","$_1wrlyf3qjkmcwkwe","deleteRangeMergeBlocks","deleteContents","isRawNodeInTable","isSelectionInTable","isEverythingSelected","noPrevious","noNext","emptyEditor","deleteRange","backspaceDelete$1","$_egxtcx40jkmcwl2q","generate$1","cases","constructors","adt","acase","argLength","branches","branchKeys","allReqd","reqKey","label","params","Adt","isCompoundElement","DeleteAction","moveToElement","moveToPosition","isAtContentEditableBlockCaret","caretLocation","isDeleteFromCefDifferentBlocks","inSameBlock","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","deleteAction","getContentEditableAction","read$2","needsReposition","beforeOrStartOf","afterOrEndOf","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwardsFromElm","startPosition","findCaretPositionForwardsFromElm","findCaretPositionBackwards","findCaretPositionForward","findCaretPosition$1","findCaretPosOutsideElmAfterDelete","setSelection","eqRawNode","isBlock$2","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","afterDeletePos","prevNode","deleteElement","normalizedAfterDeletePos","paddPos","$_4yq1i444jkmcwl3w","deleteElement$1","hideFakeCaret","backspaceDeleteCaret","deleteOffscreenSelection","backspaceDeleteRange","selectedElement","getContentEditableRoot","paddEmptyElement","backspaceDelete$2","$_1hyiiy41jkmcwl2z","isText$8","startsWithCaretContainer$1","endsWithCaretContainer$1","createZwsp","insertBefore$1","insertData","newNode","insertAfter$1","insertInline$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","$_efgx6546jkmcwl4n","evaluateUntil","fns","$_8hyv6o49jkmcwl58","Location","rescope","before$3","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","after$3","isValidLocation","getElement","readLocation","getName","outside","inside","isEq$1","location1","location2","betweenInlines","fromInline","toInline","skipNoMovement","fromLocation","toLocation","findLocationTraverse","findLocationSimple","findLocation","$_gau9ep48jkmcwl4x","prevLocation","nextLocation","hasSelectionModifyApi","getSel","modify","moveRel","moveByWord","$_dessn94bjkmcwl5p","setCaretPosition","isFeatureEnabled","inline_boundaries","setSelected","renderCaretLocation","findLocation$1","toggleInlines","selectedInlines","targetInlines","safeRemoveCaretContainer","composing","renderInsideInlineCaret","inlines","move","moveWord","setupSelectedState","moveNextWord","movePrevWord","$_dl6t9m4ajkmcwl5b","isFeatureEnabled$1","rangeFromPositions","hasOnlyTwoOrLessPositionsLeft","setCaretLocation","location$$1","deleteFromTo","ignore","nodeChanged","rescope$1","backspaceDeleteCollapsed","toPosition","backspaceDelete$3","$_dqvreg45jkmcwl4e","tableCellRng","tableSelection","removeTable","emptyCells","isRootFromElement","getClosestCell$1","getClosestTable","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableCells","getCellRangeFromStartTable","endCell","partialSelection","startCell","isWithinSameTable","getCellRng","getTableSelectionFromCellRng","getTableSelectionFromRng","getCellIndex","getSelectedCells","startIndex","endIndex","getAction","getActionFromCells","getActionFromRange","$_2x2sml4djkmcwl68","getRanges","ranges","rangeCount","getRangeAt","getSelectedNodes","hasMultipleRanges","$_admly54fjkmcwl6u","getCellsFromRanges","getCellsFromElement","selectedCells","getCellsFromElementOrRanges","rangeCells","getCellsFromEditor","$_7q5gk44ejkmcwl6p","deleteTableElement","deleteCellRange","action","deleteCaptionRange","emptyElement","deleteTableRange","startElm","getParentCaption","deleteRange$1","getParentCell","deleteBetweenCells","fromCell","toCell","isDeleteOfLastCharPos","fromCaption","emptyCaretCaption","validateCaretCaption","toCaption","deleteCaretInsideCaption","deleteCaretCells","deleteCaretCaption","deleteCaret","backspaceDelete$4","$_5lrlvq4cjkmcwl5t","nativeCommand","command","deleteCommand","forwardDeleteCommand","$_3ahn8y3pjkmcwkwc","getSpecifiedFontProp","getProperty","round$1","number","precision","factor","pow","toPt","fontSize","normalizeFontFamily","fontFamily","getComputedFontProp","getFontProp","$_3qs0f64hjkmcwl74","getFontSize","getFontFamily","findFirstCaretElement","isRangeAtStartOfNode","getCaretElement","fromFontSizeNumber","fontSizeNumber","fontSizes","fontClasses","fontNameAction","formatter","fontNameQuery","fontSizeAction","fontSizeQuery","isEq$2","rng1","$_axtxv74kjkmcwl84","findParent","hasParent","hasParentWithName","isTable$2","isTableCell$3","isCeFalseCaretContainer","hasBrBeforeAfter","isPrevNode","hasContentEditableFalseParent","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","normalize$1","normRng","$_21c07i4jjkmcwl7w","hasRightSideContent","scrollToBr","brElm","moveSelectionToBr","extraBr","insertBrAtCaret","isAfterLastNodeInContainer","containerBlock","containerBlockName","isControlKey","ctrlKey","insertBrBefore","insertBrAfter","hasBrAfter","isBeforeBr","isAnchorLink","isInsideAnchor","readInlineAnchorLocation","insertBrOutsideAnchor","anchorLocation","$_dc07up4ijkmcwl7n","cata","subject","onBefore","onOn","onAfter","situ","$_1s5vuk4njkmcwl8r","type$1","domRange","exact","range$1","exactFromRange","simRange","soffset","finish","foffset","getStart$1","startSitu","finishSitu","$_2v8ne64mjkmcwl8l","browser$3","clamp","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","readRange","getBookmark$2","bookmarkToNativeRng","store","newBookmark","storeNative","$_39c3zs4ljkmcwl86","indentElement","useMargin","unit","indentStyleName","styleValue","indentUnit","indentValue","queryCommandState","getSelectedBlocks","each$10","extend$2","map$3","inArray$2","EditorCommands","commands","ui","customCommand","skip_focus","quirks","queryCommandValue","addCommands","commandList","addCommand","queryCommandSupported","addQueryStateHandler","addQueryValueHandler","hasCustomCommand","execNativeCommand","isFormatMatch","toggleFormat","storeSelection","restoreSelection","queryCommandEnabled","translate","notificationManager","open","align","listElm","listParent","hasVisual","anchor","editingHost","selectNodeContents","alignStates","matchNode","paddingLeft","getEnd","list","Undo","undo","Redo","redo","nativeEvents","Dispatcher","toggleEvent","bindings","beforeFire","once","extra","bindingName","hi","isNative","customEventRootDelegates","getEventDispatcher","_eventDispatcher","toggleNativeEvent","$_ed2ug44qjkmcwl97","bubble","hasEventListeners","firePreProcess","firePostProcess","fireRemove","fireSwitchMode","fireObjectResizeStart","fireObjectResized","$_q3ric4tjkmcwl9q","setEditorCommandState","cmd","toggleReadOnly","controlSelection","hideResizeRect","setMode","getMode","initialized","isReadOnly","DOM$1","getEventTarget","eventName","event_root","eventRoot","isListening","hidden","fireEvent","bindEventDelegate","eventRootElm","delegate","delegates","editorManager","activeEditor","editors","EditorObservable","bindPendingEventDelegates","_pendingNativeEvents","unbindAllNativeEvents","getContainer","EditorObservable$1","each$11","explode$2","keyCodeLookup","f9","f10","f11","modifierNames","Shortcuts","shortcuts","pendingPatterns","parseShortcut","shortcut","keyCode","charCode","access","ctrl","meta","createShortcut","desc","cmdFunc","subpatterns","hasModifier","altKey","isFunctionKey","matchShortcut","shiftKey","executeShortcutAction","any$1","ancestor$3","closest$3","sibling$4","child$4","descendant$3","$_szg1f4xjkmcwlad","focus$$1","blur$$1","blur","_doc","focusInside","$_468a0m4wjkmcwla6","getContentEditableHost","getCollapsedNode","getFocusInElement","normalizeSelection","focusBody","setActive","hasElementFocus","hasIframeFocus","iframeElement","hasInlineFocus","rawBody","hasFocus$1","focusEditor","refreshContentEditable","contentEditableHost","activateEditor","bookmarkRng","focus$1","skipFocus","$_e3v8sn4vjkmcwl9y","getProp","rawElm","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","getBoundingClientRect$1","isInsideElementContentArea","bodyElm","transpose","deltaX","deltaY","isXYInContentArea","targetElm","transposedPoint","fromDomSafe","isEditorAttachedToDom","rawContainer","getContentAreaContainer","$_8we2e850jkmcwlaw","NotificationManagerImpl","unimplemented","close","getArgs","NotificationManager","notifications","getImplementation","getNotificationManagerImpl","getTopNotification","progressBar","addNotification","notification","closeNotification","otherNotification","getNotifications","registerEvents","serviceMessage","service_message","icon","WindowManagerImpl","alert","confirm","getParams","setParams","WindowManager","getWindowManagerImpl","funcBind","fireOpenEvent","fireCloseEvent","addWindow","closeWindow","otherWindow","getTopWindow","getWindows","resolvePluginName","targetUrl","matchUrl","pluginUrlToMessage","plugin","displayNotification","displayError","_skinLoaded","uploadError","pluginLoadError","initError","console$$1","$_b9je0i54jkmcwlbe","PluginManager$1","XMLHttpRequest","Uploader","uploadStatus","pendingPromises","pathJoin","path1","path2","defaultHandler","blobInfo","progress","xhr","formData","withCredentials","credentials","upload","onprogress","loaded","total","json","JSON","responseText","basePath","FormData","filename","send","noUpload","handlerSuccess","handlerFailure","resolvePending","blobUri","uploadBlobInfo","openNotification","markPending","closeNotification_1","markUploaded","removeFailed","percent","isDefaultHandler","pendingUploadBlobInfo","uploadBlobs","blobInfos","isUploaded","isPending","Blob","properties","FileReader","Uint8Array","requestAnimationFrame$1","atob","base64","$_b0eesx5hjkmcwld6","blobUriToBlob","rejectWithError","responseType","response","parseDataUri","uri","decodeURIComponent","dataUriToBlob","uriToBlob","blobToDataUri","reader","onloadend","readAsDataURL","$_7eufcj5djkmcwlcv","imageToBlobInfo","blobCache","img","getByUri","dataUri","findFirst","cachedBlobInfo","getAllImages","ImageScanner","cachedPromises","images","imageInfo","newPromise","count$1","rnd","now","uuid","$_8flfjw5jjkmcwldd","BlobCache","mimeToExt","mime","mimes","toBlobInfo","removeByUri","UploadStatus","PENDING","UPLOADED","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","EditorUpload","uploader","imageScanner","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","replacementUrl","replaceUrlInUndoStack","level","fragments","replaceImageUri","images_reuse_filename","uploadImages","images_upload_url","images_upload_base_path","images_upload_credentials","images_upload_handler","scanForImages","imageInfos","filteredResult","uploadInfo","images_replace_blob_uris","uploadImagesAuto","automatic_uploads","isValidDataUriImage","imgElm","images_dataimg_filter","resultItem","replaceBlobUris","editorUpload","source_view","isBlockElement","isValidTarget","hasBlockParent","shouldRemoveTextNode","addRootBlocks","rootBlockNode","tempNode","wrapped","rootNodeName","forced_root_block_attrs","setup$2","$_5utnj35ljkmcwldh","getStartNode","getEndNode","getFirstChildren","getLastChildren$1","hasAllContentsSelected","moveEndPoint$1","hasAnyRanges","sel","NodeChange","lastRng","lastPath","isSameElementPath","currentPath","nativeRng","fakeRng","selectionChange","disable_nodechange","VDirection","getAbsolutePosition","getBodyPosition","getScrollPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","calculatePosition","bodyPosition","mousePosition","calc","$_7vqqhl5qjkmcwlfd","isContentEditableFalse$7","isContentEditableTrue$4","isDraggable","isValidDropTarget","targetElement","dragElement","cloneElement","cloneElm","createGhost","clonedElm","ghostElm","padding","boxSizing","appendGhostToBody","moveGhost","maxX","maxY","removeElement","isLeftMouseButtonPressed","hasDraggableElement","applyRelPos","relX","start$1","ceElm","elmPos","screenX","screenY","scrollWidth","scrollHeight","relY","ghost","move$1","throttledPlaceCaretAt","placeCaretAt","movement","dragging","targetPos","getRawTarget","drop","targetClone_1","targetClone","insertContent","removeDragState","stop$$1","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","rootDocument","blockIeDrop","realTarget","$_amfo0m5pjkmcwlf7","getNodeClientRects","toArrayWithNode","findUntil","walkUntil","isAboveFn","isBeflowFn","targetClientRect","line","aboveLineNumber","lineNumber","isLineNumber","upUntil","Up","downUntil","Down","positionsUntil","walkFn","isBelowFn","getClientRect","isAboveLine","isLine","isContentEditableFalse$8","findNode$1","distanceToRectLeft","distanceToRectRight","isInside","findClosestClientRect","oldClientRect","oldDistance","newDistance","walkUntil$1","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getFakeCaretTargets","caretInfo","closestCaret","closestNodeRect","contentEditableFalseNodeRects","targetNodeRects","isXYWithinRange","$_95lcbc5ujkmcwlg1","setup$3","renderFocusCaret","$_8glegd5vjkmcwlg3","$_6bj5795wjkmcwlg6","BACKSPACE","DELETE","DOWN","ENTER","LEFT","RIGHT","SPACEBAR","TAB","UP","modifierPressed","metaKeyPressed","isContentEditableTrue$5","isContentEditableFalse$9","isAfterContentEditableFalse$1","isBeforeContentEditableFalse$1","getContentEditableRoot$1","SelectionOverrides","selectedContentEditableNode","fakeCaret","realSelectionId","isFakeSelectionElement","getRealSelectionElement","setRange","getRange","showCaret$$1","getNormalizedRangeEndPoint$$1","blockCaretContainer","contentEditableRoot","removeContentEditableSelection","handleTouchSelect","moved","setContentEditableSelection","hasNormalCaretPosition","isInSameBlock$$1","hasBetterMouseTarget","targetBlock","caretBlock","isPasteBin","isRangeInCaretContainer","clipboardData","realSelectionElement","clearData","setData","outerText","addCss","contentStyles","rootClass","isWithinCaretContainer","$realSelectionContainer","origTargetClone","removeAllRanges","addRange","isValidPrefixAttrName","trimComments","isInvalidUri","allow_html_data_urls","findEndTagIndex","tokenRegExp","shortEndedElements","SaxParser","fix_self_closing","endRegExp","attrList","textData","isInternalElement","removeInternalElements","fillAttrsMap","isShortEnded","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","processHtml","anyAttributesRequired","selfClosing","attrRegExp","fixSelfClosing","stack","filteredUrlAttrs","scriptUriRegExp","processEndTag","valid","parseAttribute","val2","val3","attrRule","trimRegExp","unescape","self_closing_elements","remove_internals","allow_conditional_comments","findEndTag","SaxParser$1","trimHtml","tempAttrs","trimContentRegExp","trimInternal","endTagIndex","matchLength","bogusAllRegExp","getTempAttrs","trimExternal","$_2varuf5zjkmcwlgq","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","middle","getMiddleSnake","i2","buildSnake","sum","$_3xze2m62jkmcwlh7","getOuterHtml","createFragment$1","insertAt","removeAt","applyDiff","read$3","write","currentFragments","$_cyedqm61jkmcwlh3","fromHtml$1","fromTags","tags","fromText$1","texts","fromDom$1","$_bos53z64jkmcwlhd","get$6","set$3","docDom","contentElements","getOuter","$_xg5463jkmcwlhb","undoLevelDocument","lazyTempDocument","implementation","createHTMLDocument","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","trimmed","applyToEditor","getLevelContent","getCleanLevelContent","hasEqualContent","level1","level2","hasEqualCleanedContent","isEq$3","$_3cqp0r5yjkmcwlgf","UndoManager","isFirstTypedCharacter","locks","isUnlocked","setTyping","typing","setDirty","addNonTypingUndoLevel","endTyping","beforeChange","isDirty","lastLevel","modKey","isInsertReplacementText","inputType","isInsertTextDataNull","addShortcut","currentLevel","custom_undo_redo_levels","clear","hasUndo","hasRedo","callback1","callback2","isEq$4","matchesUnInheritedFormatSelector","formatList","inherit","matchParents","matchName","matchItems","itemName","similar","onmatch","matchAll","startElement","matchedFormatNames","checkedMap","canApply","defaultBlock","$_axwnk168jkmcwlim","split$1","$_bnmynr69jkmcwlir","ZWSP$1","CARET_ID$1","importNode","getEmptyCaretContainers","isCaretContainerEmpty","findFirstTextNode","createCaretContainer","fill","trimZwspFromCaretContainer","removeCaretContainerNode","removeCaretContainer","insertCaretContainerNode","formatNode","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","disableCaretContainer","setup$4","replaceWithCaretFormat","innerMost","isFormatElement","inlineElements","postProcessHooks","filter$2","each$12","addPostProcessHook","postProcess","isPre","hasPreSibling","pre","joinPre","pre1","pre2","$_dp9y746ajkmcwlit","MCE_ATTR_RE","each$13","isEq$5","isTableCell$4","lastIdx","wrap$2","matchName$1","isColorFormatAndAnchor","links","find$4","removeNode$1","rootBlockElm","list_block","removeFormat","compareNode","stylesModified","remove_similar","valueOut","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","mixed","remove$8","splitToFormatRoot","process","lastContentEditable","removeRngStyle","textDecoration","ceFalseOverride","$_2vklhc6cjkmcwlj5","each$14","isElementNode","findElementSibling","mergeSiblingsNodes","tmpSibling","elementUtils","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","processUnderlineAndColor","mergeUnderlineAndColor","mergeBackgroundColorAndFontSize","backgroundColor","mergeSubSup","mergeSiblings","merge_siblings","clearChildStyles","clear_child_styles","mergeWithChildren","mergeWithParents","merge_with_parents","$_ehzows6bjkmcwliw","each$15","isElementNode$1","applyFormat","setElementFormat","fmt","onformat","styleVal","applyNodeStyle","found","applyRngStyle","nodeSpecific","wrapElm","currentWrapElm","parentName","childCount","getChildCount","getChildElementNode","mergeStyles","curSelNode","$_bcenmc66jkmcwlhp","each$16","setup$5","formatChangeData","currentFormats","matchedFormats","addListeners","formats","formatChangeItems","formatChanged","formatChangeState","$_5j3j9s6djkmcwljg","get$7","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","preview","textAlign","aligncenter","display","marginLeft","marginRight","alignright","alignjustify","bold","fontWeight","italic","fontStyle","underline","strikethrough","forecolor","hilitecolor","fontname","fontsize","fontsize_class","blockquote","subscript","superscript","code","removeformat","$_8oc5be6fjkmcwljl","FormatRegistry","unregister","each$17","parsedSelectorToHtml","ancestry","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","parentRequired","ancestorName","siblingElm","selectorToHtml","parseSelector","parseSelectorItem","$0","$1","$2","$3","$4","getCssText","previewFrag","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","removeVars","numValue","parseFloat","$_ga7lpr6gjkmcwlk1","toggle$3","$_1zpcor6hjkmcwlk7","setup$6","$_2ind0x6ijkmcwlk8","Formatter","hasOwnProperty$1","shallow$1","baseMerge","merger","objects","curObject","htmlParser","addAttributeFilter","internalName","cleanup","trimTrailingBr","brNode1","brNode2","$_ft0zjh6mjkmcwlkr","preProcess","impl","oldDoc","shouldFireEvent","no_events","$_27apc6njkmcwll3","removeAttrs","addFontToSpansFilter","domParser","face","addStrikeToSpanFilter","addFilters","register$1","$_2klegh6pjkmcwllk","whiteSpaceRegExp$3","typeLookup","walk$3","Node$2","selfAttrs","selfAttr","cloneAttrs","refNode","paddEmptyNode","brPreferred","padd_empty_with_br","isPaddedWithNbsp","hasOnlyChild","isPadded","isEmpty$2","whitespaceElements","isLineBreakNode","register$2","remove_trailing_brs","prevName","whiteSpaceElements","appendRel","addNoOpener","newRel","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","makeMap$4","each$18","explode$3","extend$3","DomParser","nodeFilters","attributeFilters","matchedNodes","matchedAttributes","root_name","fixInvalidChildren","newParent","currentNode","childNode","nonSplitableElements","textBlockElements","fixed","filterNode","getNodeFilters","getAttributeFilters","fi","fl","isInWhiteSpacePreservedElement","invalidChildren","rootBlockName","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","createNode","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","attrFiltersLen","isRootContent","addTempAttr","postProcess$1","outArgs","getHtmlFromNode","getInner","parseHtml","serializeNode","htmlSerializer","toHtml","DomSerializer","addRules","rules","setRules","DomSerializer$1","domSerializer","BookmarkManager","BookmarkManager$1","isContentEditableFalse$10","isContentEditableTrue$6","getContentEditableRoot$2","ControlSelection","selectedElm","selectedElmGhost","resizeHelper","resizeHandles","selectedHandle","startX","startY","selectedElmX","selectedElmY","startW","startH","ratio","resizeStarted","startScrollWidth","startScrollHeight","editableDoc","nw","ne","se","sw","isImage","isEventOnImageOutsideRange","contextMenuSelectImage","getResizeTarget","isResizable","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","resize_img_proportional","endGhostResize","setSizeProp","showResizeRect","targetWidth","targetHeight","unbindResizeHandleEvents","handleElm","startDrag","unSelectabe","updateResizeRect","controlElm","isChildOrEqual","disableGeckoResize","isWithinContentEditableFalse","delayedSelect","throttledUpdateResizeRect","hasCeProperty","findParent$1","findClosestIeRange","rects","createTextRange","moveToElementText","moveToPoint","moveOutOfContentEditableFalse","fromPoint$1","pointDoc","caretPositionFromPoint","offsetNode","caretRangeFromPoint","$_52q21w6wjkmcwlna","processRanges","$_8161126xjkmcwlnd","fromElements","$_a3l7fy70jkmcwloa","tableModel","tableRow","cellPosition","getSpan","isNaN","fillout","rowspan","colspan","rows","y2","x2","cellExists","skipCellsX","getWidth","row","findElementPos","extractRows","sx","sy","ey","newRows","subTable","createDomTable","tableElement","tableBody","modelRowsToDomRows","fromDom$2","tableElm","toDom","subsection","endElement","$_6wuzo771jkmcwlof","findParentListContainer","getFullySelectedListWrappers","listCont","wrap$3","innerElm","directListWrappers","commonAnchorContainer","getWrapElements","wrapElements","listWrappers","allWrappers","emptyFragment","getFragmentFromRange","getParentTable","getTableFragment","selectedTableCells","firstCell","lastCell","fullTableModel","sectionedTableModel","getSelectionFragment","read$4","$_2bm266zjkmcwlnj","tmpElm","contextual","htmlText","$_eu7sms6yjkmcwlnf","createContextualFragment","pasteHTML","$_b7rwud72jkmcwlow","getEndpointElement","real","getStart$2","skipEmptyTextNodes","forwards","orig","getNode$1","endElm","selectedBlocks","select$1","each$19","isNativeIeSelection","isAttachedToDom","isValidRange","Selection$1","bookmarkManager","selectedRange","explicitRange","selectorChangedData","getEnd$$1","compareEndPoints","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","ieRange","setBaseAndExtent","anchorNode","focusNode","setNode","getSelectedBlocks$$1","isForward","anchorRange","focusRange","anchorOffset","focusOffset","selectorChanged","currentSelectors","matchedSelectors","isContentEditableFalse$11","getSelectedNode$1","isAfterContentEditableFalse$2","isBeforeContentEditableFalse$2","getVisualCaretPosition","isMoveInsideSameBlock","moveToCeFalseHorizontally","getNextPosFn","peekCaretPosition","rangeIsInContainerBlock","isBeforeContentEditableFalseFn","moveToCeFalseVertically","walkerFn","linePositions","nextLinePositions","closestNextLineRect","caretClientRect","dist1","dist2","contentEditableFalseNode","caretPositions","createTextBlock","textBlock","exitPreBlock","newBlock","getNextVisualCaretPosition","getPrevVisualCaretPosition","getHorizontalRange","newRange","getVerticalRange","moveH$1","moveV$1","defaultPatterns","patterns","matchesEvent","match$1","execute","$_3olmgr77jkmcwlpj","executeKeydownOverride","setup$7","$_emza9w75jkmcwlp9","getParentInlines","hasOnlyOneChild$1","deleteLastPosition","parentInlines","isFormatElement$$1","deleteCaret$1","backspaceDelete$5","$_7tr96779jkmcwlpz","executeKeydownOverride$1","executeKeyupOverride","setup$8","$_4dsl7478jkmcwlpw","firstNonWhiteSpaceNodeSibling","moveToCaretPosition","tempElm","lastNode","getEditableRoot","editableRoot","getParentBlock$2","getParentBlockName","isListItemParentBlock","$_79nvm87ejkmcwlqu","hasFirstChild","hasParent$1","isListBlock","isNestedList","getContainerBlock","containerBlockParent","isFirstOrLastLi","insert$1","createNewBlock","newBlockName","tmpRng","$_5ckamj7djkmcwlqo","isEmptyAnchor","isTableCell$5","emptyBlock","containerAndSiblingName","canSplitBlock","trimInlineElementsOnLeftSideOfBlock","firstChilds","normalizeZwspOffset","includeZwspInRange","trimLeadingLineBreaks","getEditableRoot$1","setForcedBlockAttrs","forcedRootBlockName","wrapSelfAndSiblingsInDefaultBlock","addBrToBlockIfNeeded","insert$2","parentBlockName","clonedNode","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","$_dr0y3j7cjkmcwlqe","shouldInsertBr","shouldBlockNewLine","$_g7oj6o7gjkmcwlr8","newLineAction","shouldBlockNewLine$1","isBrMode","requiredState","brMode","inListBlock","inBlock","inPreBlock","inSummaryBlock","shouldPutBrInPre$1","inBrContext","hasShiftKey","canInsertIntoEditableRoot","rootEditable","match$2","predicates","isMatch","getAction$1","$_47r1sh7fjkmcwlr1","insert$3","$_fs2ah67bjkmcwlq8","endTypingLevel","handleEnterKeyEvent","setup$9","$_ni5l67ajkmcwlq7","isValidInsertPoint","isAtStartOrEnd","insertNbspAtPosition","insertAtLocation","insertAtCaret$2","boundaryLocation","insertAtSelection","$_2cwo047ijkmcwlrj","executeKeydownOverride$2","setup$10","$_agfz917hjkmcwlrh","findBlockCaretContainer","removeIeControlRect","handleBlockContainer","setup$11","$_gfp1h7jjkmcwlrn","setup$12","$_ejk8vk74jkmcwlp8","Quirks","isGecko","isWebKit","mceInternalUrlPrefix","mceInternalDataType","setMceInternalContent","selectionHtml","internalContent","dataTransfer","escape","getMceInternalContent","getData","insertClipboardContents","internal","emptyEditorWhenDeleting","serializeRng","allContentsSelected","allRng","allSelection","selectAll","inputMethodFocus","removeHrOnBackspace","Range","body_1","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","template","setAttributeNode","isSelectionAcrossElements","applyAttributes","disableBackspaceIntoATable","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","addBrAfterLastLinks","fixLinks","setDefaultBlockType","showBrokenImageIcon","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","isTextBlockNode","normalizeSelection$1","setup$13","detail","preventSummaryToggle","filterDetails","setup$14","DOM$2","appendStyle","createParser","autoFocus","auto_focus","destroyed","initEditor","execCallback","getStyleSheetLoader","initContentBody","skipWrite","contentCssText","visibility","orgVisibility","iframeHTML","bodyEl","content_document","content_window","bodyElement","hex_colors","force_hex_style_colors","class_filter","annotator","_nodeChangeDispatcher","browser_spellcheck","gecko_spellcheck","spellcheck","directionality","nowrap","whiteSpace","protect","startContent","contentCSS","content_style","$_fssayf58jkmcwlbz","DOM$3","relaxDomain","ifr","domain","hostname","bodyUuid","domainRelaxUrl","normalizeHeight","normalizedHeight","createIframeElement","title","customAttrs","iframe","frameBorder","allowTransparency","getIframeHtml","bodyId","bodyClass","documentBaseURI","getURI","createIframe","isDomainRelaxed","contentAreaContainer","iframeContainer","init$1","boxInfo","editorContainer","orgDisplay","$_9jv4e17njkmcwlsj","DOM$4","initPlugin","initializedPlugins","pluginInstance","Plugin","trimLegacyPrefix","initPlugins","initTheme","Theme","renderFromLoadedTheme","minHeight","re","min_height","renderUI","deltaWidth","deltaHeight","iframeHeight","renderFromThemeFunc","createThemeFalseResult","renderThemeFalseIframe","renderThemeFalse","renderThemeUi","init$2","rtl","rtl_ui","i18n","setCode","aria_label","getLang","content_css","toAbsolute","$_4z079955jkmcwlbj","DOM$5","hasSkipLoadPrefix","loadLanguage","scriptLoader","language_url","loadTheme","themeUrl","theme_url","loadPlugins","render","form","formElement","hasHiddenInput","formEventDelegate","_mceOldSubmit","triggerSave","windowManager","encoding","save","_beforeUnload","set_dirty","$_9u29xe4yjkmcwlai","add$4","sidebars","$_gcw4n27ojkmcwlsr","each$20","trim$4","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","URI","baseUri","base_uri","isProtocolRelative","protocol","toAbsPath","part","userInfo","port","setPath","toRelative","tu","uu","toRelPath","noHost","isSameOrigin","defaultPort","breakPoint","outPath","nb","noProtoHost","loc","pathname","defaultFormat","trimEmptyContents","emptyRegExp","getContentFromBody","getContent$1","traverse","findMatchingNodes","nodeMatches","attrMatches","filter$$1","filter$3","defaultFormat$1","isTreeNode","moveSelection","setEditorHtml","setContentString","padd","setContentTree","setContent$1","DOM$6","restoreOriginalStyles","safeDestroy","clearDomReferences","restoreForm","remove$9","is_removing","automatic","DOM$7","extend$4","each$21","resolve$4","ie$2","Editor","documentBaseURL","baseURI","language_load","loadedCSS","editorCommands","buttons","menuItems","cache_suffix","override_viewport","callbackLookup","lang_1","i18n_1","addButton","onclick","stateSelector","tooltip","addSidebar","addMenuItem","addContextToolbar","contextToolbars","focusedEditor","setProgressState","isNotDirty","oldState","urlconverter_callback","visual_table_class","visual_anchor_class","_scanForImages","documentFocusInHandler","beforeUnloadDelegate","EditorManager","isEditorUIElement","$_48zpgt7xjkmcwlum","isManualNodeChange","registerPageMouseUp","throttledStore","mouseUpPage","registerFocusOut","registerMouseUp","registerEditorEvents","register$3","$_d657g07yjkmcwlun","DOM$8","isEditorUIElement$1","isUIElement","customSelector","custom_ui_selector","getActiveElement","blurredEditor","unregisterDocumentEvents","setup$15","$_6zk6867wjkmcwluj","$_9pp0ut7zjkmcwlut","newCode","_dir","getCode","langData","getLangData","values_1","DOM$9","explode$4","each$22","extend$5","instanceCounter","boundGlobalEvents","legacyEditors","isValidLegacyKey","globalEventDelegate","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","purgeDestroyedEditor","majorVersion","minorVersion","releaseDate","preInit","tinymce","tinyMCEPreInit","srcScript","currentScript","base_url","pluginBaseUrls","plugin_base_urls","invalidInlineTargets","isInvalidInlineTarget","createId","findTargets","targets","types","forms","editor_deselector","editor_selector","provideResults","initEditors","initCount","createEditor","existingEditor","addI18n","EditorManager$1","RangeUtils","normalizedRng","compareRanges","getCaretRangeFromPoint","extendClass","initializing","RangeUtils$1","round$2","relativePosition","targetW","targetH","create$3","findBestRelativePosition","constrainRect","rels","inflate","intersect","cropRect","x1","y1","clamp$1","clampRect","fixedSize","underflowX1","underflowY1","overflowX2","overflowY2","cx2","cy2","fromClientRect","$_es7eh281jkmcwlv1","$_e5pe6n82jkmcwlv8","typeClass","lctype","controlType","ControlType","each$23","extend$6","Class$1","_super","Class","mixins","mixin","Mixins","dummy","createMethod","name_1","Methods","Properties","fieldName","Statics","Defaults","min$1","max$1","round$3","Color","rgb2hsv","minRGB","maxRGB","hsvToRgb","hue","saturation","brightness","side","chroma","toRgb","toHsv","quote","$_6nxmdo85jkmcwlvi","$_cygb5686jkmcwlvk","XHR","ready","success_scope","error_scope","overrideMimeType","content_type","crossDomain","setRequestHeader","requestheaders","extend$7","JSONRequest","sendRPC","ecb","scb","ty","method","localStorage$$1","create$4","storage","getItem","setItem","removeItem","configurable","localStorage","LocalStorage","publicApi","geom","Rect","util","Delay","Tools","VK","EventDispatcher","Observable","I18n","JSONP","Serializer","Selection","Entities","Factory","Env","FocusManager","isMac","Tinymce","exportToModuleLoaders","exportToWindowGlobal","tinyMCE","global","global$1","getMinWidth","getMinHeight","$_2agnwba2jkmcwo8k","$_gf01w3a4jkmcwo8n","minWidth","multiline","onSubmit","$_4xs1xna1jkmcwo8j","$_atmzsea0jkmcwo8i","$_f9f308a5jkmcwo8o","_get","sessionStorage","_add","_update","_remove","_reset","update","Vue","directive","twoWay","binding","vnode","picker","Pikaday","field","onSelect","setVModelValue","previousMonth","nextMonth","months","weekdays","weekdaysShort","findVModelName","directives","expression","eval","assumeExternalTargets","editorSettings","link_assume_external_targets","hasContextToolbar","link_context_toolbar","getLinkList","link_list","hasDefaultLinkTarget","default_link_target","getDefaultLinkTarget","getTargetList","target_list","setTargetList","shouldShowTargetList","getRelList","rel_list","hasRelList","getLinkClassList","link_class_list","hasLinkClassList","shouldShowLinkTitle","link_title","allowUnsafeLinkTarget","$_7h5h1kfvjkmcwp8j","global$2","global$3","appendClickRemove","dispatchEvent","open$$1","createEvent","initMouseEvent","opener","$_50rjczfwjkmcwp8l","global$4","toggleTargetRules","isUnsafe","addTargetRules","removeTargetRules","trimCaretContainers","getAnchorElement","isImageFigure","getAnchorText","anchorElm","isLink","hasLinks","isOnlyTextSelected","attachState","linkAttrs","attach","linkImageFigure","unlink","unlinkImageFigure","fig","$_f96xu2g0jkmcwp91","global$5","global$6","createLinkList","linkList","buildListItems","inputList","itemCallback","startItems","appendItems","menuItem","menu","delayedConfirm","showDialog","initialText","onlyText","textListCtrl","linkListCtrl","relListCtrl","targetListCtrl","classListCtrl","linkTitleCtrl","linkListChangeHandler","textCtrl","lastControl","control","buildAnchorListControl","anchorList","onselect","updateText","urlChange","inp","onBeforeCall","toJSON","onchange","onPostRender","textStyle","filetype","autofocus","onkeyup","onpaste","onbeforecall","insertLink","removeLink","resultData","open$1","$_1hdbnpg2jkmcwp96","getLink","getSelectedLink","getHref","isContextMenuVisible","contextmenu","hasOnlyAltModifier","gotoLink","targetEl","openDialog","gotoSelectedLink","leftClickedOnAHref","setupGotoLinks","toggleActiveState","toggleViewLinkState","toggleVisibility","$_dlew49ftjkmcwp8f","$_3nvo42fsjkmcwp8b","$_aoohpyg5jkmcwp9f","setupButtons","onpostrender","setupMenuItems","prependToContext","setupContextToolbars","$_3wxsofg6jkmcwp9g","hasProPlugin","$_ee0gktiejkmcwpkb","clipboard","$_6khw6eigjkmcwpkp","firePastePreProcess","isWordHtml","wordContent","firePastePostProcess","firePastePlainTextToggle","firePaste","ieFake","$_d8ovv8ijjkmcwpku","shouldPlainTextInform","shouldBlockDrop","shouldPasteDataImages","shouldFilterDrop","getPreProcess","getPostProcess","getWebkitStyles","shouldRemoveWebKitStyles","shouldMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getRetainStyleProps","getWordValidElements","defaultValidElements","shouldConvertWordFakeLists","shouldUseDefaultFilters","$_5peev0ikjkmcwpkv","shouldInformUserAboutPlainText","userIsInformedState","togglePlainTextPaste","pasteFormat","$_7rw4pkiijkmcwpks","pasteHtml","pasteText","$_gh26txihjkmcwpkr","internalMimeType","internalMark","mark","unmark","isMarked","$_93gcj3irjkmcwpld","internalHtmlMime","isPlainText","toBRs","openContainer","rootTag","rootAttrs","toBlockElements","tagOpen","tagClose","paragraphs","stitch","convert","$_3nag2qisjkmcwple","global$7","global$8","global$9","ignoreElements","trimSpaces","s1","s2","createIdGenerator","isMsEdge","$_2u5gcyj0jkmcwplv","isWordContent","isNumericList","isBulletList","convertFakeListsToProperLists","currentListNode","prevListNode","txt","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","listName","_listLevel","nodeText","filterStyles","outputStyles","filterWordContent","retainStyleProperties","spaces","$_759xt5ivjkmcwplk","processResult","cancelled","postProcessFilter","tempBody","postProcessArgs","filterContent","preProcessArgs","$_7a37nniujkmcwplh","isAbsoluteUrl","isImageUrl","createImage","pasteHtmlFn","createLink","linkSelection","insertImage","smartInsertContent","$_3wqigwj1jkmcwplz","pasteHtml$1","internalFlag","getDataTransferItems","legacyText","contentType","getClipboardContent","clipboardEvent","hasContentType","clipboardContent","mimeType","hasHtmlOrText","getBase64FromUri","extractFilename","pasteImage","Image","existingBlobInfo","isClipboardEvent","pasteImageData","processItems","hadImage","getAsFile","paste_data_images","isBrokenAndroidClipboardEvent","isKeyboardPasteEvent","registerEventHandlers","pasteBin","keyboardPastePlainTextState","keyboardPasteTimeStamp","insertClipboardContent","isKeyBoardPaste","plainTextMode","isPlainTextHtml","getHtml","isDefaultContent","removePasteBinOnKeyUp","getLastRng","clipboardTimer","clipboardDelay","getEl","registerEventsAndFilters","isPasteInsert","isWebKitFakeUrl","isDataUri","getPasteBinParent","isExternalPasteBin","delegatePasteEvents","pasteBinElm","pasteBinDefaultContent","isDefault","lastRngCell","pasteBinClone","pasteBinClones","dirtyWrappers","cleanWrapper","copyAndRemove","toElm","fromElm","PasteBin","Clipboard","hasWorkingClipboardApi","setHtml5Clipboard","setClipboardData","fallback","markedHtml","contenteditable","offscreenRange","cut","$_5k6lg4j3jkmcwpmg","global$10","getCaretRangeFromEvent","isPlainTextFileUrl","plainTextContent","setFocusedRange","draggingInternallyState","dropContent","content_1","$_eiqz0aj4jkmcwpmj","$_9alamfj6jkmcwpmm","addPreProcessFilter","filterFunc","addPostProcessFilter","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","webKitStylesSetting","dom_1","node_1","inputStyles","inputValue","currentValue","removeUnderlineAndFontInAnchor","$_ca6muwj7jkmcwpmo","stateChange","postRender","selectable","$_98erksj8jkmcwpmr","Api","endpoint","Resourse","EndPoint","defaultFilter","pageSize","pageIndex","isPaginate","byCache","hasDefaultFilters","lastAction","post","_post","put","_put","delete","_delete","dataItem","_dataItem","export","_export","_upload","folder","makeUri","axios","handleSuccess","handleError","model","_filters","assign","END_POINT_DEFAULT","configHeaders","accesstoken","Cache","ACCESS_TOKEN","headers","common","addCache","Auth","login","Data","DataList","stringify","Add","theString","regEx","$httpParamSerializer","entries","use","VueAxios","getScripts","getAudioTemplateCallback","getVideoTemplateCallback","hasLiveEmbeds","shouldFilterHtml","getUrlResolver","hasAltSource","hasPoster","hasDimensions","$_6qt1nth3jkmcwpf2","getVideoScriptMatch","prefixes","$_5qpz66h7jkmcwpf7","trimPx","addPx","setSize","$_1gasfuh8jkmcwpf8","getMaxWidth","getMaxHeight","setMaxWidth","setMaxHeight","getEphoxEmbedIri","isEphoxEmbed","htmlToDataSax","source1","movie","videoScript","source2","poster","ephoxEmbedHtmlToData","htmlToData","$_1f89fyh4jkmcwpf3","guess","mp3","wav","mp4","webm","ogg","swf","fileEnd","$_e86s3ihcjkmcwpfk","setAttributes","updatedAttrs","normalizeHtml","updateHtmlSax","updateAll","hasImage","sourceCount","imgAttrs","isEphoxEmbed$1","updateEphoxEmbed","updateHtml","$_6s992lhdjkmcwpfn","urlPatterns","regex","allowFullscreen","getUrl","_loop_1","matchPattern","getFlashHtml","getAudioHtml","audioTemplateCallback","source2mime","getVideoHtml","videoTemplateCallback","source1mime","getScriptHtml","dataToHtml","dataIn","embed","$_65qpjdhbjkmcwpfc","embedPromise","rej","wrappedResolve","defaultPromise","loadedData","getEmbedHtml","embedHandler","isCached","$_74pv8fh9jkmcwpf9","doSyncSize","widthCtrl","heightCtrl","doSizeControls","constrained","doUpdateSize","isContrained","oldWidth","oldHeight","newWidth","newHeight","syncSize","updateSize","createUi","onChange","recalcSize","layout","spacing","ariaLabel","$_gd8vqohhjkmcwpg2","embedChange","errorMessage","dataEmbed","getSource","addEmbedHtml","fromJSON","selectPlaceholder","beforeObjects","afterObjects","handleInsert","submitForm","populateMeta","generalFormItems","advancedFormItems","reserialise","embedTextBox","flex","updateValueOnChange","forId","bodyType","$_3njyjoh0jkmcwpew","$_eg0prjgzjkmcwpeu","$_8o48izhijkmcwpg5","sanitize","blocked","$_f1oicehmjkmcwpge","createPlaceholderNode","placeHolder","retainAttributesAndInnerHtml","createPreviewIframeNode","previewWrapper","previewNode","shimNode","allowfullscreen","frameborder","sourceNode","innerHtml","isWithinEphoxEmbed","placeHolderConverter","$_f6hjinhljkmcwpga","boolAttrs","realElm","realElmName","$_b6ycdhhjjkmcwpg6","$_c1o1r8hnjkmcwpgg","selectedNode","objectType","$_8yods0hojkmcwpgh","$_ew8gthhpjkmcwpgk","webpackContext","req","webpackContextResolve","applyListFormat","$_55fky08fjkmcwo2a","$_cjqqqe8ejkmcwo28","getNumberStyles","getBulletStyles","$_2zo4iv8hjkmcwo2f","isChildOfBody","isTableCellNode","isListNode","getSelectedStyleType","$_djj0lo8ijkmcwo2g","styleValueToText","toMenuItems","$_cbyrf58jjkmcwo2h","listState","tableCellIndex","updateSelection","listStyleType","addSplitButton","onshow","addControl","$_d74fz58gjkmcwo2b","hasPlugin","getPreviewDialogWidth","getPreviewDialogHeight","getContentStyle","$_6hy26xjfjkmcwppy","getPreviewHtml","previewHtml","headHtml","contentStyle","body_id","body_class","preventClicksOnLinksScript","dirAttr","injectIframeContent","sandbox","encodeURIComponent","$_5s7etcjgjkmcwppz","dialogHtml","dialogWidth","dialogHeight","iframeElm","$_4mmnpbjdjkmcwppw","$_c197icjcjkmcwppv","$_eluyd4jijkmcwpq6","_vm","_h","$createElement","_self","staticRenderFns","component","_m","staticClass","staticStyle","$event","dialogChangeLog","_v","_s","changelog","versao","$$v","domProps","detalhes","rawName","urlFoto","user","escolaNome","irParaPortalCorporativo","logout","_l","nomeTotalizador","valor","introJs","require","steps","_intro","setOption","oncomplete","END_POINT_PORTAL_CORPORATIVO","tutorialPassoId","chaveIdentificacaoSistema","CHAVE_IDENTIFICACAO_SISTEMA","filterBehavior","dataList","_element","addStep","intro","$$selectedVal","options","escola_escolhida","multiple","escola","escolaId","nomeEscola","trocarEscola","estagioId","executeFilter","$set","_q","ehAvaliacao","eAdicional","openCreate","executeOrderBy","tagJobsId","ordem","conteudo","tempo","openEdit","estagioConteudoId","openRemove","executePageChanged","dialogCreate","onSaved","hideAll","dialogEdit","dialogRemove","slot","executeRemove","ref","executeCreate","$$a","$$el","$$c","$$i","autoAjudaVisivel","ehAssincrona","modifiers","onBack","executeEdit","dataitem","default","ignoraPontuacaoPadrao","meioCurso","excluido","nome","nomeTraduzido","unidade","pontuacao","estagioAvaliacaoId","salaAula","AttributeBehavior","vendaLiberada","selecionarTodos","selecionaTodos","escolaEstagioId","selecionados","valorEstagio","valorEstagioSugerido","valorMaterialDidatico","valorMaterialDidaticoSugerido","AlteraLiberacaoVenda","modalidade","modalidadeId","numeroMinimo","numeroMaximo","duracao","estagioDuracaoMinimaId","proximoEstagio","geraNovaTurma","ativo","proximoEstagioId","attributeBehavior","estoqueItem","referenciaCNAStore","obrigatorio","estoqueItemId","openRefresh","nomeEstagio","estagio","dialogRefresh","executeAtualizacaoMDLog","userId","dataAtualizacao","routers","Router","childrens","routersgenerated","Home","Configuracao","router","routes","Authorized","TrocarEscola","AcessoNegado","redirect","Template","requiresAuth","beforeEach","record","logged","canAccess","can","BootstrapVue","Notifications","VueTheMask","VueMask","VueNumeric","money","config","productionTip","$eventHub","App","$mount","navClass","ulClass","showPrevious","liClass","internalCurrentPage","previousText","ariaPrevious","changePage","num","showNext","lastPage","nextText","ariaNext","components","pagination","mask_data","mask_cpf","mask_cnpj","mask_rg","mask_tel","mask_telddd","mask_cel","mask_celddd","mask_cep","decimal","thousands","masked","methods","formatPrice","toFixed","defaultPageChanged","defaultOrderBy","orderByType","orderFields","isOrderByDynamic","defaultSuccessResult","hideLoading","$emit","defaultErrorResult","errors","configNotification","$on","$notify","duration","speed","showLoading","failLoading","mounted","isTextNode","isListItemNode","isFirstChild","isLastChild","keepBookmarks","$_eyfb4cgljkmcwpc0","getNormalizedEndPoint","textNodeOffset","outRng","rangeStart","rangeEnd","$_8n62cfgkjkmcwpbw","createBookmark","setupEndPoint","resolveBookmark","$_aredwjgjjkmcwpbt","normalizeList","ul","normalizeLists","$_f0sxyjgmjkmcwpc3","getParentList","selectionStart","getClosestListRootElm","isParentListSelected","parentList","findSubLists","getSelectedSubLists","findParentListItemsNodes","listItemsElms","parentLi","getSelectedListItems","parentTableCell","$_g5359xgnjkmcwpc5","createNewTextBlock","contentNode","hasContentNode","$_givla1gqjkmcwpcb","splitList","bookmarks","removeAndKeepBookmarks","$_3aykwpgpjkmcwpc8","removeEmptyLi","outdent","ulParent","outdentSelection","listElements","$_80fi2gghjkmcwpbq","updateListStyle","updateListAttrs","updateListWithDetails","removeStyles","getEndPointNode","getSelectedTextBlocks","hasCompatibleStyle","sib","sibStyle","detailStyle","applyList","listItemName","listBlock","mergeWithAdjacentLists","removeList","emptyListItems","rootList","isValidLists","list1","list2","hasSameListStyle","targetStyle","hasSameClasses","elm1","elm2","shouldMerge","updateList","newList","toggleMultipleLists","hasListStyleDetail","toggleSingleList","toggleList","selectedSubLists","$_8bvl87gejkmcwpbi","findNextCaretContainer","nonEmptyBlocks","hasOnlyOneBlockChild","unwrapSingleBlockChild","moveChildren","mergeLiElements","listNode","mergeIntoEmptyLi","fromLi","toLi","mergeForward","mergeBackward","resolvedBookmark","backspaceDeleteFromListToListCaret","otherLi","selectionStartElm","removeBlock","backspaceDeleteIntoListCaret","otherLi_1","startListParent","$_17li1sgajkmcwpb9","$_4wrbe2g9jkmcwpb7","mergeLists","listStyle","indentSelection","$_fhzwh2gtjkmcwpco","queryListCommandState","isHandled","$_7snno4gsjkmcwpcf","shouldIndentOnTab","$_7hi6itgvjkmcwpcr","setupTabKey","$_fv3b7wgujkmcwpcq","indentPostRender","listItemBlocks","disable","$_e09q6ogwjkmcwpct","authorize_url","SSO_END_POINT","addclaims_authorize_url","endsession_url","redirect_uri","SSO_REDIRECT_LOGIN_URL","post_logout_redirect_uri","SSO_REDIRECT_LOGOUT_URL","client_id","SSO_CLIENT_ID","response_type","SSO_RESPONSE_TYPE","SSO_SCOPE","menu_key","permissoes_key","foto_key","loadfinished_key","lastlocation_key","usuariosPermitidos","rotasRestritas","getToken","ID_TOKEN","getAccessToken","getState","ID_STATE","saveActualPage","getCurrentUser","_user","escolas","USER_INFO","currentUser","processTokenCallback","itens","access_token","expires_in","id_token","claimsAddLoginSso","claim_type","claim_value","getPermissoes","_fromcache","getMenu","getFotoUser","tenant","includes","email","URL_PORTAL_CORPORATIVO","URL_DOWNLOAD","PARAMETRO_TEMPO_DE_INATIVIDADE","_addOption","placeholder","_addItems","inserted","isMultiple","getVModelValue","Choices","placeholderValue","searchPlaceholderValue","removeItems","removeItemButton","shouldSort","shouldSortItems","loadingText","noResultsText","noChoicesText","itemSelectText","searchResultLimit","oninvalid","elParent","wasValidated","checkValidity","image_dimensions","hasAdvTab","image_advtab","getPrependUrl","getClassList","hasDescription","image_description","hasImageTitle","image_title","hasImageCaption","image_caption","getImageList","hasUploadUrl","hasUploadHandler","getUploadUrl","getUploadHandler","getUploadBasePath","getUploadCredentials","$_gc1jdictjkmcwomd","$_db9o2scwjkmcwomp","parseIntAndGetMax","val1","getImageSize","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","createImageList","imageList","waitLoadImage","selectImage","$_9v7cmwcujkmcwomi","getHspace","getVspace","marginTop","marginBottom","getBorder","borderWidth","hasCaption","wrapInFigure","figureElm","removeFigure","toggleCaption","normalizeStyle","normalizeCss","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","defaultData","hspace","vspace","getStyleValue","figure","updateProp","oldData","newData","_name","mergedCss","compressed","getSelectedImage","splitTextBlock","readImageDataFromSelection","insertImageAtCaret","insertedElm","syncSrcAttr","deleteImage","writeImageDataToSelection","insertOrUpdateImage","updateVSpaceHSpaceBorder","rootControl","updateStyle","makeTab","pack","packV","columns","maxWidth","$_4qd61kd3jkmcwonl","$_14kdtjdajkmcwoo8","onSrcChange","srcURL","prependURL","absoluteURLPattern","imageListCtrl","getGeneralItems","makeTab$1","$_bpqbuud9jkmcwoo5","$_e8tsx4dcjkmcwooe","uploadBlob","onFileInput","Throbber","throbber","finalize","dataUrl","activateTab","acceptExts","makeTab$2","accept","$_26ghgddbjkmcwooa","Dialog","altCtrl","$_cwg86qcrjkmcwom6","hasImageClass","toggleContentEditableState","toggleContentEditable","$_8m7aavdhjkmcwooq","$_2zobs0dijkmcwoos","isBrandingEnabled","hasMenubar","getMenubar","hasStatusbar","getToolbarSize","getFixedToolbarContainer","getInlineToolbarPositionHandler","getRemovedMenuItems","isSkinDisabled","skin","getResize","resize","getSkinUrl","skinUrl","skin_url","skinName","getIndexedToolbars","defaultToolbar","toolbars","toolbar","mainToolbar","getToolbars","fireSkinLoaded","fireResizeEditor","fireBeforeRenderUI","$_1jkxpltzjkmcwsg4","panel","addKeys","$_1mdekmu0jkmcwsg5","getUiContainerDelta","uiContainer","getUiContainer","containerPos","setUiContainer","ui_container","inheritUiContainer","fromCtrl","toCtrl","$_5kmlp5u4jkmcwsge","createToolbar","buttonGroup","toolbarItems","bindSelectorChanged","disabledStateSelector","createToolbars","addToolbar","ariaRoot","ariaRemember","$_5g1hacu7jkmcwsgn","toClientRect","geomRect","hideAllFloatingPanels","movePanelTo","moveTo","togglePositionClass","relPos","userConstrain","elementRect","contentAreaRect","panelRect","addContextualToolbars","getContextToolbars","getElementRect","shouldShow","relRect","testPositions","smallElementWidthThreshold","repositionHandler","findFrontMostMatch","bindScrollEvent","reposition_1","uiContainer_1","showContextToolbar","role","autohide","autofix","oncancel","renderTo","hideAllContextToolbars","$_44ggy0u1jkmcwsg7","defaultMenus","edit","view","tools","help","delimiterMenuNamePair","createMenuNameItemPair","hasItemName","namedMenuItems","namedMenuItem","isSeparator","cleanupMenu","removedMenuItems","menuItemsPass1","menuItemsPass2","createMenu","editorMenuItems","menus","menuButton","isUserDefined","separator","getDefaultMenubar","defaultMenuBar","createMenuButtons","menuButtons","menubar","enabledMenuNames","$_3ke8tlu8jkmcwsgq","resizeTo","containerSize","iframeSize","resizeBy","dw","dh","$_focm2tubjkmcwsh5","sidebar","callbackName","hidePanels","visible","deactivateButtons","findSidebar","showPanel","btnCtrl","isModernBrowser","hasSidebar","createSidebar","$_93h32bucjkmcwsh7","fireSkinLoaded$1","$_2tsyb2uejkmcwsha","switchMode","editArea","editAreaContainer","resizeHandleCtrl","startSize","skinUiCss","onResizeStart","onResize","linkHtml","brandingLabel","renderBefore","$_9mz4sntvjkmcwsft","funcs","getWindowSize","getRuntimeStyle","isStatic","isFixed","calculateRelativePosition","ctrlElm","selfW","selfH","viewport","getWindowViewPort","getUiContainerViewPort","customUiContainer","$_77p0ikukjkmcwsie","testMoveRel","viewPortRect","moveBy","layoutRect","constrain","constrainToViewport","repaint","global$11","$_79d0aauqjkmcwsj9","parseBox","measureBox","computedStyle","getSide","ClassList","_map","uniqueItems","__checked","_change","curState","clsValue","Collection","Collection$1","proto","chunker","Selector","compileNameFilter","compileIdFilter","compileClassesFilter","compileAttrFilter","cmp","compilePsuedoFilter","notSelectors","parseChunks","direct","_selectors","si","sl","Collection$2","Binding","otherModel","otherName","fromSelfToOther","fromOtherToSelf","_bindings","global$12","isNode","animationFrameRequested","Control","ObservableObject","oldValue","dirtyCtrls","$_921m08uxjkmcwsk2","_layout","_id","hasMouseWheelEventSupport","hasWheelEventSupport","classPrefix","idCounter","proto$1","defaultClasses","applyClasses","_aria","_elmCache","borderBox","paddingBox","marginBox","getContainerElm","getParentCtrl","controlIdLookup","initLayoutRect","autoResize","startMinWidth","startMinHeight","initialSize","deltaW","deltaH","maxW","maxH","maxHeight","_layoutRect","contentW","contentH","innerW","innerH","minW","minH","scrollW","_lastLayoutRect","lastLayoutRect","repaintControls","curRect","bodyStyle","borderW","borderH","lastRepaintRect","_lastRepaintRect","_hasBody","updateLayoutRect","_lastRect","resolveCallbackName","parentControls","$el","aria","ariaTarget","newItems","controls","_eventsRoot","renderHtml","preRender","parentEventsRoot","_nativeEvents","bindPendingEvents","bindStates","parentCtrl","getOffset","parentWidth","parentHeight","eventCtrl","eventRootCtrl","mouseLeaveHandler","_lastHoverCtrl","mouseEnterHandler","lastParents","lastCtrl","fixWheelEvent","wheelDelta","wheelDeltaX","eventRootDelegates","_delegates","_hasMouseEnter","Control$1","hasTabstopData","KeyboardNavigation","focusedElement","focusedControl","getRole","getParentRole","getAriaProp","isTextInputElement","canFocus","getFocusElements","getNavigationRoot","targetControl","navigationRoot","focusFirst","focusElements","moveFocusToIndex","lastAriaIndex","moveFocus","parentRole","submenu","enter","up","tab","handleNonTabOrEscEvent","selectorCache","Container","_items","bodyClasses","containerCls","keyboard","focusCtrl","keyboardNav","statusbar","oldItem","newItem","ctrlItems","defaultType","renderNew","curItems","beforeItems","afterItems","recalc","getDocumentSize","updateWithTouchData","changedTouches","DragHelper","$eventOverlay","downButton","drag","handleElement","cursor","docSize","runtimeStyle","zIndex","documentClickHandler","documentScrollHandler","windowResizeHandler","hasModal","$_c9juz9uzjkmcwskb","renderScroll","repaintScroll","hasScrollH","hasScrollV","repaintAxis","axisName","posName","sizeName","contentSizeName","hasScroll","ax","scrollBarElm","scrollThumbElm","scrollSize","posNameLower","sizeNameLower","addScroll","addScrollAxis","deltaPosName","scrollStart","axisId","draghelper","autoScroll","_hasScroll","Panel","_preBodyHtml","$_4ci2x6v1jkmcwski","resizeToContent","visiblePanels","zOrder","skipOrHidePanels","clickCtrl","bindDocumentClickHandler","bindDocumentScrollHandler","repositionPanel","bindWindowResizeHandler","docElm_1","clientWidth_1","clientHeight_1","FloatPanel","scrollY$$1","toggleFixedChildPanels","_autoFixY","addRemove","topModal","modal","modalBlockEl","currentZIndex","$modalBlockEl_1","prefix_1","popover","describedBy","removeVisiblePanel","bodyRole","isFixed$1","inlineToolbarContainer","render$1","fixedToolbarContainer","_fixed","bodyPos","scrollContainerPos","$_aqv3nuufjkmcwshc","$_575jhev2jkmcwskj","$_7k92xgtrjkmcwsfn","Tooltip","Widget","tooltips","_tooltip","Progress","setValue","updateLiveRegion","Notification","closeButton","notificationStyle","getEditorContainer","getContainerWidth","prePositionNotifications","positionNotifications","firstItem","closeCallback","extendedArgs","notif","oldMetaValue","toggleFullScreenState","contentValue","noScaleMetaValue","toggleBodyFullScreenClasses","checkFullscreenWindows","_fullscreen","handleWindowResize","lastSize_1","Window$$1","closeClass","needsRecalc","statusbar$$1","headerW","headEl","headerH","headerHtml","footerHtml","fullscreen","slowRendering","_timer","_initial","dragHelper","getContentWindow","MessageBox","OK","OK_CANCEL","YES_NO","YES_NO_CANCEL","msgBox","createButton","status$$1","primary","subtype","onClick","onClose","onCancel","features","alert$$1","choiceCallback","confirm$$1","close$$1","window$$1","$_f0tepxtqjkmcwsfm","Layout","firstControlClass","lastControlClass","containerClass","firstClass","lastClass","lastItem","controlClass","AbsoluteLayout","Button","btnStyle","btnElm","ariaPressed","textHtml","textCls","setButtonText","$span","iconElm","BrowseButton","click","ButtonGroup","Checkbox","global$13","ComboBox","subinput","showMenu","statusLevel","statusMessage","lineHeight","openElm","innerPadding","inputElm","openBtnHtml","extraAttrs","statusHtml","showAutoComplete","term","previewUrl","hideMenu","statusIconElm","focusIdx","ColorBox","onaction","repaintColor","background","PanelButton","panelSettings","hidePanel","rtlRels","ltrRels","popoverAlign","isTop","ColorButton","_color","resetColor","onClickHandler","global$14","ColorPicker","hsv","hueRootElm","huePointElm","svRootElm","svPointElm","updateColor","hueUpdate","updateSaturationAndValue","updateHue","_repaint","_svdraghelper","_hdraghelper","rgb","_rendered","hueHtml","stops","getOldIeFallbackHtml","gradientPrefix","stopsList","gradientCssText","DropZone","cfg","hidefocus","toggleDragClass","Path","delimiter","_getDataPathHtml","ElementPath","elementpath","outParents","FormItem","Form","labelGap","formItemDefaults","formItem","recalcLabels","maxLabelWidth","labels","labelGapCalc","labelCtrl","labelWidth","FieldSet","unique$1","$_g9js5fw5jkmcwsoh","$_dg0wqww4jkmcwsog","$_9gi0tmw2jkmcwsob","$_9vmnzpwcjkmcwsph","$_22q3m2wfjkmcwsps","$_60zxbqwejkmcwspr","$_7ota5pwljkmcwsq4","$_fknyifwkjkmcwsq1","windows$1","$_4dmnqawmjkmcwsq6","$_21yllowojkmcwsqc","$_993j3rwpjkmcwsqg","$_4sbeluwjjkmcwsq0","$_g4vzapwijkmcwspx","$_3tbwnywtjkmcwsqr","$_622morwdjkmcwspi","$_adk4mbw6jkmcwsok","$_bf8vd5w1jkmcwso8","$_4ig9ruw0jkmcwso7","isChildOfContentEditableTrue","getElementText","getOrGenerateId","isAnchor","isValidAnchor","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","getAnchorTargets","getTargetElements","hasTitle","find$3","$_cb7rvvvxjkmcwsnn","getActiveEditor","history","HISTORY_LENGTH","clearHistory","toMenuItem","staticMenuItem","isUniqueUrl","foundTarget","getSetting","createMenuItems","fileType","fromHistoryMenuItems","historyItems","uniqueHistory","fromMenuItems","filteredTargets","anchorMenuItems","topAnchor","bottomAchor","bothEmpty","typeahead_urls","filterByQuery","addToHistory","lowerCaseTerm","getTitle","linkDetails","setupAutoCompleteHandler","autocomplete","linkTargets","statusToUiState","setupLinkValidatorHandler","validatorHandler","filepicker_validator_handler","validateUrl_1","uiState","FilePicker","actionCallback","fileBrowserCallback","fileBrowserCallbackTypes","file_picker_types","file_browser_callback_types","file_picker_callback","file_browser_callback","FitLayout","contLayoutRect","FlexLayout","contPaddingBox","contSettings","totalFlex","availableSpace","ctrlLayoutRect","ctrlSettings","maxSize","maxAlignEndPos","minSizeName","maxSizeName","beforeName","innerSizeName","deltaSizeName","alignAxisName","alignInnerSizeName","alignSizeName","alignMinSizeName","alignBeforeName","alignAfterName","alignDeltaSizeName","alignContentSizeName","maxSizeItems","maxFlexSize","FlowLayout","endClass","$_13w0c1wzjkmcwsri","$_epq3p6wyjkmcwsrh","addFormatChangedListener","changed","postRenderFormatToggle","alignFormats","defaultAlign","alignMenuItems","onShowMenu","formatName","alignnone","$_ffg0cgx1jkmcwsrx","getFirstFont","findMatchingValue","font","createFontNameListBoxChangeHandler","createFormats","getFontItems","defaultFontsFormats","fonts","font_formats","registerButtons","fixedWidth","$_1be6fjx3jkmcwss1","findMatchingValue$1","pt","px","createFontSizeListBoxChangeHandler","getFontSizeItems","defaultFontsizeFormats","fontsizeFormats","fontsize_formats","registerButtons$1","$_fnu5cxx4jkmcwss4","hideMenuObjects","hideFormatMenuItems","createFormatMenu","newFormats","defaultStyleFormats","createStylesMenu","style_formats_merge","style_formats","itemDefaults","registerMenuItems","formatMenu","registerButtons$2","style_formats_autohide","$_cmdomhx5jkmcwss6","defaultBlocks","createFormats$1","createListBoxChangeHandler","lazyFormatSelectBoxItems","buildMenuItems","register$4","block_formats","$_cl4rffx6jkmcwssb","createCustomMenuItems","nameList","isSeparator$1","trimMenuItems","menuItems2","createContextMenuItems","outputMenuItems","createInsertMenu","insertButtonItems","insert_button_items","registerButtons$3","oncreatemenu","register$5","$_7ix8zax7jkmcwssd","registerFormatButtons","registerCommandButtons","selectall","visualaid","newdocument","registerCommandToggleButtons","registerButtons$4","registerMenuItems$1","register$6","$_gbsmm2x8jkmcwssh","toggleUndoRedoState","checkState","typeFn","registerMenuItems$2","registerButtons$5","register$7","$_1bdkmax9jkmcwssr","toggleVisualAidState","registerMenuItems$3","register$8","$_21pl3hxajkmcwsst","setupEnvironment","setupUiContainer","setupRtlMode","setupHideFloatPanels","$_drujjnwxjkmcwsrc","GridLayout","cols","posX","posY","spacingH","spacingV","alignH","alignV","ctrlMinWidth","ctrlMinHeight","availableWidth","availableHeight","reverseRows","colWidths","rowHeights","ceil","flexV","flexWidths","Iframe$1","InfoBox","severity","Label","strong","startMinH","targetCtrl","forName","Toolbar$1","MenuBar","isChildOf$1","MenuButton","_renderOpen","animate","activeMenu","hasVisibleSiblingMenu","overCtrl","Menu","itemsFactory","factory","hideThrobber","requestTime","_hasIcons","ListBox","selectedText","lastItemCtrl","menuValues","_values","matchingValues","activateMenuItemsByValue","hasMenus","getSelectedItem","selectedItem","toggleTextStyle","_textStyle","textElm","MenuItem","ariaHideMenu","_parentMenu","_lastRel","iconHtml","convertShortcut","escapeRegExp","markMatches","boldMatches","hover","Radio","ResizeHandle","resizeDragHelper","createOptions","strOptions","SelectBox","_options","minVal","maxVal","setAriaProp","updateSliderHandle","maxHandlePos","shortSizeName","stylePosName","handleEl","orientation","_minValue","_maxValue","previewFilter","Slider","minValue","maxValue","_initValue","screenCordName","toFraction","fromFraction","handleKeyboard","alter","handleDrag","startHandlePos","handlePos","_dragHelper","Spacer","SplitButton","mainButtonElm","menuButtonElm","_menuBtnText","StackLayout","TabPanel","activeTabElm","activeTabId","tabsHtml","activeTab","targetParent","headH","TextBox","getApi","ReflowQueue","Scrollable","Movable","Resizable","Window","FormatControls","Iframe","Toolbar","registerToFactory","_lastfileuploaded","_interval","_hascustomtag","_pluginWindowsCustomTag","onsubmit","description","hascustomtag","media_live_embeds"],"mappings":"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AO0mB,EAAY1mB,EAAM,aAAc,cAAe4mB,GAC/C5mB,GAET/O,KAAKihB,KAAO,SAAU0U,GAEpB,OADA5mB,EAAO0mB,EAAY1mB,EAAM,YAAa,kBAAmB4mB,GAClD5mB,GAET/O,KAAK61B,MAAQ,SAAUF,GAErB,OADA5mB,EAAO6mB,EAAiB7mB,EAAM,YAAa,kBAAmB4mB,GACvD5mB,GAIX,IAkSI+mB,GACAC,GACAC,GApSAC,GAAS,CACX,UACA,QACA,UACA,MACA,KACA,aACA,SACA,OACA,WACA,SACA,SACA,OACA,OACA,MACA,UACA,UACA,OACA,IACA,KACA,WACA,KACA,SACA,UACA,SACA,aACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,MACA,MACA,YACA,OACA,MACA,KACA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,WAEEC,GAAQ,CACV,OACA,OACA,WACA,KACA,MACA,QACA,KACA,MACA,QACA,UACA,OACA,OACA,QACA,QACA,SACA,MACA,SAEEC,GAAa,CACf,KACA,MAEEC,GAAgB,CAClB,QACA,QACA,SAEEC,GAAa,CACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,UACA,MACA,OACA,aACA,SACA,MACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,MACA,UAEEC,GAAW,CACb,KACA,KACA,KACA,KACA,KACA,MAEEC,GAAY,CACd,KACA,KACA,MAEEC,GAAQ,CACV,KACA,KACA,MAEEC,GAAa,CACf,MACA,SACA,WACA,SAEEC,GAAa,SAAU/c,GACzB,IAAIgd,EACJ,OAAO,SAAU5nB,GAEf,OADA4nB,EAASA,GAAkB/6B,GAAY+d,EAAO7jB,GAAS,IAChD6gC,EAAOznC,eAAeg7B,GAAmB53B,KAAKyc,MAGrD6nB,GAAYF,GAAWJ,IACvBO,GAAUH,GAAWT,IACrBa,GAAW,SAAU/nB,GACvB,OAAOmb,GAAmBH,UAAUhb,KAAU8nB,GAAQ9nB,IAEpDgoB,GAAO,SAAUhoB,GACnB,OAAOmb,GAAmBH,UAAUhb,IAA2C,OAAlCmb,GAAmB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","file":"js/app.56bd445d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-008c9451\":\"b2913d07\",\"chunk-045ed372\":\"ca0656b8\",\"chunk-08c4ee0e\":\"0a0d91fa\",\"chunk-0920dfd7\":\"600d1ed5\",\"chunk-0add43cd\":\"4ae6ec52\",\"chunk-0cba44af\":\"880ba3da\",\"chunk-0e1f3e36\":\"42bd4ff4\",\"chunk-0e8ee769\":\"d45320fa\",\"chunk-0eccddce\":\"7781fbc5\",\"chunk-14126ab6\":\"1ef02343\",\"chunk-158b63ba\":\"523df43c\",\"chunk-1805e8e8\":\"d3193b46\",\"chunk-1ab06c7f\":\"1da9514e\",\"chunk-1bcc2718\":\"e681332d\",\"chunk-1d0032ca\":\"cafbecb2\",\"chunk-1d2b9408\":\"2f8fa4af\",\"chunk-1f799243\":\"95737340\",\"chunk-2100c541\":\"97e484d9\",\"chunk-2152fcc5\":\"e727b07e\",\"chunk-21f53592\":\"3c4be321\",\"chunk-239535a7\":\"0798391e\",\"chunk-25cd5a00\":\"61ac1524\",\"chunk-26b62b34\":\"67ac34c7\",\"chunk-2a8760f4\":\"cbf2b3c1\",\"chunk-2b5be6dc\":\"b746a57e\",\"chunk-2d0cc1cc\":\"f84862bf\",\"chunk-2d0da79e\":\"2c1feffd\",\"chunk-2dc91bb0\":\"e6d0b3db\",\"chunk-30eb53c8\":\"402af633\",\"chunk-310e927f\":\"bb13d35c\",\"chunk-3185fe48\":\"f92c36b0\",\"chunk-31f23a47\":\"c9d533f1\",\"chunk-33437423\":\"8f2c40b8\",\"chunk-34d2259a\":\"2ff9ef7f\",\"chunk-3931ea40\":\"10907cf6\",\"chunk-39a3523e\":\"25d0f890\",\"chunk-3d4db004\":\"9536b335\",\"chunk-3e23f99e\":\"961d2fc0\",\"chunk-3f2a3f90\":\"2015f6c9\",\"chunk-406330a9\":\"13701b23\",\"chunk-41f32e58\":\"0e865e84\",\"chunk-431e73be\":\"fafda68d\",\"chunk-4565451a\":\"fa11f09d\",\"chunk-49054da0\":\"dcfaf400\",\"chunk-4b08c07d\":\"27f571e0\",\"chunk-4b1926d0\":\"bb653729\",\"chunk-4b509a3b\":\"d917688b\",\"chunk-4b6900f0\":\"fd7241ba\",\"chunk-4c1e4217\":\"c8a5f8cf\",\"chunk-4c67899f\":\"4c2b571f\",\"chunk-4f2c3398\":\"64438f79\",\"chunk-4f57530c\":\"c8409197\",\"chunk-55089716\":\"d3c5b89b\",\"chunk-556fe684\":\"63fd8033\",\"chunk-58ce1328\":\"9703c8d6\",\"chunk-5d4e3c8c\":\"779b0a14\",\"chunk-5da29e8c\":\"24730acd\",\"chunk-5edce105\":\"682fbcd6\",\"chunk-613a24f3\":\"f90b731b\",\"chunk-62f13a01\":\"16b0265a\",\"chunk-6daa0a6a\":\"e90f608c\",\"chunk-6dea0e72\":\"fa85726d\",\"chunk-703d43ea\":\"4aed2e01\",\"chunk-71b26d02\":\"6954f62d\",\"chunk-74b74ffb\":\"f09ca79f\",\"chunk-74fe7b7c\":\"66e9081f\",\"chunk-787c2041\":\"6eb46ffb\",\"chunk-7a649358\":\"c232837d\",\"chunk-7db106aa\":\"ae6e391d\",\"chunk-7f55c310\":\"37475365\",\"chunk-8344cb34\":\"309a4929\",\"chunk-856b96d2\":\"0b4c7f8c\",\"chunk-8975645c\":\"67b5b0c2\",\"chunk-8c2aa700\":\"83e6fffd\",\"chunk-8c5f39b8\":\"132db93f\",\"chunk-8c64497c\":\"8e6329a8\",\"chunk-91a35c54\":\"71ca9559\",\"chunk-92f97812\":\"3d5fcc85\",\"chunk-a2316f42\":\"4cfa8347\",\"chunk-a7536012\":\"d93b0fb2\",\"chunk-a7c43ea8\":\"4fb5aa1c\",\"chunk-af5cf69e\":\"c486e475\",\"chunk-b4cebbc4\":\"a37446dc\",\"chunk-be6e81f4\":\"f58b5abf\",\"chunk-cec5aaee\":\"3d8eb55d\",\"chunk-d4de8d0e\":\"c01be376\",\"chunk-d506c0ae\":\"4d53074d\",\"chunk-da8be65e\":\"e2393787\",\"chunk-de61caf4\":\"923da847\",\"chunk-e720d0b4\":\"f6bba151\",\"chunk-e8a1b50e\":\"f6cdaa9a\",\"chunk-eca21e66\":\"01b614d7\",\"chunk-efb7f026\":\"d80ca8a1\",\"chunk-f1596c38\":\"a1f0da1d\",\"chunk-f4d65896\":\"bffb398b\",\"chunk-f7437bf0\":\"07b19f90\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// 4.8.2 (2018-08-09)\r\n(function () {\r\n(function () {\r\n 'use strict';\r\n\r\n var noop = function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n };\r\n\r\n var compose = function (fa, fb) {\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n return fa(fb.apply(null, arguments));\r\n };\r\n };\r\n var constant = function (value) {\r\n return function () {\r\n return value;\r\n };\r\n };\r\n var identity = function (x) {\r\n return x;\r\n };\r\n\r\n var curry = function (f) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = new Array(arguments.length - 1);\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var newArgs = new Array(arguments.length);\r\n for (var j = 0; j < newArgs.length; j++)\r\n newArgs[j] = arguments[j];\r\n var all = args.concat(newArgs);\r\n return f.apply(null, all);\r\n };\r\n };\r\n\r\n var die = function (msg) {\r\n return function () {\r\n throw new Error(msg);\r\n };\r\n };\r\n\r\n\r\n var never = constant(false);\r\n var always = constant(true);\r\n\r\n var never$1 = never;\r\n var always$1 = always;\r\n var none = function () {\r\n return NONE;\r\n };\r\n var NONE = function () {\r\n var eq = function (o) {\r\n return o.isNone();\r\n };\r\n var call$$1 = function (thunk) {\r\n return thunk();\r\n };\r\n var id = function (n) {\r\n return n;\r\n };\r\n var noop$$1 = function () {\r\n };\r\n var nul = function () {\r\n return null;\r\n };\r\n var undef = function () {\r\n return undefined;\r\n };\r\n var me = {\r\n fold: function (n, s) {\r\n return n();\r\n },\r\n is: never$1,\r\n isSome: never$1,\r\n isNone: always$1,\r\n getOr: id,\r\n getOrThunk: call$$1,\r\n getOrDie: function (msg) {\r\n throw new Error(msg || 'error: getOrDie called on none.');\r\n },\r\n getOrNull: nul,\r\n getOrUndefined: undef,\r\n or: id,\r\n orThunk: call$$1,\r\n map: none,\r\n ap: none,\r\n each: noop$$1,\r\n bind: none,\r\n flatten: none,\r\n exists: never$1,\r\n forall: always$1,\r\n filter: none,\r\n equals: eq,\r\n equals_: eq,\r\n toArray: function () {\r\n return [];\r\n },\r\n toString: constant('none()')\r\n };\r\n if (Object.freeze)\r\n Object.freeze(me);\r\n return me;\r\n }();\r\n var some = function (a) {\r\n var constant_a = function () {\r\n return a;\r\n };\r\n var self = function () {\r\n return me;\r\n };\r\n var map = function (f) {\r\n return some(f(a));\r\n };\r\n var bind = function (f) {\r\n return f(a);\r\n };\r\n var me = {\r\n fold: function (n, s) {\r\n return s(a);\r\n },\r\n is: function (v) {\r\n return a === v;\r\n },\r\n isSome: always$1,\r\n isNone: never$1,\r\n getOr: constant_a,\r\n getOrThunk: constant_a,\r\n getOrDie: constant_a,\r\n getOrNull: constant_a,\r\n getOrUndefined: constant_a,\r\n or: self,\r\n orThunk: self,\r\n map: map,\r\n ap: function (optfab) {\r\n return optfab.fold(none, function (fab) {\r\n return some(fab(a));\r\n });\r\n },\r\n each: function (f) {\r\n f(a);\r\n },\r\n bind: bind,\r\n flatten: constant_a,\r\n exists: bind,\r\n forall: bind,\r\n filter: function (f) {\r\n return f(a) ? me : NONE;\r\n },\r\n equals: function (o) {\r\n return o.is(a);\r\n },\r\n equals_: function (o, elementEq) {\r\n return o.fold(never$1, function (b) {\r\n return elementEq(a, b);\r\n });\r\n },\r\n toArray: function () {\r\n return [a];\r\n },\r\n toString: function () {\r\n return 'some(' + a + ')';\r\n }\r\n };\r\n return me;\r\n };\r\n var from = function (value) {\r\n return value === null || value === undefined ? NONE : some(value);\r\n };\r\n var Option = {\r\n some: some,\r\n none: none,\r\n from: from\r\n };\r\n\r\n var typeOf = function (x) {\r\n if (x === null)\r\n return 'null';\r\n var t = typeof x;\r\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\r\n return 'array';\r\n if (t === 'object' && String.prototype.isPrototypeOf(x))\r\n return 'string';\r\n return t;\r\n };\r\n var isType = function (type) {\r\n return function (value) {\r\n return typeOf(value) === type;\r\n };\r\n };\r\n var isString = isType('string');\r\n var isObject = isType('object');\r\n var isArray = isType('array');\r\n var isNull = isType('null');\r\n var isBoolean = isType('boolean');\r\n\r\n var isFunction = isType('function');\r\n var isNumber = isType('number');\r\n\r\n var rawIndexOf = function () {\r\n var pIndexOf = Array.prototype.indexOf;\r\n var fastIndex = function (xs, x) {\r\n return pIndexOf.call(xs, x);\r\n };\r\n var slowIndex = function (xs, x) {\r\n return slowIndexOf(xs, x);\r\n };\r\n return pIndexOf === undefined ? slowIndex : fastIndex;\r\n }();\r\n var indexOf = function (xs, x) {\r\n var r = rawIndexOf(xs, x);\r\n return r === -1 ? Option.none() : Option.some(r);\r\n };\r\n var contains = function (xs, x) {\r\n return rawIndexOf(xs, x) > -1;\r\n };\r\n var exists = function (xs, pred) {\r\n return findIndex(xs, pred).isSome();\r\n };\r\n\r\n\r\n var map = function (xs, f) {\r\n var len = xs.length;\r\n var r = new Array(len);\r\n for (var i = 0; i < len; i++) {\r\n var x = xs[i];\r\n r[i] = f(x, i, xs);\r\n }\r\n return r;\r\n };\r\n var each = function (xs, f) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n f(x, i, xs);\r\n }\r\n };\r\n var eachr = function (xs, f) {\r\n for (var i = xs.length - 1; i >= 0; i--) {\r\n var x = xs[i];\r\n f(x, i, xs);\r\n }\r\n };\r\n var partition = function (xs, pred) {\r\n var pass = [];\r\n var fail = [];\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n var arr = pred(x, i, xs) ? pass : fail;\r\n arr.push(x);\r\n }\r\n return {\r\n pass: pass,\r\n fail: fail\r\n };\r\n };\r\n var filter = function (xs, pred) {\r\n var r = [];\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n r.push(x);\r\n }\r\n }\r\n return r;\r\n };\r\n\r\n var foldr = function (xs, f, acc) {\r\n eachr(xs, function (x) {\r\n acc = f(acc, x);\r\n });\r\n return acc;\r\n };\r\n var foldl = function (xs, f, acc) {\r\n each(xs, function (x) {\r\n acc = f(acc, x);\r\n });\r\n return acc;\r\n };\r\n var find = function (xs, pred) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n return Option.some(x);\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var findIndex = function (xs, pred) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n return Option.some(i);\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var slowIndexOf = function (xs, x) {\r\n for (var i = 0, len = xs.length; i < len; ++i) {\r\n if (xs[i] === x) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n var push = Array.prototype.push;\r\n var flatten = function (xs) {\r\n var r = [];\r\n for (var i = 0, len = xs.length; i < len; ++i) {\r\n if (!Array.prototype.isPrototypeOf(xs[i]))\r\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\r\n push.apply(r, xs[i]);\r\n }\r\n return r;\r\n };\r\n var bind = function (xs, f) {\r\n var output = map(xs, f);\r\n return flatten(output);\r\n };\r\n var forall = function (xs, pred) {\r\n for (var i = 0, len = xs.length; i < len; ++i) {\r\n var x = xs[i];\r\n if (pred(x, i, xs) !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n var slice = Array.prototype.slice;\r\n var reverse = function (xs) {\r\n var r = slice.call(xs, 0);\r\n r.reverse();\r\n return r;\r\n };\r\n var difference = function (a1, a2) {\r\n return filter(a1, function (x) {\r\n return !contains(a2, x);\r\n });\r\n };\r\n var mapToObject = function (xs, f) {\r\n var r = {};\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n r[String(x)] = f(x, i);\r\n }\r\n return r;\r\n };\r\n\r\n var sort = function (xs, comparator) {\r\n var copy = slice.call(xs, 0);\r\n copy.sort(comparator);\r\n return copy;\r\n };\r\n var head = function (xs) {\r\n return xs.length === 0 ? Option.none() : Option.some(xs[0]);\r\n };\r\n var last = function (xs) {\r\n return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);\r\n };\r\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\r\n return slice.call(x);\r\n };\r\n\r\n var Global = typeof window !== 'undefined' ? window : Function('return this;')();\r\n\r\n var path = function (parts, scope) {\r\n var o = scope !== undefined && scope !== null ? scope : Global;\r\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\r\n o = o[parts[i]];\r\n return o;\r\n };\r\n var resolve = function (p, scope) {\r\n var parts = p.split('.');\r\n return path(parts, scope);\r\n };\r\n\r\n var unsafe = function (name, scope) {\r\n return resolve(name, scope);\r\n };\r\n var getOrDie = function (name, scope) {\r\n var actual = unsafe(name, scope);\r\n if (actual === undefined || actual === null)\r\n throw name + ' not available on this browser';\r\n return actual;\r\n };\r\n var $_89i3w1cjkmcwk2c = { getOrDie: getOrDie };\r\n\r\n var url = function () {\r\n return $_89i3w1cjkmcwk2c.getOrDie('URL');\r\n };\r\n var createObjectURL = function (blob) {\r\n return url().createObjectURL(blob);\r\n };\r\n var revokeObjectURL = function (u) {\r\n url().revokeObjectURL(u);\r\n };\r\n var $_ci16mbjkmcwk2b = {\r\n createObjectURL: createObjectURL,\r\n revokeObjectURL: revokeObjectURL\r\n };\r\n\r\n var nav = navigator;\r\n var userAgent = nav.userAgent;\r\n var opera;\r\n var webkit;\r\n var ie;\r\n var ie11;\r\n var ie12;\r\n var gecko;\r\n var mac;\r\n var iDevice;\r\n var android;\r\n var fileApi;\r\n var phone;\r\n var tablet;\r\n var windowsPhone;\r\n var matchMediaQuery = function (query) {\r\n return 'matchMedia' in window ? matchMedia(query).matches : false;\r\n };\r\n opera = false;\r\n android = /Android/.test(userAgent);\r\n webkit = /WebKit/.test(userAgent);\r\n ie = !webkit && !opera && /MSIE/gi.test(userAgent) && /Explorer/gi.test(nav.appName);\r\n ie = ie && /MSIE (\\w+)\\./.exec(userAgent)[1];\r\n ie11 = userAgent.indexOf('Trident/') !== -1 && (userAgent.indexOf('rv:') !== -1 || nav.appName.indexOf('Netscape') !== -1) ? 11 : false;\r\n ie12 = userAgent.indexOf('Edge/') !== -1 && !ie && !ie11 ? 12 : false;\r\n ie = ie || ie11 || ie12;\r\n gecko = !webkit && !ie11 && /Gecko/.test(userAgent);\r\n mac = userAgent.indexOf('Mac') !== -1;\r\n iDevice = /(iPad|iPhone)/.test(userAgent);\r\n fileApi = 'FormData' in window && 'FileReader' in window && 'URL' in window && !!$_ci16mbjkmcwk2b.createObjectURL;\r\n phone = matchMediaQuery('only screen and (max-device-width: 480px)') && (android || iDevice);\r\n tablet = matchMediaQuery('only screen and (min-width: 800px)') && (android || iDevice);\r\n windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\r\n if (ie12) {\r\n webkit = false;\r\n }\r\n var contentEditable = !iDevice || fileApi || parseInt(userAgent.match(/AppleWebKit\\/(\\d*)/)[1], 10) >= 534;\r\n var $_cvvl9iajkmcwk25 = {\r\n opera: opera,\r\n webkit: webkit,\r\n ie: ie,\r\n gecko: gecko,\r\n mac: mac,\r\n iOS: iDevice,\r\n android: android,\r\n contentEditable: contentEditable,\r\n transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\r\n caretAfter: ie !== 8,\r\n range: window.getSelection && 'Range' in window,\r\n documentMode: ie && !ie12 ? document.documentMode || 7 : 10,\r\n fileApi: fileApi,\r\n ceFalse: ie === false || ie > 8,\r\n cacheSuffix: null,\r\n container: null,\r\n overrideViewPort: null,\r\n experimentalShadowDom: false,\r\n canHaveCSP: ie === false || ie > 11,\r\n desktop: !phone && !tablet,\r\n windowsPhone: windowsPhone\r\n };\r\n\r\n var promise = function () {\r\n function bind(fn, thisArg) {\r\n return function () {\r\n fn.apply(thisArg, arguments);\r\n };\r\n }\r\n var isArray = Array.isArray || function (value) {\r\n return Object.prototype.toString.call(value) === '[object Array]';\r\n };\r\n var Promise = function (fn) {\r\n if (typeof this !== 'object') {\r\n throw new TypeError('Promises must be constructed via new');\r\n }\r\n if (typeof fn !== 'function') {\r\n throw new TypeError('not a function');\r\n }\r\n this._state = null;\r\n this._value = null;\r\n this._deferreds = [];\r\n doResolve(fn, bind(resolve, this), bind(reject, this));\r\n };\r\n var asap = Promise.immediateFn || typeof setImmediate === 'function' && setImmediate || function (fn) {\r\n setTimeout(fn, 1);\r\n };\r\n function handle(deferred) {\r\n var me = this;\r\n if (this._state === null) {\r\n this._deferreds.push(deferred);\r\n return;\r\n }\r\n asap(function () {\r\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\r\n if (cb === null) {\r\n (me._state ? deferred.resolve : deferred.reject)(me._value);\r\n return;\r\n }\r\n var ret;\r\n try {\r\n ret = cb(me._value);\r\n } catch (e) {\r\n deferred.reject(e);\r\n return;\r\n }\r\n deferred.resolve(ret);\r\n });\r\n }\r\n function resolve(newValue) {\r\n try {\r\n if (newValue === this) {\r\n throw new TypeError('A promise cannot be resolved with itself.');\r\n }\r\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\r\n var then = newValue.then;\r\n if (typeof then === 'function') {\r\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\r\n return;\r\n }\r\n }\r\n this._state = true;\r\n this._value = newValue;\r\n finale.call(this);\r\n } catch (e) {\r\n reject.call(this, e);\r\n }\r\n }\r\n function reject(newValue) {\r\n this._state = false;\r\n this._value = newValue;\r\n finale.call(this);\r\n }\r\n function finale() {\r\n for (var i = 0, len = this._deferreds.length; i < len; i++) {\r\n handle.call(this, this._deferreds[i]);\r\n }\r\n this._deferreds = null;\r\n }\r\n function Handler(onFulfilled, onRejected, resolve, reject) {\r\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\r\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n }\r\n function doResolve(fn, onFulfilled, onRejected) {\r\n var done = false;\r\n try {\r\n fn(function (value) {\r\n if (done) {\r\n return;\r\n }\r\n done = true;\r\n onFulfilled(value);\r\n }, function (reason) {\r\n if (done) {\r\n return;\r\n }\r\n done = true;\r\n onRejected(reason);\r\n });\r\n } catch (ex) {\r\n if (done) {\r\n return;\r\n }\r\n done = true;\r\n onRejected(ex);\r\n }\r\n }\r\n Promise.prototype.catch = function (onRejected) {\r\n return this.then(null, onRejected);\r\n };\r\n Promise.prototype.then = function (onFulfilled, onRejected) {\r\n var me = this;\r\n return new Promise(function (resolve, reject) {\r\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\r\n });\r\n };\r\n Promise.all = function () {\r\n var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\r\n return new Promise(function (resolve, reject) {\r\n if (args.length === 0) {\r\n return resolve([]);\r\n }\r\n var remaining = args.length;\r\n function res(i, val) {\r\n try {\r\n if (val && (typeof val === 'object' || typeof val === 'function')) {\r\n var then = val.then;\r\n if (typeof then === 'function') {\r\n then.call(val, function (val) {\r\n res(i, val);\r\n }, reject);\r\n return;\r\n }\r\n }\r\n args[i] = val;\r\n if (--remaining === 0) {\r\n resolve(args);\r\n }\r\n } catch (ex) {\r\n reject(ex);\r\n }\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n res(i, args[i]);\r\n }\r\n });\r\n };\r\n Promise.resolve = function (value) {\r\n if (value && typeof value === 'object' && value.constructor === Promise) {\r\n return value;\r\n }\r\n return new Promise(function (resolve) {\r\n resolve(value);\r\n });\r\n };\r\n Promise.reject = function (value) {\r\n return new Promise(function (resolve, reject) {\r\n reject(value);\r\n });\r\n };\r\n Promise.race = function (values) {\r\n return new Promise(function (resolve, reject) {\r\n for (var i = 0, len = values.length; i < len; i++) {\r\n values[i].then(resolve, reject);\r\n }\r\n });\r\n };\r\n return Promise;\r\n };\r\n var promiseObj = window.Promise ? window.Promise : promise();\r\n\r\n var requestAnimationFramePromise;\r\n var requestAnimationFrame$$1 = function (callback, element) {\r\n var i, requestAnimationFrameFunc = window.requestAnimationFrame;\r\n var vendors = [\r\n 'ms',\r\n 'moz',\r\n 'webkit'\r\n ];\r\n var featurefill = function (callback) {\r\n window.setTimeout(callback, 0);\r\n };\r\n for (i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) {\r\n requestAnimationFrameFunc = window[vendors[i] + 'RequestAnimationFrame'];\r\n }\r\n if (!requestAnimationFrameFunc) {\r\n requestAnimationFrameFunc = featurefill;\r\n }\r\n requestAnimationFrameFunc(callback, element);\r\n };\r\n var wrappedSetTimeout = function (callback, time) {\r\n if (typeof time !== 'number') {\r\n time = 0;\r\n }\r\n return setTimeout(callback, time);\r\n };\r\n var wrappedSetInterval = function (callback, time) {\r\n if (typeof time !== 'number') {\r\n time = 1;\r\n }\r\n return setInterval(callback, time);\r\n };\r\n var wrappedClearTimeout = function (id) {\r\n return clearTimeout(id);\r\n };\r\n var wrappedClearInterval = function (id) {\r\n return clearInterval(id);\r\n };\r\n var debounce = function (callback, time) {\r\n var timer, func;\r\n func = function () {\r\n var args = arguments;\r\n clearTimeout(timer);\r\n timer = wrappedSetTimeout(function () {\r\n callback.apply(this, args);\r\n }, time);\r\n };\r\n func.stop = function () {\r\n clearTimeout(timer);\r\n };\r\n return func;\r\n };\r\n var $_3l01gcijkmcwk99 = {\r\n requestAnimationFrame: function (callback, element) {\r\n if (requestAnimationFramePromise) {\r\n requestAnimationFramePromise.then(callback);\r\n return;\r\n }\r\n requestAnimationFramePromise = new promiseObj(function (resolve) {\r\n if (!element) {\r\n element = document.body;\r\n }\r\n requestAnimationFrame$$1(resolve, element);\r\n }).then(callback);\r\n },\r\n setTimeout: wrappedSetTimeout,\r\n setInterval: wrappedSetInterval,\r\n setEditorTimeout: function (editor, callback, time) {\r\n return wrappedSetTimeout(function () {\r\n if (!editor.removed) {\r\n callback();\r\n }\r\n }, time);\r\n },\r\n setEditorInterval: function (editor, callback, time) {\r\n var timer;\r\n timer = wrappedSetInterval(function () {\r\n if (!editor.removed) {\r\n callback();\r\n } else {\r\n clearInterval(timer);\r\n }\r\n }, time);\r\n return timer;\r\n },\r\n debounce: debounce,\r\n throttle: debounce,\r\n clearInterval: wrappedClearInterval,\r\n clearTimeout: wrappedClearTimeout\r\n };\r\n\r\n var eventExpandoPrefix = 'mce-data-';\r\n var mouseEventRe = /^(?:mouse|contextmenu)|click/;\r\n var deprecated = {\r\n keyLocation: 1,\r\n layerX: 1,\r\n layerY: 1,\r\n returnValue: 1,\r\n webkitMovementX: 1,\r\n webkitMovementY: 1,\r\n keyIdentifier: 1\r\n };\r\n var hasIsDefaultPrevented = function (event$$1) {\r\n return event$$1.isDefaultPrevented === returnTrue || event$$1.isDefaultPrevented === returnFalse;\r\n };\r\n var returnFalse = function () {\r\n return false;\r\n };\r\n var returnTrue = function () {\r\n return true;\r\n };\r\n var addEvent = function (target, name$$1, callback, capture) {\r\n if (target.addEventListener) {\r\n target.addEventListener(name$$1, callback, capture || false);\r\n } else if (target.attachEvent) {\r\n target.attachEvent('on' + name$$1, callback);\r\n }\r\n };\r\n var removeEvent = function (target, name$$1, callback, capture) {\r\n if (target.removeEventListener) {\r\n target.removeEventListener(name$$1, callback, capture || false);\r\n } else if (target.detachEvent) {\r\n target.detachEvent('on' + name$$1, callback);\r\n }\r\n };\r\n var getTargetFromShadowDom = function (event$$1, defaultTarget) {\r\n if (event$$1.composedPath) {\r\n var composedPath = event$$1.composedPath();\r\n if (composedPath && composedPath.length > 0) {\r\n return composedPath[0];\r\n }\r\n }\r\n return defaultTarget;\r\n };\r\n var fix = function (originalEvent, data) {\r\n var name$$1;\r\n var event$$1 = data || {};\r\n for (name$$1 in originalEvent) {\r\n if (!deprecated[name$$1]) {\r\n event$$1[name$$1] = originalEvent[name$$1];\r\n }\r\n }\r\n if (!event$$1.target) {\r\n event$$1.target = event$$1.srcElement || document;\r\n }\r\n if ($_cvvl9iajkmcwk25.experimentalShadowDom) {\r\n event$$1.target = getTargetFromShadowDom(originalEvent, event$$1.target);\r\n }\r\n if (originalEvent && mouseEventRe.test(originalEvent.type) && originalEvent.pageX === undefined && originalEvent.clientX !== undefined) {\r\n var eventDoc = event$$1.target.ownerDocument || document;\r\n var doc = eventDoc.documentElement;\r\n var body = eventDoc.body;\r\n event$$1.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\r\n event$$1.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\r\n }\r\n event$$1.preventDefault = function () {\r\n event$$1.isDefaultPrevented = returnTrue;\r\n if (originalEvent) {\r\n if (originalEvent.preventDefault) {\r\n originalEvent.preventDefault();\r\n } else {\r\n originalEvent.returnValue = false;\r\n }\r\n }\r\n };\r\n event$$1.stopPropagation = function () {\r\n event$$1.isPropagationStopped = returnTrue;\r\n if (originalEvent) {\r\n if (originalEvent.stopPropagation) {\r\n originalEvent.stopPropagation();\r\n } else {\r\n originalEvent.cancelBubble = true;\r\n }\r\n }\r\n };\r\n event$$1.stopImmediatePropagation = function () {\r\n event$$1.isImmediatePropagationStopped = returnTrue;\r\n event$$1.stopPropagation();\r\n };\r\n if (hasIsDefaultPrevented(event$$1) === false) {\r\n event$$1.isDefaultPrevented = returnFalse;\r\n event$$1.isPropagationStopped = returnFalse;\r\n event$$1.isImmediatePropagationStopped = returnFalse;\r\n }\r\n if (typeof event$$1.metaKey === 'undefined') {\r\n event$$1.metaKey = false;\r\n }\r\n return event$$1;\r\n };\r\n var bindOnReady = function (win, callback, eventUtils) {\r\n var doc = win.document, event$$1 = { type: 'ready' };\r\n if (eventUtils.domLoaded) {\r\n callback(event$$1);\r\n return;\r\n }\r\n var isDocReady = function () {\r\n return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\r\n };\r\n var readyHandler = function () {\r\n if (!eventUtils.domLoaded) {\r\n eventUtils.domLoaded = true;\r\n callback(event$$1);\r\n }\r\n };\r\n var waitForDomLoaded = function () {\r\n if (isDocReady()) {\r\n removeEvent(doc, 'readystatechange', waitForDomLoaded);\r\n readyHandler();\r\n }\r\n };\r\n var tryScroll = function () {\r\n try {\r\n doc.documentElement.doScroll('left');\r\n } catch (ex) {\r\n $_3l01gcijkmcwk99.setTimeout(tryScroll);\r\n return;\r\n }\r\n readyHandler();\r\n };\r\n if (doc.addEventListener && !($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 11)) {\r\n if (isDocReady()) {\r\n readyHandler();\r\n } else {\r\n addEvent(win, 'DOMContentLoaded', readyHandler);\r\n }\r\n } else {\r\n addEvent(doc, 'readystatechange', waitForDomLoaded);\r\n if (doc.documentElement.doScroll && win.self === win.top) {\r\n tryScroll();\r\n }\r\n }\r\n addEvent(win, 'load', readyHandler);\r\n };\r\n var EventUtils = function () {\r\n var self$$1 = this;\r\n var events = {}, count, expando, hasFocusIn, hasMouseEnterLeave, mouseEnterLeave;\r\n expando = eventExpandoPrefix + (+new Date()).toString(32);\r\n hasMouseEnterLeave = 'onmouseenter' in document.documentElement;\r\n hasFocusIn = 'onfocusin' in document.documentElement;\r\n mouseEnterLeave = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout'\r\n };\r\n count = 1;\r\n self$$1.domLoaded = false;\r\n self$$1.events = events;\r\n var executeHandlers = function (evt, id) {\r\n var callbackList, i, l, callback;\r\n var container = events[id];\r\n callbackList = container && container[evt.type];\r\n if (callbackList) {\r\n for (i = 0, l = callbackList.length; i < l; i++) {\r\n callback = callbackList[i];\r\n if (callback && callback.func.call(callback.scope, evt) === false) {\r\n evt.preventDefault();\r\n }\r\n if (evt.isImmediatePropagationStopped()) {\r\n return;\r\n }\r\n }\r\n }\r\n };\r\n self$$1.bind = function (target, names, callback, scope) {\r\n var id, callbackList, i, name$$1, fakeName, nativeHandler, capture;\r\n var win = window;\r\n var defaultNativeHandler = function (evt) {\r\n executeHandlers(fix(evt || win.event), id);\r\n };\r\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\r\n return;\r\n }\r\n if (!target[expando]) {\r\n id = count++;\r\n target[expando] = id;\r\n events[id] = {};\r\n } else {\r\n id = target[expando];\r\n }\r\n scope = scope || target;\r\n names = names.split(' ');\r\n i = names.length;\r\n while (i--) {\r\n name$$1 = names[i];\r\n nativeHandler = defaultNativeHandler;\r\n fakeName = capture = false;\r\n if (name$$1 === 'DOMContentLoaded') {\r\n name$$1 = 'ready';\r\n }\r\n if (self$$1.domLoaded && name$$1 === 'ready' && target.readyState === 'complete') {\r\n callback.call(scope, fix({ type: name$$1 }));\r\n continue;\r\n }\r\n if (!hasMouseEnterLeave) {\r\n fakeName = mouseEnterLeave[name$$1];\r\n if (fakeName) {\r\n nativeHandler = function (evt) {\r\n var current, related;\r\n current = evt.currentTarget;\r\n related = evt.relatedTarget;\r\n if (related && current.contains) {\r\n related = current.contains(related);\r\n } else {\r\n while (related && related !== current) {\r\n related = related.parentNode;\r\n }\r\n }\r\n if (!related) {\r\n evt = fix(evt || win.event);\r\n evt.type = evt.type === 'mouseout' ? 'mouseleave' : 'mouseenter';\r\n evt.target = current;\r\n executeHandlers(evt, id);\r\n }\r\n };\r\n }\r\n }\r\n if (!hasFocusIn && (name$$1 === 'focusin' || name$$1 === 'focusout')) {\r\n capture = true;\r\n fakeName = name$$1 === 'focusin' ? 'focus' : 'blur';\r\n nativeHandler = function (evt) {\r\n evt = fix(evt || win.event);\r\n evt.type = evt.type === 'focus' ? 'focusin' : 'focusout';\r\n executeHandlers(evt, id);\r\n };\r\n }\r\n callbackList = events[id][name$$1];\r\n if (!callbackList) {\r\n events[id][name$$1] = callbackList = [{\r\n func: callback,\r\n scope: scope\r\n }];\r\n callbackList.fakeName = fakeName;\r\n callbackList.capture = capture;\r\n callbackList.nativeHandler = nativeHandler;\r\n if (name$$1 === 'ready') {\r\n bindOnReady(target, nativeHandler, self$$1);\r\n } else {\r\n addEvent(target, fakeName || name$$1, nativeHandler, capture);\r\n }\r\n } else {\r\n if (name$$1 === 'ready' && self$$1.domLoaded) {\r\n callback({ type: name$$1 });\r\n } else {\r\n callbackList.push({\r\n func: callback,\r\n scope: scope\r\n });\r\n }\r\n }\r\n }\r\n target = callbackList = 0;\r\n return callback;\r\n };\r\n self$$1.unbind = function (target, names, callback) {\r\n var id, callbackList, i, ci, name$$1, eventMap;\r\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\r\n return self$$1;\r\n }\r\n id = target[expando];\r\n if (id) {\r\n eventMap = events[id];\r\n if (names) {\r\n names = names.split(' ');\r\n i = names.length;\r\n while (i--) {\r\n name$$1 = names[i];\r\n callbackList = eventMap[name$$1];\r\n if (callbackList) {\r\n if (callback) {\r\n ci = callbackList.length;\r\n while (ci--) {\r\n if (callbackList[ci].func === callback) {\r\n var nativeHandler = callbackList.nativeHandler;\r\n var fakeName = callbackList.fakeName, capture = callbackList.capture;\r\n callbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\r\n callbackList.nativeHandler = nativeHandler;\r\n callbackList.fakeName = fakeName;\r\n callbackList.capture = capture;\r\n eventMap[name$$1] = callbackList;\r\n }\r\n }\r\n }\r\n if (!callback || callbackList.length === 0) {\r\n delete eventMap[name$$1];\r\n removeEvent(target, callbackList.fakeName || name$$1, callbackList.nativeHandler, callbackList.capture);\r\n }\r\n }\r\n }\r\n } else {\r\n for (name$$1 in eventMap) {\r\n callbackList = eventMap[name$$1];\r\n removeEvent(target, callbackList.fakeName || name$$1, callbackList.nativeHandler, callbackList.capture);\r\n }\r\n eventMap = {};\r\n }\r\n for (name$$1 in eventMap) {\r\n return self$$1;\r\n }\r\n delete events[id];\r\n try {\r\n delete target[expando];\r\n } catch (ex) {\r\n target[expando] = null;\r\n }\r\n }\r\n return self$$1;\r\n };\r\n self$$1.fire = function (target, name$$1, args) {\r\n var id;\r\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\r\n return self$$1;\r\n }\r\n args = fix(null, args);\r\n args.type = name$$1;\r\n args.target = target;\r\n do {\r\n id = target[expando];\r\n if (id) {\r\n executeHandlers(args, id);\r\n }\r\n target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\r\n } while (target && !args.isPropagationStopped());\r\n return self$$1;\r\n };\r\n self$$1.clean = function (target) {\r\n var i, children;\r\n var unbind = self$$1.unbind;\r\n if (!target || target.nodeType === 3 || target.nodeType === 8) {\r\n return self$$1;\r\n }\r\n if (target[expando]) {\r\n unbind(target);\r\n }\r\n if (!target.getElementsByTagName) {\r\n target = target.document;\r\n }\r\n if (target && target.getElementsByTagName) {\r\n unbind(target);\r\n children = target.getElementsByTagName('*');\r\n i = children.length;\r\n while (i--) {\r\n target = children[i];\r\n if (target[expando]) {\r\n unbind(target);\r\n }\r\n }\r\n }\r\n return self$$1;\r\n };\r\n self$$1.destroy = function () {\r\n events = {};\r\n };\r\n self$$1.cancel = function (e) {\r\n if (e) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n return false;\r\n };\r\n };\r\n EventUtils.Event = new EventUtils();\r\n EventUtils.Event.bind(window, 'ready', function () {\r\n });\r\n\r\n var i;\r\n var support;\r\n var Expr;\r\n var getText;\r\n var isXML;\r\n var tokenize;\r\n var compile;\r\n var select;\r\n var outermostContext;\r\n var sortInput;\r\n var hasDuplicate;\r\n var setDocument;\r\n var document$1;\r\n var docElem;\r\n var documentIsHTML;\r\n var rbuggyQSA;\r\n var rbuggyMatches;\r\n var matches;\r\n var contains$1;\r\n var expando = 'sizzle' + -new Date();\r\n var preferredDoc = window.document;\r\n var dirruns = 0;\r\n var done = 0;\r\n var classCache = createCache();\r\n var tokenCache = createCache();\r\n var compilerCache = createCache();\r\n var sortOrder = function (a, b) {\r\n if (a === b) {\r\n hasDuplicate = true;\r\n }\r\n return 0;\r\n };\r\n var strundefined = typeof undefined;\r\n var MAX_NEGATIVE = 1 << 31;\r\n var hasOwn = {}.hasOwnProperty;\r\n var arr = [];\r\n var pop = arr.pop;\r\n var push_native = arr.push;\r\n var push$1 = arr.push;\r\n var slice$1 = arr.slice;\r\n var indexOf$1 = arr.indexOf || function (elem) {\r\n var i = 0, len = this.length;\r\n for (; i < len; i++) {\r\n if (this[i] === elem) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n var booleans = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped';\r\n var whitespace = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]';\r\n var identifier = '(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+';\r\n var attributes = '\\\\[' + whitespace + '*(' + identifier + ')(?:' + whitespace + '*([*^$|!~]?=)' + whitespace + '*(?:\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\"|(' + identifier + '))|)' + whitespace + '*\\\\]';\r\n var pseudos = ':(' + identifier + ')(?:\\\\((' + '(\\'((?:\\\\\\\\.|[^\\\\\\\\\\'])*)\\'|\"((?:\\\\\\\\.|[^\\\\\\\\\"])*)\")|' + '((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|' + attributes + ')*)|' + '.*' + ')\\\\)|)';\r\n var rtrim = new RegExp('^' + whitespace + '+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)' + whitespace + '+$', 'g');\r\n var rcomma = new RegExp('^' + whitespace + '*,' + whitespace + '*');\r\n var rcombinators = new RegExp('^' + whitespace + '*([>+~]|' + whitespace + ')' + whitespace + '*');\r\n var rattributeQuotes = new RegExp('=' + whitespace + '*([^\\\\]\\'\"]*?)' + whitespace + '*\\\\]', 'g');\r\n var rpseudo = new RegExp(pseudos);\r\n var ridentifier = new RegExp('^' + identifier + '$');\r\n var matchExpr = {\r\n ID: new RegExp('^#(' + identifier + ')'),\r\n CLASS: new RegExp('^\\\\.(' + identifier + ')'),\r\n TAG: new RegExp('^(' + identifier + '|[*])'),\r\n ATTR: new RegExp('^' + attributes),\r\n PSEUDO: new RegExp('^' + pseudos),\r\n CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(' + whitespace + '*(even|odd|(([+-]|)(\\\\d*)n|)' + whitespace + '*(?:([+-]|)' + whitespace + '*(\\\\d+)|))' + whitespace + '*\\\\)|)', 'i'),\r\n bool: new RegExp('^(?:' + booleans + ')$', 'i'),\r\n needsContext: new RegExp('^' + whitespace + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(' + whitespace + '*((?:-\\\\d)?\\\\d*)' + whitespace + '*\\\\)|)(?=[^-]|$)', 'i')\r\n };\r\n var rinputs = /^(?:input|select|textarea|button)$/i;\r\n var rheader = /^h\\d$/i;\r\n var rnative = /^[^{]+\\{\\s*\\[native \\w/;\r\n var rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/;\r\n var rsibling = /[+~]/;\r\n var rescape = /'|\\\\/g;\r\n var runescape = new RegExp('\\\\\\\\([\\\\da-f]{1,6}' + whitespace + '?|(' + whitespace + ')|.)', 'ig');\r\n var funescape = function (_, escaped, escapedWhitespace) {\r\n var high = '0x' + escaped - 65536;\r\n return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);\r\n };\r\n try {\r\n push$1.apply(arr = slice$1.call(preferredDoc.childNodes), preferredDoc.childNodes);\r\n arr[preferredDoc.childNodes.length].nodeType;\r\n } catch (e) {\r\n push$1 = {\r\n apply: arr.length ? function (target, els) {\r\n push_native.apply(target, slice$1.call(els));\r\n } : function (target, els) {\r\n var j = target.length, i = 0;\r\n while (target[j++] = els[i++]) {\r\n }\r\n target.length = j - 1;\r\n }\r\n };\r\n }\r\n var Sizzle = function (selector, context, results, seed) {\r\n var match, elem, m, nodeType, i, groups, old, nid, newContext, newSelector;\r\n if ((context ? context.ownerDocument || context : preferredDoc) !== document$1) {\r\n setDocument(context);\r\n }\r\n context = context || document$1;\r\n results = results || [];\r\n if (!selector || typeof selector !== 'string') {\r\n return results;\r\n }\r\n if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) {\r\n return [];\r\n }\r\n if (documentIsHTML && !seed) {\r\n if (match = rquickExpr.exec(selector)) {\r\n if (m = match[1]) {\r\n if (nodeType === 9) {\r\n elem = context.getElementById(m);\r\n if (elem && elem.parentNode) {\r\n if (elem.id === m) {\r\n results.push(elem);\r\n return results;\r\n }\r\n } else {\r\n return results;\r\n }\r\n } else {\r\n if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains$1(context, elem) && elem.id === m) {\r\n results.push(elem);\r\n return results;\r\n }\r\n }\r\n } else if (match[2]) {\r\n push$1.apply(results, context.getElementsByTagName(selector));\r\n return results;\r\n } else if ((m = match[3]) && support.getElementsByClassName) {\r\n push$1.apply(results, context.getElementsByClassName(m));\r\n return results;\r\n }\r\n }\r\n if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\r\n nid = old = expando;\r\n newContext = context;\r\n newSelector = nodeType === 9 && selector;\r\n if (nodeType === 1 && context.nodeName.toLowerCase() !== 'object') {\r\n groups = tokenize(selector);\r\n if (old = context.getAttribute('id')) {\r\n nid = old.replace(rescape, '\\\\$&');\r\n } else {\r\n context.setAttribute('id', nid);\r\n }\r\n nid = '[id=\\'' + nid + '\\'] ';\r\n i = groups.length;\r\n while (i--) {\r\n groups[i] = nid + toSelector(groups[i]);\r\n }\r\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\r\n newSelector = groups.join(',');\r\n }\r\n if (newSelector) {\r\n try {\r\n push$1.apply(results, newContext.querySelectorAll(newSelector));\r\n return results;\r\n } catch (qsaError) {\r\n } finally {\r\n if (!old) {\r\n context.removeAttribute('id');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return select(selector.replace(rtrim, '$1'), context, results, seed);\r\n };\r\n function createCache() {\r\n var keys = [];\r\n function cache(key, value) {\r\n if (keys.push(key + ' ') > Expr.cacheLength) {\r\n delete cache[keys.shift()];\r\n }\r\n return cache[key + ' '] = value;\r\n }\r\n return cache;\r\n }\r\n function markFunction(fn) {\r\n fn[expando] = true;\r\n return fn;\r\n }\r\n function siblingCheck(a, b) {\r\n var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE);\r\n if (diff) {\r\n return diff;\r\n }\r\n if (cur) {\r\n while (cur = cur.nextSibling) {\r\n if (cur === b) {\r\n return -1;\r\n }\r\n }\r\n }\r\n return a ? 1 : -1;\r\n }\r\n function createInputPseudo(type) {\r\n return function (elem) {\r\n var name$$1 = elem.nodeName.toLowerCase();\r\n return name$$1 === 'input' && elem.type === type;\r\n };\r\n }\r\n function createButtonPseudo(type) {\r\n return function (elem) {\r\n var name$$1 = elem.nodeName.toLowerCase();\r\n return (name$$1 === 'input' || name$$1 === 'button') && elem.type === type;\r\n };\r\n }\r\n function createPositionalPseudo(fn) {\r\n return markFunction(function (argument) {\r\n argument = +argument;\r\n return markFunction(function (seed, matches) {\r\n var j, matchIndexes = fn([], seed.length, argument), i = matchIndexes.length;\r\n while (i--) {\r\n if (seed[j = matchIndexes[i]]) {\r\n seed[j] = !(matches[j] = seed[j]);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function testContext(context) {\r\n return context && typeof context.getElementsByTagName !== strundefined && context;\r\n }\r\n support = Sizzle.support = {};\r\n isXML = Sizzle.isXML = function (elem) {\r\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\r\n return documentElement ? documentElement.nodeName !== 'HTML' : false;\r\n };\r\n setDocument = Sizzle.setDocument = function (node) {\r\n var hasCompare, doc = node ? node.ownerDocument || node : preferredDoc, parent$$1 = doc.defaultView;\r\n function getTop(win) {\r\n try {\r\n return win.top;\r\n } catch (ex) {\r\n }\r\n return null;\r\n }\r\n if (doc === document$1 || doc.nodeType !== 9 || !doc.documentElement) {\r\n return document$1;\r\n }\r\n document$1 = doc;\r\n docElem = doc.documentElement;\r\n documentIsHTML = !isXML(doc);\r\n if (parent$$1 && parent$$1 !== getTop(parent$$1)) {\r\n if (parent$$1.addEventListener) {\r\n parent$$1.addEventListener('unload', function () {\r\n setDocument();\r\n }, false);\r\n } else if (parent$$1.attachEvent) {\r\n parent$$1.attachEvent('onunload', function () {\r\n setDocument();\r\n });\r\n }\r\n }\r\n support.attributes = true;\r\n support.getElementsByTagName = true;\r\n support.getElementsByClassName = rnative.test(doc.getElementsByClassName);\r\n support.getById = true;\r\n Expr.find.ID = function (id, context) {\r\n if (typeof context.getElementById !== strundefined && documentIsHTML) {\r\n var m = context.getElementById(id);\r\n return m && m.parentNode ? [m] : [];\r\n }\r\n };\r\n Expr.filter.ID = function (id) {\r\n var attrId = id.replace(runescape, funescape);\r\n return function (elem) {\r\n return elem.getAttribute('id') === attrId;\r\n };\r\n };\r\n Expr.find.TAG = support.getElementsByTagName ? function (tag, context) {\r\n if (typeof context.getElementsByTagName !== strundefined) {\r\n return context.getElementsByTagName(tag);\r\n }\r\n } : function (tag, context) {\r\n var elem, tmp = [], i = 0, results = context.getElementsByTagName(tag);\r\n if (tag === '*') {\r\n while (elem = results[i++]) {\r\n if (elem.nodeType === 1) {\r\n tmp.push(elem);\r\n }\r\n }\r\n return tmp;\r\n }\r\n return results;\r\n };\r\n Expr.find.CLASS = support.getElementsByClassName && function (className, context) {\r\n if (documentIsHTML) {\r\n return context.getElementsByClassName(className);\r\n }\r\n };\r\n rbuggyMatches = [];\r\n rbuggyQSA = [];\r\n support.disconnectedMatch = true;\r\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join('|'));\r\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join('|'));\r\n hasCompare = rnative.test(docElem.compareDocumentPosition);\r\n contains$1 = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\r\n var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode;\r\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\r\n } : function (a, b) {\r\n if (b) {\r\n while (b = b.parentNode) {\r\n if (b === a) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n sortOrder = hasCompare ? function (a, b) {\r\n if (a === b) {\r\n hasDuplicate = true;\r\n return 0;\r\n }\r\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n if (compare) {\r\n return compare;\r\n }\r\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1;\r\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\r\n if (a === doc || a.ownerDocument === preferredDoc && contains$1(preferredDoc, a)) {\r\n return -1;\r\n }\r\n if (b === doc || b.ownerDocument === preferredDoc && contains$1(preferredDoc, b)) {\r\n return 1;\r\n }\r\n return sortInput ? indexOf$1.call(sortInput, a) - indexOf$1.call(sortInput, b) : 0;\r\n }\r\n return compare & 4 ? -1 : 1;\r\n } : function (a, b) {\r\n if (a === b) {\r\n hasDuplicate = true;\r\n return 0;\r\n }\r\n var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [a], bp = [b];\r\n if (!aup || !bup) {\r\n return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf$1.call(sortInput, a) - indexOf$1.call(sortInput, b) : 0;\r\n } else if (aup === bup) {\r\n return siblingCheck(a, b);\r\n }\r\n cur = a;\r\n while (cur = cur.parentNode) {\r\n ap.unshift(cur);\r\n }\r\n cur = b;\r\n while (cur = cur.parentNode) {\r\n bp.unshift(cur);\r\n }\r\n while (ap[i] === bp[i]) {\r\n i++;\r\n }\r\n return i ? siblingCheck(ap[i], bp[i]) : ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\r\n };\r\n return doc;\r\n };\r\n Sizzle.matches = function (expr, elements) {\r\n return Sizzle(expr, null, null, elements);\r\n };\r\n Sizzle.matchesSelector = function (elem, expr) {\r\n if ((elem.ownerDocument || elem) !== document$1) {\r\n setDocument(elem);\r\n }\r\n expr = expr.replace(rattributeQuotes, '=\\'$1\\']');\r\n if (support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\r\n try {\r\n var ret = matches.call(elem, expr);\r\n if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) {\r\n return ret;\r\n }\r\n } catch (e) {\r\n }\r\n }\r\n return Sizzle(expr, document$1, null, [elem]).length > 0;\r\n };\r\n Sizzle.contains = function (context, elem) {\r\n if ((context.ownerDocument || context) !== document$1) {\r\n setDocument(context);\r\n }\r\n return contains$1(context, elem);\r\n };\r\n Sizzle.attr = function (elem, name$$1) {\r\n if ((elem.ownerDocument || elem) !== document$1) {\r\n setDocument(elem);\r\n }\r\n var fn = Expr.attrHandle[name$$1.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name$$1.toLowerCase()) ? fn(elem, name$$1, !documentIsHTML) : undefined;\r\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name$$1) : (val = elem.getAttributeNode(name$$1)) && val.specified ? val.value : null;\r\n };\r\n Sizzle.error = function (msg) {\r\n throw new Error('Syntax error, unrecognized expression: ' + msg);\r\n };\r\n Sizzle.uniqueSort = function (results) {\r\n var elem, duplicates = [], j = 0, i = 0;\r\n hasDuplicate = !support.detectDuplicates;\r\n sortInput = !support.sortStable && results.slice(0);\r\n results.sort(sortOrder);\r\n if (hasDuplicate) {\r\n while (elem = results[i++]) {\r\n if (elem === results[i]) {\r\n j = duplicates.push(i);\r\n }\r\n }\r\n while (j--) {\r\n results.splice(duplicates[j], 1);\r\n }\r\n }\r\n sortInput = null;\r\n return results;\r\n };\r\n getText = Sizzle.getText = function (elem) {\r\n var node, ret = '', i = 0, nodeType = elem.nodeType;\r\n if (!nodeType) {\r\n while (node = elem[i++]) {\r\n ret += getText(node);\r\n }\r\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\r\n if (typeof elem.textContent === 'string') {\r\n return elem.textContent;\r\n } else {\r\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n ret += getText(elem);\r\n }\r\n }\r\n } else if (nodeType === 3 || nodeType === 4) {\r\n return elem.nodeValue;\r\n }\r\n return ret;\r\n };\r\n Expr = Sizzle.selectors = {\r\n cacheLength: 50,\r\n createPseudo: markFunction,\r\n match: matchExpr,\r\n attrHandle: {},\r\n find: {},\r\n relative: {\r\n '>': {\r\n dir: 'parentNode',\r\n first: true\r\n },\r\n ' ': { dir: 'parentNode' },\r\n '+': {\r\n dir: 'previousSibling',\r\n first: true\r\n },\r\n '~': { dir: 'previousSibling' }\r\n },\r\n preFilter: {\r\n ATTR: function (match) {\r\n match[1] = match[1].replace(runescape, funescape);\r\n match[3] = (match[3] || match[4] || match[5] || '').replace(runescape, funescape);\r\n if (match[2] === '~=') {\r\n match[3] = ' ' + match[3] + ' ';\r\n }\r\n return match.slice(0, 4);\r\n },\r\n CHILD: function (match) {\r\n match[1] = match[1].toLowerCase();\r\n if (match[1].slice(0, 3) === 'nth') {\r\n if (!match[3]) {\r\n Sizzle.error(match[0]);\r\n }\r\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === 'even' || match[3] === 'odd'));\r\n match[5] = +(match[7] + match[8] || match[3] === 'odd');\r\n } else if (match[3]) {\r\n Sizzle.error(match[0]);\r\n }\r\n return match;\r\n },\r\n PSEUDO: function (match) {\r\n var excess, unquoted = !match[6] && match[2];\r\n if (matchExpr.CHILD.test(match[0])) {\r\n return null;\r\n }\r\n if (match[3]) {\r\n match[2] = match[4] || match[5] || '';\r\n } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(')', unquoted.length - excess) - unquoted.length)) {\r\n match[0] = match[0].slice(0, excess);\r\n match[2] = unquoted.slice(0, excess);\r\n }\r\n return match.slice(0, 3);\r\n }\r\n },\r\n filter: {\r\n TAG: function (nodeNameSelector) {\r\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\r\n return nodeNameSelector === '*' ? function () {\r\n return true;\r\n } : function (elem) {\r\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n };\r\n },\r\n CLASS: function (className) {\r\n var pattern = classCache[className + ' '];\r\n return pattern || (pattern = new RegExp('(^|' + whitespace + ')' + className + '(' + whitespace + '|$)')) && classCache(className, function (elem) {\r\n return pattern.test(typeof elem.className === 'string' && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute('class') || '');\r\n });\r\n },\r\n ATTR: function (name$$1, operator, check) {\r\n return function (elem) {\r\n var result = Sizzle.attr(elem, name$$1);\r\n if (result == null) {\r\n return operator === '!=';\r\n }\r\n if (!operator) {\r\n return true;\r\n }\r\n result += '';\r\n return operator === '=' ? result === check : operator === '!=' ? result !== check : operator === '^=' ? check && result.indexOf(check) === 0 : operator === '*=' ? check && result.indexOf(check) > -1 : operator === '$=' ? check && result.slice(-check.length) === check : operator === '~=' ? (' ' + result + ' ').indexOf(check) > -1 : operator === '|=' ? result === check || result.slice(0, check.length + 1) === check + '-' : false;\r\n };\r\n },\r\n CHILD: function (type, what, argument, first, last) {\r\n var simple = type.slice(0, 3) !== 'nth', forward = type.slice(-4) !== 'last', ofType = what === 'of-type';\r\n return first === 1 && last === 0 ? function (elem) {\r\n return !!elem.parentNode;\r\n } : function (elem, context, xml) {\r\n var cache, outerCache, node, diff, nodeIndex, start, dir = simple !== forward ? 'nextSibling' : 'previousSibling', parent$$1 = elem.parentNode, name$$1 = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType;\r\n if (parent$$1) {\r\n if (simple) {\r\n while (dir) {\r\n node = elem;\r\n while (node = node[dir]) {\r\n if (ofType ? node.nodeName.toLowerCase() === name$$1 : node.nodeType === 1) {\r\n return false;\r\n }\r\n }\r\n start = dir = type === 'only' && !start && 'nextSibling';\r\n }\r\n return true;\r\n }\r\n start = [forward ? parent$$1.firstChild : parent$$1.lastChild];\r\n if (forward && useCache) {\r\n outerCache = parent$$1[expando] || (parent$$1[expando] = {});\r\n cache = outerCache[type] || [];\r\n nodeIndex = cache[0] === dirruns && cache[1];\r\n diff = cache[0] === dirruns && cache[2];\r\n node = nodeIndex && parent$$1.childNodes[nodeIndex];\r\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\r\n if (node.nodeType === 1 && ++diff && node === elem) {\r\n outerCache[type] = [\r\n dirruns,\r\n nodeIndex,\r\n diff\r\n ];\r\n break;\r\n }\r\n }\r\n } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) {\r\n diff = cache[1];\r\n } else {\r\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\r\n if ((ofType ? node.nodeName.toLowerCase() === name$$1 : node.nodeType === 1) && ++diff) {\r\n if (useCache) {\r\n (node[expando] || (node[expando] = {}))[type] = [\r\n dirruns,\r\n diff\r\n ];\r\n }\r\n if (node === elem) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n diff -= last;\r\n return diff === first || diff % first === 0 && diff / first >= 0;\r\n }\r\n };\r\n },\r\n PSEUDO: function (pseudo, argument) {\r\n var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error('unsupported pseudo: ' + pseudo);\r\n if (fn[expando]) {\r\n return fn(argument);\r\n }\r\n if (fn.length > 1) {\r\n args = [\r\n pseudo,\r\n pseudo,\r\n '',\r\n argument\r\n ];\r\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\r\n var idx, matched = fn(seed, argument), i = matched.length;\r\n while (i--) {\r\n idx = indexOf$1.call(seed, matched[i]);\r\n seed[idx] = !(matches[idx] = matched[i]);\r\n }\r\n }) : function (elem) {\r\n return fn(elem, 0, args);\r\n };\r\n }\r\n return fn;\r\n }\r\n },\r\n pseudos: {\r\n not: markFunction(function (selector) {\r\n var input = [], results = [], matcher = compile(selector.replace(rtrim, '$1'));\r\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\r\n var elem, unmatched = matcher(seed, null, xml, []), i = seed.length;\r\n while (i--) {\r\n if (elem = unmatched[i]) {\r\n seed[i] = !(matches[i] = elem);\r\n }\r\n }\r\n }) : function (elem, context, xml) {\r\n input[0] = elem;\r\n matcher(input, null, xml, results);\r\n return !results.pop();\r\n };\r\n }),\r\n has: markFunction(function (selector) {\r\n return function (elem) {\r\n return Sizzle(selector, elem).length > 0;\r\n };\r\n }),\r\n contains: markFunction(function (text) {\r\n text = text.replace(runescape, funescape);\r\n return function (elem) {\r\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\r\n };\r\n }),\r\n lang: markFunction(function (lang) {\r\n if (!ridentifier.test(lang || '')) {\r\n Sizzle.error('unsupported lang: ' + lang);\r\n }\r\n lang = lang.replace(runescape, funescape).toLowerCase();\r\n return function (elem) {\r\n var elemLang;\r\n do {\r\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute('xml:lang') || elem.getAttribute('lang')) {\r\n elemLang = elemLang.toLowerCase();\r\n return elemLang === lang || elemLang.indexOf(lang + '-') === 0;\r\n }\r\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\r\n return false;\r\n };\r\n }),\r\n target: function (elem) {\r\n var hash = window.location && window.location.hash;\r\n return hash && hash.slice(1) === elem.id;\r\n },\r\n root: function (elem) {\r\n return elem === docElem;\r\n },\r\n focus: function (elem) {\r\n return elem === document$1.activeElement && (!document$1.hasFocus || document$1.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\r\n },\r\n enabled: function (elem) {\r\n return elem.disabled === false;\r\n },\r\n disabled: function (elem) {\r\n return elem.disabled === true;\r\n },\r\n checked: function (elem) {\r\n var nodeName = elem.nodeName.toLowerCase();\r\n return nodeName === 'input' && !!elem.checked || nodeName === 'option' && !!elem.selected;\r\n },\r\n selected: function (elem) {\r\n if (elem.parentNode) {\r\n elem.parentNode.selectedIndex;\r\n }\r\n return elem.selected === true;\r\n },\r\n empty: function (elem) {\r\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n if (elem.nodeType < 6) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n parent: function (elem) {\r\n return !Expr.pseudos.empty(elem);\r\n },\r\n header: function (elem) {\r\n return rheader.test(elem.nodeName);\r\n },\r\n input: function (elem) {\r\n return rinputs.test(elem.nodeName);\r\n },\r\n button: function (elem) {\r\n var name$$1 = elem.nodeName.toLowerCase();\r\n return name$$1 === 'input' && elem.type === 'button' || name$$1 === 'button';\r\n },\r\n text: function (elem) {\r\n var attr;\r\n return elem.nodeName.toLowerCase() === 'input' && elem.type === 'text' && ((attr = elem.getAttribute('type')) == null || attr.toLowerCase() === 'text');\r\n },\r\n first: createPositionalPseudo(function () {\r\n return [0];\r\n }),\r\n last: createPositionalPseudo(function (matchIndexes, length$$1) {\r\n return [length$$1 - 1];\r\n }),\r\n eq: createPositionalPseudo(function (matchIndexes, length$$1, argument) {\r\n return [argument < 0 ? argument + length$$1 : argument];\r\n }),\r\n even: createPositionalPseudo(function (matchIndexes, length$$1) {\r\n var i = 0;\r\n for (; i < length$$1; i += 2) {\r\n matchIndexes.push(i);\r\n }\r\n return matchIndexes;\r\n }),\r\n odd: createPositionalPseudo(function (matchIndexes, length$$1) {\r\n var i = 1;\r\n for (; i < length$$1; i += 2) {\r\n matchIndexes.push(i);\r\n }\r\n return matchIndexes;\r\n }),\r\n lt: createPositionalPseudo(function (matchIndexes, length$$1, argument) {\r\n var i = argument < 0 ? argument + length$$1 : argument;\r\n for (; --i >= 0;) {\r\n matchIndexes.push(i);\r\n }\r\n return matchIndexes;\r\n }),\r\n gt: createPositionalPseudo(function (matchIndexes, length$$1, argument) {\r\n var i = argument < 0 ? argument + length$$1 : argument;\r\n for (; ++i < length$$1;) {\r\n matchIndexes.push(i);\r\n }\r\n return matchIndexes;\r\n })\r\n }\r\n };\r\n Expr.pseudos.nth = Expr.pseudos.eq;\r\n for (i in {\r\n radio: true,\r\n checkbox: true,\r\n file: true,\r\n password: true,\r\n image: true\r\n }) {\r\n Expr.pseudos[i] = createInputPseudo(i);\r\n }\r\n for (i in {\r\n submit: true,\r\n reset: true\r\n }) {\r\n Expr.pseudos[i] = createButtonPseudo(i);\r\n }\r\n function setFilters() {\r\n }\r\n setFilters.prototype = Expr.filters = Expr.pseudos;\r\n Expr.setFilters = new setFilters();\r\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\r\n var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + ' '];\r\n if (cached) {\r\n return parseOnly ? 0 : cached.slice(0);\r\n }\r\n soFar = selector;\r\n groups = [];\r\n preFilters = Expr.preFilter;\r\n while (soFar) {\r\n if (!matched || (match = rcomma.exec(soFar))) {\r\n if (match) {\r\n soFar = soFar.slice(match[0].length) || soFar;\r\n }\r\n groups.push(tokens = []);\r\n }\r\n matched = false;\r\n if (match = rcombinators.exec(soFar)) {\r\n matched = match.shift();\r\n tokens.push({\r\n value: matched,\r\n type: match[0].replace(rtrim, ' ')\r\n });\r\n soFar = soFar.slice(matched.length);\r\n }\r\n for (type in Expr.filter) {\r\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\r\n matched = match.shift();\r\n tokens.push({\r\n value: matched,\r\n type: type,\r\n matches: match\r\n });\r\n soFar = soFar.slice(matched.length);\r\n }\r\n }\r\n if (!matched) {\r\n break;\r\n }\r\n }\r\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0);\r\n };\r\n function toSelector(tokens) {\r\n var i = 0, len = tokens.length, selector = '';\r\n for (; i < len; i++) {\r\n selector += tokens[i].value;\r\n }\r\n return selector;\r\n }\r\n function addCombinator(matcher, combinator, base) {\r\n var dir = combinator.dir, checkNonElements = base && dir === 'parentNode', doneName = done++;\r\n return combinator.first ? function (elem, context, xml) {\r\n while (elem = elem[dir]) {\r\n if (elem.nodeType === 1 || checkNonElements) {\r\n return matcher(elem, context, xml);\r\n }\r\n }\r\n } : function (elem, context, xml) {\r\n var oldCache, outerCache, newCache = [\r\n dirruns,\r\n doneName\r\n ];\r\n if (xml) {\r\n while (elem = elem[dir]) {\r\n if (elem.nodeType === 1 || checkNonElements) {\r\n if (matcher(elem, context, xml)) {\r\n return true;\r\n }\r\n }\r\n }\r\n } else {\r\n while (elem = elem[dir]) {\r\n if (elem.nodeType === 1 || checkNonElements) {\r\n outerCache = elem[expando] || (elem[expando] = {});\r\n if ((oldCache = outerCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\r\n return newCache[2] = oldCache[2];\r\n } else {\r\n outerCache[dir] = newCache;\r\n if (newCache[2] = matcher(elem, context, xml)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\r\n function elementMatcher(matchers) {\r\n return matchers.length > 1 ? function (elem, context, xml) {\r\n var i = matchers.length;\r\n while (i--) {\r\n if (!matchers[i](elem, context, xml)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } : matchers[0];\r\n }\r\n function multipleContexts(selector, contexts, results) {\r\n var i = 0, len = contexts.length;\r\n for (; i < len; i++) {\r\n Sizzle(selector, contexts[i], results);\r\n }\r\n return results;\r\n }\r\n function condense(unmatched, map, filter, context, xml) {\r\n var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null;\r\n for (; i < len; i++) {\r\n if (elem = unmatched[i]) {\r\n if (!filter || filter(elem, context, xml)) {\r\n newUnmatched.push(elem);\r\n if (mapped) {\r\n map.push(i);\r\n }\r\n }\r\n }\r\n }\r\n return newUnmatched;\r\n }\r\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\r\n if (postFilter && !postFilter[expando]) {\r\n postFilter = setMatcher(postFilter);\r\n }\r\n if (postFinder && !postFinder[expando]) {\r\n postFinder = setMatcher(postFinder, postSelector);\r\n }\r\n return markFunction(function (seed, results, context, xml) {\r\n var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(selector || '*', context.nodeType ? [context] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn;\r\n if (matcher) {\r\n matcher(matcherIn, matcherOut, context, xml);\r\n }\r\n if (postFilter) {\r\n temp = condense(matcherOut, postMap);\r\n postFilter(temp, [], context, xml);\r\n i = temp.length;\r\n while (i--) {\r\n if (elem = temp[i]) {\r\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\r\n }\r\n }\r\n }\r\n if (seed) {\r\n if (postFinder || preFilter) {\r\n if (postFinder) {\r\n temp = [];\r\n i = matcherOut.length;\r\n while (i--) {\r\n if (elem = matcherOut[i]) {\r\n temp.push(matcherIn[i] = elem);\r\n }\r\n }\r\n postFinder(null, matcherOut = [], temp, xml);\r\n }\r\n i = matcherOut.length;\r\n while (i--) {\r\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf$1.call(seed, elem) : preMap[i]) > -1) {\r\n seed[temp] = !(results[temp] = elem);\r\n }\r\n }\r\n }\r\n } else {\r\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\r\n if (postFinder) {\r\n postFinder(null, results, matcherOut, xml);\r\n } else {\r\n push$1.apply(results, matcherOut);\r\n }\r\n }\r\n });\r\n }\r\n function matcherFromTokens(tokens) {\r\n var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[' '], i = leadingRelative ? 1 : 0, matchContext = addCombinator(function (elem) {\r\n return elem === checkContext;\r\n }, implicitRelative, true), matchAnyContext = addCombinator(function (elem) {\r\n return indexOf$1.call(checkContext, elem) > -1;\r\n }, implicitRelative, true), matchers = [function (elem, context, xml) {\r\n return !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\r\n }];\r\n for (; i < len; i++) {\r\n if (matcher = Expr.relative[tokens[i].type]) {\r\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\r\n } else {\r\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\r\n if (matcher[expando]) {\r\n j = ++i;\r\n for (; j < len; j++) {\r\n if (Expr.relative[tokens[j].type]) {\r\n break;\r\n }\r\n }\r\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === ' ' ? '*' : '' })).replace(rtrim, '$1'), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\r\n }\r\n matchers.push(matcher);\r\n }\r\n }\r\n return elementMatcher(matchers);\r\n }\r\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\r\n var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function (seed, context, xml, results, outermost) {\r\n var elem, j, matcher, matchedCount = 0, i = '0', unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG('*', outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length;\r\n if (outermost) {\r\n outermostContext = context !== document$1 && context;\r\n }\r\n for (; i !== len && (elem = elems[i]) != null; i++) {\r\n if (byElement && elem) {\r\n j = 0;\r\n while (matcher = elementMatchers[j++]) {\r\n if (matcher(elem, context, xml)) {\r\n results.push(elem);\r\n break;\r\n }\r\n }\r\n if (outermost) {\r\n dirruns = dirrunsUnique;\r\n }\r\n }\r\n if (bySet) {\r\n if (elem = !matcher && elem) {\r\n matchedCount--;\r\n }\r\n if (seed) {\r\n unmatched.push(elem);\r\n }\r\n }\r\n }\r\n matchedCount += i;\r\n if (bySet && i !== matchedCount) {\r\n j = 0;\r\n while (matcher = setMatchers[j++]) {\r\n matcher(unmatched, setMatched, context, xml);\r\n }\r\n if (seed) {\r\n if (matchedCount > 0) {\r\n while (i--) {\r\n if (!(unmatched[i] || setMatched[i])) {\r\n setMatched[i] = pop.call(results);\r\n }\r\n }\r\n }\r\n setMatched = condense(setMatched);\r\n }\r\n push$1.apply(results, setMatched);\r\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\r\n Sizzle.uniqueSort(results);\r\n }\r\n }\r\n if (outermost) {\r\n dirruns = dirrunsUnique;\r\n outermostContext = contextBackup;\r\n }\r\n return unmatched;\r\n };\r\n return bySet ? markFunction(superMatcher) : superMatcher;\r\n }\r\n compile = Sizzle.compile = function (selector, match) {\r\n var i, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + ' '];\r\n if (!cached) {\r\n if (!match) {\r\n match = tokenize(selector);\r\n }\r\n i = match.length;\r\n while (i--) {\r\n cached = matcherFromTokens(match[i]);\r\n if (cached[expando]) {\r\n setMatchers.push(cached);\r\n } else {\r\n elementMatchers.push(cached);\r\n }\r\n }\r\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\r\n cached.selector = selector;\r\n }\r\n return cached;\r\n };\r\n select = Sizzle.select = function (selector, context, results, seed) {\r\n var i, tokens, token, type, find, compiled = typeof selector === 'function' && selector, match = !seed && tokenize(selector = compiled.selector || selector);\r\n results = results || [];\r\n if (match.length === 1) {\r\n tokens = match[0] = match[0].slice(0);\r\n if (tokens.length > 2 && (token = tokens[0]).type === 'ID' && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\r\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\r\n if (!context) {\r\n return results;\r\n } else if (compiled) {\r\n context = context.parentNode;\r\n }\r\n selector = selector.slice(tokens.shift().value.length);\r\n }\r\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\r\n while (i--) {\r\n token = tokens[i];\r\n if (Expr.relative[type = token.type]) {\r\n break;\r\n }\r\n if (find = Expr.find[type]) {\r\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\r\n tokens.splice(i, 1);\r\n selector = seed.length && toSelector(tokens);\r\n if (!selector) {\r\n push$1.apply(results, seed);\r\n return results;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, rsibling.test(selector) && testContext(context.parentNode) || context);\r\n return results;\r\n };\r\n support.sortStable = expando.split('').sort(sortOrder).join('') === expando;\r\n support.detectDuplicates = !!hasDuplicate;\r\n setDocument();\r\n support.sortDetached = true;\r\n\r\n var isArray$1 = Array.isArray;\r\n var toArray = function (obj) {\r\n var array = obj, i, l;\r\n if (!isArray$1(obj)) {\r\n array = [];\r\n for (i = 0, l = obj.length; i < l; i++) {\r\n array[i] = obj[i];\r\n }\r\n }\r\n return array;\r\n };\r\n var each$1 = function (o, cb, s) {\r\n var n, l;\r\n if (!o) {\r\n return 0;\r\n }\r\n s = s || o;\r\n if (o.length !== undefined) {\r\n for (n = 0, l = o.length; n < l; n++) {\r\n if (cb.call(s, o[n], n, o) === false) {\r\n return 0;\r\n }\r\n }\r\n } else {\r\n for (n in o) {\r\n if (o.hasOwnProperty(n)) {\r\n if (cb.call(s, o[n], n, o) === false) {\r\n return 0;\r\n }\r\n }\r\n }\r\n }\r\n return 1;\r\n };\r\n var map$1 = function (array, callback) {\r\n var out = [];\r\n each$1(array, function (item, index) {\r\n out.push(callback(item, index, array));\r\n });\r\n return out;\r\n };\r\n var filter$1 = function (a, f) {\r\n var o = [];\r\n each$1(a, function (v, index) {\r\n if (!f || f(v, index, a)) {\r\n o.push(v);\r\n }\r\n });\r\n return o;\r\n };\r\n var indexOf$2 = function (a, v) {\r\n var i, l;\r\n if (a) {\r\n for (i = 0, l = a.length; i < l; i++) {\r\n if (a[i] === v) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n };\r\n var reduce = function (collection, iteratee, accumulator, thisArg) {\r\n var i = 0;\r\n if (arguments.length < 3) {\r\n accumulator = collection[0];\r\n }\r\n for (; i < collection.length; i++) {\r\n accumulator = iteratee.call(thisArg, accumulator, collection[i], i);\r\n }\r\n return accumulator;\r\n };\r\n var findIndex$1 = function (array, predicate, thisArg) {\r\n var i, l;\r\n for (i = 0, l = array.length; i < l; i++) {\r\n if (predicate.call(thisArg, array[i], i, array)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n var find$1 = function (array, predicate, thisArg) {\r\n var idx = findIndex$1(array, predicate, thisArg);\r\n if (idx !== -1) {\r\n return array[idx];\r\n }\r\n return undefined;\r\n };\r\n var last$1 = function (collection) {\r\n return collection[collection.length - 1];\r\n };\r\n var $_9g1fibmjkmcwkbu = {\r\n isArray: isArray$1,\r\n toArray: toArray,\r\n each: each$1,\r\n map: map$1,\r\n filter: filter$1,\r\n indexOf: indexOf$2,\r\n reduce: reduce,\r\n findIndex: findIndex$1,\r\n find: find$1,\r\n last: last$1\r\n };\r\n\r\n var whiteSpaceRegExp = /^\\s*|\\s*$/g;\r\n var trim = function (str) {\r\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp, '');\r\n };\r\n var is = function (obj, type) {\r\n if (!type) {\r\n return obj !== undefined;\r\n }\r\n if (type === 'array' && $_9g1fibmjkmcwkbu.isArray(obj)) {\r\n return true;\r\n }\r\n return typeof obj === type;\r\n };\r\n var makeMap = function (items, delim, map) {\r\n var i;\r\n items = items || [];\r\n delim = delim || ',';\r\n if (typeof items === 'string') {\r\n items = items.split(delim);\r\n }\r\n map = map || {};\r\n i = items.length;\r\n while (i--) {\r\n map[items[i]] = {};\r\n }\r\n return map;\r\n };\r\n var hasOwnProperty = function (obj, prop) {\r\n return Object.prototype.hasOwnProperty.call(obj, prop);\r\n };\r\n var create = function (s, p, root) {\r\n var self$$1 = this;\r\n var sp, ns, cn, scn, c, de = 0;\r\n s = /^((static) )?([\\w.]+)(:([\\w.]+))?/.exec(s);\r\n cn = s[3].match(/(^|\\.)(\\w+)$/i)[2];\r\n ns = self$$1.createNS(s[3].replace(/\\.\\w+$/, ''), root);\r\n if (ns[cn]) {\r\n return;\r\n }\r\n if (s[2] === 'static') {\r\n ns[cn] = p;\r\n if (this.onCreate) {\r\n this.onCreate(s[2], s[3], ns[cn]);\r\n }\r\n return;\r\n }\r\n if (!p[cn]) {\r\n p[cn] = function () {\r\n };\r\n de = 1;\r\n }\r\n ns[cn] = p[cn];\r\n self$$1.extend(ns[cn].prototype, p);\r\n if (s[5]) {\r\n sp = self$$1.resolve(s[5]).prototype;\r\n scn = s[5].match(/\\.(\\w+)$/i)[1];\r\n c = ns[cn];\r\n if (de) {\r\n ns[cn] = function () {\r\n return sp[scn].apply(this, arguments);\r\n };\r\n } else {\r\n ns[cn] = function () {\r\n this.parent = sp[scn];\r\n return c.apply(this, arguments);\r\n };\r\n }\r\n ns[cn].prototype[cn] = ns[cn];\r\n self$$1.each(sp, function (f, n) {\r\n ns[cn].prototype[n] = sp[n];\r\n });\r\n self$$1.each(p, function (f, n) {\r\n if (sp[n]) {\r\n ns[cn].prototype[n] = function () {\r\n this.parent = sp[n];\r\n return f.apply(this, arguments);\r\n };\r\n } else {\r\n if (n !== cn) {\r\n ns[cn].prototype[n] = f;\r\n }\r\n }\r\n });\r\n }\r\n self$$1.each(p.static, function (f, n) {\r\n ns[cn][n] = f;\r\n });\r\n };\r\n var extend = function (obj, ext) {\r\n var x = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n x[_i - 2] = arguments[_i];\r\n }\r\n var i, l, name$$1;\r\n var args = arguments;\r\n var value;\r\n for (i = 1, l = args.length; i < l; i++) {\r\n ext = args[i];\r\n for (name$$1 in ext) {\r\n if (ext.hasOwnProperty(name$$1)) {\r\n value = ext[name$$1];\r\n if (value !== undefined) {\r\n obj[name$$1] = value;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n };\r\n var walk = function (o, f, n, s) {\r\n s = s || this;\r\n if (o) {\r\n if (n) {\r\n o = o[n];\r\n }\r\n $_9g1fibmjkmcwkbu.each(o, function (o, i) {\r\n if (f.call(s, o, i, n) === false) {\r\n return false;\r\n }\r\n walk(o, f, n, s);\r\n });\r\n }\r\n };\r\n var createNS = function (n, o) {\r\n var i, v;\r\n o = o || window;\r\n n = n.split('.');\r\n for (i = 0; i < n.length; i++) {\r\n v = n[i];\r\n if (!o[v]) {\r\n o[v] = {};\r\n }\r\n o = o[v];\r\n }\r\n return o;\r\n };\r\n var resolve$1 = function (n, o) {\r\n var i, l;\r\n o = o || window;\r\n n = n.split('.');\r\n for (i = 0, l = n.length; i < l; i++) {\r\n o = o[n[i]];\r\n if (!o) {\r\n break;\r\n }\r\n }\r\n return o;\r\n };\r\n var explode = function (s, d) {\r\n if (!s || is(s, 'array')) {\r\n return s;\r\n }\r\n return $_9g1fibmjkmcwkbu.map(s.split(d || ','), trim);\r\n };\r\n var _addCacheSuffix = function (url) {\r\n var cacheSuffix = $_cvvl9iajkmcwk25.cacheSuffix;\r\n if (cacheSuffix) {\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\r\n }\r\n return url;\r\n };\r\n var $_4ujg4tljkmcwkbk = {\r\n trim: trim,\r\n isArray: $_9g1fibmjkmcwkbu.isArray,\r\n is: is,\r\n toArray: $_9g1fibmjkmcwkbu.toArray,\r\n makeMap: makeMap,\r\n each: $_9g1fibmjkmcwkbu.each,\r\n map: $_9g1fibmjkmcwkbu.map,\r\n grep: $_9g1fibmjkmcwkbu.filter,\r\n inArray: $_9g1fibmjkmcwkbu.indexOf,\r\n hasOwn: hasOwnProperty,\r\n extend: extend,\r\n create: create,\r\n walk: walk,\r\n createNS: createNS,\r\n resolve: resolve$1,\r\n explode: explode,\r\n _addCacheSuffix: _addCacheSuffix\r\n };\r\n\r\n var doc = document;\r\n var push$2 = Array.prototype.push;\r\n var slice$2 = Array.prototype.slice;\r\n var rquickExpr$1 = /^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/;\r\n var Event$$1 = EventUtils.Event;\r\n var skipUniques = $_4ujg4tljkmcwkbk.makeMap('children,contents,next,prev');\r\n var isDefined = function (obj) {\r\n return typeof obj !== 'undefined';\r\n };\r\n var isString$1 = function (obj) {\r\n return typeof obj === 'string';\r\n };\r\n var isWindow = function (obj) {\r\n return obj && obj === obj.window;\r\n };\r\n var createFragment = function (html, fragDoc) {\r\n var frag, node, container;\r\n fragDoc = fragDoc || doc;\r\n container = fragDoc.createElement('div');\r\n frag = fragDoc.createDocumentFragment();\r\n container.innerHTML = html;\r\n while (node = container.firstChild) {\r\n frag.appendChild(node);\r\n }\r\n return frag;\r\n };\r\n var domManipulate = function (targetNodes, sourceItem, callback, reverse) {\r\n var i;\r\n if (isString$1(sourceItem)) {\r\n sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0]));\r\n } else if (sourceItem.length && !sourceItem.nodeType) {\r\n sourceItem = DomQuery.makeArray(sourceItem);\r\n if (reverse) {\r\n for (i = sourceItem.length - 1; i >= 0; i--) {\r\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\r\n }\r\n } else {\r\n for (i = 0; i < sourceItem.length; i++) {\r\n domManipulate(targetNodes, sourceItem[i], callback, reverse);\r\n }\r\n }\r\n return targetNodes;\r\n }\r\n if (sourceItem.nodeType) {\r\n i = targetNodes.length;\r\n while (i--) {\r\n callback.call(targetNodes[i], sourceItem);\r\n }\r\n }\r\n return targetNodes;\r\n };\r\n var hasClass = function (node, className) {\r\n return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1;\r\n };\r\n var wrap = function (elements, wrapper, all) {\r\n var lastParent, newWrapper;\r\n wrapper = DomQuery(wrapper)[0];\r\n elements.each(function () {\r\n var self$$1 = this;\r\n if (!all || lastParent !== self$$1.parentNode) {\r\n lastParent = self$$1.parentNode;\r\n newWrapper = wrapper.cloneNode(false);\r\n self$$1.parentNode.insertBefore(newWrapper, self$$1);\r\n newWrapper.appendChild(self$$1);\r\n } else {\r\n newWrapper.appendChild(self$$1);\r\n }\r\n });\r\n return elements;\r\n };\r\n var numericCssMap = $_4ujg4tljkmcwkbk.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' ');\r\n var booleanMap = $_4ujg4tljkmcwkbk.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' ');\r\n var propFix = {\r\n for: 'htmlFor',\r\n class: 'className',\r\n readonly: 'readOnly'\r\n };\r\n var cssFix = { float: 'cssFloat' };\r\n var attrHooks = {};\r\n var cssHooks = {};\r\n var DomQuery = function (selector, context) {\r\n return new DomQuery.fn.init(selector, context);\r\n };\r\n var inArray = function (item, array) {\r\n var i;\r\n if (array.indexOf) {\r\n return array.indexOf(item);\r\n }\r\n i = array.length;\r\n while (i--) {\r\n if (array[i] === item) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n var whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\r\n var trim$1 = function (str) {\r\n return str === null || str === undefined ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\r\n };\r\n var each$2 = function (obj, callback) {\r\n var length$$1, key, i, value;\r\n if (obj) {\r\n length$$1 = obj.length;\r\n if (length$$1 === undefined) {\r\n for (key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n value = obj[key];\r\n if (callback.call(value, key, value) === false) {\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < length$$1; i++) {\r\n value = obj[i];\r\n if (callback.call(value, i, value) === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n };\r\n var grep = function (array, callback) {\r\n var out = [];\r\n each$2(array, function (i, item) {\r\n if (callback(item, i)) {\r\n out.push(item);\r\n }\r\n });\r\n return out;\r\n };\r\n var getElementDocument = function (element) {\r\n if (!element) {\r\n return doc;\r\n }\r\n if (element.nodeType === 9) {\r\n return element;\r\n }\r\n return element.ownerDocument;\r\n };\r\n DomQuery.fn = DomQuery.prototype = {\r\n constructor: DomQuery,\r\n selector: '',\r\n context: null,\r\n length: 0,\r\n init: function (selector, context) {\r\n var self$$1 = this;\r\n var match, node;\r\n if (!selector) {\r\n return self$$1;\r\n }\r\n if (selector.nodeType) {\r\n self$$1.context = self$$1[0] = selector;\r\n self$$1.length = 1;\r\n return self$$1;\r\n }\r\n if (context && context.nodeType) {\r\n self$$1.context = context;\r\n } else {\r\n if (context) {\r\n return DomQuery(selector).attr(context);\r\n }\r\n self$$1.context = context = document;\r\n }\r\n if (isString$1(selector)) {\r\n self$$1.selector = selector;\r\n if (selector.charAt(0) === '<' && selector.charAt(selector.length - 1) === '>' && selector.length >= 3) {\r\n match = [\r\n null,\r\n selector,\r\n null\r\n ];\r\n } else {\r\n match = rquickExpr$1.exec(selector);\r\n }\r\n if (match) {\r\n if (match[1]) {\r\n node = createFragment(selector, getElementDocument(context)).firstChild;\r\n while (node) {\r\n push$2.call(self$$1, node);\r\n node = node.nextSibling;\r\n }\r\n } else {\r\n node = getElementDocument(context).getElementById(match[2]);\r\n if (!node) {\r\n return self$$1;\r\n }\r\n if (node.id !== match[2]) {\r\n return self$$1.find(selector);\r\n }\r\n self$$1.length = 1;\r\n self$$1[0] = node;\r\n }\r\n } else {\r\n return DomQuery(context).find(selector);\r\n }\r\n } else {\r\n this.add(selector, false);\r\n }\r\n return self$$1;\r\n },\r\n toArray: function () {\r\n return $_4ujg4tljkmcwkbk.toArray(this);\r\n },\r\n add: function (items, sort) {\r\n var self$$1 = this;\r\n var nodes, i;\r\n if (isString$1(items)) {\r\n return self$$1.add(DomQuery(items));\r\n }\r\n if (sort !== false) {\r\n nodes = DomQuery.unique(self$$1.toArray().concat(DomQuery.makeArray(items)));\r\n self$$1.length = nodes.length;\r\n for (i = 0; i < nodes.length; i++) {\r\n self$$1[i] = nodes[i];\r\n }\r\n } else {\r\n push$2.apply(self$$1, DomQuery.makeArray(items));\r\n }\r\n return self$$1;\r\n },\r\n attr: function (name$$1, value) {\r\n var self$$1 = this;\r\n var hook;\r\n if (typeof name$$1 === 'object') {\r\n each$2(name$$1, function (name$$1, value) {\r\n self$$1.attr(name$$1, value);\r\n });\r\n } else if (isDefined(value)) {\r\n this.each(function () {\r\n var hook;\r\n if (this.nodeType === 1) {\r\n hook = attrHooks[name$$1];\r\n if (hook && hook.set) {\r\n hook.set(this, value);\r\n return;\r\n }\r\n if (value === null) {\r\n this.removeAttribute(name$$1, 2);\r\n } else {\r\n this.setAttribute(name$$1, value, 2);\r\n }\r\n }\r\n });\r\n } else {\r\n if (self$$1[0] && self$$1[0].nodeType === 1) {\r\n hook = attrHooks[name$$1];\r\n if (hook && hook.get) {\r\n return hook.get(self$$1[0], name$$1);\r\n }\r\n if (booleanMap[name$$1]) {\r\n return self$$1.prop(name$$1) ? name$$1 : undefined;\r\n }\r\n value = self$$1[0].getAttribute(name$$1, 2);\r\n if (value === null) {\r\n value = undefined;\r\n }\r\n }\r\n return value;\r\n }\r\n return self$$1;\r\n },\r\n removeAttr: function (name$$1) {\r\n return this.attr(name$$1, null);\r\n },\r\n prop: function (name$$1, value) {\r\n var self$$1 = this;\r\n name$$1 = propFix[name$$1] || name$$1;\r\n if (typeof name$$1 === 'object') {\r\n each$2(name$$1, function (name$$1, value) {\r\n self$$1.prop(name$$1, value);\r\n });\r\n } else if (isDefined(value)) {\r\n this.each(function () {\r\n if (this.nodeType === 1) {\r\n this[name$$1] = value;\r\n }\r\n });\r\n } else {\r\n if (self$$1[0] && self$$1[0].nodeType && name$$1 in self$$1[0]) {\r\n return self$$1[0][name$$1];\r\n }\r\n return value;\r\n }\r\n return self$$1;\r\n },\r\n css: function (name$$1, value) {\r\n var self$$1 = this;\r\n var elm, hook;\r\n var camel = function (name$$1) {\r\n return name$$1.replace(/-(\\D)/g, function (a, b) {\r\n return b.toUpperCase();\r\n });\r\n };\r\n var dashed = function (name$$1) {\r\n return name$$1.replace(/[A-Z]/g, function (a) {\r\n return '-' + a;\r\n });\r\n };\r\n if (typeof name$$1 === 'object') {\r\n each$2(name$$1, function (name$$1, value) {\r\n self$$1.css(name$$1, value);\r\n });\r\n } else {\r\n if (isDefined(value)) {\r\n name$$1 = camel(name$$1);\r\n if (typeof value === 'number' && !numericCssMap[name$$1]) {\r\n value = value.toString() + 'px';\r\n }\r\n self$$1.each(function () {\r\n var style = this.style;\r\n hook = cssHooks[name$$1];\r\n if (hook && hook.set) {\r\n hook.set(this, value);\r\n return;\r\n }\r\n try {\r\n this.style[cssFix[name$$1] || name$$1] = value;\r\n } catch (ex) {\r\n }\r\n if (value === null || value === '') {\r\n if (style.removeProperty) {\r\n style.removeProperty(dashed(name$$1));\r\n } else {\r\n style.removeAttribute(name$$1);\r\n }\r\n }\r\n });\r\n } else {\r\n elm = self$$1[0];\r\n hook = cssHooks[name$$1];\r\n if (hook && hook.get) {\r\n return hook.get(elm);\r\n }\r\n if (elm.ownerDocument.defaultView) {\r\n try {\r\n return elm.ownerDocument.defaultView.getComputedStyle(elm, null).getPropertyValue(dashed(name$$1));\r\n } catch (ex) {\r\n return undefined;\r\n }\r\n } else if (elm.currentStyle) {\r\n return elm.currentStyle[camel(name$$1)];\r\n } else {\r\n return '';\r\n }\r\n }\r\n }\r\n return self$$1;\r\n },\r\n remove: function () {\r\n var self$$1 = this;\r\n var node, i = this.length;\r\n while (i--) {\r\n node = self$$1[i];\r\n Event$$1.clean(node);\r\n if (node.parentNode) {\r\n node.parentNode.removeChild(node);\r\n }\r\n }\r\n return this;\r\n },\r\n empty: function () {\r\n var self$$1 = this;\r\n var node, i = this.length;\r\n while (i--) {\r\n node = self$$1[i];\r\n while (node.firstChild) {\r\n node.removeChild(node.firstChild);\r\n }\r\n }\r\n return this;\r\n },\r\n html: function (value) {\r\n var self$$1 = this;\r\n var i;\r\n if (isDefined(value)) {\r\n i = self$$1.length;\r\n try {\r\n while (i--) {\r\n self$$1[i].innerHTML = value;\r\n }\r\n } catch (ex) {\r\n DomQuery(self$$1[i]).empty().append(value);\r\n }\r\n return self$$1;\r\n }\r\n return self$$1[0] ? self$$1[0].innerHTML : '';\r\n },\r\n text: function (value) {\r\n var self$$1 = this;\r\n var i;\r\n if (isDefined(value)) {\r\n i = self$$1.length;\r\n while (i--) {\r\n if ('innerText' in self$$1[i]) {\r\n self$$1[i].innerText = value;\r\n } else {\r\n self$$1[0].textContent = value;\r\n }\r\n }\r\n return self$$1;\r\n }\r\n return self$$1[0] ? self$$1[0].innerText || self$$1[0].textContent : '';\r\n },\r\n append: function () {\r\n return domManipulate(this, arguments, function (node) {\r\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\r\n this.appendChild(node);\r\n }\r\n });\r\n },\r\n prepend: function () {\r\n return domManipulate(this, arguments, function (node) {\r\n if (this.nodeType === 1 || this.host && this.host.nodeType === 1) {\r\n this.insertBefore(node, this.firstChild);\r\n }\r\n }, true);\r\n },\r\n before: function () {\r\n var self$$1 = this;\r\n if (self$$1[0] && self$$1[0].parentNode) {\r\n return domManipulate(self$$1, arguments, function (node) {\r\n this.parentNode.insertBefore(node, this);\r\n });\r\n }\r\n return self$$1;\r\n },\r\n after: function () {\r\n var self$$1 = this;\r\n if (self$$1[0] && self$$1[0].parentNode) {\r\n return domManipulate(self$$1, arguments, function (node) {\r\n this.parentNode.insertBefore(node, this.nextSibling);\r\n }, true);\r\n }\r\n return self$$1;\r\n },\r\n appendTo: function (val) {\r\n DomQuery(val).append(this);\r\n return this;\r\n },\r\n prependTo: function (val) {\r\n DomQuery(val).prepend(this);\r\n return this;\r\n },\r\n replaceWith: function (content) {\r\n return this.before(content).remove();\r\n },\r\n wrap: function (content) {\r\n return wrap(this, content);\r\n },\r\n wrapAll: function (content) {\r\n return wrap(this, content, true);\r\n },\r\n wrapInner: function (content) {\r\n this.each(function () {\r\n DomQuery(this).contents().wrapAll(content);\r\n });\r\n return this;\r\n },\r\n unwrap: function () {\r\n return this.parent().each(function () {\r\n DomQuery(this).replaceWith(this.childNodes);\r\n });\r\n },\r\n clone: function () {\r\n var result = [];\r\n this.each(function () {\r\n result.push(this.cloneNode(true));\r\n });\r\n return DomQuery(result);\r\n },\r\n addClass: function (className) {\r\n return this.toggleClass(className, true);\r\n },\r\n removeClass: function (className) {\r\n return this.toggleClass(className, false);\r\n },\r\n toggleClass: function (className, state) {\r\n var self$$1 = this;\r\n if (typeof className !== 'string') {\r\n return self$$1;\r\n }\r\n if (className.indexOf(' ') !== -1) {\r\n each$2(className.split(' '), function () {\r\n self$$1.toggleClass(this, state);\r\n });\r\n } else {\r\n self$$1.each(function (index, node) {\r\n var existingClassName, classState;\r\n classState = hasClass(node, className);\r\n if (classState !== state) {\r\n existingClassName = node.className;\r\n if (classState) {\r\n node.className = trim$1((' ' + existingClassName + ' ').replace(' ' + className + ' ', ' '));\r\n } else {\r\n node.className += existingClassName ? ' ' + className : className;\r\n }\r\n }\r\n });\r\n }\r\n return self$$1;\r\n },\r\n hasClass: function (className) {\r\n return hasClass(this[0], className);\r\n },\r\n each: function (callback) {\r\n return each$2(this, callback);\r\n },\r\n on: function (name$$1, callback) {\r\n return this.each(function () {\r\n Event$$1.bind(this, name$$1, callback);\r\n });\r\n },\r\n off: function (name$$1, callback) {\r\n return this.each(function () {\r\n Event$$1.unbind(this, name$$1, callback);\r\n });\r\n },\r\n trigger: function (name$$1) {\r\n return this.each(function () {\r\n if (typeof name$$1 === 'object') {\r\n Event$$1.fire(this, name$$1.type, name$$1);\r\n } else {\r\n Event$$1.fire(this, name$$1);\r\n }\r\n });\r\n },\r\n show: function () {\r\n return this.css('display', '');\r\n },\r\n hide: function () {\r\n return this.css('display', 'none');\r\n },\r\n slice: function () {\r\n return new DomQuery(slice$2.apply(this, arguments));\r\n },\r\n eq: function (index) {\r\n return index === -1 ? this.slice(index) : this.slice(index, +index + 1);\r\n },\r\n first: function () {\r\n return this.eq(0);\r\n },\r\n last: function () {\r\n return this.eq(-1);\r\n },\r\n find: function (selector) {\r\n var i, l;\r\n var ret = [];\r\n for (i = 0, l = this.length; i < l; i++) {\r\n DomQuery.find(selector, this[i], ret);\r\n }\r\n return DomQuery(ret);\r\n },\r\n filter: function (selector) {\r\n if (typeof selector === 'function') {\r\n return DomQuery(grep(this.toArray(), function (item, i) {\r\n return selector(i, item);\r\n }));\r\n }\r\n return DomQuery(DomQuery.filter(selector, this.toArray()));\r\n },\r\n closest: function (selector) {\r\n var result = [];\r\n if (selector instanceof DomQuery) {\r\n selector = selector[0];\r\n }\r\n this.each(function (i, node) {\r\n while (node) {\r\n if (typeof selector === 'string' && DomQuery(node).is(selector)) {\r\n result.push(node);\r\n break;\r\n } else if (node === selector) {\r\n result.push(node);\r\n break;\r\n }\r\n node = node.parentNode;\r\n }\r\n });\r\n return DomQuery(result);\r\n },\r\n offset: function (offset) {\r\n var elm, doc, docElm;\r\n var x = 0, y = 0, pos;\r\n if (!offset) {\r\n elm = this[0];\r\n if (elm) {\r\n doc = elm.ownerDocument;\r\n docElm = doc.documentElement;\r\n if (elm.getBoundingClientRect) {\r\n pos = elm.getBoundingClientRect();\r\n x = pos.left + (docElm.scrollLeft || doc.body.scrollLeft) - docElm.clientLeft;\r\n y = pos.top + (docElm.scrollTop || doc.body.scrollTop) - docElm.clientTop;\r\n }\r\n }\r\n return {\r\n left: x,\r\n top: y\r\n };\r\n }\r\n return this.css(offset);\r\n },\r\n push: push$2,\r\n sort: [].sort,\r\n splice: [].splice\r\n };\r\n $_4ujg4tljkmcwkbk.extend(DomQuery, {\r\n extend: $_4ujg4tljkmcwkbk.extend,\r\n makeArray: function (object) {\r\n if (isWindow(object) || object.nodeType) {\r\n return [object];\r\n }\r\n return $_4ujg4tljkmcwkbk.toArray(object);\r\n },\r\n inArray: inArray,\r\n isArray: $_4ujg4tljkmcwkbk.isArray,\r\n each: each$2,\r\n trim: trim$1,\r\n grep: grep,\r\n find: Sizzle,\r\n expr: Sizzle.selectors,\r\n unique: Sizzle.uniqueSort,\r\n text: Sizzle.getText,\r\n contains: Sizzle.contains,\r\n filter: function (expr, elems, not) {\r\n var i = elems.length;\r\n if (not) {\r\n expr = ':not(' + expr + ')';\r\n }\r\n while (i--) {\r\n if (elems[i].nodeType !== 1) {\r\n elems.splice(i, 1);\r\n }\r\n }\r\n if (elems.length === 1) {\r\n elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [];\r\n } else {\r\n elems = DomQuery.find.matches(expr, elems);\r\n }\r\n return elems;\r\n }\r\n });\r\n var dir = function (el, prop, until) {\r\n var matched = [];\r\n var cur = el[prop];\r\n if (typeof until !== 'string' && until instanceof DomQuery) {\r\n until = until[0];\r\n }\r\n while (cur && cur.nodeType !== 9) {\r\n if (until !== undefined) {\r\n if (cur === until) {\r\n break;\r\n }\r\n if (typeof until === 'string' && DomQuery(cur).is(until)) {\r\n break;\r\n }\r\n }\r\n if (cur.nodeType === 1) {\r\n matched.push(cur);\r\n }\r\n cur = cur[prop];\r\n }\r\n return matched;\r\n };\r\n var sibling = function (node, siblingName, nodeType, until) {\r\n var result = [];\r\n if (until instanceof DomQuery) {\r\n until = until[0];\r\n }\r\n for (; node; node = node[siblingName]) {\r\n if (nodeType && node.nodeType !== nodeType) {\r\n continue;\r\n }\r\n if (until !== undefined) {\r\n if (node === until) {\r\n break;\r\n }\r\n if (typeof until === 'string' && DomQuery(node).is(until)) {\r\n break;\r\n }\r\n }\r\n result.push(node);\r\n }\r\n return result;\r\n };\r\n var firstSibling = function (node, siblingName, nodeType) {\r\n for (node = node[siblingName]; node; node = node[siblingName]) {\r\n if (node.nodeType === nodeType) {\r\n return node;\r\n }\r\n }\r\n return null;\r\n };\r\n each$2({\r\n parent: function (node) {\r\n var parent$$1 = node.parentNode;\r\n return parent$$1 && parent$$1.nodeType !== 11 ? parent$$1 : null;\r\n },\r\n parents: function (node) {\r\n return dir(node, 'parentNode');\r\n },\r\n next: function (node) {\r\n return firstSibling(node, 'nextSibling', 1);\r\n },\r\n prev: function (node) {\r\n return firstSibling(node, 'previousSibling', 1);\r\n },\r\n children: function (node) {\r\n return sibling(node.firstChild, 'nextSibling', 1);\r\n },\r\n contents: function (node) {\r\n return $_4ujg4tljkmcwkbk.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);\r\n }\r\n }, function (name$$1, fn) {\r\n DomQuery.fn[name$$1] = function (selector) {\r\n var self$$1 = this;\r\n var result = [];\r\n self$$1.each(function () {\r\n var nodes = fn.call(result, this, selector, result);\r\n if (nodes) {\r\n if (DomQuery.isArray(nodes)) {\r\n result.push.apply(result, nodes);\r\n } else {\r\n result.push(nodes);\r\n }\r\n }\r\n });\r\n if (this.length > 1) {\r\n if (!skipUniques[name$$1]) {\r\n result = DomQuery.unique(result);\r\n }\r\n if (name$$1.indexOf('parents') === 0) {\r\n result = result.reverse();\r\n }\r\n }\r\n result = DomQuery(result);\r\n if (selector) {\r\n return result.filter(selector);\r\n }\r\n return result;\r\n };\r\n });\r\n each$2({\r\n parentsUntil: function (node, until) {\r\n return dir(node, 'parentNode', until);\r\n },\r\n nextUntil: function (node, until) {\r\n return sibling(node, 'nextSibling', 1, until).slice(1);\r\n },\r\n prevUntil: function (node, until) {\r\n return sibling(node, 'previousSibling', 1, until).slice(1);\r\n }\r\n }, function (name$$1, fn) {\r\n DomQuery.fn[name$$1] = function (selector, filter) {\r\n var self$$1 = this;\r\n var result = [];\r\n self$$1.each(function () {\r\n var nodes = fn.call(result, this, selector, result);\r\n if (nodes) {\r\n if (DomQuery.isArray(nodes)) {\r\n result.push.apply(result, nodes);\r\n } else {\r\n result.push(nodes);\r\n }\r\n }\r\n });\r\n if (this.length > 1) {\r\n result = DomQuery.unique(result);\r\n if (name$$1.indexOf('parents') === 0 || name$$1 === 'prevUntil') {\r\n result = result.reverse();\r\n }\r\n }\r\n result = DomQuery(result);\r\n if (filter) {\r\n return result.filter(filter);\r\n }\r\n return result;\r\n };\r\n });\r\n DomQuery.fn.is = function (selector) {\r\n return !!selector && this.filter(selector).length > 0;\r\n };\r\n DomQuery.fn.init.prototype = DomQuery.fn;\r\n DomQuery.overrideDefaults = function (callback) {\r\n var defaults;\r\n var sub = function (selector, context) {\r\n defaults = defaults || callback();\r\n if (arguments.length === 0) {\r\n selector = defaults.element;\r\n }\r\n if (!context) {\r\n context = defaults.context;\r\n }\r\n return new sub.fn.init(selector, context);\r\n };\r\n DomQuery.extend(sub, this);\r\n return sub;\r\n };\r\n var appendHooks = function (targetHooks, prop, hooks) {\r\n each$2(hooks, function (name$$1, func) {\r\n targetHooks[name$$1] = targetHooks[name$$1] || {};\r\n targetHooks[name$$1][prop] = func;\r\n });\r\n };\r\n if ($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 8) {\r\n appendHooks(attrHooks, 'get', {\r\n maxlength: function (elm) {\r\n var value = elm.maxLength;\r\n if (value === 2147483647) {\r\n return undefined;\r\n }\r\n return value;\r\n },\r\n size: function (elm) {\r\n var value = elm.size;\r\n if (value === 20) {\r\n return undefined;\r\n }\r\n return value;\r\n },\r\n class: function (elm) {\r\n return elm.className;\r\n },\r\n style: function (elm) {\r\n var value = elm.style.cssText;\r\n if (value.length === 0) {\r\n return undefined;\r\n }\r\n return value;\r\n }\r\n });\r\n appendHooks(attrHooks, 'set', {\r\n class: function (elm, value) {\r\n elm.className = value;\r\n },\r\n style: function (elm, value) {\r\n elm.style.cssText = value;\r\n }\r\n });\r\n }\r\n if ($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 9) {\r\n cssFix.float = 'styleFloat';\r\n appendHooks(cssHooks, 'set', {\r\n opacity: function (elm, value) {\r\n var style = elm.style;\r\n if (value === null || value === '') {\r\n style.removeAttribute('filter');\r\n } else {\r\n style.zoom = 1;\r\n style.filter = 'alpha(opacity=' + value * 100 + ')';\r\n }\r\n }\r\n });\r\n }\r\n DomQuery.attrHooks = attrHooks;\r\n DomQuery.cssHooks = cssHooks;\r\n\r\n var cached = function (f) {\r\n var called = false;\r\n var r;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!called) {\r\n called = true;\r\n r = f.apply(null, args);\r\n }\r\n return r;\r\n };\r\n };\r\n\r\n var firstMatch = function (regexes, s) {\r\n for (var i = 0; i < regexes.length; i++) {\r\n var x = regexes[i];\r\n if (x.test(s))\r\n return x;\r\n }\r\n return undefined;\r\n };\r\n var find$2 = function (regexes, agent) {\r\n var r = firstMatch(regexes, agent);\r\n if (!r)\r\n return {\r\n major: 0,\r\n minor: 0\r\n };\r\n var group = function (i) {\r\n return Number(agent.replace(r, '$' + i));\r\n };\r\n return nu(group(1), group(2));\r\n };\r\n var detect = function (versionRegexes, agent) {\r\n var cleanedAgent = String(agent).toLowerCase();\r\n if (versionRegexes.length === 0)\r\n return unknown();\r\n return find$2(versionRegexes, cleanedAgent);\r\n };\r\n var unknown = function () {\r\n return nu(0, 0);\r\n };\r\n var nu = function (major, minor) {\r\n return {\r\n major: major,\r\n minor: minor\r\n };\r\n };\r\n var $_2kio3msjkmcwkcv = {\r\n nu: nu,\r\n detect: detect,\r\n unknown: unknown\r\n };\r\n\r\n var edge = 'Edge';\r\n var chrome = 'Chrome';\r\n var ie$1 = 'IE';\r\n var opera$1 = 'Opera';\r\n var firefox = 'Firefox';\r\n var safari = 'Safari';\r\n var isBrowser = function (name, current) {\r\n return function () {\r\n return current === name;\r\n };\r\n };\r\n var unknown$1 = function () {\r\n return nu$1({\r\n current: undefined,\r\n version: $_2kio3msjkmcwkcv.unknown()\r\n });\r\n };\r\n var nu$1 = function (info) {\r\n var current = info.current;\r\n var version = info.version;\r\n return {\r\n current: current,\r\n version: version,\r\n isEdge: isBrowser(edge, current),\r\n isChrome: isBrowser(chrome, current),\r\n isIE: isBrowser(ie$1, current),\r\n isOpera: isBrowser(opera$1, current),\r\n isFirefox: isBrowser(firefox, current),\r\n isSafari: isBrowser(safari, current)\r\n };\r\n };\r\n var $_ei4lq0rjkmcwkcq = {\r\n unknown: unknown$1,\r\n nu: nu$1,\r\n edge: constant(edge),\r\n chrome: constant(chrome),\r\n ie: constant(ie$1),\r\n opera: constant(opera$1),\r\n firefox: constant(firefox),\r\n safari: constant(safari)\r\n };\r\n\r\n var windows = 'Windows';\r\n var ios = 'iOS';\r\n var android$1 = 'Android';\r\n var linux = 'Linux';\r\n var osx = 'OSX';\r\n var solaris = 'Solaris';\r\n var freebsd = 'FreeBSD';\r\n var isOS = function (name, current) {\r\n return function () {\r\n return current === name;\r\n };\r\n };\r\n var unknown$2 = function () {\r\n return nu$2({\r\n current: undefined,\r\n version: $_2kio3msjkmcwkcv.unknown()\r\n });\r\n };\r\n var nu$2 = function (info) {\r\n var current = info.current;\r\n var version = info.version;\r\n return {\r\n current: current,\r\n version: version,\r\n isWindows: isOS(windows, current),\r\n isiOS: isOS(ios, current),\r\n isAndroid: isOS(android$1, current),\r\n isOSX: isOS(osx, current),\r\n isLinux: isOS(linux, current),\r\n isSolaris: isOS(solaris, current),\r\n isFreeBSD: isOS(freebsd, current)\r\n };\r\n };\r\n var $_85w4ndtjkmcwkcx = {\r\n unknown: unknown$2,\r\n nu: nu$2,\r\n windows: constant(windows),\r\n ios: constant(ios),\r\n android: constant(android$1),\r\n linux: constant(linux),\r\n osx: constant(osx),\r\n solaris: constant(solaris),\r\n freebsd: constant(freebsd)\r\n };\r\n\r\n function DeviceType (os, browser, userAgent) {\r\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\r\n var isiPhone = os.isiOS() && !isiPad;\r\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\r\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\r\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\r\n var isTouch = os.isiOS() || os.isAndroid();\r\n var isPhone = isTouch && !isTablet;\r\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\r\n return {\r\n isiPad: constant(isiPad),\r\n isiPhone: constant(isiPhone),\r\n isTablet: constant(isTablet),\r\n isPhone: constant(isPhone),\r\n isTouch: constant(isTouch),\r\n isAndroid: os.isAndroid,\r\n isiOS: os.isiOS,\r\n isWebView: constant(iOSwebview)\r\n };\r\n }\r\n\r\n var detect$1 = function (candidates, userAgent) {\r\n var agent = String(userAgent).toLowerCase();\r\n return find(candidates, function (candidate) {\r\n return candidate.search(agent);\r\n });\r\n };\r\n var detectBrowser = function (browsers, userAgent) {\r\n return detect$1(browsers, userAgent).map(function (browser) {\r\n var version = $_2kio3msjkmcwkcv.detect(browser.versionRegexes, userAgent);\r\n return {\r\n current: browser.name,\r\n version: version\r\n };\r\n });\r\n };\r\n var detectOs = function (oses, userAgent) {\r\n return detect$1(oses, userAgent).map(function (os) {\r\n var version = $_2kio3msjkmcwkcv.detect(os.versionRegexes, userAgent);\r\n return {\r\n current: os.name,\r\n version: version\r\n };\r\n });\r\n };\r\n var $_6qxoukvjkmcwkd5 = {\r\n detectBrowser: detectBrowser,\r\n detectOs: detectOs\r\n };\r\n\r\n var contains$2 = function (str, substr) {\r\n return str.indexOf(substr) !== -1;\r\n };\r\n\r\n\r\n\r\n var trim$2 = function (str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n };\r\n\r\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\r\n var checkContains = function (target) {\r\n return function (uastring) {\r\n return contains$2(uastring, target);\r\n };\r\n };\r\n var browsers = [\r\n {\r\n name: 'Edge',\r\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\r\n search: function (uastring) {\r\n var monstrosity = contains$2(uastring, 'edge/') && contains$2(uastring, 'chrome') && contains$2(uastring, 'safari') && contains$2(uastring, 'applewebkit');\r\n return monstrosity;\r\n }\r\n },\r\n {\r\n name: 'Chrome',\r\n versionRegexes: [\r\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\r\n normalVersionRegex\r\n ],\r\n search: function (uastring) {\r\n return contains$2(uastring, 'chrome') && !contains$2(uastring, 'chromeframe');\r\n }\r\n },\r\n {\r\n name: 'IE',\r\n versionRegexes: [\r\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\r\n /.*?rv:([0-9]+)\\.([0-9]+).*/\r\n ],\r\n search: function (uastring) {\r\n return contains$2(uastring, 'msie') || contains$2(uastring, 'trident');\r\n }\r\n },\r\n {\r\n name: 'Opera',\r\n versionRegexes: [\r\n normalVersionRegex,\r\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\r\n ],\r\n search: checkContains('opera')\r\n },\r\n {\r\n name: 'Firefox',\r\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\r\n search: checkContains('firefox')\r\n },\r\n {\r\n name: 'Safari',\r\n versionRegexes: [\r\n normalVersionRegex,\r\n /.*?cpu os ([0-9]+)_([0-9]+).*/\r\n ],\r\n search: function (uastring) {\r\n return (contains$2(uastring, 'safari') || contains$2(uastring, 'mobile/')) && contains$2(uastring, 'applewebkit');\r\n }\r\n }\r\n ];\r\n var oses = [\r\n {\r\n name: 'Windows',\r\n search: checkContains('win'),\r\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\r\n },\r\n {\r\n name: 'iOS',\r\n search: function (uastring) {\r\n return contains$2(uastring, 'iphone') || contains$2(uastring, 'ipad');\r\n },\r\n versionRegexes: [\r\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\r\n /.*cpu os ([0-9]+)_([0-9]+).*/,\r\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\r\n ]\r\n },\r\n {\r\n name: 'Android',\r\n search: checkContains('android'),\r\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\r\n },\r\n {\r\n name: 'OSX',\r\n search: checkContains('os x'),\r\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\r\n },\r\n {\r\n name: 'Linux',\r\n search: checkContains('linux'),\r\n versionRegexes: []\r\n },\r\n {\r\n name: 'Solaris',\r\n search: checkContains('sunos'),\r\n versionRegexes: []\r\n },\r\n {\r\n name: 'FreeBSD',\r\n search: checkContains('freebsd'),\r\n versionRegexes: []\r\n }\r\n ];\r\n var $_6vxr68wjkmcwkdc = {\r\n browsers: constant(browsers),\r\n oses: constant(oses)\r\n };\r\n\r\n var detect$2 = function (userAgent) {\r\n var browsers = $_6vxr68wjkmcwkdc.browsers();\r\n var oses = $_6vxr68wjkmcwkdc.oses();\r\n var browser = $_6qxoukvjkmcwkd5.detectBrowser(browsers, userAgent).fold($_ei4lq0rjkmcwkcq.unknown, $_ei4lq0rjkmcwkcq.nu);\r\n var os = $_6qxoukvjkmcwkd5.detectOs(oses, userAgent).fold($_85w4ndtjkmcwkcx.unknown, $_85w4ndtjkmcwkcx.nu);\r\n var deviceType = DeviceType(os, browser, userAgent);\r\n return {\r\n browser: browser,\r\n os: os,\r\n deviceType: deviceType\r\n };\r\n };\r\n var $_c5ox8vqjkmcwkco = { detect: detect$2 };\r\n\r\n var detect$3 = cached(function () {\r\n var userAgent = navigator.userAgent;\r\n return $_c5ox8vqjkmcwkco.detect(userAgent);\r\n });\r\n var $_b1ykk4ojkmcwkcj = { detect: detect$3 };\r\n\r\n var fromHtml = function (html, scope) {\r\n var doc = scope || document;\r\n var div = doc.createElement('div');\r\n div.innerHTML = html;\r\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\r\n console.error('HTML does not have a single root node', html);\r\n throw 'HTML must have a single root node';\r\n }\r\n return fromDom(div.childNodes[0]);\r\n };\r\n var fromTag = function (tag, scope) {\r\n var doc = scope || document;\r\n var node = doc.createElement(tag);\r\n return fromDom(node);\r\n };\r\n var fromText = function (text, scope) {\r\n var doc = scope || document;\r\n var node = doc.createTextNode(text);\r\n return fromDom(node);\r\n };\r\n var fromDom = function (node) {\r\n if (node === null || node === undefined)\r\n throw new Error('Node cannot be null or undefined');\r\n return { dom: constant(node) };\r\n };\r\n var fromPoint = function (docElm, x, y) {\r\n var doc = docElm.dom();\r\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\r\n };\r\n var Element$$1 = {\r\n fromHtml: fromHtml,\r\n fromTag: fromTag,\r\n fromText: fromText,\r\n fromDom: fromDom,\r\n fromPoint: fromPoint\r\n };\r\n\r\n var $_c8e5uh12jkmcwke2 = {\r\n ATTRIBUTE: Node.ATTRIBUTE_NODE,\r\n CDATA_SECTION: Node.CDATA_SECTION_NODE,\r\n COMMENT: Node.COMMENT_NODE,\r\n DOCUMENT: Node.DOCUMENT_NODE,\r\n DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,\r\n DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,\r\n ELEMENT: Node.ELEMENT_NODE,\r\n TEXT: Node.TEXT_NODE,\r\n PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,\r\n ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,\r\n ENTITY: Node.ENTITY_NODE,\r\n NOTATION: Node.NOTATION_NODE\r\n };\r\n\r\n var name = function (element) {\r\n var r = element.dom().nodeName;\r\n return r.toLowerCase();\r\n };\r\n var type = function (element) {\r\n return element.dom().nodeType;\r\n };\r\n var value = function (element) {\r\n return element.dom().nodeValue;\r\n };\r\n var isType$1 = function (t) {\r\n return function (element) {\r\n return type(element) === t;\r\n };\r\n };\r\n var isComment = function (element) {\r\n return type(element) === $_c8e5uh12jkmcwke2.COMMENT || name(element) === '#comment';\r\n };\r\n var isElement = isType$1($_c8e5uh12jkmcwke2.ELEMENT);\r\n var isText = isType$1($_c8e5uh12jkmcwke2.TEXT);\r\n var isDocument = isType$1($_c8e5uh12jkmcwke2.DOCUMENT);\r\n var $_2xwdjv11jkmcwke0 = {\r\n name: name,\r\n type: type,\r\n value: value,\r\n isElement: isElement,\r\n isText: isText,\r\n isDocument: isDocument,\r\n isComment: isComment\r\n };\r\n\r\n var keys = Object.keys;\r\n var each$3 = function (obj, f) {\r\n var props = keys(obj);\r\n for (var k = 0, len = props.length; k < len; k++) {\r\n var i = props[k];\r\n var x = obj[i];\r\n f(x, i, obj);\r\n }\r\n };\r\n var map$2 = function (obj, f) {\r\n return tupleMap(obj, function (x, i, obj) {\r\n return {\r\n k: i,\r\n v: f(x, i, obj)\r\n };\r\n });\r\n };\r\n var tupleMap = function (obj, f) {\r\n var r = {};\r\n each$3(obj, function (x, i) {\r\n var tuple = f(x, i, obj);\r\n r[tuple.k] = tuple.v;\r\n });\r\n return r;\r\n };\r\n var bifilter = function (obj, pred) {\r\n var t = {};\r\n var f = {};\r\n each$3(obj, function (x, i) {\r\n var branch = pred(x, i) ? t : f;\r\n branch[i] = x;\r\n });\r\n return {\r\n t: t,\r\n f: f\r\n };\r\n };\r\n\r\n var rawSet = function (dom, key, value) {\r\n if (isString(value) || isBoolean(value) || isNumber(value)) {\r\n dom.setAttribute(key, value + '');\r\n } else {\r\n console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);\r\n throw new Error('Attribute value was not simple');\r\n }\r\n };\r\n var set = function (element, key, value) {\r\n rawSet(element.dom(), key, value);\r\n };\r\n var setAll = function (element, attrs) {\r\n var dom = element.dom();\r\n each$3(attrs, function (v, k) {\r\n rawSet(dom, k, v);\r\n });\r\n };\r\n var get = function (element, key) {\r\n var v = element.dom().getAttribute(key);\r\n return v === null ? undefined : v;\r\n };\r\n var has = function (element, key) {\r\n var dom = element.dom();\r\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\r\n };\r\n var remove = function (element, key) {\r\n element.dom().removeAttribute(key);\r\n };\r\n var hasNone = function (element) {\r\n var attrs = element.dom().attributes;\r\n return attrs === undefined || attrs === null || attrs.length === 0;\r\n };\r\n var clone = function (element) {\r\n return foldl(element.dom().attributes, function (acc, attr) {\r\n acc[attr.name] = attr.value;\r\n return acc;\r\n }, {});\r\n };\r\n var transferOne = function (source, destination, attr) {\r\n if (has(source, attr) && !has(destination, attr))\r\n set(destination, attr, get(source, attr));\r\n };\r\n var transfer = function (source, destination, attrs) {\r\n if (!$_2xwdjv11jkmcwke0.isElement(source) || !$_2xwdjv11jkmcwke0.isElement(destination))\r\n return;\r\n each(attrs, function (attr) {\r\n transferOne(source, destination, attr);\r\n });\r\n };\r\n var $_29helg15jkmcwkf0 = {\r\n clone: clone,\r\n set: set,\r\n setAll: setAll,\r\n get: get,\r\n has: has,\r\n remove: remove,\r\n hasNone: hasNone,\r\n transfer: transfer\r\n };\r\n\r\n var inBody = function (element) {\r\n var dom = $_2xwdjv11jkmcwke0.isText(element) ? element.dom().parentNode : element.dom();\r\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\r\n };\r\n var body = cached(function () {\r\n return getBody(Element$$1.fromDom(document));\r\n });\r\n var getBody = function (doc) {\r\n var body = doc.dom().body;\r\n if (body === null || body === undefined)\r\n throw 'Body is not available yet';\r\n return Element$$1.fromDom(body);\r\n };\r\n var $_g4uup916jkmcwkfg = {\r\n body: body,\r\n getBody: getBody,\r\n inBody: inBody\r\n };\r\n\r\n var isSupported = function (dom) {\r\n return dom.style !== undefined;\r\n };\r\n var $_crv2n17jkmcwkfl = { isSupported: isSupported };\r\n\r\n var internalSet = function (dom, property, value) {\r\n if (!isString(value)) {\r\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\r\n throw new Error('CSS value must be a string: ' + value);\r\n }\r\n if ($_crv2n17jkmcwkfl.isSupported(dom))\r\n dom.style.setProperty(property, value);\r\n };\r\n var internalRemove = function (dom, property) {\r\n if ($_crv2n17jkmcwkfl.isSupported(dom))\r\n dom.style.removeProperty(property);\r\n };\r\n var set$1 = function (element, property, value) {\r\n var dom = element.dom();\r\n internalSet(dom, property, value);\r\n };\r\n var setAll$1 = function (element, css) {\r\n var dom = element.dom();\r\n each$3(css, function (v, k) {\r\n internalSet(dom, k, v);\r\n });\r\n };\r\n var setOptions = function (element, css) {\r\n var dom = element.dom();\r\n each$3(css, function (v, k) {\r\n v.fold(function () {\r\n internalRemove(dom, k);\r\n }, function (value) {\r\n internalSet(dom, k, value);\r\n });\r\n });\r\n };\r\n var get$1 = function (element, property) {\r\n var dom = element.dom();\r\n var styles = window.getComputedStyle(dom);\r\n var r = styles.getPropertyValue(property);\r\n var v = r === '' && !$_g4uup916jkmcwkfg.inBody(element) ? getUnsafeProperty(dom, property) : r;\r\n return v === null ? undefined : v;\r\n };\r\n var getUnsafeProperty = function (dom, property) {\r\n return $_crv2n17jkmcwkfl.isSupported(dom) ? dom.style.getPropertyValue(property) : '';\r\n };\r\n var getRaw = function (element, property) {\r\n var dom = element.dom();\r\n var raw = getUnsafeProperty(dom, property);\r\n return Option.from(raw).filter(function (r) {\r\n return r.length > 0;\r\n });\r\n };\r\n var getAllRaw = function (element) {\r\n var css = {};\r\n var dom = element.dom();\r\n if ($_crv2n17jkmcwkfl.isSupported(dom)) {\r\n for (var i = 0; i < dom.style.length; i++) {\r\n var ruleName = dom.style.item(i);\r\n css[ruleName] = dom.style[ruleName];\r\n }\r\n }\r\n return css;\r\n };\r\n var isValidValue = function (tag, property, value) {\r\n var element = Element$$1.fromTag(tag);\r\n set$1(element, property, value);\r\n var style = getRaw(element, property);\r\n return style.isSome();\r\n };\r\n var remove$1 = function (element, property) {\r\n var dom = element.dom();\r\n internalRemove(dom, property);\r\n if ($_29helg15jkmcwkf0.has(element, 'style') && trim$2($_29helg15jkmcwkf0.get(element, 'style')) === '') {\r\n $_29helg15jkmcwkf0.remove(element, 'style');\r\n }\r\n };\r\n var preserve = function (element, f) {\r\n var oldStyles = $_29helg15jkmcwkf0.get(element, 'style');\r\n var result = f(element);\r\n var restore = oldStyles === undefined ? $_29helg15jkmcwkf0.remove : $_29helg15jkmcwkf0.set;\r\n restore(element, 'style', oldStyles);\r\n return result;\r\n };\r\n var copy = function (source, target) {\r\n var sourceDom = source.dom();\r\n var targetDom = target.dom();\r\n if ($_crv2n17jkmcwkfl.isSupported(sourceDom) && $_crv2n17jkmcwkfl.isSupported(targetDom)) {\r\n targetDom.style.cssText = sourceDom.style.cssText;\r\n }\r\n };\r\n var reflow = function (e) {\r\n return e.dom().offsetWidth;\r\n };\r\n var transferOne$1 = function (source, destination, style) {\r\n getRaw(source, style).each(function (value) {\r\n if (getRaw(destination, style).isNone())\r\n set$1(destination, style, value);\r\n });\r\n };\r\n var transfer$1 = function (source, destination, styles) {\r\n if (!$_2xwdjv11jkmcwke0.isElement(source) || !$_2xwdjv11jkmcwke0.isElement(destination))\r\n return;\r\n each(styles, function (style) {\r\n transferOne$1(source, destination, style);\r\n });\r\n };\r\n var $_4enzit13jkmcwke5 = {\r\n copy: copy,\r\n set: set$1,\r\n preserve: preserve,\r\n setAll: setAll$1,\r\n setOptions: setOptions,\r\n remove: remove$1,\r\n get: get$1,\r\n getRaw: getRaw,\r\n getAllRaw: getAllRaw,\r\n isValidValue: isValidValue,\r\n reflow: reflow,\r\n transfer: transfer$1\r\n };\r\n\r\n var Immutable = function () {\r\n var fields = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n fields[_i] = arguments[_i];\r\n }\r\n return function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i] = arguments[_i];\r\n }\r\n if (fields.length !== values.length) {\r\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\r\n }\r\n var struct = {};\r\n each(fields, function (name, i) {\r\n struct[name] = constant(values[i]);\r\n });\r\n return struct;\r\n };\r\n };\r\n\r\n var toArray$1 = function (target, f) {\r\n var r = [];\r\n var recurse = function (e) {\r\n r.push(e);\r\n return f(e);\r\n };\r\n var cur = f(target);\r\n do {\r\n cur = cur.bind(recurse);\r\n } while (cur.isSome());\r\n return r;\r\n };\r\n var $_ea405s1djkmcwkgi = { toArray: toArray$1 };\r\n\r\n var node = function () {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('Node');\r\n return f;\r\n };\r\n var compareDocumentPosition = function (a, b, match) {\r\n return (a.compareDocumentPosition(b) & match) !== 0;\r\n };\r\n var documentPositionPreceding = function (a, b) {\r\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\r\n };\r\n var documentPositionContainedBy = function (a, b) {\r\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\r\n };\r\n var $_ggq6431fjkmcwkgt = {\r\n documentPositionPreceding: documentPositionPreceding,\r\n documentPositionContainedBy: documentPositionContainedBy\r\n };\r\n\r\n var ELEMENT = $_c8e5uh12jkmcwke2.ELEMENT;\r\n var DOCUMENT = $_c8e5uh12jkmcwke2.DOCUMENT;\r\n var is$1 = function (element, selector) {\r\n var elem = element.dom();\r\n if (elem.nodeType !== ELEMENT)\r\n return false;\r\n else if (elem.matches !== undefined)\r\n return elem.matches(selector);\r\n else if (elem.msMatchesSelector !== undefined)\r\n return elem.msMatchesSelector(selector);\r\n else if (elem.webkitMatchesSelector !== undefined)\r\n return elem.webkitMatchesSelector(selector);\r\n else if (elem.mozMatchesSelector !== undefined)\r\n return elem.mozMatchesSelector(selector);\r\n else\r\n throw new Error('Browser lacks native selectors');\r\n };\r\n var bypassSelector = function (dom) {\r\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT || dom.childElementCount === 0;\r\n };\r\n var all = function (selector, scope) {\r\n var base = scope === undefined ? document : scope.dom();\r\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);\r\n };\r\n var one = function (selector, scope) {\r\n var base = scope === undefined ? document : scope.dom();\r\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);\r\n };\r\n var $_4jv6d81gjkmcwkgv = {\r\n all: all,\r\n is: is$1,\r\n one: one\r\n };\r\n\r\n var eq = function (e1, e2) {\r\n return e1.dom() === e2.dom();\r\n };\r\n var isEqualNode = function (e1, e2) {\r\n return e1.dom().isEqualNode(e2.dom());\r\n };\r\n var member = function (element, elements) {\r\n return exists(elements, curry(eq, element));\r\n };\r\n var regularContains = function (e1, e2) {\r\n var d1 = e1.dom(), d2 = e2.dom();\r\n return d1 === d2 ? false : d1.contains(d2);\r\n };\r\n var ieContains = function (e1, e2) {\r\n return $_ggq6431fjkmcwkgt.documentPositionContainedBy(e1.dom(), e2.dom());\r\n };\r\n var browser = $_b1ykk4ojkmcwkcj.detect().browser;\r\n var contains$3 = browser.isIE() ? ieContains : regularContains;\r\n var $_e4hu6h1ejkmcwkgj = {\r\n eq: eq,\r\n isEqualNode: isEqualNode,\r\n member: member,\r\n contains: contains$3,\r\n is: $_4jv6d81gjkmcwkgv.is\r\n };\r\n\r\n var owner = function (element) {\r\n return Element$$1.fromDom(element.dom().ownerDocument);\r\n };\r\n var documentElement = function (element) {\r\n return Element$$1.fromDom(element.dom().ownerDocument.documentElement);\r\n };\r\n var defaultView = function (element) {\r\n var el = element.dom();\r\n var defaultView = el.ownerDocument.defaultView;\r\n return Element$$1.fromDom(defaultView);\r\n };\r\n var parent = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.parentNode).map(Element$$1.fromDom);\r\n };\r\n var findIndex$2 = function (element) {\r\n return parent(element).bind(function (p) {\r\n var kin = children(p);\r\n return findIndex(kin, function (elem) {\r\n return $_e4hu6h1ejkmcwkgj.eq(element, elem);\r\n });\r\n });\r\n };\r\n var parents = function (element, isRoot) {\r\n var stop = isFunction(isRoot) ? isRoot : constant(false);\r\n var dom = element.dom();\r\n var ret = [];\r\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\r\n var rawParent = dom.parentNode;\r\n var parent = Element$$1.fromDom(rawParent);\r\n ret.push(parent);\r\n if (stop(parent) === true)\r\n break;\r\n else\r\n dom = rawParent;\r\n }\r\n return ret;\r\n };\r\n var siblings = function (element) {\r\n var filterSelf = function (elements) {\r\n return filter(elements, function (x) {\r\n return !$_e4hu6h1ejkmcwkgj.eq(element, x);\r\n });\r\n };\r\n return parent(element).map(children).map(filterSelf).getOr([]);\r\n };\r\n var offsetParent = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.offsetParent).map(Element$$1.fromDom);\r\n };\r\n var prevSibling = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.previousSibling).map(Element$$1.fromDom);\r\n };\r\n var nextSibling = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.nextSibling).map(Element$$1.fromDom);\r\n };\r\n var prevSiblings = function (element) {\r\n return reverse($_ea405s1djkmcwkgi.toArray(element, prevSibling));\r\n };\r\n var nextSiblings = function (element) {\r\n return $_ea405s1djkmcwkgi.toArray(element, nextSibling);\r\n };\r\n var children = function (element) {\r\n var dom = element.dom();\r\n return map(dom.childNodes, Element$$1.fromDom);\r\n };\r\n var child = function (element, index) {\r\n var children = element.dom().childNodes;\r\n return Option.from(children[index]).map(Element$$1.fromDom);\r\n };\r\n var firstChild = function (element) {\r\n return child(element, 0);\r\n };\r\n var lastChild = function (element) {\r\n return child(element, element.dom().childNodes.length - 1);\r\n };\r\n var childNodesCount = function (element) {\r\n return element.dom().childNodes.length;\r\n };\r\n var hasChildNodes = function (element) {\r\n return element.dom().hasChildNodes();\r\n };\r\n var spot = Immutable('element', 'offset');\r\n var leaf = function (element, offset) {\r\n var cs = children(element);\r\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\r\n };\r\n var $_ca6pc118jkmcwkfs = {\r\n owner: owner,\r\n defaultView: defaultView,\r\n documentElement: documentElement,\r\n parent: parent,\r\n findIndex: findIndex$2,\r\n parents: parents,\r\n siblings: siblings,\r\n prevSibling: prevSibling,\r\n offsetParent: offsetParent,\r\n prevSiblings: prevSiblings,\r\n nextSibling: nextSibling,\r\n nextSiblings: nextSiblings,\r\n children: children,\r\n child: child,\r\n firstChild: firstChild,\r\n lastChild: lastChild,\r\n childNodesCount: childNodesCount,\r\n hasChildNodes: hasChildNodes,\r\n leaf: leaf\r\n };\r\n\r\n var browser$1 = $_b1ykk4ojkmcwkcj.detect().browser;\r\n var firstElement = function (nodes) {\r\n return find(nodes, $_2xwdjv11jkmcwke0.isElement);\r\n };\r\n var getTableCaptionDeltaY = function (elm) {\r\n if (browser$1.isFirefox() && $_2xwdjv11jkmcwke0.name(elm) === 'table') {\r\n return firstElement($_ca6pc118jkmcwkfs.children(elm)).filter(function (elm) {\r\n return $_2xwdjv11jkmcwke0.name(elm) === 'caption';\r\n }).bind(function (caption) {\r\n return firstElement($_ca6pc118jkmcwkfs.nextSiblings(caption)).map(function (body) {\r\n var bodyTop = body.dom().offsetTop;\r\n var captionTop = caption.dom().offsetTop;\r\n var captionHeight = caption.dom().offsetHeight;\r\n return bodyTop <= captionTop ? -captionHeight : 0;\r\n });\r\n }).getOr(0);\r\n } else {\r\n return 0;\r\n }\r\n };\r\n var getPos = function (body, elm, rootElm) {\r\n var x = 0, y = 0, offsetParent;\r\n var doc = body.ownerDocument;\r\n var pos;\r\n rootElm = rootElm ? rootElm : body;\r\n if (elm) {\r\n if (rootElm === body && elm.getBoundingClientRect && $_4enzit13jkmcwke5.get(Element$$1.fromDom(body), 'position') === 'static') {\r\n pos = elm.getBoundingClientRect();\r\n x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\r\n y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n }\r\n offsetParent = elm;\r\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType) {\r\n x += offsetParent.offsetLeft || 0;\r\n y += offsetParent.offsetTop || 0;\r\n offsetParent = offsetParent.offsetParent;\r\n }\r\n offsetParent = elm.parentNode;\r\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType) {\r\n x -= offsetParent.scrollLeft || 0;\r\n y -= offsetParent.scrollTop || 0;\r\n offsetParent = offsetParent.parentNode;\r\n }\r\n y += getTableCaptionDeltaY(Element$$1.fromDom(elm));\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n };\r\n var $_5o0xi0njkmcwkbz = { getPos: getPos };\r\n\r\n var nu$3 = function (baseFn) {\r\n var data = Option.none();\r\n var callbacks = [];\r\n var map$$1 = function (f) {\r\n return nu$3(function (nCallback) {\r\n get(function (data) {\r\n nCallback(f(data));\r\n });\r\n });\r\n };\r\n var get = function (nCallback) {\r\n if (isReady())\r\n call(nCallback);\r\n else\r\n callbacks.push(nCallback);\r\n };\r\n var set = function (x) {\r\n data = Option.some(x);\r\n run(callbacks);\r\n callbacks = [];\r\n };\r\n var isReady = function () {\r\n return data.isSome();\r\n };\r\n var run = function (cbs) {\r\n each(cbs, call);\r\n };\r\n var call = function (cb) {\r\n data.each(function (x) {\r\n setTimeout(function () {\r\n cb(x);\r\n }, 0);\r\n });\r\n };\r\n baseFn(set);\r\n return {\r\n get: get,\r\n map: map$$1,\r\n isReady: isReady\r\n };\r\n };\r\n var pure$1 = function (a) {\r\n return nu$3(function (callback) {\r\n callback(a);\r\n });\r\n };\r\n var LazyValue = {\r\n nu: nu$3,\r\n pure: pure$1\r\n };\r\n\r\n var bounce = function (f) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var me = this;\r\n setTimeout(function () {\r\n f.apply(me, args);\r\n }, 0);\r\n };\r\n };\r\n\r\n var nu$4 = function (baseFn) {\r\n var get = function (callback) {\r\n baseFn(bounce(callback));\r\n };\r\n var map = function (fab) {\r\n return nu$4(function (callback) {\r\n get(function (a) {\r\n var value = fab(a);\r\n callback(value);\r\n });\r\n });\r\n };\r\n var bind = function (aFutureB) {\r\n return nu$4(function (callback) {\r\n get(function (a) {\r\n aFutureB(a).get(callback);\r\n });\r\n });\r\n };\r\n var anonBind = function (futureB) {\r\n return nu$4(function (callback) {\r\n get(function (a) {\r\n futureB.get(callback);\r\n });\r\n });\r\n };\r\n var toLazy = function () {\r\n return LazyValue.nu(get);\r\n };\r\n return {\r\n map: map,\r\n bind: bind,\r\n anonBind: anonBind,\r\n toLazy: toLazy,\r\n get: get\r\n };\r\n };\r\n var pure$2 = function (a) {\r\n return nu$4(function (callback) {\r\n callback(a);\r\n });\r\n };\r\n var Future = {\r\n nu: nu$4,\r\n pure: pure$2\r\n };\r\n\r\n var par = function (asyncValues, nu) {\r\n return nu(function (callback) {\r\n var r = [];\r\n var count = 0;\r\n var cb = function (i) {\r\n return function (value) {\r\n r[i] = value;\r\n count++;\r\n if (count >= asyncValues.length) {\r\n callback(r);\r\n }\r\n };\r\n };\r\n if (asyncValues.length === 0) {\r\n callback([]);\r\n } else {\r\n each(asyncValues, function (asyncValue, i) {\r\n asyncValue.get(cb(i));\r\n });\r\n }\r\n });\r\n };\r\n\r\n var par$1 = function (futures) {\r\n return par(futures, Future.nu);\r\n };\r\n\r\n var value$1 = function (o) {\r\n var is = function (v) {\r\n return o === v;\r\n };\r\n var or = function (opt) {\r\n return value$1(o);\r\n };\r\n var orThunk = function (f) {\r\n return value$1(o);\r\n };\r\n var map = function (f) {\r\n return value$1(f(o));\r\n };\r\n var each = function (f) {\r\n f(o);\r\n };\r\n var bind = function (f) {\r\n return f(o);\r\n };\r\n var fold = function (_, onValue) {\r\n return onValue(o);\r\n };\r\n var exists = function (f) {\r\n return f(o);\r\n };\r\n var forall = function (f) {\r\n return f(o);\r\n };\r\n var toOption = function () {\r\n return Option.some(o);\r\n };\r\n return {\r\n is: is,\r\n isValue: always,\r\n isError: never,\r\n getOr: constant(o),\r\n getOrThunk: constant(o),\r\n getOrDie: constant(o),\r\n or: or,\r\n orThunk: orThunk,\r\n fold: fold,\r\n map: map,\r\n each: each,\r\n bind: bind,\r\n exists: exists,\r\n forall: forall,\r\n toOption: toOption\r\n };\r\n };\r\n var error = function (message) {\r\n var getOrThunk = function (f) {\r\n return f();\r\n };\r\n var getOrDie = function () {\r\n return die(String(message))();\r\n };\r\n var or = function (opt) {\r\n return opt;\r\n };\r\n var orThunk = function (f) {\r\n return f();\r\n };\r\n var map = function (f) {\r\n return error(message);\r\n };\r\n var bind = function (f) {\r\n return error(message);\r\n };\r\n var fold = function (onError, _) {\r\n return onError(message);\r\n };\r\n return {\r\n is: never,\r\n isValue: never,\r\n isError: always,\r\n getOr: identity,\r\n getOrThunk: getOrThunk,\r\n getOrDie: getOrDie,\r\n or: or,\r\n orThunk: orThunk,\r\n fold: fold,\r\n map: map,\r\n each: noop,\r\n bind: bind,\r\n exists: never,\r\n forall: always,\r\n toOption: Option.none\r\n };\r\n };\r\n var Result = {\r\n value: value$1,\r\n error: error\r\n };\r\n\r\n function StyleSheetLoader(document$$1, settings) {\r\n var idCount = 0;\r\n var loadedStates = {};\r\n var maxLoadTime;\r\n settings = settings || {};\r\n maxLoadTime = settings.maxLoadTime || 5000;\r\n var appendToHead = function (node) {\r\n document$$1.getElementsByTagName('head')[0].appendChild(node);\r\n };\r\n var load = function (url, loadedCallback, errorCallback) {\r\n var link, style, startTime, state;\r\n var passed = function () {\r\n var callbacks = state.passed;\r\n var i = callbacks.length;\r\n while (i--) {\r\n callbacks[i]();\r\n }\r\n state.status = 2;\r\n state.passed = [];\r\n state.failed = [];\r\n };\r\n var failed = function () {\r\n var callbacks = state.failed;\r\n var i = callbacks.length;\r\n while (i--) {\r\n callbacks[i]();\r\n }\r\n state.status = 3;\r\n state.passed = [];\r\n state.failed = [];\r\n };\r\n var isOldWebKit = function () {\r\n var webKitChunks = navigator.userAgent.match(/WebKit\\/(\\d*)/);\r\n return !!(webKitChunks && parseInt(webKitChunks[1], 10) < 536);\r\n };\r\n var wait = function (testCallback, waitCallback) {\r\n if (!testCallback()) {\r\n if (new Date().getTime() - startTime < maxLoadTime) {\r\n $_3l01gcijkmcwk99.setTimeout(waitCallback);\r\n } else {\r\n failed();\r\n }\r\n }\r\n };\r\n var waitForWebKitLinkLoaded = function () {\r\n wait(function () {\r\n var styleSheets = document$$1.styleSheets;\r\n var styleSheet, i = styleSheets.length, owner;\r\n while (i--) {\r\n styleSheet = styleSheets[i];\r\n owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement;\r\n if (owner && owner.id === link.id) {\r\n passed();\r\n return true;\r\n }\r\n }\r\n }, waitForWebKitLinkLoaded);\r\n };\r\n var waitForGeckoLinkLoaded = function () {\r\n wait(function () {\r\n try {\r\n var cssRules = style.sheet.cssRules;\r\n passed();\r\n return !!cssRules;\r\n } catch (ex) {\r\n }\r\n }, waitForGeckoLinkLoaded);\r\n };\r\n url = $_4ujg4tljkmcwkbk._addCacheSuffix(url);\r\n if (!loadedStates[url]) {\r\n state = {\r\n passed: [],\r\n failed: []\r\n };\r\n loadedStates[url] = state;\r\n } else {\r\n state = loadedStates[url];\r\n }\r\n if (loadedCallback) {\r\n state.passed.push(loadedCallback);\r\n }\r\n if (errorCallback) {\r\n state.failed.push(errorCallback);\r\n }\r\n if (state.status === 1) {\r\n return;\r\n }\r\n if (state.status === 2) {\r\n passed();\r\n return;\r\n }\r\n if (state.status === 3) {\r\n failed();\r\n return;\r\n }\r\n state.status = 1;\r\n link = document$$1.createElement('link');\r\n link.rel = 'stylesheet';\r\n link.type = 'text/css';\r\n link.id = 'u' + idCount++;\r\n link.async = false;\r\n link.defer = false;\r\n startTime = new Date().getTime();\r\n if ('onload' in link && !isOldWebKit()) {\r\n link.onload = waitForWebKitLinkLoaded;\r\n link.onerror = failed;\r\n } else {\r\n if (navigator.userAgent.indexOf('Firefox') > 0) {\r\n style = document$$1.createElement('style');\r\n style.textContent = '@import \"' + url + '\"';\r\n waitForGeckoLinkLoaded();\r\n appendToHead(style);\r\n return;\r\n }\r\n waitForWebKitLinkLoaded();\r\n }\r\n appendToHead(link);\r\n link.href = url;\r\n };\r\n var loadF = function (url) {\r\n return Future.nu(function (resolve) {\r\n load(url, compose(resolve, constant(Result.value(url))), compose(resolve, constant(Result.error(url))));\r\n });\r\n };\r\n var unbox = function (result) {\r\n return result.fold(identity, identity);\r\n };\r\n var loadAll = function (urls, success, failure) {\r\n par$1(map(urls, loadF)).get(function (result) {\r\n var parts = partition(result, function (r) {\r\n return r.isValue();\r\n });\r\n if (parts.fail.length > 0) {\r\n failure(parts.fail.map(unbox));\r\n } else {\r\n success(parts.pass.map(unbox));\r\n }\r\n });\r\n };\r\n return {\r\n load: load,\r\n loadAll: loadAll\r\n };\r\n }\r\n\r\n function TreeWalker (startNode, rootNode) {\r\n var node = startNode;\r\n var findSibling = function (node, startName, siblingName, shallow) {\r\n var sibling, parent;\r\n if (node) {\r\n if (!shallow && node[startName]) {\r\n return node[startName];\r\n }\r\n if (node !== rootNode) {\r\n sibling = node[siblingName];\r\n if (sibling) {\r\n return sibling;\r\n }\r\n for (parent = node.parentNode; parent && parent !== rootNode; parent = parent.parentNode) {\r\n sibling = parent[siblingName];\r\n if (sibling) {\r\n return sibling;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var findPreviousNode = function (node, startName, siblingName, shallow) {\r\n var sibling, parent, child;\r\n if (node) {\r\n sibling = node[siblingName];\r\n if (rootNode && sibling === rootNode) {\r\n return;\r\n }\r\n if (sibling) {\r\n if (!shallow) {\r\n for (child = sibling[startName]; child; child = child[startName]) {\r\n if (!child[startName]) {\r\n return child;\r\n }\r\n }\r\n }\r\n return sibling;\r\n }\r\n parent = node.parentNode;\r\n if (parent && parent !== rootNode) {\r\n return parent;\r\n }\r\n }\r\n };\r\n this.current = function () {\r\n return node;\r\n };\r\n this.next = function (shallow) {\r\n node = findSibling(node, 'firstChild', 'nextSibling', shallow);\r\n return node;\r\n };\r\n this.prev = function (shallow) {\r\n node = findSibling(node, 'lastChild', 'previousSibling', shallow);\r\n return node;\r\n };\r\n this.prev2 = function (shallow) {\r\n node = findPreviousNode(node, 'lastChild', 'previousSibling', shallow);\r\n return node;\r\n };\r\n }\r\n\r\n var blocks = [\r\n 'article',\r\n 'aside',\r\n 'details',\r\n 'div',\r\n 'dt',\r\n 'figcaption',\r\n 'footer',\r\n 'form',\r\n 'fieldset',\r\n 'header',\r\n 'hgroup',\r\n 'html',\r\n 'main',\r\n 'nav',\r\n 'section',\r\n 'summary',\r\n 'body',\r\n 'p',\r\n 'dl',\r\n 'multicol',\r\n 'dd',\r\n 'figure',\r\n 'address',\r\n 'center',\r\n 'blockquote',\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'listing',\r\n 'xmp',\r\n 'pre',\r\n 'plaintext',\r\n 'menu',\r\n 'dir',\r\n 'ul',\r\n 'ol',\r\n 'li',\r\n 'hr',\r\n 'table',\r\n 'tbody',\r\n 'thead',\r\n 'tfoot',\r\n 'th',\r\n 'tr',\r\n 'td',\r\n 'caption'\r\n ];\r\n var voids = [\r\n 'area',\r\n 'base',\r\n 'basefont',\r\n 'br',\r\n 'col',\r\n 'frame',\r\n 'hr',\r\n 'img',\r\n 'input',\r\n 'isindex',\r\n 'link',\r\n 'meta',\r\n 'param',\r\n 'embed',\r\n 'source',\r\n 'wbr',\r\n 'track'\r\n ];\r\n var tableCells = [\r\n 'td',\r\n 'th'\r\n ];\r\n var tableSections = [\r\n 'thead',\r\n 'tbody',\r\n 'tfoot'\r\n ];\r\n var textBlocks = [\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'p',\r\n 'div',\r\n 'address',\r\n 'pre',\r\n 'form',\r\n 'blockquote',\r\n 'center',\r\n 'dir',\r\n 'fieldset',\r\n 'header',\r\n 'footer',\r\n 'article',\r\n 'section',\r\n 'hgroup',\r\n 'aside',\r\n 'nav',\r\n 'figure'\r\n ];\r\n var headings = [\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6'\r\n ];\r\n var listItems = [\r\n 'li',\r\n 'dd',\r\n 'dt'\r\n ];\r\n var lists = [\r\n 'ul',\r\n 'ol',\r\n 'dl'\r\n ];\r\n var wsElements = [\r\n 'pre',\r\n 'script',\r\n 'textarea',\r\n 'style'\r\n ];\r\n var lazyLookup = function (items) {\r\n var lookup;\r\n return function (node) {\r\n lookup = lookup ? lookup : mapToObject(items, constant(true));\r\n return lookup.hasOwnProperty($_2xwdjv11jkmcwke0.name(node));\r\n };\r\n };\r\n var isHeading = lazyLookup(headings);\r\n var isBlock = lazyLookup(blocks);\r\n var isInline = function (node) {\r\n return $_2xwdjv11jkmcwke0.isElement(node) && !isBlock(node);\r\n };\r\n var isBr = function (node) {\r\n return $_2xwdjv11jkmcwke0.isElement(node) && $_2xwdjv11jkmcwke0.name(node) === 'br';\r\n };\r\n var isTextBlock = lazyLookup(textBlocks);\r\n var isList = lazyLookup(lists);\r\n var isListItem = lazyLookup(listItems);\r\n var isVoid = lazyLookup(voids);\r\n var isTableSection = lazyLookup(tableSections);\r\n var isTableCell = lazyLookup(tableCells);\r\n var isWsPreserveElement = lazyLookup(wsElements);\r\n\r\n var isNodeType = function (type) {\r\n return function (node) {\r\n return !!node && node.nodeType === type;\r\n };\r\n };\r\n var isElement$1 = isNodeType(1);\r\n var matchNodeNames = function (names) {\r\n var items = names.toLowerCase().split(' ');\r\n return function (node) {\r\n var i, name;\r\n if (node && node.nodeType) {\r\n name = node.nodeName.toLowerCase();\r\n for (i = 0; i < items.length; i++) {\r\n if (name === items[i]) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var matchStyleValues = function (name, values) {\r\n var items = values.toLowerCase().split(' ');\r\n return function (node) {\r\n var i, cssValue;\r\n if (isElement$1(node)) {\r\n for (i = 0; i < items.length; i++) {\r\n var computed = node.ownerDocument.defaultView.getComputedStyle(node, null);\r\n cssValue = computed ? computed.getPropertyValue(name) : null;\r\n if (cssValue === items[i]) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var hasPropValue = function (propName, propValue) {\r\n return function (node) {\r\n return isElement$1(node) && node[propName] === propValue;\r\n };\r\n };\r\n var hasAttribute = function (attrName, attrValue) {\r\n return function (node) {\r\n return isElement$1(node) && node.hasAttribute(attrName);\r\n };\r\n };\r\n var hasAttributeValue = function (attrName, attrValue) {\r\n return function (node) {\r\n return isElement$1(node) && node.getAttribute(attrName) === attrValue;\r\n };\r\n };\r\n var isBogus = function (node) {\r\n return isElement$1(node) && node.hasAttribute('data-mce-bogus');\r\n };\r\n var isBogusAll = function (node) {\r\n return isElement$1(node) && node.getAttribute('data-mce-bogus') === 'all';\r\n };\r\n var isTable = function (node) {\r\n return isElement$1(node) && node.tagName === 'TABLE';\r\n };\r\n var hasContentEditableState = function (value) {\r\n return function (node) {\r\n if (isElement$1(node)) {\r\n if (node.contentEditable === value) {\r\n return true;\r\n }\r\n if (node.getAttribute('data-mce-contenteditable') === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var isText$1 = isNodeType(3);\r\n var isComment$1 = isNodeType(8);\r\n var isDocument$1 = isNodeType(9);\r\n var isBr$1 = matchNodeNames('br');\r\n var isContentEditableTrue = hasContentEditableState('true');\r\n var isContentEditableFalse = hasContentEditableState('false');\r\n var $_bjermr1rjkmcwkij = {\r\n isText: isText$1,\r\n isElement: isElement$1,\r\n isComment: isComment$1,\r\n isDocument: isDocument$1,\r\n isBr: isBr$1,\r\n isContentEditableTrue: isContentEditableTrue,\r\n isContentEditableFalse: isContentEditableFalse,\r\n matchNodeNames: matchNodeNames,\r\n hasPropValue: hasPropValue,\r\n hasAttribute: hasAttribute,\r\n hasAttributeValue: hasAttributeValue,\r\n matchStyleValues: matchStyleValues,\r\n isBogus: isBogus,\r\n isBogusAll: isBogusAll,\r\n isTable: isTable\r\n };\r\n\r\n var surroundedBySpans = function (node) {\r\n var previousIsSpan = node.previousSibling && node.previousSibling.nodeName === 'SPAN';\r\n var nextIsSpan = node.nextSibling && node.nextSibling.nodeName === 'SPAN';\r\n return previousIsSpan && nextIsSpan;\r\n };\r\n var isBookmarkNode = function (node) {\r\n return node && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\r\n };\r\n var trimNode = function (dom, node) {\r\n var i, children = node.childNodes;\r\n if ($_bjermr1rjkmcwkij.isElement(node) && isBookmarkNode(node)) {\r\n return;\r\n }\r\n for (i = children.length - 1; i >= 0; i--) {\r\n trimNode(dom, children[i]);\r\n }\r\n if ($_bjermr1rjkmcwkij.isDocument(node) === false) {\r\n if ($_bjermr1rjkmcwkij.isText(node) && node.nodeValue.length > 0) {\r\n var trimmedLength = $_4ujg4tljkmcwkbk.trim(node.nodeValue).length;\r\n if (dom.isBlock(node.parentNode) || trimmedLength > 0) {\r\n return;\r\n }\r\n if (trimmedLength === 0 && surroundedBySpans(node)) {\r\n return;\r\n }\r\n } else if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n children = node.childNodes;\r\n if (children.length === 1 && isBookmarkNode(children[0])) {\r\n node.parentNode.insertBefore(children[0], node);\r\n }\r\n if (children.length || isVoid(Element$$1.fromDom(node))) {\r\n return;\r\n }\r\n }\r\n dom.remove(node);\r\n }\r\n return node;\r\n };\r\n var $_br9sxm1pjkmcwki4 = { trimNode: trimNode };\r\n\r\n var makeMap$1 = $_4ujg4tljkmcwkbk.makeMap;\r\n var namedEntities;\r\n var baseEntities;\r\n var reverseEntities;\r\n var attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\r\n var textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\r\n var rawCharsRegExp = /[<>&\\\"\\']/g;\r\n var entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\r\n var asciiMap = {\r\n 128: '\\u20AC',\r\n 130: '\\u201A',\r\n 131: '\\u0192',\r\n 132: '\\u201E',\r\n 133: '\\u2026',\r\n 134: '\\u2020',\r\n 135: '\\u2021',\r\n 136: '\\u02c6',\r\n 137: '\\u2030',\r\n 138: '\\u0160',\r\n 139: '\\u2039',\r\n 140: '\\u0152',\r\n 142: '\\u017d',\r\n 145: '\\u2018',\r\n 146: '\\u2019',\r\n 147: '\\u201C',\r\n 148: '\\u201D',\r\n 149: '\\u2022',\r\n 150: '\\u2013',\r\n 151: '\\u2014',\r\n 152: '\\u02DC',\r\n 153: '\\u2122',\r\n 154: '\\u0161',\r\n 155: '\\u203A',\r\n 156: '\\u0153',\r\n 158: '\\u017e',\r\n 159: '\\u0178'\r\n };\r\n baseEntities = {\r\n '\"': '"',\r\n '\\'': ''',\r\n '<': '<',\r\n '>': '>',\r\n '&': '&',\r\n '`': '`'\r\n };\r\n reverseEntities = {\r\n '<': '<',\r\n '>': '>',\r\n '&': '&',\r\n '"': '\"',\r\n ''': '\\''\r\n };\r\n var nativeDecode = function (text) {\r\n var elm;\r\n elm = Element$$1.fromTag('div').dom();\r\n elm.innerHTML = text;\r\n return elm.textContent || elm.innerText || text;\r\n };\r\n var buildEntitiesLookup = function (items, radix) {\r\n var i, chr, entity;\r\n var lookup = {};\r\n if (items) {\r\n items = items.split(',');\r\n radix = radix || 10;\r\n for (i = 0; i < items.length; i += 2) {\r\n chr = String.fromCharCode(parseInt(items[i], radix));\r\n if (!baseEntities[chr]) {\r\n entity = '&' + items[i + 1] + ';';\r\n lookup[chr] = entity;\r\n lookup[entity] = chr;\r\n }\r\n }\r\n return lookup;\r\n }\r\n };\r\n namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\r\n var encodeRaw = function (text, attr) {\r\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\r\n return baseEntities[chr] || chr;\r\n });\r\n };\r\n var encodeAllRaw = function (text) {\r\n return ('' + text).replace(rawCharsRegExp, function (chr) {\r\n return baseEntities[chr] || chr;\r\n });\r\n };\r\n var encodeNumeric = function (text, attr) {\r\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\r\n if (chr.length > 1) {\r\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\r\n }\r\n return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\r\n });\r\n };\r\n var encodeNamed = function (text, attr, entities) {\r\n entities = entities || namedEntities;\r\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\r\n return baseEntities[chr] || entities[chr] || chr;\r\n });\r\n };\r\n var getEncodeFunc = function (name, entities) {\r\n var entitiesMap = buildEntitiesLookup(entities) || namedEntities;\r\n var encodeNamedAndNumeric = function (text, attr) {\r\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, function (chr) {\r\n if (baseEntities[chr] !== undefined) {\r\n return baseEntities[chr];\r\n }\r\n if (entitiesMap[chr] !== undefined) {\r\n return entitiesMap[chr];\r\n }\r\n if (chr.length > 1) {\r\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\r\n }\r\n return '&#' + chr.charCodeAt(0) + ';';\r\n });\r\n };\r\n var encodeCustomNamed = function (text, attr) {\r\n return encodeNamed(text, attr, entitiesMap);\r\n };\r\n var nameMap = makeMap$1(name.replace(/\\+/g, ','));\r\n if (nameMap.named && nameMap.numeric) {\r\n return encodeNamedAndNumeric;\r\n }\r\n if (nameMap.named) {\r\n if (entities) {\r\n return encodeCustomNamed;\r\n }\r\n return encodeNamed;\r\n }\r\n if (nameMap.numeric) {\r\n return encodeNumeric;\r\n }\r\n return encodeRaw;\r\n };\r\n var decode = function (text) {\r\n return text.replace(entityRegExp, function (all, numeric) {\r\n if (numeric) {\r\n if (numeric.charAt(0).toLowerCase() === 'x') {\r\n numeric = parseInt(numeric.substr(1), 16);\r\n } else {\r\n numeric = parseInt(numeric, 10);\r\n }\r\n if (numeric > 65535) {\r\n numeric -= 65536;\r\n return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\r\n }\r\n return asciiMap[numeric] || String.fromCharCode(numeric);\r\n }\r\n return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\r\n });\r\n };\r\n var $_33qwr1sjkmcwkip = {\r\n encodeRaw: encodeRaw,\r\n encodeAllRaw: encodeAllRaw,\r\n encodeNumeric: encodeNumeric,\r\n encodeNamed: encodeNamed,\r\n getEncodeFunc: getEncodeFunc,\r\n decode: decode\r\n };\r\n\r\n var mapCache = {};\r\n var dummyObj = {};\r\n var makeMap$2 = $_4ujg4tljkmcwkbk.makeMap;\r\n var each$4 = $_4ujg4tljkmcwkbk.each;\r\n var extend$1 = $_4ujg4tljkmcwkbk.extend;\r\n var explode$1 = $_4ujg4tljkmcwkbk.explode;\r\n var inArray$1 = $_4ujg4tljkmcwkbk.inArray;\r\n var split = function (items, delim) {\r\n items = $_4ujg4tljkmcwkbk.trim(items);\r\n return items ? items.split(delim || ' ') : [];\r\n };\r\n var compileSchema = function (type) {\r\n var schema = {};\r\n var globalAttributes, blockContent;\r\n var phrasingContent, flowContent, html4BlockContent, html4PhrasingContent;\r\n var add = function (name, attributes, children) {\r\n var ni, attributesOrder, element;\r\n var arrayToMap = function (array, obj) {\r\n var map = {};\r\n var i, l;\r\n for (i = 0, l = array.length; i < l; i++) {\r\n map[array[i]] = obj || {};\r\n }\r\n return map;\r\n };\r\n children = children || [];\r\n attributes = attributes || '';\r\n if (typeof children === 'string') {\r\n children = split(children);\r\n }\r\n name = split(name);\r\n ni = name.length;\r\n while (ni--) {\r\n attributesOrder = split([\r\n globalAttributes,\r\n attributes\r\n ].join(' '));\r\n element = {\r\n attributes: arrayToMap(attributesOrder),\r\n attributesOrder: attributesOrder,\r\n children: arrayToMap(children, dummyObj)\r\n };\r\n schema[name[ni]] = element;\r\n }\r\n };\r\n var addAttrs = function (name, attributes) {\r\n var ni, schemaItem, i, l;\r\n name = split(name);\r\n ni = name.length;\r\n attributes = split(attributes);\r\n while (ni--) {\r\n schemaItem = schema[name[ni]];\r\n for (i = 0, l = attributes.length; i < l; i++) {\r\n schemaItem.attributes[attributes[i]] = {};\r\n schemaItem.attributesOrder.push(attributes[i]);\r\n }\r\n }\r\n };\r\n if (mapCache[type]) {\r\n return mapCache[type];\r\n }\r\n globalAttributes = 'id accesskey class dir lang style tabindex title role';\r\n blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\r\n phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\r\n if (type !== 'html4') {\r\n globalAttributes += ' contenteditable contextmenu draggable dropzone ' + 'hidden spellcheck translate';\r\n blockContent += ' article aside details dialog figure header footer hgroup section nav';\r\n phrasingContent += ' audio canvas command datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen';\r\n }\r\n if (type !== 'html5-strict') {\r\n globalAttributes += ' xml:lang';\r\n html4PhrasingContent = 'acronym applet basefont big font strike tt';\r\n phrasingContent = [\r\n phrasingContent,\r\n html4PhrasingContent\r\n ].join(' ');\r\n each$4(split(html4PhrasingContent), function (name) {\r\n add(name, '', phrasingContent);\r\n });\r\n html4BlockContent = 'center dir isindex noframes';\r\n blockContent = [\r\n blockContent,\r\n html4BlockContent\r\n ].join(' ');\r\n flowContent = [\r\n blockContent,\r\n phrasingContent\r\n ].join(' ');\r\n each$4(split(html4BlockContent), function (name) {\r\n add(name, '', flowContent);\r\n });\r\n }\r\n flowContent = flowContent || [\r\n blockContent,\r\n phrasingContent\r\n ].join(' ');\r\n add('html', 'manifest', 'head body');\r\n add('head', '', 'base command link meta noscript script style title');\r\n add('title hr noscript br');\r\n add('base', 'href target');\r\n add('link', 'href rel media hreflang type sizes hreflang');\r\n add('meta', 'name http-equiv content charset');\r\n add('style', 'media type scoped');\r\n add('script', 'src async defer type charset');\r\n add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\r\n add('address dt dd div caption', '', flowContent);\r\n add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\r\n add('blockquote', 'cite', flowContent);\r\n add('ol', 'reversed start type', 'li');\r\n add('ul', '', 'li');\r\n add('li', 'value', flowContent);\r\n add('dl', '', 'dt dd');\r\n add('a', 'href target rel media hreflang type', phrasingContent);\r\n add('q', 'cite', phrasingContent);\r\n add('ins del', 'cite datetime', flowContent);\r\n add('img', 'src sizes srcset alt usemap ismap width height');\r\n add('iframe', 'src name width height', flowContent);\r\n add('embed', 'src type width height');\r\n add('object', 'data type typemustmatch name usemap form width height', [\r\n flowContent,\r\n 'param'\r\n ].join(' '));\r\n add('param', 'name value');\r\n add('map', 'name', [\r\n flowContent,\r\n 'area'\r\n ].join(' '));\r\n add('area', 'alt coords shape href target rel media hreflang type');\r\n add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\r\n add('colgroup', 'span', 'col');\r\n add('col', 'span');\r\n add('tbody thead tfoot', '', 'tr');\r\n add('tr', '', 'td th');\r\n add('td', 'colspan rowspan headers', flowContent);\r\n add('th', 'colspan rowspan headers scope abbr', flowContent);\r\n add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\r\n add('fieldset', 'disabled form name', [\r\n flowContent,\r\n 'legend'\r\n ].join(' '));\r\n add('label', 'form for', phrasingContent);\r\n add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\r\n add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\r\n add('select', 'disabled form multiple name required size', 'option optgroup');\r\n add('optgroup', 'disabled label', 'option');\r\n add('option', 'disabled label selected value');\r\n add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\r\n add('menu', 'type label', [\r\n flowContent,\r\n 'li'\r\n ].join(' '));\r\n add('noscript', '', flowContent);\r\n if (type !== 'html4') {\r\n add('wbr');\r\n add('ruby', '', [\r\n phrasingContent,\r\n 'rt rp'\r\n ].join(' '));\r\n add('figcaption', '', flowContent);\r\n add('mark rt rp summary bdi', '', phrasingContent);\r\n add('canvas', 'width height', flowContent);\r\n add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\r\n flowContent,\r\n 'track source'\r\n ].join(' '));\r\n add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\r\n flowContent,\r\n 'track source'\r\n ].join(' '));\r\n add('picture', '', 'img source');\r\n add('source', 'src srcset type media sizes');\r\n add('track', 'kind src srclang label default');\r\n add('datalist', '', [\r\n phrasingContent,\r\n 'option'\r\n ].join(' '));\r\n add('article section nav aside header footer', '', flowContent);\r\n add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\r\n add('figure', '', [\r\n flowContent,\r\n 'figcaption'\r\n ].join(' '));\r\n add('time', 'datetime', phrasingContent);\r\n add('dialog', 'open', flowContent);\r\n add('command', 'type label icon disabled checked radiogroup command');\r\n add('output', 'for form name', phrasingContent);\r\n add('progress', 'value max', phrasingContent);\r\n add('meter', 'value min max low high optimum', phrasingContent);\r\n add('details', 'open', [\r\n flowContent,\r\n 'summary'\r\n ].join(' '));\r\n add('keygen', 'autofocus challenge disabled form keytype name');\r\n }\r\n if (type !== 'html5-strict') {\r\n addAttrs('script', 'language xml:space');\r\n addAttrs('style', 'xml:space');\r\n addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\r\n addAttrs('embed', 'align name hspace vspace');\r\n addAttrs('param', 'valuetype type');\r\n addAttrs('a', 'charset name rev shape coords');\r\n addAttrs('br', 'clear');\r\n addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\r\n addAttrs('img', 'name longdesc align border hspace vspace');\r\n addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\r\n addAttrs('font basefont', 'size color face');\r\n addAttrs('input', 'usemap align');\r\n addAttrs('select', 'onchange');\r\n addAttrs('textarea');\r\n addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\r\n addAttrs('ul', 'type compact');\r\n addAttrs('li', 'type');\r\n addAttrs('ol dl menu dir', 'compact');\r\n addAttrs('pre', 'width xml:space');\r\n addAttrs('hr', 'align noshade size width');\r\n addAttrs('isindex', 'prompt');\r\n addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\r\n addAttrs('col', 'width align char charoff valign');\r\n addAttrs('colgroup', 'width align char charoff valign');\r\n addAttrs('thead', 'align char charoff valign');\r\n addAttrs('tr', 'align char charoff valign bgcolor');\r\n addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\r\n addAttrs('form', 'accept');\r\n addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\r\n addAttrs('tfoot', 'align char charoff valign');\r\n addAttrs('tbody', 'align char charoff valign');\r\n addAttrs('area', 'nohref');\r\n addAttrs('body', 'background bgcolor text link vlink alink');\r\n }\r\n if (type !== 'html4') {\r\n addAttrs('input button select textarea', 'autofocus');\r\n addAttrs('input textarea', 'placeholder');\r\n addAttrs('a', 'download');\r\n addAttrs('link script img', 'crossorigin');\r\n addAttrs('iframe', 'sandbox seamless allowfullscreen');\r\n }\r\n each$4(split('a form meter progress dfn'), function (name) {\r\n if (schema[name]) {\r\n delete schema[name].children[name];\r\n }\r\n });\r\n delete schema.caption.children.table;\r\n delete schema.script;\r\n mapCache[type] = schema;\r\n return schema;\r\n };\r\n var compileElementMap = function (value, mode) {\r\n var styles;\r\n if (value) {\r\n styles = {};\r\n if (typeof value === 'string') {\r\n value = { '*': value };\r\n }\r\n each$4(value, function (value, key) {\r\n styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$1(value, /[, ]/);\r\n });\r\n }\r\n return styles;\r\n };\r\n function Schema(settings) {\r\n var elements = {};\r\n var children = {};\r\n var patternElements = [];\r\n var validStyles;\r\n var invalidStyles;\r\n var schemaItems;\r\n var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, validClasses;\r\n var blockElementsMap, nonEmptyElementsMap, moveCaretBeforeOnEnterElementsMap, textBlockElementsMap, textInlineElementsMap;\r\n var customElementsMap = {}, specialElements = {};\r\n var createLookupTable = function (option, defaultValue, extendWith) {\r\n var value = settings[option];\r\n if (!value) {\r\n value = mapCache[option];\r\n if (!value) {\r\n value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\r\n value = extend$1(value, extendWith);\r\n mapCache[option] = value;\r\n }\r\n } else {\r\n value = makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\r\n }\r\n return value;\r\n };\r\n settings = settings || {};\r\n schemaItems = compileSchema(settings.schema);\r\n if (settings.verify_html === false) {\r\n settings.valid_elements = '*[*]';\r\n }\r\n validStyles = compileElementMap(settings.valid_styles);\r\n invalidStyles = compileElementMap(settings.invalid_styles, 'map');\r\n validClasses = compileElementMap(settings.valid_classes, 'map');\r\n whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\r\n selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\r\n shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\r\n boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls');\r\n nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object ' + 'script pre code', shortEndedElementsMap);\r\n moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', 'table', nonEmptyElementsMap);\r\n textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside nav figure');\r\n blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);\r\n textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp');\r\n each$4((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) {\r\n specialElements[name] = new RegExp(']*>', 'gi');\r\n });\r\n var patternToRegExp = function (str) {\r\n return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\r\n };\r\n var addValidElements = function (validElements) {\r\n var ei, el, ai, al, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder, prefix, outputName, globalAttributes, globalAttributesOrder, key, value;\r\n var elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)\\])?$/, attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=:<]+)?(?:([=:<])(.*))?$/, hasPatternsRegExp = /[*?+]/;\r\n if (validElements) {\r\n validElements = split(validElements, ',');\r\n if (elements['@']) {\r\n globalAttributes = elements['@'].attributes;\r\n globalAttributesOrder = elements['@'].attributesOrder;\r\n }\r\n for (ei = 0, el = validElements.length; ei < el; ei++) {\r\n matches = elementRuleRegExp.exec(validElements[ei]);\r\n if (matches) {\r\n prefix = matches[1];\r\n elementName = matches[2];\r\n outputName = matches[3];\r\n attrData = matches[5];\r\n attributes = {};\r\n attributesOrder = [];\r\n element = {\r\n attributes: attributes,\r\n attributesOrder: attributesOrder\r\n };\r\n if (prefix === '#') {\r\n element.paddEmpty = true;\r\n }\r\n if (prefix === '-') {\r\n element.removeEmpty = true;\r\n }\r\n if (matches[4] === '!') {\r\n element.removeEmptyAttrs = true;\r\n }\r\n if (globalAttributes) {\r\n for (key in globalAttributes) {\r\n attributes[key] = globalAttributes[key];\r\n }\r\n attributesOrder.push.apply(attributesOrder, globalAttributesOrder);\r\n }\r\n if (attrData) {\r\n attrData = split(attrData, '|');\r\n for (ai = 0, al = attrData.length; ai < al; ai++) {\r\n matches = attrRuleRegExp.exec(attrData[ai]);\r\n if (matches) {\r\n attr = {};\r\n attrType = matches[1];\r\n attrName = matches[2].replace(/[\\\\:]:/g, ':');\r\n prefix = matches[3];\r\n value = matches[4];\r\n if (attrType === '!') {\r\n element.attributesRequired = element.attributesRequired || [];\r\n element.attributesRequired.push(attrName);\r\n attr.required = true;\r\n }\r\n if (attrType === '-') {\r\n delete attributes[attrName];\r\n attributesOrder.splice(inArray$1(attributesOrder, attrName), 1);\r\n continue;\r\n }\r\n if (prefix) {\r\n if (prefix === '=') {\r\n element.attributesDefault = element.attributesDefault || [];\r\n element.attributesDefault.push({\r\n name: attrName,\r\n value: value\r\n });\r\n attr.defaultValue = value;\r\n }\r\n if (prefix === ':') {\r\n element.attributesForced = element.attributesForced || [];\r\n element.attributesForced.push({\r\n name: attrName,\r\n value: value\r\n });\r\n attr.forcedValue = value;\r\n }\r\n if (prefix === '<') {\r\n attr.validValues = makeMap$2(value, '?');\r\n }\r\n }\r\n if (hasPatternsRegExp.test(attrName)) {\r\n element.attributePatterns = element.attributePatterns || [];\r\n attr.pattern = patternToRegExp(attrName);\r\n element.attributePatterns.push(attr);\r\n } else {\r\n if (!attributes[attrName]) {\r\n attributesOrder.push(attrName);\r\n }\r\n attributes[attrName] = attr;\r\n }\r\n }\r\n }\r\n }\r\n if (!globalAttributes && elementName === '@') {\r\n globalAttributes = attributes;\r\n globalAttributesOrder = attributesOrder;\r\n }\r\n if (outputName) {\r\n element.outputName = elementName;\r\n elements[outputName] = element;\r\n }\r\n if (hasPatternsRegExp.test(elementName)) {\r\n element.pattern = patternToRegExp(elementName);\r\n patternElements.push(element);\r\n } else {\r\n elements[elementName] = element;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var setValidElements = function (validElements) {\r\n elements = {};\r\n patternElements = [];\r\n addValidElements(validElements);\r\n each$4(schemaItems, function (element, name) {\r\n children[name] = element.children;\r\n });\r\n };\r\n var addCustomElements = function (customElements) {\r\n var customElementRegExp = /^(~)?(.+)$/;\r\n if (customElements) {\r\n mapCache.text_block_elements = mapCache.block_elements = null;\r\n each$4(split(customElements, ','), function (rule) {\r\n var matches = customElementRegExp.exec(rule), inline = matches[1] === '~', cloneName = inline ? 'span' : 'div', name = matches[2];\r\n children[name] = children[cloneName];\r\n customElementsMap[name] = cloneName;\r\n if (!inline) {\r\n blockElementsMap[name.toUpperCase()] = {};\r\n blockElementsMap[name] = {};\r\n }\r\n if (!elements[name]) {\r\n var customRule = elements[cloneName];\r\n customRule = extend$1({}, customRule);\r\n delete customRule.removeEmptyAttrs;\r\n delete customRule.removeEmpty;\r\n elements[name] = customRule;\r\n }\r\n each$4(children, function (element, elmName) {\r\n if (element[cloneName]) {\r\n children[elmName] = element = extend$1({}, children[elmName]);\r\n element[name] = element[cloneName];\r\n }\r\n });\r\n });\r\n }\r\n };\r\n var addValidChildren = function (validChildren) {\r\n var childRuleRegExp = /^([+\\-]?)(\\w+)\\[([^\\]]+)\\]$/;\r\n mapCache[settings.schema] = null;\r\n if (validChildren) {\r\n each$4(split(validChildren, ','), function (rule) {\r\n var matches = childRuleRegExp.exec(rule);\r\n var parent, prefix;\r\n if (matches) {\r\n prefix = matches[1];\r\n if (prefix) {\r\n parent = children[matches[2]];\r\n } else {\r\n parent = children[matches[2]] = { '#comment': {} };\r\n }\r\n parent = children[matches[2]];\r\n each$4(split(matches[3], '|'), function (child) {\r\n if (prefix === '-') {\r\n delete parent[child];\r\n } else {\r\n parent[child] = {};\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n var getElementRule = function (name) {\r\n var element = elements[name], i;\r\n if (element) {\r\n return element;\r\n }\r\n i = patternElements.length;\r\n while (i--) {\r\n element = patternElements[i];\r\n if (element.pattern.test(name)) {\r\n return element;\r\n }\r\n }\r\n };\r\n if (!settings.valid_elements) {\r\n each$4(schemaItems, function (element, name) {\r\n elements[name] = {\r\n attributes: element.attributes,\r\n attributesOrder: element.attributesOrder\r\n };\r\n children[name] = element.children;\r\n });\r\n if (settings.schema !== 'html5') {\r\n each$4(split('strong/b em/i'), function (item) {\r\n item = split(item, '/');\r\n elements[item[1]].outputName = item[0];\r\n });\r\n }\r\n each$4(split('ol ul sub sup blockquote span font a table tbody tr strong em b i'), function (name) {\r\n if (elements[name]) {\r\n elements[name].removeEmpty = true;\r\n }\r\n });\r\n each$4(split('p h1 h2 h3 h4 h5 h6 th td pre div address caption li'), function (name) {\r\n elements[name].paddEmpty = true;\r\n });\r\n each$4(split('span'), function (name) {\r\n elements[name].removeEmptyAttrs = true;\r\n });\r\n } else {\r\n setValidElements(settings.valid_elements);\r\n }\r\n addCustomElements(settings.custom_elements);\r\n addValidChildren(settings.valid_children);\r\n addValidElements(settings.extended_valid_elements);\r\n addValidChildren('+ol[ul|ol],+ul[ul|ol]');\r\n each$4({\r\n dd: 'dl',\r\n dt: 'dl',\r\n li: 'ul ol',\r\n td: 'tr',\r\n th: 'tr',\r\n tr: 'tbody thead tfoot',\r\n tbody: 'table',\r\n thead: 'table',\r\n tfoot: 'table',\r\n legend: 'fieldset',\r\n area: 'map',\r\n param: 'video audio object'\r\n }, function (parents, item) {\r\n if (elements[item]) {\r\n elements[item].parentsRequired = split(parents);\r\n }\r\n });\r\n if (settings.invalid_elements) {\r\n each$4(explode$1(settings.invalid_elements), function (item) {\r\n if (elements[item]) {\r\n delete elements[item];\r\n }\r\n });\r\n }\r\n if (!getElementRule('span')) {\r\n addValidElements('span[!data-mce-type|*]');\r\n }\r\n var getValidStyles = function () {\r\n return validStyles;\r\n };\r\n var getInvalidStyles = function () {\r\n return invalidStyles;\r\n };\r\n var getValidClasses = function () {\r\n return validClasses;\r\n };\r\n var getBoolAttrs = function () {\r\n return boolAttrMap;\r\n };\r\n var getBlockElements = function () {\r\n return blockElementsMap;\r\n };\r\n var getTextBlockElements = function () {\r\n return textBlockElementsMap;\r\n };\r\n var getTextInlineElements = function () {\r\n return textInlineElementsMap;\r\n };\r\n var getShortEndedElements = function () {\r\n return shortEndedElementsMap;\r\n };\r\n var getSelfClosingElements = function () {\r\n return selfClosingElementsMap;\r\n };\r\n var getNonEmptyElements = function () {\r\n return nonEmptyElementsMap;\r\n };\r\n var getMoveCaretBeforeOnEnterElements = function () {\r\n return moveCaretBeforeOnEnterElementsMap;\r\n };\r\n var getWhiteSpaceElements = function () {\r\n return whiteSpaceElementsMap;\r\n };\r\n var getSpecialElements = function () {\r\n return specialElements;\r\n };\r\n var isValidChild = function (name, child) {\r\n var parent = children[name.toLowerCase()];\r\n return !!(parent && parent[child.toLowerCase()]);\r\n };\r\n var isValid = function (name, attr) {\r\n var attrPatterns, i;\r\n var rule = getElementRule(name);\r\n if (rule) {\r\n if (attr) {\r\n if (rule.attributes[attr]) {\r\n return true;\r\n }\r\n attrPatterns = rule.attributePatterns;\r\n if (attrPatterns) {\r\n i = attrPatterns.length;\r\n while (i--) {\r\n if (attrPatterns[i].pattern.test(name)) {\r\n return true;\r\n }\r\n }\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var getCustomElements = function () {\r\n return customElementsMap;\r\n };\r\n return {\r\n children: children,\r\n elements: elements,\r\n getValidStyles: getValidStyles,\r\n getValidClasses: getValidClasses,\r\n getBlockElements: getBlockElements,\r\n getInvalidStyles: getInvalidStyles,\r\n getShortEndedElements: getShortEndedElements,\r\n getTextBlockElements: getTextBlockElements,\r\n getTextInlineElements: getTextInlineElements,\r\n getBoolAttrs: getBoolAttrs,\r\n getElementRule: getElementRule,\r\n getSelfClosingElements: getSelfClosingElements,\r\n getNonEmptyElements: getNonEmptyElements,\r\n getMoveCaretBeforeOnEnterElements: getMoveCaretBeforeOnEnterElements,\r\n getWhiteSpaceElements: getWhiteSpaceElements,\r\n getSpecialElements: getSpecialElements,\r\n isValidChild: isValidChild,\r\n isValid: isValid,\r\n getCustomElements: getCustomElements,\r\n addValidElements: addValidElements,\r\n setValidElements: setValidElements,\r\n addCustomElements: addCustomElements,\r\n addValidChildren: addValidChildren\r\n };\r\n }\r\n\r\n var toHex = function (match, r, g, b) {\r\n var hex = function (val) {\r\n val = parseInt(val, 10).toString(16);\r\n return val.length > 1 ? val : '0' + val;\r\n };\r\n return '#' + hex(r) + hex(g) + hex(b);\r\n };\r\n function Styles(settings, schema) {\r\n var rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\r\n var urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\r\n var styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\r\n var trimRightRegExp = /\\s+$/;\r\n var i;\r\n var encodingLookup = {};\r\n var encodingItems;\r\n var validStyles;\r\n var invalidStyles;\r\n var invisibleChar = '\\uFEFF';\r\n settings = settings || {};\r\n if (schema) {\r\n validStyles = schema.getValidStyles();\r\n invalidStyles = schema.getInvalidStyles();\r\n }\r\n encodingItems = ('\\\\\" \\\\\\' \\\\; \\\\: ; : ' + invisibleChar).split(' ');\r\n for (i = 0; i < encodingItems.length; i++) {\r\n encodingLookup[encodingItems[i]] = invisibleChar + i;\r\n encodingLookup[invisibleChar + i] = encodingItems[i];\r\n }\r\n return {\r\n toHex: function (color) {\r\n return color.replace(rgbRegExp, toHex);\r\n },\r\n parse: function (css) {\r\n var styles = {};\r\n var matches, name, value, isEncoded;\r\n var urlConverter = settings.url_converter;\r\n var urlConverterScope = settings.url_converter_scope || this;\r\n var compress = function (prefix, suffix, noJoin) {\r\n var top, right, bottom, left;\r\n top = styles[prefix + '-top' + suffix];\r\n if (!top) {\r\n return;\r\n }\r\n right = styles[prefix + '-right' + suffix];\r\n if (!right) {\r\n return;\r\n }\r\n bottom = styles[prefix + '-bottom' + suffix];\r\n if (!bottom) {\r\n return;\r\n }\r\n left = styles[prefix + '-left' + suffix];\r\n if (!left) {\r\n return;\r\n }\r\n var box = [\r\n top,\r\n right,\r\n bottom,\r\n left\r\n ];\r\n i = box.length - 1;\r\n while (i--) {\r\n if (box[i] !== box[i + 1]) {\r\n break;\r\n }\r\n }\r\n if (i > -1 && noJoin) {\r\n return;\r\n }\r\n styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\r\n delete styles[prefix + '-top' + suffix];\r\n delete styles[prefix + '-right' + suffix];\r\n delete styles[prefix + '-bottom' + suffix];\r\n delete styles[prefix + '-left' + suffix];\r\n };\r\n var canCompress = function (key) {\r\n var value = styles[key], i;\r\n if (!value) {\r\n return;\r\n }\r\n value = value.split(' ');\r\n i = value.length;\r\n while (i--) {\r\n if (value[i] !== value[0]) {\r\n return false;\r\n }\r\n }\r\n styles[key] = value[0];\r\n return true;\r\n };\r\n var compress2 = function (target, a, b, c) {\r\n if (!canCompress(a)) {\r\n return;\r\n }\r\n if (!canCompress(b)) {\r\n return;\r\n }\r\n if (!canCompress(c)) {\r\n return;\r\n }\r\n styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\r\n delete styles[a];\r\n delete styles[b];\r\n delete styles[c];\r\n };\r\n var encode = function (str) {\r\n isEncoded = true;\r\n return encodingLookup[str];\r\n };\r\n var decode = function (str, keepSlashes) {\r\n if (isEncoded) {\r\n str = str.replace(/\\uFEFF[0-9]/g, function (str) {\r\n return encodingLookup[str];\r\n });\r\n }\r\n if (!keepSlashes) {\r\n str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\r\n }\r\n return str;\r\n };\r\n var decodeSingleHexSequence = function (escSeq) {\r\n return String.fromCharCode(parseInt(escSeq.slice(1), 16));\r\n };\r\n var decodeHexSequences = function (value) {\r\n return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\r\n };\r\n var processUrl = function (match, url, url2, url3, str, str2) {\r\n str = str || str2;\r\n if (str) {\r\n str = decode(str);\r\n return '\\'' + str.replace(/\\'/g, '\\\\\\'') + '\\'';\r\n }\r\n url = decode(url || url2 || url3);\r\n if (!settings.allow_script_urls) {\r\n var scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\r\n if (/(java|vb)script:/i.test(scriptUrl)) {\r\n return '';\r\n }\r\n if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\r\n return '';\r\n }\r\n }\r\n if (urlConverter) {\r\n url = urlConverter.call(urlConverterScope, url, 'style');\r\n }\r\n return 'url(\\'' + url.replace(/\\'/g, '\\\\\\'') + '\\')';\r\n };\r\n if (css) {\r\n css = css.replace(/[\\u0000-\\u001F]/g, '');\r\n css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, function (str) {\r\n return str.replace(/[;:]/g, encode);\r\n });\r\n while (matches = styleRegExp.exec(css)) {\r\n styleRegExp.lastIndex = matches.index + matches[0].length;\r\n name = matches[1].replace(trimRightRegExp, '').toLowerCase();\r\n value = matches[2].replace(trimRightRegExp, '');\r\n if (name && value) {\r\n name = decodeHexSequences(name);\r\n value = decodeHexSequences(value);\r\n if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\r\n continue;\r\n }\r\n if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\r\n continue;\r\n }\r\n if (name === 'font-weight' && value === '700') {\r\n value = 'bold';\r\n } else if (name === 'color' || name === 'background-color') {\r\n value = value.toLowerCase();\r\n }\r\n value = value.replace(rgbRegExp, toHex);\r\n value = value.replace(urlOrStrRegExp, processUrl);\r\n styles[name] = isEncoded ? decode(value, true) : value;\r\n }\r\n }\r\n compress('border', '', true);\r\n compress('border', '-width');\r\n compress('border', '-color');\r\n compress('border', '-style');\r\n compress('padding', '');\r\n compress('margin', '');\r\n compress2('border', 'border-width', 'border-style', 'border-color');\r\n if (styles.border === 'medium none') {\r\n delete styles.border;\r\n }\r\n if (styles['border-image'] === 'none') {\r\n delete styles['border-image'];\r\n }\r\n }\r\n return styles;\r\n },\r\n serialize: function (styles, elementName) {\r\n var css = '', name, value;\r\n var serializeStyles = function (name) {\r\n var styleList, i, l, value;\r\n styleList = validStyles[name];\r\n if (styleList) {\r\n for (i = 0, l = styleList.length; i < l; i++) {\r\n name = styleList[i];\r\n value = styles[name];\r\n if (value) {\r\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\r\n }\r\n }\r\n }\r\n };\r\n var isValid = function (name, elementName) {\r\n var styleMap;\r\n styleMap = invalidStyles['*'];\r\n if (styleMap && styleMap[name]) {\r\n return false;\r\n }\r\n styleMap = invalidStyles[elementName];\r\n if (styleMap && styleMap[name]) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n if (elementName && validStyles) {\r\n serializeStyles('*');\r\n serializeStyles(elementName);\r\n } else {\r\n for (name in styles) {\r\n value = styles[name];\r\n if (value && (!invalidStyles || isValid(name, elementName))) {\r\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\r\n }\r\n }\r\n }\r\n return css;\r\n }\r\n };\r\n }\r\n\r\n var each$5 = $_4ujg4tljkmcwkbk.each;\r\n var grep$1 = $_4ujg4tljkmcwkbk.grep;\r\n var isIE = $_cvvl9iajkmcwk25.ie;\r\n var simpleSelectorRe = /^([a-z0-9],?)+$/i;\r\n var whiteSpaceRegExp$2 = /^[ \\t\\r\\n]*$/;\r\n var setupAttrHooks = function (styles, settings, getContext) {\r\n var attrHooks = {};\r\n var keepValues = settings.keep_values;\r\n var keepUrlHook = {\r\n set: function ($elm, value, name$$1) {\r\n if (settings.url_converter) {\r\n value = settings.url_converter.call(settings.url_converter_scope || getContext(), value, name$$1, $elm[0]);\r\n }\r\n $elm.attr('data-mce-' + name$$1, value).attr(name$$1, value);\r\n },\r\n get: function ($elm, name$$1) {\r\n return $elm.attr('data-mce-' + name$$1) || $elm.attr(name$$1);\r\n }\r\n };\r\n attrHooks = {\r\n style: {\r\n set: function ($elm, value) {\r\n if (value !== null && typeof value === 'object') {\r\n $elm.css(value);\r\n return;\r\n }\r\n if (keepValues) {\r\n $elm.attr('data-mce-style', value);\r\n }\r\n $elm.attr('style', value);\r\n },\r\n get: function ($elm) {\r\n var value = $elm.attr('data-mce-style') || $elm.attr('style');\r\n value = styles.serialize(styles.parse(value), $elm[0].nodeName);\r\n return value;\r\n }\r\n }\r\n };\r\n if (keepValues) {\r\n attrHooks.href = attrHooks.src = keepUrlHook;\r\n }\r\n return attrHooks;\r\n };\r\n var updateInternalStyleAttr = function (styles, $elm) {\r\n var rawValue = $elm.attr('style');\r\n var value = styles.serialize(styles.parse(rawValue), $elm[0].nodeName);\r\n if (!value) {\r\n value = null;\r\n }\r\n $elm.attr('data-mce-style', value);\r\n };\r\n var findNodeIndex = function (node, normalized) {\r\n var idx = 0, lastNodeType, nodeType;\r\n if (node) {\r\n for (lastNodeType = node.nodeType, node = node.previousSibling; node; node = node.previousSibling) {\r\n nodeType = node.nodeType;\r\n if (normalized && nodeType === 3) {\r\n if (nodeType === lastNodeType || !node.nodeValue.length) {\r\n continue;\r\n }\r\n }\r\n idx++;\r\n lastNodeType = nodeType;\r\n }\r\n }\r\n return idx;\r\n };\r\n function DOMUtils(doc, settings) {\r\n var _this = this;\r\n if (settings === void 0) {\r\n settings = {};\r\n }\r\n var attrHooks;\r\n var addedStyles = {};\r\n var win = window;\r\n var files = {};\r\n var counter = 0;\r\n var stdMode = true;\r\n var boxModel = true;\r\n var styleSheetLoader = StyleSheetLoader(doc);\r\n var boundEvents = [];\r\n var schema = settings.schema ? settings.schema : Schema({});\r\n var styles = Styles({\r\n url_converter: settings.url_converter,\r\n url_converter_scope: settings.url_converter_scope\r\n }, settings.schema);\r\n var events = settings.ownEvents ? new EventUtils(settings.proxy) : EventUtils.Event;\r\n var blockElementsMap = schema.getBlockElements();\r\n var $ = DomQuery.overrideDefaults(function () {\r\n return {\r\n context: doc,\r\n element: self$$1.getRoot()\r\n };\r\n });\r\n var isBlock = function (node) {\r\n if (typeof node === 'string') {\r\n return !!blockElementsMap[node];\r\n } else if (node) {\r\n var type = node.nodeType;\r\n if (type) {\r\n return !!(type === 1 && blockElementsMap[node.nodeName]);\r\n }\r\n }\r\n return false;\r\n };\r\n var get = function (elm) {\r\n if (elm && doc && typeof elm === 'string') {\r\n var node = doc.getElementById(elm);\r\n if (node && node.id !== elm) {\r\n return doc.getElementsByName(elm)[1];\r\n } else {\r\n return node;\r\n }\r\n }\r\n return elm;\r\n };\r\n var $$ = function (elm) {\r\n if (typeof elm === 'string') {\r\n elm = get(elm);\r\n }\r\n return $(elm);\r\n };\r\n var getAttrib = function (elm, name$$1, defaultVal) {\r\n var hook, value;\r\n var $elm = $$(elm);\r\n if ($elm.length) {\r\n hook = attrHooks[name$$1];\r\n if (hook && hook.get) {\r\n value = hook.get($elm, name$$1);\r\n } else {\r\n value = $elm.attr(name$$1);\r\n }\r\n }\r\n if (typeof value === 'undefined') {\r\n value = defaultVal || '';\r\n }\r\n return value;\r\n };\r\n var getAttribs = function (elm) {\r\n var node = get(elm);\r\n if (!node) {\r\n return [];\r\n }\r\n return node.attributes;\r\n };\r\n var setAttrib = function (elm, name$$1, value) {\r\n var originalValue, hook;\r\n if (value === '') {\r\n value = null;\r\n }\r\n var $elm = $$(elm);\r\n originalValue = $elm.attr(name$$1);\r\n if (!$elm.length) {\r\n return;\r\n }\r\n hook = attrHooks[name$$1];\r\n if (hook && hook.set) {\r\n hook.set($elm, value, name$$1);\r\n } else {\r\n $elm.attr(name$$1, value);\r\n }\r\n if (originalValue !== value && settings.onSetAttrib) {\r\n settings.onSetAttrib({\r\n attrElm: $elm,\r\n attrName: name$$1,\r\n attrValue: value\r\n });\r\n }\r\n };\r\n var clone = function (node, deep) {\r\n if (!isIE || node.nodeType !== 1 || deep) {\r\n return node.cloneNode(deep);\r\n }\r\n if (!deep) {\r\n var clone_1 = doc.createElement(node.nodeName);\r\n each$5(getAttribs(node), function (attr) {\r\n setAttrib(clone_1, attr.nodeName, getAttrib(node, attr.nodeName));\r\n });\r\n return clone_1;\r\n }\r\n return null;\r\n };\r\n var getRoot = function () {\r\n return settings.root_element || doc.body;\r\n };\r\n var getViewPort = function (argWin) {\r\n var actWin = !argWin ? win : argWin;\r\n var doc = actWin.document;\r\n var rootElm = boxModel ? doc.documentElement : doc.body;\r\n return {\r\n x: actWin.pageXOffset || rootElm.scrollLeft,\r\n y: actWin.pageYOffset || rootElm.scrollTop,\r\n w: actWin.innerWidth || rootElm.clientWidth,\r\n h: actWin.innerHeight || rootElm.clientHeight\r\n };\r\n };\r\n var getPos = function (elm, rootElm) {\r\n return $_5o0xi0njkmcwkbz.getPos(doc.body, get(elm), rootElm);\r\n };\r\n var setStyle = function (elm, name$$1, value) {\r\n var $elm = $$(elm).css(name$$1, value);\r\n if (settings.update_styles) {\r\n updateInternalStyleAttr(styles, $elm);\r\n }\r\n };\r\n var setStyles = function (elm, stylesArg) {\r\n var $elm = $$(elm).css(stylesArg);\r\n if (settings.update_styles) {\r\n updateInternalStyleAttr(styles, $elm);\r\n }\r\n };\r\n var getStyle = function (elm, name$$1, computed) {\r\n var $elm = $$(elm);\r\n if (computed) {\r\n return $elm.css(name$$1);\r\n }\r\n name$$1 = name$$1.replace(/-(\\D)/g, function (a, b) {\r\n return b.toUpperCase();\r\n });\r\n if (name$$1 === 'float') {\r\n name$$1 = $_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 12 ? 'styleFloat' : 'cssFloat';\r\n }\r\n return $elm[0] && $elm[0].style ? $elm[0].style[name$$1] : undefined;\r\n };\r\n var getSize = function (elm) {\r\n var w, h;\r\n elm = get(elm);\r\n w = getStyle(elm, 'width');\r\n h = getStyle(elm, 'height');\r\n if (w.indexOf('px') === -1) {\r\n w = 0;\r\n }\r\n if (h.indexOf('px') === -1) {\r\n h = 0;\r\n }\r\n return {\r\n w: parseInt(w, 10) || elm.offsetWidth || elm.clientWidth,\r\n h: parseInt(h, 10) || elm.offsetHeight || elm.clientHeight\r\n };\r\n };\r\n var getRect = function (elm) {\r\n var pos, size;\r\n elm = get(elm);\r\n pos = getPos(elm);\r\n size = getSize(elm);\r\n return {\r\n x: pos.x,\r\n y: pos.y,\r\n w: size.w,\r\n h: size.h\r\n };\r\n };\r\n var is = function (elm, selector) {\r\n var i;\r\n if (!elm) {\r\n return false;\r\n }\r\n if (!Array.isArray(elm)) {\r\n if (selector === '*') {\r\n return elm.nodeType === 1;\r\n }\r\n if (simpleSelectorRe.test(selector)) {\r\n var selectors = selector.toLowerCase().split(/,/);\r\n var elmName = elm.nodeName.toLowerCase();\r\n for (i = selectors.length - 1; i >= 0; i--) {\r\n if (selectors[i] === elmName) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n if (elm.nodeType && elm.nodeType !== 1) {\r\n return false;\r\n }\r\n }\r\n var elms = !Array.isArray(elm) ? [elm] : elm;\r\n return Sizzle(selector, elms[0].ownerDocument || elms[0], null, elms).length > 0;\r\n };\r\n var getParents = function (elm, selector, root, collect) {\r\n var result = [];\r\n var selectorVal;\r\n var node = get(elm);\r\n collect = collect === undefined;\r\n root = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\r\n if ($_4ujg4tljkmcwkbk.is(selector, 'string')) {\r\n selectorVal = selector;\r\n if (selector === '*') {\r\n selector = function (node) {\r\n return node.nodeType === 1;\r\n };\r\n } else {\r\n selector = function (node) {\r\n return is(node, selectorVal);\r\n };\r\n }\r\n }\r\n while (node) {\r\n if (node === root || !node.nodeType || node.nodeType === 9) {\r\n break;\r\n }\r\n if (!selector || typeof selector === 'function' && selector(node)) {\r\n if (collect) {\r\n result.push(node);\r\n } else {\r\n return [node];\r\n }\r\n }\r\n node = node.parentNode;\r\n }\r\n return collect ? result : null;\r\n };\r\n var getParent = function (node, selector, root) {\r\n var parents = getParents(node, selector, root, false);\r\n return parents && parents.length > 0 ? parents[0] : null;\r\n };\r\n var _findSib = function (node, selector, name$$1) {\r\n var func = selector;\r\n if (node) {\r\n if (typeof selector === 'string') {\r\n func = function (node) {\r\n return is(node, selector);\r\n };\r\n }\r\n for (node = node[name$$1]; node; node = node[name$$1]) {\r\n if (typeof func === 'function' && func(node)) {\r\n return node;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n var getNext = function (node, selector) {\r\n return _findSib(node, selector, 'nextSibling');\r\n };\r\n var getPrev = function (node, selector) {\r\n return _findSib(node, selector, 'previousSibling');\r\n };\r\n var select = function (selector, scope) {\r\n return Sizzle(selector, get(scope) || settings.root_element || doc, []);\r\n };\r\n var run = function (elm, func, scope) {\r\n var result;\r\n var node = typeof elm === 'string' ? get(elm) : elm;\r\n if (!node) {\r\n return false;\r\n }\r\n if ($_4ujg4tljkmcwkbk.isArray(node) && (node.length || node.length === 0)) {\r\n result = [];\r\n each$5(node, function (elm, i) {\r\n if (elm) {\r\n if (typeof elm === 'string') {\r\n elm = get(elm);\r\n }\r\n result.push(func.call(scope, elm, i));\r\n }\r\n });\r\n return result;\r\n }\r\n var context = scope ? scope : _this;\r\n return func.call(context, node);\r\n };\r\n var setAttribs = function (elm, attrs) {\r\n $$(elm).each(function (i, node) {\r\n each$5(attrs, function (value, name$$1) {\r\n setAttrib(node, name$$1, value);\r\n });\r\n });\r\n };\r\n var setHTML = function (elm, html) {\r\n var $elm = $$(elm);\r\n if (isIE) {\r\n $elm.each(function (i, target) {\r\n if (target.canHaveHTML === false) {\r\n return;\r\n }\r\n while (target.firstChild) {\r\n target.removeChild(target.firstChild);\r\n }\r\n try {\r\n target.innerHTML = '
' + html;\r\n target.removeChild(target.firstChild);\r\n } catch (ex) {\r\n DomQuery('
').html('
' + html).contents().slice(1).appendTo(target);\r\n }\r\n return html;\r\n });\r\n } else {\r\n $elm.html(html);\r\n }\r\n };\r\n var add = function (parentElm, name$$1, attrs, html, create) {\r\n return run(parentElm, function (parentElm) {\r\n var newElm = typeof name$$1 === 'string' ? doc.createElement(name$$1) : name$$1;\r\n setAttribs(newElm, attrs);\r\n if (html) {\r\n if (typeof html !== 'string' && html.nodeType) {\r\n newElm.appendChild(html);\r\n } else if (typeof html === 'string') {\r\n setHTML(newElm, html);\r\n }\r\n }\r\n return !create ? parentElm.appendChild(newElm) : newElm;\r\n });\r\n };\r\n var create = function (name$$1, attrs, html) {\r\n return add(doc.createElement(name$$1), name$$1, attrs, html, true);\r\n };\r\n var decode = $_33qwr1sjkmcwkip.decode;\r\n var encode = $_33qwr1sjkmcwkip.encodeAllRaw;\r\n var createHTML = function (name$$1, attrs, html) {\r\n var outHtml = '', key;\r\n outHtml += '<' + name$$1;\r\n for (key in attrs) {\r\n if (attrs.hasOwnProperty(key) && attrs[key] !== null && typeof attrs[key] !== 'undefined') {\r\n outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\r\n }\r\n }\r\n if (typeof html !== 'undefined') {\r\n return outHtml + '>' + html + '';\r\n }\r\n return outHtml + ' />';\r\n };\r\n var createFragment = function (html) {\r\n var node;\r\n var container = doc.createElement('div');\r\n var frag = doc.createDocumentFragment();\r\n if (html) {\r\n container.innerHTML = html;\r\n }\r\n while (node = container.firstChild) {\r\n frag.appendChild(node);\r\n }\r\n return frag;\r\n };\r\n var remove = function (node, keepChildren) {\r\n var $node = $$(node);\r\n if (keepChildren) {\r\n $node.each(function () {\r\n var child;\r\n while (child = this.firstChild) {\r\n if (child.nodeType === 3 && child.data.length === 0) {\r\n this.removeChild(child);\r\n } else {\r\n this.parentNode.insertBefore(child, this);\r\n }\r\n }\r\n }).remove();\r\n } else {\r\n $node.remove();\r\n }\r\n return $node.length > 1 ? $node.toArray() : $node[0];\r\n };\r\n var removeAllAttribs = function (e) {\r\n return run(e, function (e) {\r\n var i;\r\n var attrs = e.attributes;\r\n for (i = attrs.length - 1; i >= 0; i--) {\r\n e.removeAttributeNode(attrs.item(i));\r\n }\r\n });\r\n };\r\n var parseStyle = function (cssText) {\r\n return styles.parse(cssText);\r\n };\r\n var serializeStyle = function (stylesArg, name$$1) {\r\n return styles.serialize(stylesArg, name$$1);\r\n };\r\n var addStyle = function (cssText) {\r\n var head, styleElm;\r\n if (self$$1 !== DOMUtils.DOM && doc === document) {\r\n if (addedStyles[cssText]) {\r\n return;\r\n }\r\n addedStyles[cssText] = true;\r\n }\r\n styleElm = doc.getElementById('mceDefaultStyles');\r\n if (!styleElm) {\r\n styleElm = doc.createElement('style');\r\n styleElm.id = 'mceDefaultStyles';\r\n styleElm.type = 'text/css';\r\n head = doc.getElementsByTagName('head')[0];\r\n if (head.firstChild) {\r\n head.insertBefore(styleElm, head.firstChild);\r\n } else {\r\n head.appendChild(styleElm);\r\n }\r\n }\r\n if (styleElm.styleSheet) {\r\n styleElm.styleSheet.cssText += cssText;\r\n } else {\r\n styleElm.appendChild(doc.createTextNode(cssText));\r\n }\r\n };\r\n var loadCSS = function (url) {\r\n var head;\r\n if (self$$1 !== DOMUtils.DOM && doc === document) {\r\n DOMUtils.DOM.loadCSS(url);\r\n return;\r\n }\r\n if (!url) {\r\n url = '';\r\n }\r\n head = doc.getElementsByTagName('head')[0];\r\n each$5(url.split(','), function (url) {\r\n var link;\r\n url = $_4ujg4tljkmcwkbk._addCacheSuffix(url);\r\n if (files[url]) {\r\n return;\r\n }\r\n files[url] = true;\r\n link = create('link', {\r\n rel: 'stylesheet',\r\n href: url\r\n });\r\n head.appendChild(link);\r\n });\r\n };\r\n var toggleClass = function (elm, cls, state) {\r\n $$(elm).toggleClass(cls, state).each(function () {\r\n if (this.className === '') {\r\n DomQuery(this).attr('class', null);\r\n }\r\n });\r\n };\r\n var addClass = function (elm, cls) {\r\n $$(elm).addClass(cls);\r\n };\r\n var removeClass = function (elm, cls) {\r\n toggleClass(elm, cls, false);\r\n };\r\n var hasClass = function (elm, cls) {\r\n return $$(elm).hasClass(cls);\r\n };\r\n var show = function (elm) {\r\n $$(elm).show();\r\n };\r\n var hide = function (elm) {\r\n $$(elm).hide();\r\n };\r\n var isHidden = function (elm) {\r\n return $$(elm).css('display') === 'none';\r\n };\r\n var uniqueId = function (prefix) {\r\n return (!prefix ? 'mce_' : prefix) + counter++;\r\n };\r\n var getOuterHTML = function (elm) {\r\n var node = typeof elm === 'string' ? get(elm) : elm;\r\n return $_bjermr1rjkmcwkij.isElement(node) ? node.outerHTML : DomQuery('
').append(DomQuery(node).clone()).html();\r\n };\r\n var setOuterHTML = function (elm, html) {\r\n $$(elm).each(function () {\r\n try {\r\n if ('outerHTML' in this) {\r\n this.outerHTML = html;\r\n return;\r\n }\r\n } catch (ex) {\r\n }\r\n remove(DomQuery(this).html(html), true);\r\n });\r\n };\r\n var insertAfter = function (node, reference) {\r\n var referenceNode = get(reference);\r\n return run(node, function (node) {\r\n var parent$$1, nextSibling;\r\n parent$$1 = referenceNode.parentNode;\r\n nextSibling = referenceNode.nextSibling;\r\n if (nextSibling) {\r\n parent$$1.insertBefore(node, nextSibling);\r\n } else {\r\n parent$$1.appendChild(node);\r\n }\r\n return node;\r\n });\r\n };\r\n var replace = function (newElm, oldElm, keepChildren) {\r\n return run(oldElm, function (oldElm) {\r\n if ($_4ujg4tljkmcwkbk.is(oldElm, 'array')) {\r\n newElm = newElm.cloneNode(true);\r\n }\r\n if (keepChildren) {\r\n each$5(grep$1(oldElm.childNodes), function (node) {\r\n newElm.appendChild(node);\r\n });\r\n }\r\n return oldElm.parentNode.replaceChild(newElm, oldElm);\r\n });\r\n };\r\n var rename = function (elm, name$$1) {\r\n var newElm;\r\n if (elm.nodeName !== name$$1.toUpperCase()) {\r\n newElm = create(name$$1);\r\n each$5(getAttribs(elm), function (attrNode) {\r\n setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\r\n });\r\n replace(newElm, elm, true);\r\n }\r\n return newElm || elm;\r\n };\r\n var findCommonAncestor = function (a, b) {\r\n var ps = a, pe;\r\n while (ps) {\r\n pe = b;\r\n while (pe && ps !== pe) {\r\n pe = pe.parentNode;\r\n }\r\n if (ps === pe) {\r\n break;\r\n }\r\n ps = ps.parentNode;\r\n }\r\n if (!ps && a.ownerDocument) {\r\n return a.ownerDocument.documentElement;\r\n }\r\n return ps;\r\n };\r\n var toHex = function (rgbVal) {\r\n return styles.toHex($_4ujg4tljkmcwkbk.trim(rgbVal));\r\n };\r\n var isEmpty = function (node, elements) {\r\n var i, attributes, type, whitespace, walker, name$$1, brCount = 0;\r\n node = node.firstChild;\r\n if (node) {\r\n walker = new TreeWalker(node, node.parentNode);\r\n elements = elements || (schema ? schema.getNonEmptyElements() : null);\r\n whitespace = schema ? schema.getWhiteSpaceElements() : {};\r\n do {\r\n type = node.nodeType;\r\n if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n var bogusVal = node.getAttribute('data-mce-bogus');\r\n if (bogusVal) {\r\n node = walker.next(bogusVal === 'all');\r\n continue;\r\n }\r\n name$$1 = node.nodeName.toLowerCase();\r\n if (elements && elements[name$$1]) {\r\n if (name$$1 === 'br') {\r\n brCount++;\r\n node = walker.next();\r\n continue;\r\n }\r\n return false;\r\n }\r\n attributes = getAttribs(node);\r\n i = attributes.length;\r\n while (i--) {\r\n name$$1 = attributes[i].nodeName;\r\n if (name$$1 === 'name' || name$$1 === 'data-mce-bookmark') {\r\n return false;\r\n }\r\n }\r\n }\r\n if (type === 8) {\r\n return false;\r\n }\r\n if (type === 3 && !whiteSpaceRegExp$2.test(node.nodeValue)) {\r\n return false;\r\n }\r\n if (type === 3 && node.parentNode && whitespace[node.parentNode.nodeName] && whiteSpaceRegExp$2.test(node.nodeValue)) {\r\n return false;\r\n }\r\n node = walker.next();\r\n } while (node);\r\n }\r\n return brCount <= 1;\r\n };\r\n var createRng = function () {\r\n return doc.createRange();\r\n };\r\n var split = function (parentElm, splitElm, replacementElm) {\r\n var r = createRng(), bef, aft, pa;\r\n if (parentElm && splitElm) {\r\n r.setStart(parentElm.parentNode, findNodeIndex(parentElm));\r\n r.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\r\n bef = r.extractContents();\r\n r = createRng();\r\n r.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\r\n r.setEnd(parentElm.parentNode, findNodeIndex(parentElm) + 1);\r\n aft = r.extractContents();\r\n pa = parentElm.parentNode;\r\n pa.insertBefore($_br9sxm1pjkmcwki4.trimNode(self$$1, bef), parentElm);\r\n if (replacementElm) {\r\n pa.insertBefore(replacementElm, parentElm);\r\n } else {\r\n pa.insertBefore(splitElm, parentElm);\r\n }\r\n pa.insertBefore($_br9sxm1pjkmcwki4.trimNode(self$$1, aft), parentElm);\r\n remove(parentElm);\r\n return replacementElm || splitElm;\r\n }\r\n };\r\n var bind = function (target, name$$1, func, scope) {\r\n if ($_4ujg4tljkmcwkbk.isArray(target)) {\r\n var i = target.length;\r\n while (i--) {\r\n target[i] = bind(target[i], name$$1, func, scope);\r\n }\r\n return target;\r\n }\r\n if (settings.collect && (target === doc || target === win)) {\r\n boundEvents.push([\r\n target,\r\n name$$1,\r\n func,\r\n scope\r\n ]);\r\n }\r\n return events.bind(target, name$$1, func, scope || self$$1);\r\n };\r\n var unbind = function (target, name$$1, func) {\r\n var i;\r\n if ($_4ujg4tljkmcwkbk.isArray(target)) {\r\n i = target.length;\r\n while (i--) {\r\n target[i] = unbind(target[i], name$$1, func);\r\n }\r\n return target;\r\n }\r\n if (boundEvents && (target === doc || target === win)) {\r\n i = boundEvents.length;\r\n while (i--) {\r\n var item = boundEvents[i];\r\n if (target === item[0] && (!name$$1 || name$$1 === item[1]) && (!func || func === item[2])) {\r\n events.unbind(item[0], item[1], item[2]);\r\n }\r\n }\r\n }\r\n return events.unbind(target, name$$1, func);\r\n };\r\n var fire = function (target, name$$1, evt) {\r\n return events.fire(target, name$$1, evt);\r\n };\r\n var getContentEditable = function (node) {\r\n if (node && $_bjermr1rjkmcwkij.isElement(node)) {\r\n var contentEditable = node.getAttribute('data-mce-contenteditable');\r\n if (contentEditable && contentEditable !== 'inherit') {\r\n return contentEditable;\r\n }\r\n return node.contentEditable !== 'inherit' ? node.contentEditable : null;\r\n } else {\r\n return null;\r\n }\r\n };\r\n var getContentEditableParent = function (node) {\r\n var root = getRoot();\r\n var state = null;\r\n for (; node && node !== root; node = node.parentNode) {\r\n state = getContentEditable(node);\r\n if (state !== null) {\r\n break;\r\n }\r\n }\r\n return state;\r\n };\r\n var destroy = function () {\r\n if (boundEvents) {\r\n var i = boundEvents.length;\r\n while (i--) {\r\n var item = boundEvents[i];\r\n events.unbind(item[0], item[1], item[2]);\r\n }\r\n }\r\n if (Sizzle.setDocument) {\r\n Sizzle.setDocument();\r\n }\r\n };\r\n var isChildOf = function (node, parent$$1) {\r\n while (node) {\r\n if (parent$$1 === node) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n };\r\n var dumpRng = function (r) {\r\n return 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\r\n };\r\n var self$$1 = {\r\n doc: doc,\r\n settings: settings,\r\n win: win,\r\n files: files,\r\n stdMode: stdMode,\r\n boxModel: boxModel,\r\n styleSheetLoader: styleSheetLoader,\r\n boundEvents: boundEvents,\r\n styles: styles,\r\n schema: schema,\r\n events: events,\r\n isBlock: isBlock,\r\n $: $,\r\n $$: $$,\r\n root: null,\r\n clone: clone,\r\n getRoot: getRoot,\r\n getViewPort: getViewPort,\r\n getRect: getRect,\r\n getSize: getSize,\r\n getParent: getParent,\r\n getParents: getParents,\r\n get: get,\r\n getNext: getNext,\r\n getPrev: getPrev,\r\n select: select,\r\n is: is,\r\n add: add,\r\n create: create,\r\n createHTML: createHTML,\r\n createFragment: createFragment,\r\n remove: remove,\r\n setStyle: setStyle,\r\n getStyle: getStyle,\r\n setStyles: setStyles,\r\n removeAllAttribs: removeAllAttribs,\r\n setAttrib: setAttrib,\r\n setAttribs: setAttribs,\r\n getAttrib: getAttrib,\r\n getPos: getPos,\r\n parseStyle: parseStyle,\r\n serializeStyle: serializeStyle,\r\n addStyle: addStyle,\r\n loadCSS: loadCSS,\r\n addClass: addClass,\r\n removeClass: removeClass,\r\n hasClass: hasClass,\r\n toggleClass: toggleClass,\r\n show: show,\r\n hide: hide,\r\n isHidden: isHidden,\r\n uniqueId: uniqueId,\r\n setHTML: setHTML,\r\n getOuterHTML: getOuterHTML,\r\n setOuterHTML: setOuterHTML,\r\n decode: decode,\r\n encode: encode,\r\n insertAfter: insertAfter,\r\n replace: replace,\r\n rename: rename,\r\n findCommonAncestor: findCommonAncestor,\r\n toHex: toHex,\r\n run: run,\r\n getAttribs: getAttribs,\r\n isEmpty: isEmpty,\r\n createRng: createRng,\r\n nodeIndex: findNodeIndex,\r\n split: split,\r\n bind: bind,\r\n unbind: unbind,\r\n fire: fire,\r\n getContentEditable: getContentEditable,\r\n getContentEditableParent: getContentEditableParent,\r\n destroy: destroy,\r\n isChildOf: isChildOf,\r\n dumpRng: dumpRng\r\n };\r\n attrHooks = setupAttrHooks(styles, settings, function () {\r\n return self$$1;\r\n });\r\n return self$$1;\r\n }\r\n (function (DOMUtils) {\r\n DOMUtils.DOM = DOMUtils(document);\r\n DOMUtils.nodeIndex = findNodeIndex;\r\n }(DOMUtils || (DOMUtils = {})));\r\n var DOMUtils$1 = DOMUtils;\r\n\r\n var DOM = DOMUtils$1.DOM;\r\n var each$6 = $_4ujg4tljkmcwkbk.each;\r\n var grep$2 = $_4ujg4tljkmcwkbk.grep;\r\n var isFunction$1 = function (f) {\r\n return typeof f === 'function';\r\n };\r\n var ScriptLoader = function () {\r\n var QUEUED = 0;\r\n var LOADING = 1;\r\n var LOADED = 2;\r\n var FAILED = 3;\r\n var states = {};\r\n var queue = [];\r\n var scriptLoadedCallbacks = {};\r\n var queueLoadedCallbacks = [];\r\n var loading = 0;\r\n var loadScript = function (url, success, failure) {\r\n var dom = DOM;\r\n var elm, id;\r\n var done = function () {\r\n dom.remove(id);\r\n if (elm) {\r\n elm.onreadystatechange = elm.onload = elm = null;\r\n }\r\n success();\r\n };\r\n var error = function () {\r\n if (isFunction$1(failure)) {\r\n failure();\r\n } else {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log('Failed to load script: ' + url);\r\n }\r\n }\r\n };\r\n id = dom.uniqueId();\r\n elm = document.createElement('script');\r\n elm.id = id;\r\n elm.type = 'text/javascript';\r\n elm.src = $_4ujg4tljkmcwkbk._addCacheSuffix(url);\r\n elm.onload = done;\r\n elm.onerror = error;\r\n (document.getElementsByTagName('head')[0] || document.body).appendChild(elm);\r\n };\r\n this.isDone = function (url) {\r\n return states[url] === LOADED;\r\n };\r\n this.markDone = function (url) {\r\n states[url] = LOADED;\r\n };\r\n this.add = this.load = function (url, success, scope, failure) {\r\n var state = states[url];\r\n if (state === undefined) {\r\n queue.push(url);\r\n states[url] = QUEUED;\r\n }\r\n if (success) {\r\n if (!scriptLoadedCallbacks[url]) {\r\n scriptLoadedCallbacks[url] = [];\r\n }\r\n scriptLoadedCallbacks[url].push({\r\n success: success,\r\n failure: failure,\r\n scope: scope || this\r\n });\r\n }\r\n };\r\n this.remove = function (url) {\r\n delete states[url];\r\n delete scriptLoadedCallbacks[url];\r\n };\r\n this.loadQueue = function (success, scope, failure) {\r\n this.loadScripts(queue, success, scope, failure);\r\n };\r\n this.loadScripts = function (scripts, success, scope, failure) {\r\n var loadScripts;\r\n var failures = [];\r\n var execCallbacks = function (name$$1, url) {\r\n each$6(scriptLoadedCallbacks[url], function (callback) {\r\n if (isFunction$1(callback[name$$1])) {\r\n callback[name$$1].call(callback.scope);\r\n }\r\n });\r\n scriptLoadedCallbacks[url] = undefined;\r\n };\r\n queueLoadedCallbacks.push({\r\n success: success,\r\n failure: failure,\r\n scope: scope || this\r\n });\r\n loadScripts = function () {\r\n var loadingScripts = grep$2(scripts);\r\n scripts.length = 0;\r\n each$6(loadingScripts, function (url) {\r\n if (states[url] === LOADED) {\r\n execCallbacks('success', url);\r\n return;\r\n }\r\n if (states[url] === FAILED) {\r\n execCallbacks('failure', url);\r\n return;\r\n }\r\n if (states[url] !== LOADING) {\r\n states[url] = LOADING;\r\n loading++;\r\n loadScript(url, function () {\r\n states[url] = LOADED;\r\n loading--;\r\n execCallbacks('success', url);\r\n loadScripts();\r\n }, function () {\r\n states[url] = FAILED;\r\n loading--;\r\n failures.push(url);\r\n execCallbacks('failure', url);\r\n loadScripts();\r\n });\r\n }\r\n });\r\n if (!loading) {\r\n var notifyCallbacks = queueLoadedCallbacks.slice(0);\r\n queueLoadedCallbacks.length = 0;\r\n each$6(notifyCallbacks, function (callback) {\r\n if (failures.length === 0) {\r\n if (isFunction$1(callback.success)) {\r\n callback.success.call(callback.scope);\r\n }\r\n } else {\r\n if (isFunction$1(callback.failure)) {\r\n callback.failure.call(callback.scope, failures);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n loadScripts();\r\n };\r\n };\r\n ScriptLoader.ScriptLoader = new ScriptLoader();\r\n\r\n var each$7 = $_4ujg4tljkmcwkbk.each;\r\n function AddOnManager() {\r\n var _this = this;\r\n var items = [];\r\n var urls = {};\r\n var lookup = {};\r\n var _listeners = [];\r\n var get = function (name) {\r\n if (lookup[name]) {\r\n return lookup[name].instance;\r\n }\r\n return undefined;\r\n };\r\n var dependencies = function (name) {\r\n var result;\r\n if (lookup[name]) {\r\n result = lookup[name].dependencies;\r\n }\r\n return result || [];\r\n };\r\n var requireLangPack = function (name, languages) {\r\n var language = AddOnManager.language;\r\n if (language && AddOnManager.languageLoad !== false) {\r\n if (languages) {\r\n languages = ',' + languages + ',';\r\n if (languages.indexOf(',' + language.substr(0, 2) + ',') !== -1) {\r\n language = language.substr(0, 2);\r\n } else if (languages.indexOf(',' + language + ',') === -1) {\r\n return;\r\n }\r\n }\r\n ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\r\n }\r\n };\r\n var add = function (id, addOn, dependencies) {\r\n items.push(addOn);\r\n lookup[id] = {\r\n instance: addOn,\r\n dependencies: dependencies\r\n };\r\n var result = partition(_listeners, function (listener) {\r\n return listener.name === id;\r\n });\r\n _listeners = result.fail;\r\n each$7(result.pass, function (listener) {\r\n listener.callback();\r\n });\r\n return addOn;\r\n };\r\n var remove = function (name) {\r\n delete urls[name];\r\n delete lookup[name];\r\n };\r\n var createUrl = function (baseUrl, dep) {\r\n if (typeof dep === 'object') {\r\n return dep;\r\n }\r\n return typeof baseUrl === 'string' ? {\r\n prefix: '',\r\n resource: dep,\r\n suffix: ''\r\n } : {\r\n prefix: baseUrl.prefix,\r\n resource: dep,\r\n suffix: baseUrl.suffix\r\n };\r\n };\r\n var addComponents = function (pluginName, scripts) {\r\n var pluginUrl = _this.urls[pluginName];\r\n each$7(scripts, function (script) {\r\n ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script);\r\n });\r\n };\r\n var loadDependencies = function (name, addOnUrl, success, scope) {\r\n var deps = dependencies(name);\r\n each$7(deps, function (dep) {\r\n var newUrl = createUrl(addOnUrl, dep);\r\n load(newUrl.resource, newUrl, undefined, undefined);\r\n });\r\n if (success) {\r\n if (scope) {\r\n success.call(scope);\r\n } else {\r\n success.call(ScriptLoader);\r\n }\r\n }\r\n };\r\n var load = function (name, addOnUrl, success, scope, failure) {\r\n if (urls[name]) {\r\n return;\r\n }\r\n var urlString = typeof addOnUrl === 'string' ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\r\n if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\r\n urlString = AddOnManager.baseURL + '/' + urlString;\r\n }\r\n urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\r\n if (lookup[name]) {\r\n loadDependencies(name, addOnUrl, success, scope);\r\n } else {\r\n ScriptLoader.ScriptLoader.add(urlString, function () {\r\n return loadDependencies(name, addOnUrl, success, scope);\r\n }, scope, failure);\r\n }\r\n };\r\n var waitFor = function (name, callback) {\r\n if (lookup.hasOwnProperty(name)) {\r\n callback();\r\n } else {\r\n _listeners.push({\r\n name: name,\r\n callback: callback\r\n });\r\n }\r\n };\r\n return {\r\n items: items,\r\n urls: urls,\r\n lookup: lookup,\r\n _listeners: _listeners,\r\n get: get,\r\n dependencies: dependencies,\r\n requireLangPack: requireLangPack,\r\n add: add,\r\n remove: remove,\r\n createUrl: createUrl,\r\n addComponents: addComponents,\r\n load: load,\r\n waitFor: waitFor\r\n };\r\n }\r\n (function (AddOnManager) {\r\n AddOnManager.PluginManager = AddOnManager();\r\n AddOnManager.ThemeManager = AddOnManager();\r\n }(AddOnManager || (AddOnManager = {})));\r\n\r\n var before = function (marker, element) {\r\n var parent = $_ca6pc118jkmcwkfs.parent(marker);\r\n parent.each(function (v) {\r\n v.dom().insertBefore(element.dom(), marker.dom());\r\n });\r\n };\r\n var after = function (marker, element) {\r\n var sibling = $_ca6pc118jkmcwkfs.nextSibling(marker);\r\n sibling.fold(function () {\r\n var parent = $_ca6pc118jkmcwkfs.parent(marker);\r\n parent.each(function (v) {\r\n append(v, element);\r\n });\r\n }, function (v) {\r\n before(v, element);\r\n });\r\n };\r\n var prepend = function (parent, element) {\r\n var firstChild = $_ca6pc118jkmcwkfs.firstChild(parent);\r\n firstChild.fold(function () {\r\n append(parent, element);\r\n }, function (v) {\r\n parent.dom().insertBefore(element.dom(), v.dom());\r\n });\r\n };\r\n var append = function (parent, element) {\r\n parent.dom().appendChild(element.dom());\r\n };\r\n var appendAt = function (parent, element, index) {\r\n $_ca6pc118jkmcwkfs.child(parent, index).fold(function () {\r\n append(parent, element);\r\n }, function (v) {\r\n before(v, element);\r\n });\r\n };\r\n var wrap$1 = function (element, wrapper) {\r\n before(element, wrapper);\r\n append(wrapper, element);\r\n };\r\n var $_f4qt4v1yjkmcwkl2 = {\r\n before: before,\r\n after: after,\r\n prepend: prepend,\r\n append: append,\r\n appendAt: appendAt,\r\n wrap: wrap$1\r\n };\r\n\r\n var before$1 = function (marker, elements) {\r\n each(elements, function (x) {\r\n $_f4qt4v1yjkmcwkl2.before(marker, x);\r\n });\r\n };\r\n var after$1 = function (marker, elements) {\r\n each(elements, function (x, i) {\r\n var e = i === 0 ? marker : elements[i - 1];\r\n $_f4qt4v1yjkmcwkl2.after(e, x);\r\n });\r\n };\r\n var prepend$1 = function (parent, elements) {\r\n each(elements.slice().reverse(), function (x) {\r\n $_f4qt4v1yjkmcwkl2.prepend(parent, x);\r\n });\r\n };\r\n var append$1 = function (parent, elements) {\r\n each(elements, function (x) {\r\n $_f4qt4v1yjkmcwkl2.append(parent, x);\r\n });\r\n };\r\n var $_1ev7t1xjkmcwkky = {\r\n before: before$1,\r\n after: after$1,\r\n prepend: prepend$1,\r\n append: append$1\r\n };\r\n\r\n var empty = function (element) {\r\n element.dom().textContent = '';\r\n each($_ca6pc118jkmcwkfs.children(element), function (rogue) {\r\n remove$2(rogue);\r\n });\r\n };\r\n var remove$2 = function (element) {\r\n var dom = element.dom();\r\n if (dom.parentNode !== null)\r\n dom.parentNode.removeChild(dom);\r\n };\r\n var unwrap = function (wrapper) {\r\n var children = $_ca6pc118jkmcwkfs.children(wrapper);\r\n if (children.length > 0)\r\n $_1ev7t1xjkmcwkky.before(wrapper, children);\r\n remove$2(wrapper);\r\n };\r\n var $_eualm21wjkmcwkku = {\r\n empty: empty,\r\n remove: remove$2,\r\n unwrap: unwrap\r\n };\r\n\r\n var first$1 = function (fn, rate) {\r\n var timer = null;\r\n var cancel = function () {\r\n if (timer !== null) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n var throttle = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (timer === null) {\r\n timer = setTimeout(function () {\r\n fn.apply(null, args);\r\n timer = null;\r\n }, rate);\r\n }\r\n };\r\n return {\r\n cancel: cancel,\r\n throttle: throttle\r\n };\r\n };\r\n var last$3 = function (fn, rate) {\r\n var timer = null;\r\n var cancel = function () {\r\n if (timer !== null) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n var throttle = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (timer !== null)\r\n clearTimeout(timer);\r\n timer = setTimeout(function () {\r\n fn.apply(null, args);\r\n timer = null;\r\n }, rate);\r\n };\r\n return {\r\n cancel: cancel,\r\n throttle: throttle\r\n };\r\n };\r\n\r\n var Cell = function (initial) {\r\n var value = initial;\r\n var get = function () {\r\n return value;\r\n };\r\n var set = function (v) {\r\n value = v;\r\n };\r\n var clone = function () {\r\n return Cell(get());\r\n };\r\n return {\r\n get: get,\r\n set: set,\r\n clone: clone\r\n };\r\n };\r\n\r\n function Toggler (turnOff, turnOn, initial) {\r\n var active = initial || false;\r\n var on = function () {\r\n turnOn();\r\n active = true;\r\n };\r\n var off = function () {\r\n turnOff();\r\n active = false;\r\n };\r\n var toggle = function () {\r\n var f = active ? off : on;\r\n f();\r\n };\r\n var isOn = function () {\r\n return active;\r\n };\r\n return {\r\n on: on,\r\n off: off,\r\n toggle: toggle,\r\n isOn: isOn\r\n };\r\n }\r\n\r\n var read = function (element, attr) {\r\n var value = $_29helg15jkmcwkf0.get(element, attr);\r\n return value === undefined || value === '' ? [] : value.split(' ');\r\n };\r\n var add = function (element, attr, id) {\r\n var old = read(element, attr);\r\n var nu = old.concat([id]);\r\n $_29helg15jkmcwkf0.set(element, attr, nu.join(' '));\r\n return true;\r\n };\r\n var remove$3 = function (element, attr, id) {\r\n var nu = filter(read(element, attr), function (v) {\r\n return v !== id;\r\n });\r\n if (nu.length > 0)\r\n $_29helg15jkmcwkf0.set(element, attr, nu.join(' '));\r\n else\r\n $_29helg15jkmcwkf0.remove(element, attr);\r\n return false;\r\n };\r\n var $_4m1njo26jkmcwkme = {\r\n read: read,\r\n add: add,\r\n remove: remove$3\r\n };\r\n\r\n var supports = function (element) {\r\n return element.dom().classList !== undefined;\r\n };\r\n var get$2 = function (element) {\r\n return $_4m1njo26jkmcwkme.read(element, 'class');\r\n };\r\n var add$1 = function (element, clazz) {\r\n return $_4m1njo26jkmcwkme.add(element, 'class', clazz);\r\n };\r\n var remove$4 = function (element, clazz) {\r\n return $_4m1njo26jkmcwkme.remove(element, 'class', clazz);\r\n };\r\n var toggle = function (element, clazz) {\r\n if (contains(get$2(element), clazz)) {\r\n return remove$4(element, clazz);\r\n } else {\r\n return add$1(element, clazz);\r\n }\r\n };\r\n var $_ewhsr825jkmcwkm2 = {\r\n get: get$2,\r\n add: add$1,\r\n remove: remove$4,\r\n toggle: toggle,\r\n supports: supports\r\n };\r\n\r\n var add$2 = function (element, clazz) {\r\n if ($_ewhsr825jkmcwkm2.supports(element))\r\n element.dom().classList.add(clazz);\r\n else\r\n $_ewhsr825jkmcwkm2.add(element, clazz);\r\n };\r\n var cleanClass = function (element) {\r\n var classList = $_ewhsr825jkmcwkm2.supports(element) ? element.dom().classList : $_ewhsr825jkmcwkm2.get(element);\r\n if (classList.length === 0) {\r\n $_29helg15jkmcwkf0.remove(element, 'class');\r\n }\r\n };\r\n var remove$5 = function (element, clazz) {\r\n if ($_ewhsr825jkmcwkm2.supports(element)) {\r\n var classList = element.dom().classList;\r\n classList.remove(clazz);\r\n } else\r\n $_ewhsr825jkmcwkm2.remove(element, clazz);\r\n cleanClass(element);\r\n };\r\n var toggle$1 = function (element, clazz) {\r\n return $_ewhsr825jkmcwkm2.supports(element) ? element.dom().classList.toggle(clazz) : $_ewhsr825jkmcwkm2.toggle(element, clazz);\r\n };\r\n var toggler = function (element, clazz) {\r\n var hasClasslist = $_ewhsr825jkmcwkm2.supports(element);\r\n var classList = element.dom().classList;\r\n var off = function () {\r\n if (hasClasslist)\r\n classList.remove(clazz);\r\n else\r\n $_ewhsr825jkmcwkm2.remove(element, clazz);\r\n };\r\n var on = function () {\r\n if (hasClasslist)\r\n classList.add(clazz);\r\n else\r\n $_ewhsr825jkmcwkm2.add(element, clazz);\r\n };\r\n return Toggler(off, on, has$1(element, clazz));\r\n };\r\n var has$1 = function (element, clazz) {\r\n return $_ewhsr825jkmcwkm2.supports(element) && element.dom().classList.contains(clazz);\r\n };\r\n var $_ftm4v023jkmcwklz = {\r\n add: add$2,\r\n remove: remove$5,\r\n toggle: toggle$1,\r\n toggler: toggler,\r\n has: has$1\r\n };\r\n\r\n var all$1 = function (predicate) {\r\n return descendants($_g4uup916jkmcwkfg.body(), predicate);\r\n };\r\n var ancestors = function (scope, predicate, isRoot) {\r\n return filter($_ca6pc118jkmcwkfs.parents(scope, isRoot), predicate);\r\n };\r\n var siblings$1 = function (scope, predicate) {\r\n return filter($_ca6pc118jkmcwkfs.siblings(scope), predicate);\r\n };\r\n var children$1 = function (scope, predicate) {\r\n return filter($_ca6pc118jkmcwkfs.children(scope), predicate);\r\n };\r\n var descendants = function (scope, predicate) {\r\n var result = [];\r\n each($_ca6pc118jkmcwkfs.children(scope), function (x) {\r\n if (predicate(x)) {\r\n result = result.concat([x]);\r\n }\r\n result = result.concat(descendants(x, predicate));\r\n });\r\n return result;\r\n };\r\n var $_733l9k28jkmcwkmj = {\r\n all: all$1,\r\n ancestors: ancestors,\r\n siblings: siblings$1,\r\n children: children$1,\r\n descendants: descendants\r\n };\r\n\r\n var all$2 = function (selector) {\r\n return $_4jv6d81gjkmcwkgv.all(selector);\r\n };\r\n var ancestors$1 = function (scope, selector, isRoot) {\r\n return $_733l9k28jkmcwkmj.ancestors(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n }, isRoot);\r\n };\r\n var siblings$2 = function (scope, selector) {\r\n return $_733l9k28jkmcwkmj.siblings(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n });\r\n };\r\n var children$2 = function (scope, selector) {\r\n return $_733l9k28jkmcwkmj.children(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n });\r\n };\r\n var descendants$1 = function (scope, selector) {\r\n return $_4jv6d81gjkmcwkgv.all(selector, scope);\r\n };\r\n var $_2gqm0n27jkmcwkmi = {\r\n all: all$2,\r\n ancestors: ancestors$1,\r\n siblings: siblings$2,\r\n children: children$2,\r\n descendants: descendants$1\r\n };\r\n\r\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\r\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\r\n }\r\n\r\n var first$2 = function (predicate) {\r\n return descendant($_g4uup916jkmcwkfg.body(), predicate);\r\n };\r\n var ancestor = function (scope, predicate, isRoot) {\r\n var element = scope.dom();\r\n var stop = isFunction(isRoot) ? isRoot : constant(false);\r\n while (element.parentNode) {\r\n element = element.parentNode;\r\n var el = Element$$1.fromDom(element);\r\n if (predicate(el))\r\n return Option.some(el);\r\n else if (stop(el))\r\n break;\r\n }\r\n return Option.none();\r\n };\r\n var closest = function (scope, predicate, isRoot) {\r\n var is = function (scope) {\r\n return predicate(scope);\r\n };\r\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\r\n };\r\n var sibling$1 = function (scope, predicate) {\r\n var element = scope.dom();\r\n if (!element.parentNode)\r\n return Option.none();\r\n return child$1(Element$$1.fromDom(element.parentNode), function (x) {\r\n return !$_e4hu6h1ejkmcwkgj.eq(scope, x) && predicate(x);\r\n });\r\n };\r\n var child$1 = function (scope, predicate) {\r\n var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));\r\n return result.map(Element$$1.fromDom);\r\n };\r\n var descendant = function (scope, predicate) {\r\n var descend = function (node) {\r\n for (var i = 0; i < node.childNodes.length; i++) {\r\n if (predicate(Element$$1.fromDom(node.childNodes[i])))\r\n return Option.some(Element$$1.fromDom(node.childNodes[i]));\r\n var res = descend(node.childNodes[i]);\r\n if (res.isSome())\r\n return res;\r\n }\r\n return Option.none();\r\n };\r\n return descend(scope.dom());\r\n };\r\n var $_253nd92ajkmcwkmp = {\r\n first: first$2,\r\n ancestor: ancestor,\r\n closest: closest,\r\n sibling: sibling$1,\r\n child: child$1,\r\n descendant: descendant\r\n };\r\n\r\n var first$3 = function (selector) {\r\n return $_4jv6d81gjkmcwkgv.one(selector);\r\n };\r\n var ancestor$1 = function (scope, selector, isRoot) {\r\n return $_253nd92ajkmcwkmp.ancestor(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n }, isRoot);\r\n };\r\n var sibling$2 = function (scope, selector) {\r\n return $_253nd92ajkmcwkmp.sibling(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n });\r\n };\r\n var child$2 = function (scope, selector) {\r\n return $_253nd92ajkmcwkmp.child(scope, function (e) {\r\n return $_4jv6d81gjkmcwkgv.is(e, selector);\r\n });\r\n };\r\n var descendant$1 = function (scope, selector) {\r\n return $_4jv6d81gjkmcwkgv.one(selector, scope);\r\n };\r\n var closest$1 = function (scope, selector, isRoot) {\r\n return ClosestOrAncestor($_4jv6d81gjkmcwkgv.is, ancestor$1, scope, selector, isRoot);\r\n };\r\n var $_4ki4d929jkmcwkmn = {\r\n first: first$3,\r\n ancestor: ancestor$1,\r\n sibling: sibling$2,\r\n child: child$2,\r\n descendant: descendant$1,\r\n closest: closest$1\r\n };\r\n\r\n var annotation = constant('mce-annotation');\r\n var dataAnnotation = constant('data-mce-annotation');\r\n var dataAnnotationId = constant('data-mce-annotation-uid');\r\n\r\n var identify = function (editor, annotationName) {\r\n var rng = editor.selection.getRng();\r\n var start = Element$$1.fromDom(rng.startContainer);\r\n var root = Element$$1.fromDom(editor.getBody());\r\n var selector = annotationName.fold(function () {\r\n return '.' + annotation();\r\n }, function (an) {\r\n return '[' + dataAnnotation() + '=\"' + an + '\"]';\r\n });\r\n var newStart = $_ca6pc118jkmcwkfs.child(start, rng.startOffset).getOr(start);\r\n var closest = $_4ki4d929jkmcwkmn.closest(newStart, selector, function (n) {\r\n return $_e4hu6h1ejkmcwkgj.eq(n, root);\r\n });\r\n var getAttr = function (c, property) {\r\n if ($_29helg15jkmcwkf0.has(c, property)) {\r\n return Option.some($_29helg15jkmcwkf0.get(c, property));\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n return closest.bind(function (c) {\r\n return getAttr(c, '' + dataAnnotationId()).bind(function (uid) {\r\n return getAttr(c, '' + dataAnnotation()).map(function (name) {\r\n var elements = findMarkers(editor, uid);\r\n return {\r\n uid: uid,\r\n name: name,\r\n elements: elements\r\n };\r\n });\r\n });\r\n });\r\n };\r\n var isAnnotation = function (elem) {\r\n return $_2xwdjv11jkmcwke0.isElement(elem) && $_ftm4v023jkmcwklz.has(elem, annotation());\r\n };\r\n var findMarkers = function (editor, uid) {\r\n var body = Element$$1.fromDom(editor.getBody());\r\n return $_2gqm0n27jkmcwkmi.descendants(body, '[' + dataAnnotationId() + '=\"' + uid + '\"]');\r\n };\r\n var findAll = function (editor, name) {\r\n var body = Element$$1.fromDom(editor.getBody());\r\n var markers = $_2gqm0n27jkmcwkmi.descendants(body, '[' + dataAnnotation() + '=\"' + name + '\"]');\r\n var directory = {};\r\n each(markers, function (m) {\r\n var uid = $_29helg15jkmcwkf0.get(m, dataAnnotationId());\r\n var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : [];\r\n directory[uid] = nodesAlready.concat([m]);\r\n });\r\n return directory;\r\n };\r\n\r\n var setup = function (editor, registry) {\r\n var changeCallbacks = Cell({});\r\n var initData = function () {\r\n return {\r\n listeners: [],\r\n previous: Cell(Option.none())\r\n };\r\n };\r\n var withCallbacks = function (name, f) {\r\n updateCallbacks(name, function (data) {\r\n f(data);\r\n return data;\r\n });\r\n };\r\n var updateCallbacks = function (name, f) {\r\n var callbackMap = changeCallbacks.get();\r\n var data = callbackMap.hasOwnProperty(name) ? callbackMap[name] : initData();\r\n var outputData = f(data);\r\n callbackMap[name] = outputData;\r\n changeCallbacks.set(callbackMap);\r\n };\r\n var fireCallbacks = function (name, uid, elements) {\r\n withCallbacks(name, function (data) {\r\n each(data.listeners, function (f) {\r\n return f(true, name, {\r\n uid: uid,\r\n nodes: map(elements, function (elem) {\r\n return elem.dom();\r\n })\r\n });\r\n });\r\n });\r\n };\r\n var fireNoAnnotation = function (name) {\r\n withCallbacks(name, function (data) {\r\n each(data.listeners, function (f) {\r\n return f(false, name);\r\n });\r\n });\r\n };\r\n var onNodeChange = last$3(function () {\r\n var callbackMap = changeCallbacks.get();\r\n var annotations = sort(keys(callbackMap));\r\n each(annotations, function (name) {\r\n updateCallbacks(name, function (data) {\r\n var prev = data.previous.get();\r\n identify(editor, Option.some(name)).fold(function () {\r\n if (prev.isSome()) {\r\n fireNoAnnotation(name);\r\n data.previous.set(Option.none());\r\n }\r\n }, function (_a) {\r\n var uid = _a.uid, name = _a.name, elements = _a.elements;\r\n if (!prev.is(uid)) {\r\n fireCallbacks(name, uid, elements);\r\n data.previous.set(Option.some(uid));\r\n }\r\n });\r\n return {\r\n previous: data.previous,\r\n listeners: data.listeners\r\n };\r\n });\r\n });\r\n }, 30);\r\n editor.on('remove', function () {\r\n onNodeChange.cancel();\r\n });\r\n editor.on('nodeChange', function () {\r\n onNodeChange.throttle();\r\n });\r\n var addListener = function (name, f) {\r\n updateCallbacks(name, function (data) {\r\n return {\r\n previous: data.previous,\r\n listeners: data.listeners.concat([f])\r\n };\r\n });\r\n };\r\n return { addListener: addListener };\r\n };\r\n\r\n var setup$1 = function (editor, registry) {\r\n var identifyParserNode = function (span) {\r\n var optAnnotation = Option.from(span.attributes.map[dataAnnotation()]);\r\n return optAnnotation.bind(registry.lookup);\r\n };\r\n editor.on('init', function () {\r\n editor.serializer.addNodeFilter('span', function (spans) {\r\n each(spans, function (span) {\r\n identifyParserNode(span).each(function (settings) {\r\n if (settings.persistent === false) {\r\n span.unwrap();\r\n }\r\n });\r\n });\r\n });\r\n });\r\n };\r\n\r\n var create$1 = function () {\r\n var annotations = {};\r\n var register = function (name, settings) {\r\n annotations[name] = {\r\n name: name,\r\n settings: settings\r\n };\r\n };\r\n var lookup = function (name) {\r\n return annotations.hasOwnProperty(name) ? Option.from(annotations[name]).map(function (a) {\r\n return a.settings;\r\n }) : Option.none();\r\n };\r\n return {\r\n register: register,\r\n lookup: lookup\r\n };\r\n };\r\n\r\n var unique = 0;\r\n var generate = function (prefix) {\r\n var date = new Date();\r\n var time = date.getTime();\r\n var random = Math.floor(Math.random() * 1000000000);\r\n unique++;\r\n return prefix + '_' + random + unique + String(time);\r\n };\r\n\r\n var add$3 = function (element, classes) {\r\n each(classes, function (x) {\r\n $_ftm4v023jkmcwklz.add(element, x);\r\n });\r\n };\r\n var remove$6 = function (element, classes) {\r\n each(classes, function (x) {\r\n $_ftm4v023jkmcwklz.remove(element, x);\r\n });\r\n };\r\n var toggle$2 = function (element, classes) {\r\n each(classes, function (x) {\r\n $_ftm4v023jkmcwklz.toggle(element, x);\r\n });\r\n };\r\n var hasAll = function (element, classes) {\r\n return forall(classes, function (clazz) {\r\n return $_ftm4v023jkmcwklz.has(element, clazz);\r\n });\r\n };\r\n var hasAny = function (element, classes) {\r\n return exists(classes, function (clazz) {\r\n return $_ftm4v023jkmcwklz.has(element, clazz);\r\n });\r\n };\r\n var getNative = function (element) {\r\n var classList = element.dom().classList;\r\n var r = new Array(classList.length);\r\n for (var i = 0; i < classList.length; i++) {\r\n r[i] = classList.item(i);\r\n }\r\n return r;\r\n };\r\n var get$3 = function (element) {\r\n return $_ewhsr825jkmcwkm2.supports(element) ? getNative(element) : $_ewhsr825jkmcwkm2.get(element);\r\n };\r\n var $_dw1myr2hjkmcwko1 = {\r\n add: add$3,\r\n remove: remove$6,\r\n toggle: toggle$2,\r\n hasAll: hasAll,\r\n hasAny: hasAny,\r\n get: get$3\r\n };\r\n\r\n var clone$1 = function (original, deep) {\r\n return Element$$1.fromDom(original.dom().cloneNode(deep));\r\n };\r\n var shallow = function (original) {\r\n return clone$1(original, false);\r\n };\r\n var deep = function (original) {\r\n return clone$1(original, true);\r\n };\r\n var shallowAs = function (original, tag) {\r\n var nu = Element$$1.fromTag(tag);\r\n var attributes = $_29helg15jkmcwkf0.clone(original);\r\n $_29helg15jkmcwkf0.setAll(nu, attributes);\r\n return nu;\r\n };\r\n var copy$1 = function (original, tag) {\r\n var nu = shallowAs(original, tag);\r\n var cloneChildren = $_ca6pc118jkmcwkfs.children(deep(original));\r\n $_1ev7t1xjkmcwkky.append(nu, cloneChildren);\r\n return nu;\r\n };\r\n var mutate = function (original, tag) {\r\n var nu = shallowAs(original, tag);\r\n $_f4qt4v1yjkmcwkl2.before(original, nu);\r\n var children = $_ca6pc118jkmcwkfs.children(original);\r\n $_1ev7t1xjkmcwkky.append(nu, children);\r\n $_eualm21wjkmcwkku.remove(original);\r\n return nu;\r\n };\r\n var $_44uvy22ijkmcwko5 = {\r\n shallow: shallow,\r\n shallowAs: shallowAs,\r\n deep: deep,\r\n copy: copy$1,\r\n mutate: mutate\r\n };\r\n\r\n var slice$3 = [].slice;\r\n var constant$1 = function (value) {\r\n return function () {\r\n return value;\r\n };\r\n };\r\n var negate = function (predicate) {\r\n return function (x) {\r\n return !predicate(x);\r\n };\r\n };\r\n var compose$2 = function (f, g) {\r\n return function (x) {\r\n return f(g(x));\r\n };\r\n };\r\n var or = function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var args = slice$3.call(arguments);\r\n return function (x) {\r\n for (var i = 0; i < args.length; i++) {\r\n if (args[i](x)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var and = function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var args = slice$3.call(arguments);\r\n return function (x) {\r\n for (var i = 0; i < args.length; i++) {\r\n if (!args[i](x)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n };\r\n var curry$1 = function (fn) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = slice$3.call(arguments);\r\n if (args.length - 1 >= fn.length) {\r\n return fn.apply(this, args.slice(1));\r\n }\r\n return function () {\r\n var tempArgs = args.concat([].slice.call(arguments));\r\n return curry$1.apply(this, tempArgs);\r\n };\r\n };\r\n var noop$1 = function () {\r\n };\r\n var $_fl2rax2ljkmcwkot = {\r\n constant: constant$1,\r\n negate: negate,\r\n and: and,\r\n or: or,\r\n curry: curry$1,\r\n compose: compose$2,\r\n noop: noop$1\r\n };\r\n\r\n var ZWSP = '\\uFEFF';\r\n var isZwsp = function (chr) {\r\n return chr === ZWSP;\r\n };\r\n var trim$3 = function (text) {\r\n return text.replace(new RegExp(ZWSP, 'g'), '');\r\n };\r\n var $_cadvcr2pjkmcwkph = {\r\n isZwsp: isZwsp,\r\n ZWSP: ZWSP,\r\n trim: trim$3\r\n };\r\n\r\n var isElement$2 = $_bjermr1rjkmcwkij.isElement;\r\n var isText$2 = $_bjermr1rjkmcwkij.isText;\r\n var isCaretContainerBlock = function (node) {\r\n if (isText$2(node)) {\r\n node = node.parentNode;\r\n }\r\n return isElement$2(node) && node.hasAttribute('data-mce-caret');\r\n };\r\n var isCaretContainerInline = function (node) {\r\n return isText$2(node) && $_cadvcr2pjkmcwkph.isZwsp(node.data);\r\n };\r\n var isCaretContainer = function (node) {\r\n return isCaretContainerBlock(node) || isCaretContainerInline(node);\r\n };\r\n var hasContent = function (node) {\r\n return node.firstChild !== node.lastChild || !$_bjermr1rjkmcwkij.isBr(node.firstChild);\r\n };\r\n var insertInline = function (node, before) {\r\n var doc, sibling, textNode, parentNode;\r\n doc = node.ownerDocument;\r\n textNode = doc.createTextNode($_cadvcr2pjkmcwkph.ZWSP);\r\n parentNode = node.parentNode;\r\n if (!before) {\r\n sibling = node.nextSibling;\r\n if (isText$2(sibling)) {\r\n if (isCaretContainer(sibling)) {\r\n return sibling;\r\n }\r\n if (startsWithCaretContainer(sibling)) {\r\n sibling.splitText(1);\r\n return sibling;\r\n }\r\n }\r\n if (node.nextSibling) {\r\n parentNode.insertBefore(textNode, node.nextSibling);\r\n } else {\r\n parentNode.appendChild(textNode);\r\n }\r\n } else {\r\n sibling = node.previousSibling;\r\n if (isText$2(sibling)) {\r\n if (isCaretContainer(sibling)) {\r\n return sibling;\r\n }\r\n if (endsWithCaretContainer(sibling)) {\r\n return sibling.splitText(sibling.data.length - 1);\r\n }\r\n }\r\n parentNode.insertBefore(textNode, node);\r\n }\r\n return textNode;\r\n };\r\n var isBeforeInline = function (pos) {\r\n var container = pos.container();\r\n return pos && $_bjermr1rjkmcwkij.isText(container) && container.data.charAt(pos.offset()) === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var isAfterInline = function (pos) {\r\n var container = pos.container();\r\n return pos && $_bjermr1rjkmcwkij.isText(container) && container.data.charAt(pos.offset() - 1) === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var createBogusBr = function () {\r\n var br = document.createElement('br');\r\n br.setAttribute('data-mce-bogus', '1');\r\n return br;\r\n };\r\n var insertBlock = function (blockName, node, before) {\r\n var doc, blockNode, parentNode;\r\n doc = node.ownerDocument;\r\n blockNode = doc.createElement(blockName);\r\n blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\r\n blockNode.setAttribute('data-mce-bogus', 'all');\r\n blockNode.appendChild(createBogusBr());\r\n parentNode = node.parentNode;\r\n if (!before) {\r\n if (node.nextSibling) {\r\n parentNode.insertBefore(blockNode, node.nextSibling);\r\n } else {\r\n parentNode.appendChild(blockNode);\r\n }\r\n } else {\r\n parentNode.insertBefore(blockNode, node);\r\n }\r\n return blockNode;\r\n };\r\n var startsWithCaretContainer = function (node) {\r\n return isText$2(node) && node.data[0] === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var endsWithCaretContainer = function (node) {\r\n return isText$2(node) && node.data[node.data.length - 1] === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var trimBogusBr = function (elm) {\r\n var brs = elm.getElementsByTagName('br');\r\n var lastBr = brs[brs.length - 1];\r\n if ($_bjermr1rjkmcwkij.isBogus(lastBr)) {\r\n lastBr.parentNode.removeChild(lastBr);\r\n }\r\n };\r\n var showCaretContainerBlock = function (caretContainer) {\r\n if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\r\n trimBogusBr(caretContainer);\r\n caretContainer.removeAttribute('data-mce-caret');\r\n caretContainer.removeAttribute('data-mce-bogus');\r\n caretContainer.removeAttribute('style');\r\n caretContainer.removeAttribute('_moz_abspos');\r\n return caretContainer;\r\n }\r\n return null;\r\n };\r\n var isRangeInCaretContainerBlock = function (range) {\r\n return isCaretContainerBlock(range.startContainer);\r\n };\r\n\r\n var isContentEditableTrue$1 = $_bjermr1rjkmcwkij.isContentEditableTrue;\r\n var isContentEditableFalse$1 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isBr$2 = $_bjermr1rjkmcwkij.isBr;\r\n var isText$3 = $_bjermr1rjkmcwkij.isText;\r\n var isInvalidTextElement = $_bjermr1rjkmcwkij.matchNodeNames('script style textarea');\r\n var isAtomicInline = $_bjermr1rjkmcwkij.matchNodeNames('img input textarea hr iframe video audio object');\r\n var isTable$1 = $_bjermr1rjkmcwkij.matchNodeNames('table');\r\n var isCaretContainer$1 = isCaretContainer;\r\n var isCaretCandidate = function (node) {\r\n if (isCaretContainer$1(node)) {\r\n return false;\r\n }\r\n if (isText$3(node)) {\r\n if (isInvalidTextElement(node.parentNode)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n return isAtomicInline(node) || isBr$2(node) || isTable$1(node) || isNonUiContentEditableFalse(node);\r\n };\r\n var isUnselectable = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && node.getAttribute('unselectable') === 'true';\r\n };\r\n var isNonUiContentEditableFalse = function (node) {\r\n return isUnselectable(node) === false && isContentEditableFalse$1(node);\r\n };\r\n var isInEditable = function (node, root) {\r\n for (node = node.parentNode; node && node !== root; node = node.parentNode) {\r\n if (isNonUiContentEditableFalse(node)) {\r\n return false;\r\n }\r\n if (isContentEditableTrue$1(node)) {\r\n return true;\r\n }\r\n }\r\n return true;\r\n };\r\n var isAtomicContentEditableFalse = function (node) {\r\n if (!isNonUiContentEditableFalse(node)) {\r\n return false;\r\n }\r\n return $_9g1fibmjkmcwkbu.reduce(node.getElementsByTagName('*'), function (result, elm) {\r\n return result || isContentEditableTrue$1(elm);\r\n }, false) !== true;\r\n };\r\n var isAtomic = function (node) {\r\n return isAtomicInline(node) || isAtomicContentEditableFalse(node);\r\n };\r\n var isEditableCaretCandidate = function (node, root) {\r\n return isCaretCandidate(node) && isInEditable(node, root);\r\n };\r\n\r\n var round = Math.round;\r\n var clone$2 = function (rect) {\r\n if (!rect) {\r\n return {\r\n left: 0,\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n }\r\n return {\r\n left: round(rect.left),\r\n top: round(rect.top),\r\n bottom: round(rect.bottom),\r\n right: round(rect.right),\r\n width: round(rect.width),\r\n height: round(rect.height)\r\n };\r\n };\r\n var collapse = function (rect, toStart) {\r\n rect = clone$2(rect);\r\n if (toStart) {\r\n rect.right = rect.left;\r\n } else {\r\n rect.left = rect.left + rect.width;\r\n rect.right = rect.left;\r\n }\r\n rect.width = 0;\r\n return rect;\r\n };\r\n var isEqual = function (rect1, rect2) {\r\n return rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\r\n };\r\n var isValidOverflow = function (overflowY, rect1, rect2) {\r\n return overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\r\n };\r\n var isAbove = function (rect1, rect2) {\r\n if (rect1.bottom - rect1.height / 2 < rect2.top) {\r\n return true;\r\n }\r\n if (rect1.top > rect2.bottom) {\r\n return false;\r\n }\r\n return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\r\n };\r\n var isBelow = function (rect1, rect2) {\r\n if (rect1.top > rect2.bottom) {\r\n return true;\r\n }\r\n if (rect1.bottom < rect2.top) {\r\n return false;\r\n }\r\n return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\r\n };\r\n var containsXY = function (rect, clientX, clientY) {\r\n return clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\r\n };\r\n var overflowX = function (outer, inner) {\r\n if (inner.left > outer.left && inner.right < outer.right) {\r\n return 0;\r\n } else {\r\n return inner.left < outer.left ? inner.left - outer.left : inner.right - outer.right;\r\n }\r\n };\r\n var overflowY = function (outer, inner) {\r\n if (inner.top > outer.top && inner.bottom < outer.bottom) {\r\n return 0;\r\n } else {\r\n return inner.top < outer.top ? inner.top - outer.top : inner.bottom - outer.bottom;\r\n }\r\n };\r\n var getOverflow = function (outer, inner) {\r\n return {\r\n x: overflowX(outer, inner),\r\n y: overflowY(outer, inner)\r\n };\r\n };\r\n\r\n var getSelectedNode = function (range) {\r\n var startContainer = range.startContainer, startOffset = range.startOffset;\r\n if (startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\r\n return startContainer.childNodes[startOffset];\r\n }\r\n return null;\r\n };\r\n var getNode = function (container, offset) {\r\n if (container.nodeType === 1 && container.hasChildNodes()) {\r\n if (offset >= container.childNodes.length) {\r\n offset = container.childNodes.length - 1;\r\n }\r\n container = container.childNodes[offset];\r\n }\r\n return container;\r\n };\r\n\r\n var extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u061a' + '\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0' + '\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08E3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\u0962-\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2-\\u09e3' + '\\u0a01-\\u0a02\\u0a3c\\u0a41-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70-\\u0a71\\u0a75\\u0a81-\\u0a82\\u0abc' + '\\u0ac1-\\u0ac5\\u0ac7-\\u0ac8\\u0acd\\u0ae2-\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57' + '\\u0b62-\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\u0d3e\\u0d41-\\u0d44' + '\\u0d4d\\u0d57\\u0d62-\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9' + '\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97' + '\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039-\\u103a\\u103d-\\u103e\\u1058-\\u1059\\u105e-\\u1060\\u1071-\\u1074' + '\\u1082\\u1085-\\u1086\\u108d\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b4-\\u17b5' + '\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80-\\u1b81\\u1ba2-\\u1ba5\\u1ba8-\\u1ba9\\u1bab-\\u1bad\\u1be6\\u1be8-\\u1be9' + '\\u1bed\\u1bef-\\u1bf1\\u1c2c-\\u1c33\\u1c36-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1cf4\\u1cf8-\\u1cf9' + '\\u1dc0-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\uA69E-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\ua9e5\\uaa29-\\uaa2e\\uaa31-\\uaa32\\uaa35-\\uaa36\\uaa43\\uaa4c\\uaa7c\\uaab0\\uaab2-\\uaab4\\uaab7-\\uaab8\\uaabe-\\uaabf\\uaac1' + '\\uaaec-\\uaaed\\uaaf6\\uabe5\\uabe8\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\uFE2F\\uff9e-\\uff9f]');\r\n var isExtendingChar = function (ch) {\r\n return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\r\n };\r\n\r\n var liftN = function (arr, f) {\r\n var r = [];\r\n for (var i = 0; i < arr.length; i++) {\r\n var x = arr[i];\r\n if (x.isSome()) {\r\n r.push(x.getOrDie());\r\n } else {\r\n return Option.none();\r\n }\r\n }\r\n return Option.some(f.apply(null, r));\r\n };\r\n\r\n var isElement$3 = $_bjermr1rjkmcwkij.isElement;\r\n var isCaretCandidate$1 = isCaretCandidate;\r\n var isBlock$1 = $_bjermr1rjkmcwkij.matchStyleValues('display', 'block table');\r\n var isFloated = $_bjermr1rjkmcwkij.matchStyleValues('float', 'left right');\r\n var isValidElementCaretCandidate = $_fl2rax2ljkmcwkot.and(isElement$3, isCaretCandidate$1, $_fl2rax2ljkmcwkot.negate(isFloated));\r\n var isNotPre = $_fl2rax2ljkmcwkot.negate($_bjermr1rjkmcwkij.matchStyleValues('white-space', 'pre pre-line pre-wrap'));\r\n var isText$4 = $_bjermr1rjkmcwkij.isText;\r\n var isBr$3 = $_bjermr1rjkmcwkij.isBr;\r\n var nodeIndex = DOMUtils$1.nodeIndex;\r\n var resolveIndex = getNode;\r\n var createRange = function (doc) {\r\n return 'createRange' in doc ? doc.createRange() : DOMUtils$1.DOM.createRng();\r\n };\r\n var isWhiteSpace = function (chr) {\r\n return chr && /[\\r\\n\\t ]/.test(chr);\r\n };\r\n var isRange = function (rng) {\r\n return !!rng.setStart && !!rng.setEnd;\r\n };\r\n var isHiddenWhiteSpaceRange = function (range$$1) {\r\n var container = range$$1.startContainer;\r\n var offset = range$$1.startOffset;\r\n var text;\r\n if (isWhiteSpace(range$$1.toString()) && isNotPre(container.parentNode) && $_bjermr1rjkmcwkij.isText(container)) {\r\n text = container.data;\r\n if (isWhiteSpace(text[offset - 1]) || isWhiteSpace(text[offset + 1])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var getBrClientRect = function (brNode) {\r\n var doc = brNode.ownerDocument;\r\n var rng = createRange(doc);\r\n var nbsp = doc.createTextNode('\\xA0');\r\n var parentNode = brNode.parentNode;\r\n var clientRect;\r\n parentNode.insertBefore(nbsp, brNode);\r\n rng.setStart(nbsp, 0);\r\n rng.setEnd(nbsp, 1);\r\n clientRect = clone$2(rng.getBoundingClientRect());\r\n parentNode.removeChild(nbsp);\r\n return clientRect;\r\n };\r\n var getBoundingClientRectWebKitText = function (rng) {\r\n var sc = rng.startContainer;\r\n var ec = rng.endContainer;\r\n var so = rng.startOffset;\r\n var eo = rng.endOffset;\r\n if (sc === ec && $_bjermr1rjkmcwkij.isText(ec) && so === 0 && eo === 1) {\r\n var newRng = rng.cloneRange();\r\n newRng.setEndAfter(ec);\r\n return getBoundingClientRect(newRng);\r\n } else {\r\n return null;\r\n }\r\n };\r\n var isZeroRect = function (r) {\r\n return r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\r\n };\r\n var getBoundingClientRect = function (item) {\r\n var clientRect, clientRects;\r\n clientRects = item.getClientRects();\r\n if (clientRects.length > 0) {\r\n clientRect = clone$2(clientRects[0]);\r\n } else {\r\n clientRect = clone$2(item.getBoundingClientRect());\r\n }\r\n if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\r\n return getBrClientRect(item);\r\n }\r\n if (isZeroRect(clientRect) && isRange(item)) {\r\n return getBoundingClientRectWebKitText(item);\r\n }\r\n return clientRect;\r\n };\r\n var collapseAndInflateWidth = function (clientRect, toStart) {\r\n var newClientRect = collapse(clientRect, toStart);\r\n newClientRect.width = 1;\r\n newClientRect.right = newClientRect.left + 1;\r\n return newClientRect;\r\n };\r\n var getCaretPositionClientRects = function (caretPosition) {\r\n var clientRects = [];\r\n var beforeNode, node;\r\n var addUniqueAndValidRect = function (clientRect) {\r\n if (clientRect.height === 0) {\r\n return;\r\n }\r\n if (clientRects.length > 0) {\r\n if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\r\n return;\r\n }\r\n }\r\n clientRects.push(clientRect);\r\n };\r\n var addCharacterOffset = function (container, offset) {\r\n var range$$1 = createRange(container.ownerDocument);\r\n if (offset < container.data.length) {\r\n if (isExtendingChar(container.data[offset])) {\r\n return clientRects;\r\n }\r\n if (isExtendingChar(container.data[offset - 1])) {\r\n range$$1.setStart(container, offset);\r\n range$$1.setEnd(container, offset + 1);\r\n if (!isHiddenWhiteSpaceRange(range$$1)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), false));\r\n return clientRects;\r\n }\r\n }\r\n }\r\n if (offset > 0) {\r\n range$$1.setStart(container, offset - 1);\r\n range$$1.setEnd(container, offset);\r\n if (!isHiddenWhiteSpaceRange(range$$1)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), false));\r\n }\r\n }\r\n if (offset < container.data.length) {\r\n range$$1.setStart(container, offset);\r\n range$$1.setEnd(container, offset + 1);\r\n if (!isHiddenWhiteSpaceRange(range$$1)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(range$$1), true));\r\n }\r\n }\r\n };\r\n if (isText$4(caretPosition.container())) {\r\n addCharacterOffset(caretPosition.container(), caretPosition.offset());\r\n return clientRects;\r\n }\r\n if (isElement$3(caretPosition.container())) {\r\n if (caretPosition.isAtEnd()) {\r\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\r\n if (isText$4(node)) {\r\n addCharacterOffset(node, node.data.length);\r\n }\r\n if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\r\n }\r\n } else {\r\n node = resolveIndex(caretPosition.container(), caretPosition.offset());\r\n if (isText$4(node)) {\r\n addCharacterOffset(node, 0);\r\n }\r\n if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), false));\r\n return clientRects;\r\n }\r\n beforeNode = resolveIndex(caretPosition.container(), caretPosition.offset() - 1);\r\n if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\r\n if (isBlock$1(beforeNode) || isBlock$1(node) || !isValidElementCaretCandidate(node)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(beforeNode), false));\r\n }\r\n }\r\n if (isValidElementCaretCandidate(node)) {\r\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect(node), true));\r\n }\r\n }\r\n }\r\n return clientRects;\r\n };\r\n function CaretPosition(container, offset, clientRects) {\r\n var isAtStart = function () {\r\n if (isText$4(container)) {\r\n return offset === 0;\r\n }\r\n return offset === 0;\r\n };\r\n var isAtEnd = function () {\r\n if (isText$4(container)) {\r\n return offset >= container.data.length;\r\n }\r\n return offset >= container.childNodes.length;\r\n };\r\n var toRange = function () {\r\n var range$$1;\r\n range$$1 = createRange(container.ownerDocument);\r\n range$$1.setStart(container, offset);\r\n range$$1.setEnd(container, offset);\r\n return range$$1;\r\n };\r\n var getClientRects = function () {\r\n if (!clientRects) {\r\n clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\r\n }\r\n return clientRects;\r\n };\r\n var isVisible = function () {\r\n return getClientRects().length > 0;\r\n };\r\n var isEqual$$1 = function (caretPosition) {\r\n return caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\r\n };\r\n var getNode$$1 = function (before) {\r\n return resolveIndex(container, before ? offset - 1 : offset);\r\n };\r\n return {\r\n container: $_fl2rax2ljkmcwkot.constant(container),\r\n offset: $_fl2rax2ljkmcwkot.constant(offset),\r\n toRange: toRange,\r\n getClientRects: getClientRects,\r\n isVisible: isVisible,\r\n isAtStart: isAtStart,\r\n isAtEnd: isAtEnd,\r\n isEqual: isEqual$$1,\r\n getNode: getNode$$1\r\n };\r\n }\r\n (function (CaretPosition) {\r\n CaretPosition.fromRangeStart = function (range$$1) {\r\n return CaretPosition(range$$1.startContainer, range$$1.startOffset);\r\n };\r\n CaretPosition.fromRangeEnd = function (range$$1) {\r\n return CaretPosition(range$$1.endContainer, range$$1.endOffset);\r\n };\r\n CaretPosition.after = function (node) {\r\n return CaretPosition(node.parentNode, nodeIndex(node) + 1);\r\n };\r\n CaretPosition.before = function (node) {\r\n return CaretPosition(node.parentNode, nodeIndex(node));\r\n };\r\n CaretPosition.isAbove = function (pos1, pos2) {\r\n return liftN([\r\n head(pos2.getClientRects()),\r\n last(pos1.getClientRects())\r\n ], isAbove).getOr(false);\r\n };\r\n CaretPosition.isBelow = function (pos1, pos2) {\r\n return liftN([\r\n last(pos2.getClientRects()),\r\n head(pos1.getClientRects())\r\n ], isBelow).getOr(false);\r\n };\r\n CaretPosition.isAtStart = function (pos) {\r\n return pos ? pos.isAtStart() : false;\r\n };\r\n CaretPosition.isAtEnd = function (pos) {\r\n return pos ? pos.isAtEnd() : false;\r\n };\r\n CaretPosition.isTextPosition = function (pos) {\r\n return pos ? $_bjermr1rjkmcwkij.isText(pos.container()) : false;\r\n };\r\n CaretPosition.isElementPosition = function (pos) {\r\n return CaretPosition.isTextPosition(pos) === false;\r\n };\r\n }(CaretPosition || (CaretPosition = {})));\r\n var CaretPosition$1 = CaretPosition;\r\n\r\n var isText$5 = $_bjermr1rjkmcwkij.isText;\r\n var isBogus$1 = $_bjermr1rjkmcwkij.isBogus;\r\n var nodeIndex$1 = DOMUtils$1.nodeIndex;\r\n var normalizedParent = function (node) {\r\n var parentNode = node.parentNode;\r\n if (isBogus$1(parentNode)) {\r\n return normalizedParent(parentNode);\r\n }\r\n return parentNode;\r\n };\r\n var getChildNodes = function (node) {\r\n if (!node) {\r\n return [];\r\n }\r\n return $_9g1fibmjkmcwkbu.reduce(node.childNodes, function (result, node) {\r\n if (isBogus$1(node) && node.nodeName !== 'BR') {\r\n result = result.concat(getChildNodes(node));\r\n } else {\r\n result.push(node);\r\n }\r\n return result;\r\n }, []);\r\n };\r\n var normalizedTextOffset = function (node, offset) {\r\n while (node = node.previousSibling) {\r\n if (!isText$5(node)) {\r\n break;\r\n }\r\n offset += node.data.length;\r\n }\r\n return offset;\r\n };\r\n var equal$1 = function (a) {\r\n return function (b) {\r\n return a === b;\r\n };\r\n };\r\n var normalizedNodeIndex = function (node) {\r\n var nodes, index, numTextFragments;\r\n nodes = getChildNodes(normalizedParent(node));\r\n index = $_9g1fibmjkmcwkbu.findIndex(nodes, equal$1(node), node);\r\n nodes = nodes.slice(0, index + 1);\r\n numTextFragments = $_9g1fibmjkmcwkbu.reduce(nodes, function (result, node, i) {\r\n if (isText$5(node) && isText$5(nodes[i - 1])) {\r\n result++;\r\n }\r\n return result;\r\n }, 0);\r\n nodes = $_9g1fibmjkmcwkbu.filter(nodes, $_bjermr1rjkmcwkij.matchNodeNames(node.nodeName));\r\n index = $_9g1fibmjkmcwkbu.findIndex(nodes, equal$1(node), node);\r\n return index - numTextFragments;\r\n };\r\n var createPathItem = function (node) {\r\n var name;\r\n if (isText$5(node)) {\r\n name = 'text()';\r\n } else {\r\n name = node.nodeName.toLowerCase();\r\n }\r\n return name + '[' + normalizedNodeIndex(node) + ']';\r\n };\r\n var parentsUntil = function (root, node, predicate) {\r\n var parents = [];\r\n for (node = node.parentNode; node !== root; node = node.parentNode) {\r\n if (predicate && predicate(node)) {\r\n break;\r\n }\r\n parents.push(node);\r\n }\r\n return parents;\r\n };\r\n var create$2 = function (root, caretPosition) {\r\n var container, offset, path = [], outputOffset, childNodes, parents;\r\n container = caretPosition.container();\r\n offset = caretPosition.offset();\r\n if (isText$5(container)) {\r\n outputOffset = normalizedTextOffset(container, offset);\r\n } else {\r\n childNodes = container.childNodes;\r\n if (offset >= childNodes.length) {\r\n outputOffset = 'after';\r\n offset = childNodes.length - 1;\r\n } else {\r\n outputOffset = 'before';\r\n }\r\n container = childNodes[offset];\r\n }\r\n path.push(createPathItem(container));\r\n parents = parentsUntil(root, container);\r\n parents = $_9g1fibmjkmcwkbu.filter(parents, $_fl2rax2ljkmcwkot.negate($_bjermr1rjkmcwkij.isBogus));\r\n path = path.concat($_9g1fibmjkmcwkbu.map(parents, function (node) {\r\n return createPathItem(node);\r\n }));\r\n return path.reverse().join('/') + ',' + outputOffset;\r\n };\r\n var resolvePathItem = function (node, name, index) {\r\n var nodes = getChildNodes(node);\r\n nodes = $_9g1fibmjkmcwkbu.filter(nodes, function (node, index) {\r\n return !isText$5(node) || !isText$5(nodes[index - 1]);\r\n });\r\n nodes = $_9g1fibmjkmcwkbu.filter(nodes, $_bjermr1rjkmcwkij.matchNodeNames(name));\r\n return nodes[index];\r\n };\r\n var findTextPosition = function (container, offset) {\r\n var node = container, targetOffset = 0, dataLen;\r\n while (isText$5(node)) {\r\n dataLen = node.data.length;\r\n if (offset >= targetOffset && offset <= targetOffset + dataLen) {\r\n container = node;\r\n offset = offset - targetOffset;\r\n break;\r\n }\r\n if (!isText$5(node.nextSibling)) {\r\n container = node;\r\n offset = dataLen;\r\n break;\r\n }\r\n targetOffset += dataLen;\r\n node = node.nextSibling;\r\n }\r\n if (isText$5(container) && offset > container.data.length) {\r\n offset = container.data.length;\r\n }\r\n return CaretPosition$1(container, offset);\r\n };\r\n var resolve$2 = function (root, path) {\r\n var parts, container, offset;\r\n if (!path) {\r\n return null;\r\n }\r\n parts = path.split(',');\r\n path = parts[0].split('/');\r\n offset = parts.length > 1 ? parts[1] : 'before';\r\n container = $_9g1fibmjkmcwkbu.reduce(path, function (result, value) {\r\n value = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\r\n if (!value) {\r\n return null;\r\n }\r\n if (value[1] === 'text()') {\r\n value[1] = '#text';\r\n }\r\n return resolvePathItem(result, value[1], parseInt(value[2], 10));\r\n }, root);\r\n if (!container) {\r\n return null;\r\n }\r\n if (!isText$5(container)) {\r\n if (offset === 'after') {\r\n offset = nodeIndex$1(container) + 1;\r\n } else {\r\n offset = nodeIndex$1(container);\r\n }\r\n return CaretPosition$1(container.parentNode, offset);\r\n }\r\n return findTextPosition(container, parseInt(offset, 10));\r\n };\r\n\r\n var isContentEditableFalse$2 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var getNormalizedTextOffset = function (trim, container, offset) {\r\n var node, trimmedOffset;\r\n trimmedOffset = trim(container.data.slice(0, offset)).length;\r\n for (node = container.previousSibling; node && $_bjermr1rjkmcwkij.isText(node); node = node.previousSibling) {\r\n trimmedOffset += trim(node.data).length;\r\n }\r\n return trimmedOffset;\r\n };\r\n var getPoint = function (dom, trim, normalized, rng, start) {\r\n var container = rng[start ? 'startContainer' : 'endContainer'];\r\n var offset = rng[start ? 'startOffset' : 'endOffset'];\r\n var point = [];\r\n var childNodes, after = 0;\r\n var root = dom.getRoot();\r\n if ($_bjermr1rjkmcwkij.isText(container)) {\r\n point.push(normalized ? getNormalizedTextOffset(trim, container, offset) : offset);\r\n } else {\r\n childNodes = container.childNodes;\r\n if (offset >= childNodes.length && childNodes.length) {\r\n after = 1;\r\n offset = Math.max(0, childNodes.length - 1);\r\n }\r\n point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\r\n }\r\n for (; container && container !== root; container = container.parentNode) {\r\n point.push(dom.nodeIndex(container, normalized));\r\n }\r\n return point;\r\n };\r\n var getLocation = function (trim, selection, normalized, rng) {\r\n var dom = selection.dom, bookmark = {};\r\n bookmark.start = getPoint(dom, trim, normalized, rng, true);\r\n if (!selection.isCollapsed()) {\r\n bookmark.end = getPoint(dom, trim, normalized, rng, false);\r\n }\r\n return bookmark;\r\n };\r\n var trimEmptyTextNode = function (node) {\r\n if ($_bjermr1rjkmcwkij.isText(node) && node.data.length === 0) {\r\n node.parentNode.removeChild(node);\r\n }\r\n };\r\n var findIndex$3 = function (dom, name, element) {\r\n var count = 0;\r\n $_4ujg4tljkmcwkbk.each(dom.select(name), function (node) {\r\n if (node.getAttribute('data-mce-bogus') === 'all') {\r\n return;\r\n }\r\n if (node === element) {\r\n return false;\r\n }\r\n count++;\r\n });\r\n return count;\r\n };\r\n var moveEndPoint = function (rng, start) {\r\n var container, offset, childNodes;\r\n var prefix = start ? 'start' : 'end';\r\n container = rng[prefix + 'Container'];\r\n offset = rng[prefix + 'Offset'];\r\n if ($_bjermr1rjkmcwkij.isElement(container) && container.nodeName === 'TR') {\r\n childNodes = container.childNodes;\r\n container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\r\n if (container) {\r\n offset = start ? 0 : container.childNodes.length;\r\n rng['set' + (start ? 'Start' : 'End')](container, offset);\r\n }\r\n }\r\n };\r\n var normalizeTableCellSelection = function (rng) {\r\n moveEndPoint(rng, true);\r\n moveEndPoint(rng, false);\r\n return rng;\r\n };\r\n var findSibling = function (node, offset) {\r\n var sibling;\r\n if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n node = getNode(node, offset);\r\n if (isContentEditableFalse$2(node)) {\r\n return node;\r\n }\r\n }\r\n if (isCaretContainer(node)) {\r\n if ($_bjermr1rjkmcwkij.isText(node) && isCaretContainerBlock(node)) {\r\n node = node.parentNode;\r\n }\r\n sibling = node.previousSibling;\r\n if (isContentEditableFalse$2(sibling)) {\r\n return sibling;\r\n }\r\n sibling = node.nextSibling;\r\n if (isContentEditableFalse$2(sibling)) {\r\n return sibling;\r\n }\r\n }\r\n };\r\n var findAdjacentContentEditableFalseElm = function (rng) {\r\n return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\r\n };\r\n var getOffsetBookmark = function (trim, normalized, selection) {\r\n var element = selection.getNode();\r\n var name = element ? element.nodeName : null;\r\n var rng = selection.getRng();\r\n if (isContentEditableFalse$2(element) || name === 'IMG') {\r\n return {\r\n name: name,\r\n index: findIndex$3(selection.dom, name, element)\r\n };\r\n }\r\n var sibling = findAdjacentContentEditableFalseElm(rng);\r\n if (sibling) {\r\n name = sibling.tagName;\r\n return {\r\n name: name,\r\n index: findIndex$3(selection.dom, name, sibling)\r\n };\r\n }\r\n return getLocation(trim, selection, normalized, rng);\r\n };\r\n var getCaretBookmark = function (selection) {\r\n var rng = selection.getRng();\r\n return {\r\n start: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeStart(rng)),\r\n end: create$2(selection.dom.getRoot(), CaretPosition$1.fromRangeEnd(rng))\r\n };\r\n };\r\n var getRangeBookmark = function (selection) {\r\n return { rng: selection.getRng() };\r\n };\r\n var createBookmarkSpan = function (dom, id, filled) {\r\n var args = {\r\n 'data-mce-type': 'bookmark',\r\n 'id': id,\r\n 'style': 'overflow:hidden;line-height:0px'\r\n };\r\n return filled ? dom.create('span', args, '') : dom.create('span', args);\r\n };\r\n var getPersistentBookmark = function (selection, filled) {\r\n var dom = selection.dom;\r\n var rng = selection.getRng();\r\n var id = dom.uniqueId();\r\n var collapsed = selection.isCollapsed();\r\n var element = selection.getNode();\r\n var name = element.nodeName;\r\n if (name === 'IMG') {\r\n return {\r\n name: name,\r\n index: findIndex$3(dom, name, element)\r\n };\r\n }\r\n var rng2 = normalizeTableCellSelection(rng.cloneRange());\r\n if (!collapsed) {\r\n rng2.collapse(false);\r\n var endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\r\n rng2.insertNode(endBookmarkNode);\r\n trimEmptyTextNode(endBookmarkNode.nextSibling);\r\n }\r\n rng = normalizeTableCellSelection(rng);\r\n rng.collapse(true);\r\n var startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\r\n rng.insertNode(startBookmarkNode);\r\n trimEmptyTextNode(startBookmarkNode.previousSibling);\r\n selection.moveToBookmark({\r\n id: id,\r\n keep: 1\r\n });\r\n return { id: id };\r\n };\r\n var getBookmark = function (selection, type, normalized) {\r\n if (type === 2) {\r\n return getOffsetBookmark($_cadvcr2pjkmcwkph.trim, normalized, selection);\r\n } else if (type === 3) {\r\n return getCaretBookmark(selection);\r\n } else if (type) {\r\n return getRangeBookmark(selection);\r\n } else {\r\n return getPersistentBookmark(selection, false);\r\n }\r\n };\r\n var $_aw3zi52jjkmcwkoa = {\r\n getBookmark: getBookmark,\r\n getUndoBookmark: curry(getOffsetBookmark, identity, true),\r\n getPersistentBookmark: getPersistentBookmark\r\n };\r\n\r\n var CARET_ID = '_mce_caret';\r\n var isCaretNode = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && node.id === CARET_ID;\r\n };\r\n var getParentCaretContainer = function (body, node) {\r\n while (node && node !== body) {\r\n if (node.id === CARET_ID) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n\r\n var isElement$4 = $_bjermr1rjkmcwkij.isElement;\r\n var isText$6 = $_bjermr1rjkmcwkij.isText;\r\n var removeNode = function (node) {\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(node);\r\n }\r\n };\r\n var getNodeValue = function (node) {\r\n try {\r\n return node.nodeValue;\r\n } catch (ex) {\r\n return '';\r\n }\r\n };\r\n var setNodeValue = function (node, text) {\r\n if (text.length === 0) {\r\n removeNode(node);\r\n } else {\r\n node.nodeValue = text;\r\n }\r\n };\r\n var trimCount = function (text) {\r\n var trimmedText = $_cadvcr2pjkmcwkph.trim(text);\r\n return {\r\n count: text.length - trimmedText.length,\r\n text: trimmedText\r\n };\r\n };\r\n var removeUnchanged = function (caretContainer, pos) {\r\n remove$7(caretContainer);\r\n return pos;\r\n };\r\n var removeTextAndReposition = function (caretContainer, pos) {\r\n var before = trimCount(caretContainer.data.substr(0, pos.offset()));\r\n var after = trimCount(caretContainer.data.substr(pos.offset()));\r\n var text = before.text + after.text;\r\n if (text.length > 0) {\r\n setNodeValue(caretContainer, text);\r\n return CaretPosition$1(caretContainer, pos.offset() - before.count);\r\n } else {\r\n return pos;\r\n }\r\n };\r\n var removeElementAndReposition = function (caretContainer, pos) {\r\n var parentNode = pos.container();\r\n var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) {\r\n return index < pos.offset() ? CaretPosition$1(parentNode, pos.offset() - 1) : pos;\r\n }).getOr(pos);\r\n remove$7(caretContainer);\r\n return newPosition;\r\n };\r\n var removeTextCaretContainer = function (caretContainer, pos) {\r\n return isText$6(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\r\n };\r\n var removeElementCaretContainer = function (caretContainer, pos) {\r\n return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\r\n };\r\n var removeAndReposition = function (container, pos) {\r\n return CaretPosition$1.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\r\n };\r\n var remove$7 = function (caretContainerNode) {\r\n if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) {\r\n if (hasContent(caretContainerNode)) {\r\n caretContainerNode.removeAttribute('data-mce-caret');\r\n } else {\r\n removeNode(caretContainerNode);\r\n }\r\n }\r\n if (isText$6(caretContainerNode)) {\r\n var text = $_cadvcr2pjkmcwkph.trim(getNodeValue(caretContainerNode));\r\n setNodeValue(caretContainerNode, text);\r\n }\r\n };\r\n var $_xl2r331jkmcwkri = {\r\n removeAndReposition: removeAndReposition,\r\n remove: remove$7\r\n };\r\n\r\n var isContentEditableTrue$2 = $_bjermr1rjkmcwkij.isContentEditableTrue;\r\n var isContentEditableFalse$3 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var showCaret = function (direction, editor, node, before, scrollIntoView) {\r\n return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView);\r\n };\r\n var getNodeRange = function (node) {\r\n var rng = node.ownerDocument.createRange();\r\n rng.selectNode(node);\r\n return rng;\r\n };\r\n var selectNode = function (editor, node) {\r\n var e = editor.fire('BeforeObjectSelected', { target: node });\r\n if (e.isDefaultPrevented()) {\r\n return null;\r\n }\r\n return getNodeRange(node);\r\n };\r\n var renderCaretAtRange = function (editor, range, scrollIntoView) {\r\n var normalizedRange = normalizeRange(1, editor.getBody(), range);\r\n var caretPosition = CaretPosition$1.fromRangeStart(normalizedRange);\r\n var caretPositionNode = caretPosition.getNode();\r\n if (isContentEditableFalse$3(caretPositionNode)) {\r\n return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\r\n }\r\n var caretPositionBeforeNode = caretPosition.getNode(true);\r\n if (isContentEditableFalse$3(caretPositionBeforeNode)) {\r\n return showCaret(1, editor, caretPositionBeforeNode, false, false);\r\n }\r\n var ceRoot = editor.dom.getParent(caretPosition.getNode(), function (node) {\r\n return isContentEditableFalse$3(node) || isContentEditableTrue$2(node);\r\n });\r\n if (isContentEditableFalse$3(ceRoot)) {\r\n return showCaret(1, editor, ceRoot, false, scrollIntoView);\r\n }\r\n return null;\r\n };\r\n var renderRangeCaret = function (editor, range, scrollIntoView) {\r\n if (!range || !range.collapsed) {\r\n return range;\r\n }\r\n var caretRange = renderCaretAtRange(editor, range, scrollIntoView);\r\n if (caretRange) {\r\n return caretRange;\r\n }\r\n return range;\r\n };\r\n\r\n var HDirection;\r\n (function (HDirection) {\r\n HDirection[HDirection['Backwards'] = -1] = 'Backwards';\r\n HDirection[HDirection['Forwards'] = 1] = 'Forwards';\r\n }(HDirection || (HDirection = {})));\r\n var isContentEditableFalse$4 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isText$7 = $_bjermr1rjkmcwkij.isText;\r\n var isElement$5 = $_bjermr1rjkmcwkij.isElement;\r\n var isBr$4 = $_bjermr1rjkmcwkij.isBr;\r\n var isCaretCandidate$2 = isCaretCandidate;\r\n var isAtomic$1 = isAtomic;\r\n var isEditableCaretCandidate$1 = isEditableCaretCandidate;\r\n var getParents = function (node, root) {\r\n var parents = [];\r\n while (node && node !== root) {\r\n parents.push(node);\r\n node = node.parentNode;\r\n }\r\n return parents;\r\n };\r\n var nodeAtIndex = function (container, offset) {\r\n if (container.hasChildNodes() && offset < container.childNodes.length) {\r\n return container.childNodes[offset];\r\n }\r\n return null;\r\n };\r\n var getCaretCandidatePosition = function (direction, node) {\r\n if (isForwards(direction)) {\r\n if (isCaretCandidate$2(node.previousSibling) && !isText$7(node.previousSibling)) {\r\n return CaretPosition$1.before(node);\r\n }\r\n if (isText$7(node)) {\r\n return CaretPosition$1(node, 0);\r\n }\r\n }\r\n if (isBackwards(direction)) {\r\n if (isCaretCandidate$2(node.nextSibling) && !isText$7(node.nextSibling)) {\r\n return CaretPosition$1.after(node);\r\n }\r\n if (isText$7(node)) {\r\n return CaretPosition$1(node, node.data.length);\r\n }\r\n }\r\n if (isBackwards(direction)) {\r\n if (isBr$4(node)) {\r\n return CaretPosition$1.before(node);\r\n }\r\n return CaretPosition$1.after(node);\r\n }\r\n return CaretPosition$1.before(node);\r\n };\r\n var isBrBeforeBlock = function (node, root) {\r\n var next;\r\n if (!$_bjermr1rjkmcwkij.isBr(node)) {\r\n return false;\r\n }\r\n next = findCaretPosition(1, CaretPosition$1.after(node), root);\r\n if (!next) {\r\n return false;\r\n }\r\n return !isInSameBlock(CaretPosition$1.before(node), CaretPosition$1.before(next), root);\r\n };\r\n var findCaretPosition = function (direction, startPos, root) {\r\n var node, nextNode, innerNode;\r\n var rootContentEditableFalseElm, caretPosition;\r\n if (!isElement$5(root) || !startPos) {\r\n return null;\r\n }\r\n if (startPos.isEqual(CaretPosition$1.after(root)) && root.lastChild) {\r\n caretPosition = CaretPosition$1.after(root.lastChild);\r\n if (isBackwards(direction) && isCaretCandidate$2(root.lastChild) && isElement$5(root.lastChild)) {\r\n return isBr$4(root.lastChild) ? CaretPosition$1.before(root.lastChild) : caretPosition;\r\n }\r\n } else {\r\n caretPosition = startPos;\r\n }\r\n var container = caretPosition.container();\r\n var offset = caretPosition.offset();\r\n if (isText$7(container)) {\r\n if (isBackwards(direction) && offset > 0) {\r\n return CaretPosition$1(container, --offset);\r\n }\r\n if (isForwards(direction) && offset < container.length) {\r\n return CaretPosition$1(container, ++offset);\r\n }\r\n node = container;\r\n } else {\r\n if (isBackwards(direction) && offset > 0) {\r\n nextNode = nodeAtIndex(container, offset - 1);\r\n if (isCaretCandidate$2(nextNode)) {\r\n if (!isAtomic$1(nextNode)) {\r\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\r\n if (innerNode) {\r\n if (isText$7(innerNode)) {\r\n return CaretPosition$1(innerNode, innerNode.data.length);\r\n }\r\n return CaretPosition$1.after(innerNode);\r\n }\r\n }\r\n if (isText$7(nextNode)) {\r\n return CaretPosition$1(nextNode, nextNode.data.length);\r\n }\r\n return CaretPosition$1.before(nextNode);\r\n }\r\n }\r\n if (isForwards(direction) && offset < container.childNodes.length) {\r\n nextNode = nodeAtIndex(container, offset);\r\n if (isCaretCandidate$2(nextNode)) {\r\n if (isBr$4(nextNode) && root.lastChild === nextNode) {\r\n return null;\r\n }\r\n if (isBrBeforeBlock(nextNode, root)) {\r\n return findCaretPosition(direction, CaretPosition$1.after(nextNode), root);\r\n }\r\n if (!isAtomic$1(nextNode)) {\r\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);\r\n if (innerNode) {\r\n if (isText$7(innerNode)) {\r\n return CaretPosition$1(innerNode, 0);\r\n }\r\n return CaretPosition$1.before(innerNode);\r\n }\r\n }\r\n if (isText$7(nextNode)) {\r\n return CaretPosition$1(nextNode, 0);\r\n }\r\n return CaretPosition$1.after(nextNode);\r\n }\r\n }\r\n node = nextNode ? nextNode : caretPosition.getNode();\r\n }\r\n if (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart()) {\r\n node = findNode(node, direction, $_fl2rax2ljkmcwkot.constant(true), root, true);\r\n if (isEditableCaretCandidate$1(node, root)) {\r\n return getCaretCandidatePosition(direction, node);\r\n }\r\n }\r\n nextNode = findNode(node, direction, isEditableCaretCandidate$1, root);\r\n rootContentEditableFalseElm = $_9g1fibmjkmcwkbu.last($_9g1fibmjkmcwkbu.filter(getParents(container, root), isContentEditableFalse$4));\r\n if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\r\n if (isForwards(direction)) {\r\n caretPosition = CaretPosition$1.after(rootContentEditableFalseElm);\r\n } else {\r\n caretPosition = CaretPosition$1.before(rootContentEditableFalseElm);\r\n }\r\n return caretPosition;\r\n }\r\n if (nextNode) {\r\n return getCaretCandidatePosition(direction, nextNode);\r\n }\r\n return null;\r\n };\r\n var CaretWalker = function (root) {\r\n return {\r\n next: function (caretPosition) {\r\n return findCaretPosition(HDirection.Forwards, caretPosition, root);\r\n },\r\n prev: function (caretPosition) {\r\n return findCaretPosition(HDirection.Backwards, caretPosition, root);\r\n }\r\n };\r\n };\r\n\r\n var BreakType;\r\n (function (BreakType) {\r\n BreakType[BreakType['Br'] = 0] = 'Br';\r\n BreakType[BreakType['Block'] = 1] = 'Block';\r\n BreakType[BreakType['Wrap'] = 2] = 'Wrap';\r\n BreakType[BreakType['Eol'] = 3] = 'Eol';\r\n }(BreakType || (BreakType = {})));\r\n var flip = function (direction, positions) {\r\n return direction === HDirection.Backwards ? positions.reverse() : positions;\r\n };\r\n var walk$1 = function (direction, caretWalker, pos) {\r\n return direction === HDirection.Forwards ? caretWalker.next(pos) : caretWalker.prev(pos);\r\n };\r\n var getBreakType = function (scope, direction, currentPos, nextPos) {\r\n if ($_bjermr1rjkmcwkij.isBr(nextPos.getNode(direction === HDirection.Forwards))) {\r\n return BreakType.Br;\r\n } else if (isInSameBlock(currentPos, nextPos) === false) {\r\n return BreakType.Block;\r\n } else {\r\n return BreakType.Wrap;\r\n }\r\n };\r\n var getPositionsUntil = function (predicate, direction, scope, start) {\r\n var caretWalker = CaretWalker(scope);\r\n var currentPos = start, nextPos;\r\n var positions = [];\r\n while (currentPos) {\r\n nextPos = walk$1(direction, caretWalker, currentPos);\r\n if (!nextPos) {\r\n break;\r\n }\r\n if ($_bjermr1rjkmcwkij.isBr(nextPos.getNode(false))) {\r\n if (direction === HDirection.Forwards) {\r\n return {\r\n positions: flip(direction, positions).concat([nextPos]),\r\n breakType: BreakType.Br,\r\n breakAt: Option.some(nextPos)\r\n };\r\n } else {\r\n return {\r\n positions: flip(direction, positions),\r\n breakType: BreakType.Br,\r\n breakAt: Option.some(nextPos)\r\n };\r\n }\r\n }\r\n if (!nextPos.isVisible()) {\r\n currentPos = nextPos;\r\n continue;\r\n }\r\n if (predicate(currentPos, nextPos)) {\r\n var breakType = getBreakType(scope, direction, currentPos, nextPos);\r\n return {\r\n positions: flip(direction, positions),\r\n breakType: breakType,\r\n breakAt: Option.some(nextPos)\r\n };\r\n }\r\n positions.push(nextPos);\r\n currentPos = nextPos;\r\n }\r\n return {\r\n positions: flip(direction, positions),\r\n breakType: BreakType.Eol,\r\n breakAt: Option.none()\r\n };\r\n };\r\n var getAdjacentLinePositions = function (direction, getPositionsUntilBreak, scope, start) {\r\n return getPositionsUntilBreak(scope, start).breakAt.map(function (pos) {\r\n var positions = getPositionsUntilBreak(scope, pos).positions;\r\n return direction === HDirection.Backwards ? positions.concat(pos) : [pos].concat(positions);\r\n }).getOr([]);\r\n };\r\n var findClosestHorizontalPositionFromPoint = function (positions, x) {\r\n return foldl(positions, function (acc, newPos) {\r\n return acc.fold(function () {\r\n return Option.some(newPos);\r\n }, function (lastPos) {\r\n return liftN([\r\n head(lastPos.getClientRects()),\r\n head(newPos.getClientRects())\r\n ], function (lastRect, newRect) {\r\n var lastDist = Math.abs(x - lastRect.left);\r\n var newDist = Math.abs(x - newRect.left);\r\n return newDist <= lastDist ? newPos : lastPos;\r\n }).or(acc);\r\n });\r\n }, Option.none());\r\n };\r\n var findClosestHorizontalPosition = function (positions, pos) {\r\n return head(pos.getClientRects()).bind(function (targetRect) {\r\n return findClosestHorizontalPositionFromPoint(positions, targetRect.left);\r\n });\r\n };\r\n var getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\r\n var getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\r\n var getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\r\n var getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\r\n var getFirstLinePositions = function (scope) {\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(scope).map(function (pos) {\r\n return [pos].concat(getPositionsUntilNextLine(scope, pos).positions);\r\n }).getOr([]);\r\n };\r\n var getLastLinePositions = function (scope) {\r\n return $_1m3f3j2yjkmcwkqg.lastPositionIn(scope).map(function (pos) {\r\n return getPositionsUntilPreviousLine(scope, pos).positions.concat(pos);\r\n }).getOr([]);\r\n };\r\n\r\n var deflate = function (rect, delta) {\r\n return {\r\n left: rect.left - delta,\r\n top: rect.top - delta,\r\n right: rect.right + delta * 2,\r\n bottom: rect.bottom + delta * 2,\r\n width: rect.width + delta,\r\n height: rect.height + delta\r\n };\r\n };\r\n var getCorners = function (getYAxisValue, tds) {\r\n return bind(tds, function (td) {\r\n var rect = deflate(td.getBoundingClientRect(), -1);\r\n return [\r\n {\r\n x: rect.left,\r\n y: getYAxisValue(rect),\r\n cell: td\r\n },\r\n {\r\n x: rect.right,\r\n y: getYAxisValue(rect),\r\n cell: td\r\n }\r\n ];\r\n });\r\n };\r\n var findClosestCorner = function (corners, x, y) {\r\n return foldl(corners, function (acc, newCorner) {\r\n return acc.fold(function () {\r\n return Option.some(newCorner);\r\n }, function (oldCorner) {\r\n var oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\r\n var newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\r\n return Option.some(newDist < oldDist ? newCorner : oldCorner);\r\n });\r\n }, Option.none());\r\n };\r\n var getClosestCell = function (getYAxisValue, isTargetCorner, table, x, y) {\r\n var cells = $_2gqm0n27jkmcwkmi.descendants(Element$$1.fromDom(table), 'td,th').map(function (e) {\r\n return e.dom();\r\n });\r\n var corners = filter(getCorners(getYAxisValue, cells), function (corner) {\r\n return isTargetCorner(corner, y);\r\n });\r\n return findClosestCorner(corners, x, y).map(function (corner) {\r\n return corner.cell;\r\n });\r\n };\r\n var getBottomValue = function (rect) {\r\n return rect.bottom;\r\n };\r\n var getTopValue = function (rect) {\r\n return rect.top;\r\n };\r\n var isAbove$1 = function (corner, y) {\r\n return corner.y < y;\r\n };\r\n var isBelow$1 = function (corner, y) {\r\n return corner.y > y;\r\n };\r\n var getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove$1);\r\n var getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow$1);\r\n var findClosestPositionInAboveCell = function (table, pos) {\r\n return head(pos.getClientRects()).bind(function (rect) {\r\n return getClosestCellAbove(table, rect.left, rect.top);\r\n }).bind(function (cell) {\r\n return findClosestHorizontalPosition(getLastLinePositions(cell), pos);\r\n });\r\n };\r\n var findClosestPositionInBelowCell = function (table, pos) {\r\n return last(pos.getClientRects()).bind(function (rect) {\r\n return getClosestCellBelow(table, rect.left, rect.top);\r\n }).bind(function (cell) {\r\n return findClosestHorizontalPosition(getFirstLinePositions(cell), pos);\r\n });\r\n };\r\n\r\n var getPos$1 = function (elm) {\r\n var x = 0, y = 0;\r\n var offsetParent = elm;\r\n while (offsetParent && offsetParent.nodeType) {\r\n x += offsetParent.offsetLeft || 0;\r\n y += offsetParent.offsetTop || 0;\r\n offsetParent = offsetParent.offsetParent;\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n };\r\n var fireScrollIntoViewEvent = function (editor, elm, alignToTop) {\r\n var scrollEvent = {\r\n elm: elm,\r\n alignToTop: alignToTop\r\n };\r\n editor.fire('scrollIntoView', scrollEvent);\r\n return scrollEvent.isDefaultPrevented();\r\n };\r\n var scrollElementIntoView = function (editor, elm, alignToTop) {\r\n var y, viewPort;\r\n var dom = editor.dom;\r\n var root = dom.getRoot();\r\n var viewPortY, viewPortH, offsetY = 0;\r\n if (fireScrollIntoViewEvent(editor, elm, alignToTop)) {\r\n return;\r\n }\r\n if (!$_bjermr1rjkmcwkij.isElement(elm)) {\r\n return;\r\n }\r\n if (alignToTop === false) {\r\n offsetY = elm.offsetHeight;\r\n }\r\n if (root.nodeName !== 'BODY') {\r\n var scrollContainer = editor.selection.getScrollContainer();\r\n if (scrollContainer) {\r\n y = getPos$1(elm).y - getPos$1(scrollContainer).y + offsetY;\r\n viewPortH = scrollContainer.clientHeight;\r\n viewPortY = scrollContainer.scrollTop;\r\n if (y < viewPortY || y + 25 > viewPortY + viewPortH) {\r\n scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25;\r\n }\r\n return;\r\n }\r\n }\r\n viewPort = dom.getViewPort(editor.getWin());\r\n y = dom.getPos(elm).y + offsetY;\r\n viewPortY = viewPort.y;\r\n viewPortH = viewPort.h;\r\n if (y < viewPort.y || y + 25 > viewPortY + viewPortH) {\r\n editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25);\r\n }\r\n };\r\n var getViewPortRect = function (editor) {\r\n if (editor.inline) {\r\n return editor.getBody().getBoundingClientRect();\r\n } else {\r\n var win = editor.getWin();\r\n return {\r\n left: 0,\r\n right: win.innerWidth,\r\n top: 0,\r\n bottom: win.innerHeight,\r\n width: win.innerWidth,\r\n height: win.innerHeight\r\n };\r\n }\r\n };\r\n var scrollBy = function (editor, dx, dy) {\r\n if (editor.inline) {\r\n editor.getBody().scrollLeft += dx;\r\n editor.getBody().scrollTop += dy;\r\n } else {\r\n editor.getWin().scrollBy(dx, dy);\r\n }\r\n };\r\n var scrollRangeIntoView = function (editor, rng) {\r\n head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {\r\n var bodyRect = getViewPortRect(editor);\r\n var overflow = getOverflow(bodyRect, rngRect);\r\n var margin = 4;\r\n var dx = overflow.x > 0 ? overflow.x + margin : overflow.x - margin;\r\n var dy = overflow.y > 0 ? overflow.y + margin : overflow.y - margin;\r\n scrollBy(editor, overflow.x !== 0 ? dx : 0, overflow.y !== 0 ? dy : 0);\r\n });\r\n };\r\n var $_a6610x37jkmcwkt5 = {\r\n scrollElementIntoView: scrollElementIntoView,\r\n scrollRangeIntoView: scrollRangeIntoView\r\n };\r\n\r\n var getBodySetting = function (editor, name, defaultValue) {\r\n var value = editor.getParam(name, defaultValue);\r\n if (value.indexOf('=') !== -1) {\r\n var bodyObj = editor.getParam(name, '', 'hash');\r\n return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue;\r\n } else {\r\n return value;\r\n }\r\n };\r\n var getIframeAttrs = function (editor) {\r\n return editor.getParam('iframe_attrs', {});\r\n };\r\n var getDocType = function (editor) {\r\n return editor.getParam('doctype', '');\r\n };\r\n var getDocumentBaseUrl = function (editor) {\r\n return editor.getParam('document_base_url', '');\r\n };\r\n var getBodyId = function (editor) {\r\n return getBodySetting(editor, 'body_id', 'tinymce');\r\n };\r\n var getBodyClass = function (editor) {\r\n return getBodySetting(editor, 'body_class', '');\r\n };\r\n var getContentSecurityPolicy = function (editor) {\r\n return editor.getParam('content_security_policy', '');\r\n };\r\n var shouldPutBrInPre = function (editor) {\r\n return editor.getParam('br_in_pre', true);\r\n };\r\n var getForcedRootBlock = function (editor) {\r\n if (editor.getParam('force_p_newlines', false)) {\r\n return 'p';\r\n }\r\n var block = editor.getParam('forced_root_block', 'p');\r\n return block === false ? '' : block;\r\n };\r\n var getForcedRootBlockAttrs = function (editor) {\r\n return editor.getParam('forced_root_block_attrs', {});\r\n };\r\n var getBrNewLineSelector = function (editor) {\r\n return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption');\r\n };\r\n var getNoNewLineSelector = function (editor) {\r\n return editor.getParam('no_newline_selector', '');\r\n };\r\n var shouldKeepStyles = function (editor) {\r\n return editor.getParam('keep_styles', true);\r\n };\r\n var shouldEndContainerOnEmptyBlock = function (editor) {\r\n return editor.getParam('end_container_on_empty_block', false);\r\n };\r\n var getFontStyleValues = function (editor) {\r\n return $_4ujg4tljkmcwkbk.explode(editor.getParam('font_size_style_values', ''));\r\n };\r\n var getFontSizeClasses = function (editor) {\r\n return $_4ujg4tljkmcwkbk.explode(editor.getParam('font_size_classes', ''));\r\n };\r\n var $_2ycm1438jkmcwkta = {\r\n getIframeAttrs: getIframeAttrs,\r\n getDocType: getDocType,\r\n getDocumentBaseUrl: getDocumentBaseUrl,\r\n getBodyId: getBodyId,\r\n getBodyClass: getBodyClass,\r\n getContentSecurityPolicy: getContentSecurityPolicy,\r\n shouldPutBrInPre: shouldPutBrInPre,\r\n getForcedRootBlock: getForcedRootBlock,\r\n getForcedRootBlockAttrs: getForcedRootBlockAttrs,\r\n getBrNewLineSelector: getBrNewLineSelector,\r\n getNoNewLineSelector: getNoNewLineSelector,\r\n shouldKeepStyles: shouldKeepStyles,\r\n shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock,\r\n getFontStyleValues: getFontStyleValues,\r\n getFontSizeClasses: getFontSizeClasses\r\n };\r\n\r\n var browser$2 = $_b1ykk4ojkmcwkcj.detect().browser;\r\n var isFakeCaretTableBrowser = function () {\r\n return browser$2.isIE() || browser$2.isEdge() || browser$2.isFirefox();\r\n };\r\n var moveToRange = function (editor, rng) {\r\n editor.selection.setRng(rng);\r\n $_a6610x37jkmcwkt5.scrollRangeIntoView(editor, rng);\r\n };\r\n var isAtTableCellLine = function (getPositionsUntil, scope, pos) {\r\n var lineInfo = getPositionsUntil(scope, pos);\r\n if (lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0) {\r\n return lineInfo.breakAt.map(function (breakPos) {\r\n return getPositionsUntil(scope, breakPos).breakAt.isNone();\r\n }).getOr(true);\r\n } else {\r\n return lineInfo.breakAt.isNone();\r\n }\r\n };\r\n var isAtFirstTableCellLine = $_fl2rax2ljkmcwkot.curry(isAtTableCellLine, getPositionsUntilPreviousLine);\r\n var isAtLastTableCellLine = $_fl2rax2ljkmcwkot.curry(isAtTableCellLine, getPositionsUntilNextLine);\r\n var isCaretAtStartOrEndOfTable = function (forward, rng, table) {\r\n var caretPos = CaretPosition$1.fromRangeStart(rng);\r\n return $_1m3f3j2yjkmcwkqg.positionIn(!forward, table).map(function (pos) {\r\n return pos.isEqual(caretPos);\r\n }).getOr(false);\r\n };\r\n var navigateHorizontally = function (editor, forward, table, td) {\r\n var rng = editor.selection.getRng();\r\n var direction = forward ? 1 : -1;\r\n if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\r\n var newRng = showCaret(direction, editor, table, !forward, true);\r\n moveToRange(editor, newRng);\r\n return true;\r\n }\r\n return false;\r\n };\r\n var getClosestAbovePosition = function (root, table, start) {\r\n return findClosestPositionInAboveCell(table, start).orThunk(function () {\r\n return head(start.getClientRects()).bind(function (rect) {\r\n return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition$1.before(table)), rect.left);\r\n });\r\n }).getOr(CaretPosition$1.before(table));\r\n };\r\n var getClosestBelowPosition = function (root, table, start) {\r\n return findClosestPositionInBelowCell(table, start).orThunk(function () {\r\n return head(start.getClientRects()).bind(function (rect) {\r\n return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition$1.after(table)), rect.left);\r\n });\r\n }).getOr(CaretPosition$1.after(table));\r\n };\r\n var getTable = function (previous, pos) {\r\n var node = pos.getNode(previous);\r\n return $_bjermr1rjkmcwkij.isElement(node) && node.nodeName === 'TABLE' ? Option.some(node) : Option.none();\r\n };\r\n var renderBlock = function (down, editor, table, pos) {\r\n var forcedRootBlock = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n if (forcedRootBlock) {\r\n editor.undoManager.transact(function () {\r\n var element = Element$$1.fromTag(forcedRootBlock);\r\n $_29helg15jkmcwkf0.setAll(element, $_2ycm1438jkmcwkta.getForcedRootBlockAttrs(editor));\r\n $_f4qt4v1yjkmcwkl2.append(element, Element$$1.fromTag('br'));\r\n if (down) {\r\n $_f4qt4v1yjkmcwkl2.after(Element$$1.fromDom(table), element);\r\n } else {\r\n $_f4qt4v1yjkmcwkl2.before(Element$$1.fromDom(table), element);\r\n }\r\n var rng = editor.dom.createRng();\r\n rng.setStart(element.dom(), 0);\r\n rng.setEnd(element.dom(), 0);\r\n moveToRange(editor, rng);\r\n });\r\n } else {\r\n moveToRange(editor, pos.toRange());\r\n }\r\n };\r\n var moveCaret = function (editor, down, pos) {\r\n var table = down ? getTable(true, pos) : getTable(false, pos);\r\n var last$$1 = down === false;\r\n table.fold(function () {\r\n return moveToRange(editor, pos.toRange());\r\n }, function (table) {\r\n return $_1m3f3j2yjkmcwkqg.positionIn(last$$1, editor.getBody()).filter(function (lastPos) {\r\n return lastPos.isEqual(pos);\r\n }).fold(function () {\r\n return moveToRange(editor, pos.toRange());\r\n }, function (_) {\r\n return renderBlock(down, editor, table, pos);\r\n });\r\n });\r\n };\r\n var navigateVertically = function (editor, down, table, td) {\r\n var rng = editor.selection.getRng();\r\n var pos = CaretPosition$1.fromRangeStart(rng);\r\n var root = editor.getBody();\r\n if (!down && isAtFirstTableCellLine(td, pos)) {\r\n var newPos = getClosestAbovePosition(root, table, pos);\r\n moveCaret(editor, down, newPos);\r\n return true;\r\n } else if (down && isAtLastTableCellLine(td, pos)) {\r\n var newPos = getClosestBelowPosition(root, table, pos);\r\n moveCaret(editor, down, newPos);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var moveH = function (editor, forward) {\r\n return function () {\r\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\r\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\r\n return navigateHorizontally(editor, forward, table, td);\r\n });\r\n }).getOr(false);\r\n };\r\n };\r\n var moveV = function (editor, forward) {\r\n return function () {\r\n return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {\r\n return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {\r\n return navigateVertically(editor, forward, table, td);\r\n });\r\n }).getOr(false);\r\n };\r\n };\r\n\r\n var isContentEditableFalse$5 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isTableCell$1 = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && /^(TD|TH)$/i.test(node.tagName);\r\n };\r\n var getAbsoluteClientRect = function (root, element, before) {\r\n var clientRect = collapse(element.getBoundingClientRect(), before);\r\n var docElm, scrollX, scrollY, margin, rootRect;\r\n if (root.tagName === 'BODY') {\r\n docElm = root.ownerDocument.documentElement;\r\n scrollX = root.scrollLeft || docElm.scrollLeft;\r\n scrollY = root.scrollTop || docElm.scrollTop;\r\n } else {\r\n rootRect = root.getBoundingClientRect();\r\n scrollX = root.scrollLeft - rootRect.left;\r\n scrollY = root.scrollTop - rootRect.top;\r\n }\r\n clientRect.left += scrollX;\r\n clientRect.right += scrollX;\r\n clientRect.top += scrollY;\r\n clientRect.bottom += scrollY;\r\n clientRect.width = 1;\r\n margin = element.offsetWidth - element.clientWidth;\r\n if (margin > 0) {\r\n if (before) {\r\n margin *= -1;\r\n }\r\n clientRect.left += margin;\r\n clientRect.right += margin;\r\n }\r\n return clientRect;\r\n };\r\n var trimInlineCaretContainers = function (root) {\r\n var contentEditableFalseNodes, node, sibling, i, data;\r\n contentEditableFalseNodes = DomQuery('*[contentEditable=false]', root);\r\n for (i = 0; i < contentEditableFalseNodes.length; i++) {\r\n node = contentEditableFalseNodes[i];\r\n sibling = node.previousSibling;\r\n if (endsWithCaretContainer(sibling)) {\r\n data = sibling.data;\r\n if (data.length === 1) {\r\n sibling.parentNode.removeChild(sibling);\r\n } else {\r\n sibling.deleteData(data.length - 1, 1);\r\n }\r\n }\r\n sibling = node.nextSibling;\r\n if (startsWithCaretContainer(sibling)) {\r\n data = sibling.data;\r\n if (data.length === 1) {\r\n sibling.parentNode.removeChild(sibling);\r\n } else {\r\n sibling.deleteData(0, 1);\r\n }\r\n }\r\n }\r\n };\r\n var FakeCaret = function (root, isBlock, hasFocus) {\r\n var lastVisualCaret = Cell(Option.none());\r\n var cursorInterval, caretContainerNode;\r\n var show = function (before, element) {\r\n var clientRect, rng;\r\n hide();\r\n if (isTableCell$1(element)) {\r\n return null;\r\n }\r\n if (isBlock(element)) {\r\n caretContainerNode = insertBlock('p', element, before);\r\n clientRect = getAbsoluteClientRect(root, element, before);\r\n DomQuery(caretContainerNode).css('top', clientRect.top);\r\n var caret = DomQuery('
').css(clientRect).appendTo(root)[0];\r\n lastVisualCaret.set(Option.some({\r\n caret: caret,\r\n element: element,\r\n before: before\r\n }));\r\n lastVisualCaret.get().each(function (caretState) {\r\n if (before) {\r\n DomQuery(caretState.caret).addClass('mce-visual-caret-before');\r\n }\r\n });\r\n startBlink();\r\n rng = element.ownerDocument.createRange();\r\n rng.setStart(caretContainerNode, 0);\r\n rng.setEnd(caretContainerNode, 0);\r\n } else {\r\n caretContainerNode = insertInline(element, before);\r\n rng = element.ownerDocument.createRange();\r\n if (isContentEditableFalse$5(caretContainerNode.nextSibling)) {\r\n rng.setStart(caretContainerNode, 0);\r\n rng.setEnd(caretContainerNode, 0);\r\n } else {\r\n rng.setStart(caretContainerNode, 1);\r\n rng.setEnd(caretContainerNode, 1);\r\n }\r\n return rng;\r\n }\r\n return rng;\r\n };\r\n var hide = function () {\r\n trimInlineCaretContainers(root);\r\n if (caretContainerNode) {\r\n $_xl2r331jkmcwkri.remove(caretContainerNode);\r\n caretContainerNode = null;\r\n }\r\n lastVisualCaret.get().each(function (caretState) {\r\n DomQuery(caretState.caret).remove();\r\n lastVisualCaret.set(Option.none());\r\n });\r\n clearInterval(cursorInterval);\r\n };\r\n var startBlink = function () {\r\n cursorInterval = $_3l01gcijkmcwk99.setInterval(function () {\r\n if (hasFocus()) {\r\n DomQuery('div.mce-visual-caret', root).toggleClass('mce-visual-caret-hidden');\r\n } else {\r\n DomQuery('div.mce-visual-caret', root).addClass('mce-visual-caret-hidden');\r\n }\r\n }, 500);\r\n };\r\n var reposition = function () {\r\n lastVisualCaret.get().each(function (caretState) {\r\n var clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\r\n DomQuery(caretState.caret).css(clientRect);\r\n });\r\n };\r\n var destroy = function () {\r\n return $_3l01gcijkmcwk99.clearInterval(cursorInterval);\r\n };\r\n var getCss = function () {\r\n return '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\r\n };\r\n return {\r\n show: show,\r\n hide: hide,\r\n getCss: getCss,\r\n reposition: reposition,\r\n destroy: destroy\r\n };\r\n };\r\n var isFakeCaretTarget = function (node) {\r\n return isContentEditableFalse$5(node) || $_bjermr1rjkmcwkij.isTable(node) && isFakeCaretTableBrowser();\r\n };\r\n\r\n var isContentEditableFalse$6 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isBlockLike = $_bjermr1rjkmcwkij.matchStyleValues('display', 'block table table-cell table-caption list-item');\r\n var isCaretContainer$2 = isCaretContainer;\r\n var isCaretContainerBlock$1 = isCaretContainerBlock;\r\n var curry$2 = $_fl2rax2ljkmcwkot.curry;\r\n var isElement$6 = $_bjermr1rjkmcwkij.isElement;\r\n var isCaretCandidate$3 = isCaretCandidate;\r\n var isForwards = function (direction) {\r\n return direction > 0;\r\n };\r\n var isBackwards = function (direction) {\r\n return direction < 0;\r\n };\r\n var skipCaretContainers = function (walk, shallow) {\r\n var node;\r\n while (node = walk(shallow)) {\r\n if (!isCaretContainerBlock$1(node)) {\r\n return node;\r\n }\r\n }\r\n return null;\r\n };\r\n var findNode = function (node, direction, predicateFn, rootNode, shallow) {\r\n var walker = new TreeWalker(node, rootNode);\r\n if (isBackwards(direction)) {\r\n if (isContentEditableFalse$6(node) || isCaretContainerBlock$1(node)) {\r\n node = skipCaretContainers(walker.prev, true);\r\n if (predicateFn(node)) {\r\n return node;\r\n }\r\n }\r\n while (node = skipCaretContainers(walker.prev, shallow)) {\r\n if (predicateFn(node)) {\r\n return node;\r\n }\r\n }\r\n }\r\n if (isForwards(direction)) {\r\n if (isContentEditableFalse$6(node) || isCaretContainerBlock$1(node)) {\r\n node = skipCaretContainers(walker.next, true);\r\n if (predicateFn(node)) {\r\n return node;\r\n }\r\n }\r\n while (node = skipCaretContainers(walker.next, shallow)) {\r\n if (predicateFn(node)) {\r\n return node;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n var getParentBlock = function (node, rootNode) {\r\n while (node && node !== rootNode) {\r\n if (isBlockLike(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var isInSameBlock = function (caretPosition1, caretPosition2, rootNode) {\r\n return getParentBlock(caretPosition1.container(), rootNode) === getParentBlock(caretPosition2.container(), rootNode);\r\n };\r\n var getChildNodeAtRelativeOffset = function (relativeOffset, caretPosition) {\r\n var container, offset;\r\n if (!caretPosition) {\r\n return null;\r\n }\r\n container = caretPosition.container();\r\n offset = caretPosition.offset();\r\n if (!isElement$6(container)) {\r\n return null;\r\n }\r\n return container.childNodes[offset + relativeOffset];\r\n };\r\n var beforeAfter = function (before, node) {\r\n var range = node.ownerDocument.createRange();\r\n if (before) {\r\n range.setStartBefore(node);\r\n range.setEndBefore(node);\r\n } else {\r\n range.setStartAfter(node);\r\n range.setEndAfter(node);\r\n }\r\n return range;\r\n };\r\n var isNodesInSameBlock = function (root, node1, node2) {\r\n return getParentBlock(node1, root) === getParentBlock(node2, root);\r\n };\r\n var lean = function (left, root, node) {\r\n var sibling, siblingName;\r\n if (left) {\r\n siblingName = 'previousSibling';\r\n } else {\r\n siblingName = 'nextSibling';\r\n }\r\n while (node && node !== root) {\r\n sibling = node[siblingName];\r\n if (isCaretContainer$2(sibling)) {\r\n sibling = sibling[siblingName];\r\n }\r\n if (isContentEditableFalse$6(sibling)) {\r\n if (isNodesInSameBlock(root, sibling, node)) {\r\n return sibling;\r\n }\r\n break;\r\n }\r\n if (isCaretCandidate$3(sibling)) {\r\n break;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var before$2 = curry$2(beforeAfter, true);\r\n var after$2 = curry$2(beforeAfter, false);\r\n var normalizeRange = function (direction, root, range) {\r\n var node, container, offset, location;\r\n var leanLeft = curry$2(lean, true, root);\r\n var leanRight = curry$2(lean, false, root);\r\n container = range.startContainer;\r\n offset = range.startOffset;\r\n if (isCaretContainerBlock(container)) {\r\n if (!isElement$6(container)) {\r\n container = container.parentNode;\r\n }\r\n location = container.getAttribute('data-mce-caret');\r\n if (location === 'before') {\r\n node = container.nextSibling;\r\n if (isFakeCaretTarget(node)) {\r\n return before$2(node);\r\n }\r\n }\r\n if (location === 'after') {\r\n node = container.previousSibling;\r\n if (isFakeCaretTarget(node)) {\r\n return after$2(node);\r\n }\r\n }\r\n }\r\n if (!range.collapsed) {\r\n return range;\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(container)) {\r\n if (isCaretContainer$2(container)) {\r\n if (direction === 1) {\r\n node = leanRight(container);\r\n if (node) {\r\n return before$2(node);\r\n }\r\n node = leanLeft(container);\r\n if (node) {\r\n return after$2(node);\r\n }\r\n }\r\n if (direction === -1) {\r\n node = leanLeft(container);\r\n if (node) {\r\n return after$2(node);\r\n }\r\n node = leanRight(container);\r\n if (node) {\r\n return before$2(node);\r\n }\r\n }\r\n return range;\r\n }\r\n if (endsWithCaretContainer(container) && offset >= container.data.length - 1) {\r\n if (direction === 1) {\r\n node = leanRight(container);\r\n if (node) {\r\n return before$2(node);\r\n }\r\n }\r\n return range;\r\n }\r\n if (startsWithCaretContainer(container) && offset <= 1) {\r\n if (direction === -1) {\r\n node = leanLeft(container);\r\n if (node) {\r\n return after$2(node);\r\n }\r\n }\r\n return range;\r\n }\r\n if (offset === container.data.length) {\r\n node = leanRight(container);\r\n if (node) {\r\n return before$2(node);\r\n }\r\n return range;\r\n }\r\n if (offset === 0) {\r\n node = leanLeft(container);\r\n if (node) {\r\n return after$2(node);\r\n }\r\n return range;\r\n }\r\n }\r\n return range;\r\n };\r\n var isNextToContentEditableFalse = function (relativeOffset, caretPosition) {\r\n var node = getChildNodeAtRelativeOffset(relativeOffset, caretPosition);\r\n return isContentEditableFalse$6(node) && !$_bjermr1rjkmcwkij.isBogusAll(node);\r\n };\r\n var isNextToTable = function (relativeOffset, caretPosition) {\r\n return $_bjermr1rjkmcwkij.isTable(getChildNodeAtRelativeOffset(relativeOffset, caretPosition));\r\n };\r\n var getRelativeCefElm = function (forward, caretPosition) {\r\n return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition)).filter(isContentEditableFalse$6);\r\n };\r\n var getNormalizedRangeEndPoint = function (direction, root, range) {\r\n var normalizedRange = normalizeRange(direction, root, range);\r\n if (direction === -1) {\r\n return CaretPosition.fromRangeStart(normalizedRange);\r\n }\r\n return CaretPosition.fromRangeEnd(normalizedRange);\r\n };\r\n var isBeforeContentEditableFalse = curry$2(isNextToContentEditableFalse, 0);\r\n var isAfterContentEditableFalse = curry$2(isNextToContentEditableFalse, -1);\r\n var isBeforeTable = curry$2(isNextToTable, 0);\r\n var isAfterTable = curry$2(isNextToTable, -1);\r\n\r\n var walkToPositionIn = function (forward, root, start) {\r\n var position = forward ? CaretPosition$1.before(start) : CaretPosition$1.after(start);\r\n return fromPosition(forward, root, position);\r\n };\r\n var afterElement = function (node) {\r\n return $_bjermr1rjkmcwkij.isBr(node) ? CaretPosition$1.before(node) : CaretPosition$1.after(node);\r\n };\r\n var isBeforeOrStart = function (position) {\r\n if (CaretPosition$1.isTextPosition(position)) {\r\n return position.offset() === 0;\r\n } else {\r\n return isCaretCandidate(position.getNode());\r\n }\r\n };\r\n var isAfterOrEnd = function (position) {\r\n if (CaretPosition$1.isTextPosition(position)) {\r\n var container = position.container();\r\n return position.offset() === container.data.length;\r\n } else {\r\n return isCaretCandidate(position.getNode(true));\r\n }\r\n };\r\n var isBeforeAfterSameElement = function (from, to) {\r\n return !CaretPosition$1.isTextPosition(from) && !CaretPosition$1.isTextPosition(to) && from.getNode() === to.getNode(true);\r\n };\r\n var isAtBr = function (position) {\r\n return !CaretPosition$1.isTextPosition(position) && $_bjermr1rjkmcwkij.isBr(position.getNode());\r\n };\r\n var shouldSkipPosition = function (forward, from, to) {\r\n if (forward) {\r\n return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\r\n } else {\r\n return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\r\n }\r\n };\r\n var fromPosition = function (forward, root, pos) {\r\n var walker = CaretWalker(root);\r\n return Option.from(forward ? walker.next(pos) : walker.prev(pos));\r\n };\r\n var navigate = function (forward, root, from) {\r\n return fromPosition(forward, root, from).bind(function (to) {\r\n if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\r\n return fromPosition(forward, root, to);\r\n } else {\r\n return Option.some(to);\r\n }\r\n });\r\n };\r\n var positionIn = function (forward, element) {\r\n var startNode = forward ? element.firstChild : element.lastChild;\r\n if ($_bjermr1rjkmcwkij.isText(startNode)) {\r\n return Option.some(CaretPosition$1(startNode, forward ? 0 : startNode.data.length));\r\n } else if (startNode) {\r\n if (isCaretCandidate(startNode)) {\r\n return Option.some(forward ? CaretPosition$1.before(startNode) : afterElement(startNode));\r\n } else {\r\n return walkToPositionIn(forward, element, startNode);\r\n }\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var $_1m3f3j2yjkmcwkqg = {\r\n fromPosition: fromPosition,\r\n nextPosition: curry(fromPosition, true),\r\n prevPosition: curry(fromPosition, false),\r\n navigate: navigate,\r\n positionIn: positionIn,\r\n firstPositionIn: curry(positionIn, true),\r\n lastPositionIn: curry(positionIn, false)\r\n };\r\n\r\n var isStringPathBookmark = function (bookmark) {\r\n return typeof bookmark.start === 'string';\r\n };\r\n var isRangeBookmark = function (bookmark) {\r\n return bookmark.hasOwnProperty('rng');\r\n };\r\n var isIdBookmark = function (bookmark) {\r\n return bookmark.hasOwnProperty('id');\r\n };\r\n var isIndexBookmark = function (bookmark) {\r\n return bookmark.hasOwnProperty('name');\r\n };\r\n var isPathBookmark = function (bookmark) {\r\n return $_4ujg4tljkmcwkbk.isArray(bookmark.start);\r\n };\r\n\r\n var addBogus = function (dom, node) {\r\n if (dom.isBlock(node) && !node.innerHTML && !$_cvvl9iajkmcwk25.ie) {\r\n node.innerHTML = '
';\r\n }\r\n return node;\r\n };\r\n var resolveCaretPositionBookmark = function (dom, bookmark) {\r\n var rng, pos;\r\n rng = dom.createRng();\r\n pos = resolve$2(dom.getRoot(), bookmark.start);\r\n rng.setStart(pos.container(), pos.offset());\r\n pos = resolve$2(dom.getRoot(), bookmark.end);\r\n rng.setEnd(pos.container(), pos.offset());\r\n return rng;\r\n };\r\n var insertZwsp = function (node, rng) {\r\n var textNode = node.ownerDocument.createTextNode($_cadvcr2pjkmcwkph.ZWSP);\r\n node.appendChild(textNode);\r\n rng.setStart(textNode, 0);\r\n rng.setEnd(textNode, 0);\r\n };\r\n var isEmpty = function (node) {\r\n return node.hasChildNodes() === false;\r\n };\r\n var tryFindRangePosition = function (node, rng) {\r\n return $_1m3f3j2yjkmcwkqg.lastPositionIn(node).fold(function () {\r\n return false;\r\n }, function (pos) {\r\n rng.setStart(pos.container(), pos.offset());\r\n rng.setEnd(pos.container(), pos.offset());\r\n return true;\r\n });\r\n };\r\n var padEmptyCaretContainer = function (root, node, rng) {\r\n if (isEmpty(node) && getParentCaretContainer(root, node)) {\r\n insertZwsp(node, rng);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var setEndPoint = function (dom, start, bookmark, rng) {\r\n var point = bookmark[start ? 'start' : 'end'];\r\n var i, node, offset, children;\r\n var root = dom.getRoot();\r\n if (point) {\r\n offset = point[0];\r\n for (node = root, i = point.length - 1; i >= 1; i--) {\r\n children = node.childNodes;\r\n if (padEmptyCaretContainer(root, node, rng)) {\r\n return true;\r\n }\r\n if (point[i] > children.length - 1) {\r\n if (padEmptyCaretContainer(root, node, rng)) {\r\n return true;\r\n }\r\n return tryFindRangePosition(node, rng);\r\n }\r\n node = children[point[i]];\r\n }\r\n if (node.nodeType === 3) {\r\n offset = Math.min(point[0], node.nodeValue.length);\r\n }\r\n if (node.nodeType === 1) {\r\n offset = Math.min(point[0], node.childNodes.length);\r\n }\r\n if (start) {\r\n rng.setStart(node, offset);\r\n } else {\r\n rng.setEnd(node, offset);\r\n }\r\n }\r\n return true;\r\n };\r\n var isValidTextNode = function (node) {\r\n return $_bjermr1rjkmcwkij.isText(node) && node.data.length > 0;\r\n };\r\n var restoreEndPoint = function (dom, suffix, bookmark) {\r\n var marker = dom.get(bookmark.id + '_' + suffix), node, idx, next, prev;\r\n var keep = bookmark.keep;\r\n var container, offset;\r\n if (marker) {\r\n node = marker.parentNode;\r\n if (suffix === 'start') {\r\n if (!keep) {\r\n idx = dom.nodeIndex(marker);\r\n } else {\r\n if (marker.hasChildNodes()) {\r\n node = marker.firstChild;\r\n idx = 1;\r\n } else if (isValidTextNode(marker.nextSibling)) {\r\n node = marker.nextSibling;\r\n idx = 0;\r\n } else if (isValidTextNode(marker.previousSibling)) {\r\n node = marker.previousSibling;\r\n idx = marker.previousSibling.data.length;\r\n } else {\r\n node = marker.parentNode;\r\n idx = dom.nodeIndex(marker) + 1;\r\n }\r\n }\r\n container = node;\r\n offset = idx;\r\n } else {\r\n if (!keep) {\r\n idx = dom.nodeIndex(marker);\r\n } else {\r\n if (marker.hasChildNodes()) {\r\n node = marker.firstChild;\r\n idx = 1;\r\n } else if (isValidTextNode(marker.previousSibling)) {\r\n node = marker.previousSibling;\r\n idx = marker.previousSibling.data.length;\r\n } else {\r\n node = marker.parentNode;\r\n idx = dom.nodeIndex(marker);\r\n }\r\n }\r\n container = node;\r\n offset = idx;\r\n }\r\n if (!keep) {\r\n prev = marker.previousSibling;\r\n next = marker.nextSibling;\r\n $_4ujg4tljkmcwkbk.each($_4ujg4tljkmcwkbk.grep(marker.childNodes), function (node) {\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n node.nodeValue = node.nodeValue.replace(/\\uFEFF/g, '');\r\n }\r\n });\r\n while (marker = dom.get(bookmark.id + '_' + suffix)) {\r\n dom.remove(marker, true);\r\n }\r\n if (prev && next && prev.nodeType === next.nodeType && $_bjermr1rjkmcwkij.isText(prev) && !$_cvvl9iajkmcwk25.opera) {\r\n idx = prev.nodeValue.length;\r\n prev.appendData(next.nodeValue);\r\n dom.remove(next);\r\n if (suffix === 'start') {\r\n container = prev;\r\n offset = idx;\r\n } else {\r\n container = prev;\r\n offset = idx;\r\n }\r\n }\r\n }\r\n return Option.some(CaretPosition$1(container, offset));\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var alt = function (o1, o2) {\r\n return o1.isSome() ? o1 : o2;\r\n };\r\n var resolvePaths = function (dom, bookmark) {\r\n var rng = dom.createRng();\r\n if (setEndPoint(dom, true, bookmark, rng) && setEndPoint(dom, false, bookmark, rng)) {\r\n return Option.some(rng);\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var resolveId = function (dom, bookmark) {\r\n var startPos = restoreEndPoint(dom, 'start', bookmark);\r\n var endPos = restoreEndPoint(dom, 'end', bookmark);\r\n return liftN([\r\n startPos,\r\n alt(endPos, startPos)\r\n ], function (spos, epos) {\r\n var rng = dom.createRng();\r\n rng.setStart(addBogus(dom, spos.container()), spos.offset());\r\n rng.setEnd(addBogus(dom, epos.container()), epos.offset());\r\n return rng;\r\n });\r\n };\r\n var resolveIndex$1 = function (dom, bookmark) {\r\n return Option.from(dom.select(bookmark.name)[bookmark.index]).map(function (elm) {\r\n var rng = dom.createRng();\r\n rng.selectNode(elm);\r\n return rng;\r\n });\r\n };\r\n var resolve$3 = function (selection, bookmark) {\r\n var dom = selection.dom;\r\n if (bookmark) {\r\n if (isPathBookmark(bookmark)) {\r\n return resolvePaths(dom, bookmark);\r\n } else if (isStringPathBookmark(bookmark)) {\r\n return Option.some(resolveCaretPositionBookmark(dom, bookmark));\r\n } else if (isIdBookmark(bookmark)) {\r\n return resolveId(dom, bookmark);\r\n } else if (isIndexBookmark(bookmark)) {\r\n return resolveIndex$1(dom, bookmark);\r\n } else if (isRangeBookmark(bookmark)) {\r\n return Option.some(bookmark.rng);\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var $_1fx23n2wjkmcwkq6 = { resolve: resolve$3 };\r\n\r\n var getBookmark$1 = function (selection, type, normalized) {\r\n return $_aw3zi52jjkmcwkoa.getBookmark(selection, type, normalized);\r\n };\r\n var moveToBookmark = function (selection, bookmark) {\r\n $_1fx23n2wjkmcwkq6.resolve(selection, bookmark).each(function (rng) {\r\n selection.setRng(rng);\r\n });\r\n };\r\n var isBookmarkNode$1 = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\r\n };\r\n var $_e4btcc2vjkmcwkq3 = {\r\n getBookmark: getBookmark$1,\r\n moveToBookmark: moveToBookmark,\r\n isBookmarkNode: isBookmarkNode$1\r\n };\r\n\r\n var isInlineBlock = function (node) {\r\n return node && /^(IMG)$/.test(node.nodeName);\r\n };\r\n var moveStart = function (dom, selection, rng) {\r\n var offset = rng.startOffset;\r\n var container = rng.startContainer, walker, node, nodes;\r\n if (rng.startContainer === rng.endContainer) {\r\n if (isInlineBlock(rng.startContainer.childNodes[rng.startOffset])) {\r\n return;\r\n }\r\n }\r\n if (container.nodeType === 1) {\r\n nodes = container.childNodes;\r\n if (offset < nodes.length) {\r\n container = nodes[offset];\r\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\r\n } else {\r\n container = nodes[nodes.length - 1];\r\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock));\r\n walker.next(true);\r\n }\r\n for (node = walker.current(); node; node = walker.next()) {\r\n if (node.nodeType === 3 && !isWhiteSpaceNode(node)) {\r\n rng.setStart(node, 0);\r\n selection.setRng(rng);\r\n return;\r\n }\r\n }\r\n }\r\n };\r\n var getNonWhiteSpaceSibling = function (node, next, inc) {\r\n if (node) {\r\n next = next ? 'nextSibling' : 'previousSibling';\r\n for (node = inc ? node : node[next]; node; node = node[next]) {\r\n if (node.nodeType === 1 || !isWhiteSpaceNode(node)) {\r\n return node;\r\n }\r\n }\r\n }\r\n };\r\n var isTextBlock$1 = function (editor, name) {\r\n if (name.nodeType) {\r\n name = name.nodeName;\r\n }\r\n return !!editor.schema.getTextBlockElements()[name.toLowerCase()];\r\n };\r\n var isValid = function (ed, parent, child) {\r\n return ed.schema.isValidChild(parent, child);\r\n };\r\n var isWhiteSpaceNode = function (node) {\r\n return node && node.nodeType === 3 && /^([\\t \\r\\n]+|)$/.test(node.nodeValue);\r\n };\r\n var replaceVars = function (value, vars) {\r\n if (typeof value !== 'string') {\r\n value = value(vars);\r\n } else if (vars) {\r\n value = value.replace(/%(\\w+)/g, function (str, name) {\r\n return vars[name] || str;\r\n });\r\n }\r\n return value;\r\n };\r\n var isEq = function (str1, str2) {\r\n str1 = str1 || '';\r\n str2 = str2 || '';\r\n str1 = '' + (str1.nodeName || str1);\r\n str2 = '' + (str2.nodeName || str2);\r\n return str1.toLowerCase() === str2.toLowerCase();\r\n };\r\n var normalizeStyleValue = function (dom, value, name) {\r\n if (name === 'color' || name === 'backgroundColor') {\r\n value = dom.toHex(value);\r\n }\r\n if (name === 'fontWeight' && value === 700) {\r\n value = 'bold';\r\n }\r\n if (name === 'fontFamily') {\r\n value = value.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\r\n }\r\n return '' + value;\r\n };\r\n var getStyle = function (dom, node, name) {\r\n return normalizeStyleValue(dom, dom.getStyle(node, name), name);\r\n };\r\n var getTextDecoration = function (dom, node) {\r\n var decoration;\r\n dom.getParent(node, function (n) {\r\n decoration = dom.getStyle(n, 'text-decoration');\r\n return decoration && decoration !== 'none';\r\n });\r\n return decoration;\r\n };\r\n var getParents$1 = function (dom, node, selector) {\r\n return dom.getParents(node, selector, dom.getRoot());\r\n };\r\n var $_dli08w3ajkmcwktg = {\r\n isInlineBlock: isInlineBlock,\r\n moveStart: moveStart,\r\n getNonWhiteSpaceSibling: getNonWhiteSpaceSibling,\r\n isTextBlock: isTextBlock$1,\r\n isValid: isValid,\r\n isWhiteSpaceNode: isWhiteSpaceNode,\r\n replaceVars: replaceVars,\r\n isEq: isEq,\r\n normalizeStyleValue: normalizeStyleValue,\r\n getStyle: getStyle,\r\n getTextDecoration: getTextDecoration,\r\n getParents: getParents$1\r\n };\r\n\r\n var isBookmarkNode$2 = $_e4btcc2vjkmcwkq3.isBookmarkNode;\r\n var getParents$2 = $_dli08w3ajkmcwktg.getParents;\r\n var isWhiteSpaceNode$1 = $_dli08w3ajkmcwktg.isWhiteSpaceNode;\r\n var isTextBlock$2 = $_dli08w3ajkmcwktg.isTextBlock;\r\n var findLeaf = function (node, offset) {\r\n if (typeof offset === 'undefined') {\r\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\r\n }\r\n while (node && node.hasChildNodes()) {\r\n node = node.childNodes[offset];\r\n if (node) {\r\n offset = node.nodeType === 3 ? node.length : node.childNodes.length;\r\n }\r\n }\r\n return {\r\n node: node,\r\n offset: offset\r\n };\r\n };\r\n var excludeTrailingWhitespace = function (endContainer, endOffset) {\r\n var leaf = findLeaf(endContainer, endOffset);\r\n if (leaf.node) {\r\n while (leaf.node && leaf.offset === 0 && leaf.node.previousSibling) {\r\n leaf = findLeaf(leaf.node.previousSibling);\r\n }\r\n if (leaf.node && leaf.offset > 0 && leaf.node.nodeType === 3 && leaf.node.nodeValue.charAt(leaf.offset - 1) === ' ') {\r\n if (leaf.offset > 1) {\r\n endContainer = leaf.node;\r\n endContainer.splitText(leaf.offset - 1);\r\n }\r\n }\r\n }\r\n return endContainer;\r\n };\r\n var isBogusBr = function (node) {\r\n return node.nodeName === 'BR' && node.getAttribute('data-mce-bogus') && !node.nextSibling;\r\n };\r\n var findParentContentEditable = function (dom, node) {\r\n var parent = node;\r\n while (parent) {\r\n if (parent.nodeType === 1 && dom.getContentEditable(parent)) {\r\n return dom.getContentEditable(parent) === 'false' ? parent : node;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return node;\r\n };\r\n var findSpace = function (start, remove, node, offset) {\r\n var pos, pos2;\r\n var str = node.nodeValue;\r\n if (typeof offset === 'undefined') {\r\n offset = start ? str.length : 0;\r\n }\r\n if (start) {\r\n pos = str.lastIndexOf(' ', offset);\r\n pos2 = str.lastIndexOf('\\xA0', offset);\r\n pos = pos > pos2 ? pos : pos2;\r\n if (pos !== -1 && !remove) {\r\n pos++;\r\n }\r\n } else {\r\n pos = str.indexOf(' ', offset);\r\n pos2 = str.indexOf('\\xA0', offset);\r\n pos = pos !== -1 && (pos2 === -1 || pos < pos2) ? pos : pos2;\r\n }\r\n return pos;\r\n };\r\n var findWordEndPoint = function (dom, body, container, offset, start, remove) {\r\n var walker, node, pos, lastTextNode;\r\n if (container.nodeType === 3) {\r\n pos = findSpace(start, remove, container, offset);\r\n if (pos !== -1) {\r\n return {\r\n container: container,\r\n offset: pos\r\n };\r\n }\r\n lastTextNode = container;\r\n }\r\n walker = new TreeWalker(container, dom.getParent(container, dom.isBlock) || body);\r\n while (node = walker[start ? 'prev' : 'next']()) {\r\n if (node.nodeType === 3) {\r\n lastTextNode = node;\r\n pos = findSpace(start, remove, node);\r\n if (pos !== -1) {\r\n return {\r\n container: node,\r\n offset: pos\r\n };\r\n }\r\n } else if (dom.isBlock(node)) {\r\n break;\r\n }\r\n }\r\n if (lastTextNode) {\r\n if (start) {\r\n offset = 0;\r\n } else {\r\n offset = lastTextNode.length;\r\n }\r\n return {\r\n container: lastTextNode,\r\n offset: offset\r\n };\r\n }\r\n };\r\n var findSelectorEndPoint = function (dom, format, rng, container, siblingName) {\r\n var parents, i, y, curFormat;\r\n if (container.nodeType === 3 && container.nodeValue.length === 0 && container[siblingName]) {\r\n container = container[siblingName];\r\n }\r\n parents = getParents$2(dom, container);\r\n for (i = 0; i < parents.length; i++) {\r\n for (y = 0; y < format.length; y++) {\r\n curFormat = format[y];\r\n if ('collapsed' in curFormat && curFormat.collapsed !== rng.collapsed) {\r\n continue;\r\n }\r\n if (dom.is(parents[i], curFormat.selector)) {\r\n return parents[i];\r\n }\r\n }\r\n }\r\n return container;\r\n };\r\n var findBlockEndPoint = function (editor, format, container, siblingName) {\r\n var node;\r\n var dom = editor.dom;\r\n var root = dom.getRoot();\r\n if (!format[0].wrapper) {\r\n node = dom.getParent(container, format[0].block, root);\r\n }\r\n if (!node) {\r\n var scopeRoot = dom.getParent(container, 'LI,TD,TH');\r\n node = dom.getParent(container.nodeType === 3 ? container.parentNode : container, function (node) {\r\n return node !== root && isTextBlock$2(editor, node);\r\n }, scopeRoot);\r\n }\r\n if (node && format[0].wrapper) {\r\n node = getParents$2(dom, node, 'ul,ol').reverse()[0] || node;\r\n }\r\n if (!node) {\r\n node = container;\r\n while (node[siblingName] && !dom.isBlock(node[siblingName])) {\r\n node = node[siblingName];\r\n if ($_dli08w3ajkmcwktg.isEq(node, 'br')) {\r\n break;\r\n }\r\n }\r\n }\r\n return node || container;\r\n };\r\n var findParentContainer = function (dom, format, startContainer, startOffset, endContainer, endOffset, start) {\r\n var container, parent, sibling, siblingName, root;\r\n container = parent = start ? startContainer : endContainer;\r\n siblingName = start ? 'previousSibling' : 'nextSibling';\r\n root = dom.getRoot();\r\n if (container.nodeType === 3 && !isWhiteSpaceNode$1(container)) {\r\n if (start ? startOffset > 0 : endOffset < container.nodeValue.length) {\r\n return container;\r\n }\r\n }\r\n while (true) {\r\n if (!format[0].block_expand && dom.isBlock(parent)) {\r\n return parent;\r\n }\r\n for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\r\n if (!isBookmarkNode$2(sibling) && !isWhiteSpaceNode$1(sibling) && !isBogusBr(sibling)) {\r\n return parent;\r\n }\r\n }\r\n if (parent === root || parent.parentNode === root) {\r\n container = parent;\r\n break;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return container;\r\n };\r\n var expandRng = function (editor, rng, format, remove) {\r\n var endPoint, startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\r\n var dom = editor.dom;\r\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\r\n startContainer = getNode(startContainer, startOffset);\r\n if (startContainer.nodeType === 3) {\r\n startOffset = 0;\r\n }\r\n }\r\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\r\n endContainer = getNode(endContainer, rng.collapsed ? endOffset : endOffset - 1);\r\n if (endContainer.nodeType === 3) {\r\n endOffset = endContainer.nodeValue.length;\r\n }\r\n }\r\n startContainer = findParentContentEditable(dom, startContainer);\r\n endContainer = findParentContentEditable(dom, endContainer);\r\n if (isBookmarkNode$2(startContainer.parentNode) || isBookmarkNode$2(startContainer)) {\r\n startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;\r\n startContainer = startContainer.nextSibling || startContainer;\r\n if (startContainer.nodeType === 3) {\r\n startOffset = 0;\r\n }\r\n }\r\n if (isBookmarkNode$2(endContainer.parentNode) || isBookmarkNode$2(endContainer)) {\r\n endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;\r\n endContainer = endContainer.previousSibling || endContainer;\r\n if (endContainer.nodeType === 3) {\r\n endOffset = endContainer.length;\r\n }\r\n }\r\n if (format[0].inline) {\r\n if (rng.collapsed) {\r\n endPoint = findWordEndPoint(dom, editor.getBody(), startContainer, startOffset, true, remove);\r\n if (endPoint) {\r\n startContainer = endPoint.container;\r\n startOffset = endPoint.offset;\r\n }\r\n endPoint = findWordEndPoint(dom, editor.getBody(), endContainer, endOffset, false, remove);\r\n if (endPoint) {\r\n endContainer = endPoint.container;\r\n endOffset = endPoint.offset;\r\n }\r\n }\r\n endContainer = remove ? endContainer : excludeTrailingWhitespace(endContainer, endOffset);\r\n }\r\n if (format[0].inline || format[0].block_expand) {\r\n if (!format[0].inline || (startContainer.nodeType !== 3 || startOffset === 0)) {\r\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\r\n }\r\n if (!format[0].inline || (endContainer.nodeType !== 3 || endOffset === endContainer.nodeValue.length)) {\r\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\r\n }\r\n }\r\n if (format[0].selector && format[0].expand !== false && !format[0].inline) {\r\n startContainer = findSelectorEndPoint(dom, format, rng, startContainer, 'previousSibling');\r\n endContainer = findSelectorEndPoint(dom, format, rng, endContainer, 'nextSibling');\r\n }\r\n if (format[0].block || format[0].selector) {\r\n startContainer = findBlockEndPoint(editor, format, startContainer, 'previousSibling');\r\n endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');\r\n if (format[0].block) {\r\n if (!dom.isBlock(startContainer)) {\r\n startContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, true);\r\n }\r\n if (!dom.isBlock(endContainer)) {\r\n endContainer = findParentContainer(dom, format, startContainer, startOffset, endContainer, endOffset, false);\r\n }\r\n }\r\n }\r\n if (startContainer.nodeType === 1) {\r\n startOffset = dom.nodeIndex(startContainer);\r\n startContainer = startContainer.parentNode;\r\n }\r\n if (endContainer.nodeType === 1) {\r\n endOffset = dom.nodeIndex(endContainer) + 1;\r\n endContainer = endContainer.parentNode;\r\n }\r\n return {\r\n startContainer: startContainer,\r\n startOffset: startOffset,\r\n endContainer: endContainer,\r\n endOffset: endOffset\r\n };\r\n };\r\n var $_97afwh2ujkmcwkpw = { expandRng: expandRng };\r\n\r\n var each$8 = $_4ujg4tljkmcwkbk.each;\r\n var getEndChild = function (container, index) {\r\n var childNodes = container.childNodes;\r\n index--;\r\n if (index > childNodes.length - 1) {\r\n index = childNodes.length - 1;\r\n } else if (index < 0) {\r\n index = 0;\r\n }\r\n return childNodes[index] || container;\r\n };\r\n var walk$2 = function (dom, rng, callback) {\r\n var startContainer = rng.startContainer;\r\n var startOffset = rng.startOffset;\r\n var endContainer = rng.endContainer;\r\n var endOffset = rng.endOffset;\r\n var ancestor;\r\n var startPoint;\r\n var endPoint;\r\n var node;\r\n var parent;\r\n var siblings;\r\n var nodes;\r\n nodes = dom.select('td[data-mce-selected],th[data-mce-selected]');\r\n if (nodes.length > 0) {\r\n each$8(nodes, function (node) {\r\n callback([node]);\r\n });\r\n return;\r\n }\r\n var exclude = function (nodes) {\r\n var node;\r\n node = nodes[0];\r\n if (node.nodeType === 3 && node === startContainer && startOffset >= node.nodeValue.length) {\r\n nodes.splice(0, 1);\r\n }\r\n node = nodes[nodes.length - 1];\r\n if (endOffset === 0 && nodes.length > 0 && node === endContainer && node.nodeType === 3) {\r\n nodes.splice(nodes.length - 1, 1);\r\n }\r\n return nodes;\r\n };\r\n var collectSiblings = function (node, name, endNode) {\r\n var siblings = [];\r\n for (; node && node !== endNode; node = node[name]) {\r\n siblings.push(node);\r\n }\r\n return siblings;\r\n };\r\n var findEndPoint = function (node, root) {\r\n do {\r\n if (node.parentNode === root) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n } while (node);\r\n };\r\n var walkBoundary = function (startNode, endNode, next) {\r\n var siblingName = next ? 'nextSibling' : 'previousSibling';\r\n for (node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\r\n parent = node.parentNode;\r\n siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\r\n if (siblings.length) {\r\n if (!next) {\r\n siblings.reverse();\r\n }\r\n callback(exclude(siblings));\r\n }\r\n }\r\n };\r\n if (startContainer.nodeType === 1 && startContainer.hasChildNodes()) {\r\n startContainer = startContainer.childNodes[startOffset];\r\n }\r\n if (endContainer.nodeType === 1 && endContainer.hasChildNodes()) {\r\n endContainer = getEndChild(endContainer, endOffset);\r\n }\r\n if (startContainer === endContainer) {\r\n return callback(exclude([startContainer]));\r\n }\r\n ancestor = dom.findCommonAncestor(startContainer, endContainer);\r\n for (node = startContainer; node; node = node.parentNode) {\r\n if (node === endContainer) {\r\n return walkBoundary(startContainer, ancestor, true);\r\n }\r\n if (node === ancestor) {\r\n break;\r\n }\r\n }\r\n for (node = endContainer; node; node = node.parentNode) {\r\n if (node === startContainer) {\r\n return walkBoundary(endContainer, ancestor);\r\n }\r\n if (node === ancestor) {\r\n break;\r\n }\r\n }\r\n startPoint = findEndPoint(startContainer, ancestor) || startContainer;\r\n endPoint = findEndPoint(endContainer, ancestor) || endContainer;\r\n walkBoundary(startContainer, startPoint, true);\r\n siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\r\n if (siblings.length) {\r\n callback(exclude(siblings));\r\n }\r\n walkBoundary(endContainer, endPoint);\r\n };\r\n var $_cuckrv3bjkmcwktk = { walk: walk$2 };\r\n\r\n var zeroWidth = function () {\r\n return '\\uFEFF';\r\n };\r\n\r\n function NodeValue (is, name) {\r\n var get = function (element) {\r\n if (!is(element))\r\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\r\n return getOption(element).getOr('');\r\n };\r\n var getOptionIE10 = function (element) {\r\n try {\r\n return getOptionSafe(element);\r\n } catch (e) {\r\n return Option.none();\r\n }\r\n };\r\n var getOptionSafe = function (element) {\r\n return is(element) ? Option.from(element.dom().nodeValue) : Option.none();\r\n };\r\n var browser = $_b1ykk4ojkmcwkcj.detect().browser;\r\n var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;\r\n var set = function (element, value) {\r\n if (!is(element))\r\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\r\n element.dom().nodeValue = value;\r\n };\r\n return {\r\n get: get,\r\n getOption: getOption,\r\n set: set\r\n };\r\n }\r\n\r\n var api = NodeValue($_2xwdjv11jkmcwke0.isText, 'text');\r\n var get$4 = function (element) {\r\n return api.get(element);\r\n };\r\n var getOption = function (element) {\r\n return api.getOption(element);\r\n };\r\n var set$2 = function (element, value) {\r\n api.set(element, value);\r\n };\r\n var $_ckzc193ejkmcwktu = {\r\n get: get$4,\r\n getOption: getOption,\r\n set: set$2\r\n };\r\n\r\n var isZeroWidth = function (elem) {\r\n return $_2xwdjv11jkmcwke0.isText(elem) && $_ckzc193ejkmcwktu.get(elem) === zeroWidth();\r\n };\r\n var context = function (editor, elem, wrapName, nodeName) {\r\n return $_ca6pc118jkmcwkfs.parent(elem).fold(function () {\r\n return 'skipping';\r\n }, function (parent) {\r\n if (nodeName === 'br' || isZeroWidth(elem)) {\r\n return 'skipping';\r\n } else if (isAnnotation(elem)) {\r\n return 'existing';\r\n } else if (isCaretNode(elem)) {\r\n return 'caret';\r\n } else if (!$_dli08w3ajkmcwktg.isValid(editor, wrapName, nodeName) || !$_dli08w3ajkmcwktg.isValid(editor, $_2xwdjv11jkmcwke0.name(parent), wrapName)) {\r\n return 'invalid-child';\r\n } else {\r\n return 'valid';\r\n }\r\n });\r\n };\r\n\r\n var __rest = undefined && undefined.__rest || function (s, e) {\r\n var t = {};\r\n for (var p in s)\r\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)\r\n if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n };\r\n var applyWordGrab = function (editor, rng) {\r\n var r = $_97afwh2ujkmcwkpw.expandRng(editor, rng, [{ inline: true }], false);\r\n rng.setStart(r.startContainer, r.startOffset);\r\n rng.setEnd(r.endContainer, r.endOffset);\r\n editor.selection.setRng(rng);\r\n };\r\n var annotate = function (editor, rng, annotationName, decorate, _a) {\r\n var _b = _a.uid, uid = _b === void 0 ? generate('mce-annotation') : _b, data = __rest(_a, ['uid']);\r\n var newWrappers = [];\r\n var master = Element$$1.fromTag('span');\r\n $_ftm4v023jkmcwklz.add(master, annotation());\r\n $_29helg15jkmcwkf0.set(master, '' + dataAnnotationId(), uid);\r\n $_29helg15jkmcwkf0.set(master, '' + dataAnnotation(), annotationName);\r\n var _c = decorate(uid, data), _d = _c.attributes, attributes = _d === void 0 ? {} : _d, _e = _c.classes, classes = _e === void 0 ? [] : _e;\r\n $_29helg15jkmcwkf0.setAll(master, attributes);\r\n $_dw1myr2hjkmcwko1.add(master, classes);\r\n var wrapper = Cell(Option.none());\r\n var finishWrapper = function () {\r\n wrapper.set(Option.none());\r\n };\r\n var getOrOpenWrapper = function () {\r\n return wrapper.get().getOrThunk(function () {\r\n var nu = $_44uvy22ijkmcwko5.shallow(master);\r\n newWrappers.push(nu);\r\n wrapper.set(Option.some(nu));\r\n return nu;\r\n });\r\n };\r\n var processElements = function (elems) {\r\n each(elems, processElement);\r\n };\r\n var processElement = function (elem) {\r\n var ctx = context(editor, elem, 'span', $_2xwdjv11jkmcwke0.name(elem));\r\n switch (ctx) {\r\n case 'invalid-child': {\r\n finishWrapper();\r\n var children = $_ca6pc118jkmcwkfs.children(elem);\r\n processElements(children);\r\n finishWrapper();\r\n break;\r\n }\r\n case 'valid': {\r\n var w = getOrOpenWrapper();\r\n $_f4qt4v1yjkmcwkl2.wrap(elem, w);\r\n break;\r\n }\r\n case 'skipping':\r\n case 'existing':\r\n case 'caret': \r\n }\r\n };\r\n var processNodes = function (nodes) {\r\n var elems = map(nodes, Element$$1.fromDom);\r\n processElements(elems);\r\n };\r\n $_cuckrv3bjkmcwktk.walk(editor.dom, rng, function (nodes) {\r\n finishWrapper();\r\n processNodes(nodes);\r\n });\r\n return newWrappers;\r\n };\r\n var annotateWithBookmark = function (editor, name, settings, data) {\r\n editor.undoManager.transact(function () {\r\n var initialRng = editor.selection.getRng();\r\n if (initialRng.collapsed) {\r\n applyWordGrab(editor, initialRng);\r\n }\r\n var bookmark = $_aw3zi52jjkmcwkoa.getPersistentBookmark(editor.selection, true);\r\n var rng = editor.selection.getRng();\r\n annotate(editor, rng, name, settings.decorate, data);\r\n editor.selection.moveToBookmark(bookmark);\r\n });\r\n };\r\n\r\n function Annotator (editor) {\r\n var registry = create$1();\r\n setup$1(editor, registry);\r\n var changes = setup(editor, registry);\r\n return {\r\n register: function (name, settings) {\r\n registry.register(name, settings);\r\n },\r\n annotate: function (name, data) {\r\n registry.lookup(name).each(function (settings) {\r\n annotateWithBookmark(editor, name, settings, data);\r\n });\r\n },\r\n annotationChanged: function (name, callback) {\r\n changes.addListener(name, callback);\r\n },\r\n remove: function (name) {\r\n identify(editor, Option.some(name)).each(function (_a) {\r\n var elements = _a.elements;\r\n each(elements, $_eualm21wjkmcwkku.unwrap);\r\n });\r\n },\r\n getAll: function (name) {\r\n var directory = findAll(editor, name);\r\n return map$2(directory, function (elems) {\r\n return map(elems, function (elem) {\r\n return elem.dom();\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n var hasOnlyOneChild = function (node) {\r\n return node.firstChild && node.firstChild === node.lastChild;\r\n };\r\n var isPaddingNode = function (node) {\r\n return node.name === 'br' || node.value === '\\xA0';\r\n };\r\n var isPaddedEmptyBlock = function (schema, node) {\r\n var blockElements = schema.getBlockElements();\r\n return blockElements[node.name] && hasOnlyOneChild(node) && isPaddingNode(node.firstChild);\r\n };\r\n var isEmptyFragmentElement = function (schema, node) {\r\n var nonEmptyElements = schema.getNonEmptyElements();\r\n return node && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\r\n };\r\n var isListFragment = function (schema, fragment) {\r\n var firstChild = fragment.firstChild;\r\n var lastChild = fragment.lastChild;\r\n if (firstChild && firstChild.name === 'meta') {\r\n firstChild = firstChild.next;\r\n }\r\n if (lastChild && lastChild.attr('id') === 'mce_marker') {\r\n lastChild = lastChild.prev;\r\n }\r\n if (isEmptyFragmentElement(schema, lastChild)) {\r\n lastChild = lastChild.prev;\r\n }\r\n if (!firstChild || firstChild !== lastChild) {\r\n return false;\r\n }\r\n return firstChild.name === 'ul' || firstChild.name === 'ol';\r\n };\r\n var cleanupDomFragment = function (domFragment) {\r\n var firstChild = domFragment.firstChild;\r\n var lastChild = domFragment.lastChild;\r\n if (firstChild && firstChild.nodeName === 'META') {\r\n firstChild.parentNode.removeChild(firstChild);\r\n }\r\n if (lastChild && lastChild.id === 'mce_marker') {\r\n lastChild.parentNode.removeChild(lastChild);\r\n }\r\n return domFragment;\r\n };\r\n var toDomFragment = function (dom, serializer, fragment) {\r\n var html = serializer.serialize(fragment);\r\n var domFragment = dom.createFragment(html);\r\n return cleanupDomFragment(domFragment);\r\n };\r\n var listItems$1 = function (elm) {\r\n return $_4ujg4tljkmcwkbk.grep(elm.childNodes, function (child) {\r\n return child.nodeName === 'LI';\r\n });\r\n };\r\n var isPadding = function (node) {\r\n return node.data === '\\xA0' || $_bjermr1rjkmcwkij.isBr(node);\r\n };\r\n var isListItemPadded = function (node) {\r\n return node && node.firstChild && node.firstChild === node.lastChild && isPadding(node.firstChild);\r\n };\r\n var isEmptyOrPadded = function (elm) {\r\n return !elm.firstChild || isListItemPadded(elm);\r\n };\r\n var trimListItems = function (elms) {\r\n return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\r\n };\r\n var getParentLi = function (dom, node) {\r\n var parentBlock = dom.getParent(node, dom.isBlock);\r\n return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\r\n };\r\n var isParentBlockLi = function (dom, node) {\r\n return !!getParentLi(dom, node);\r\n };\r\n var getSplit = function (parentNode, rng) {\r\n var beforeRng = rng.cloneRange();\r\n var afterRng = rng.cloneRange();\r\n beforeRng.setStartBefore(parentNode);\r\n afterRng.setEndAfter(parentNode);\r\n return [\r\n beforeRng.cloneContents(),\r\n afterRng.cloneContents()\r\n ];\r\n };\r\n var findFirstIn = function (node, rootNode) {\r\n var caretPos = CaretPosition$1.before(node);\r\n var caretWalker = CaretWalker(rootNode);\r\n var newCaretPos = caretWalker.next(caretPos);\r\n return newCaretPos ? newCaretPos.toRange() : null;\r\n };\r\n var findLastOf = function (node, rootNode) {\r\n var caretPos = CaretPosition$1.after(node);\r\n var caretWalker = CaretWalker(rootNode);\r\n var newCaretPos = caretWalker.prev(caretPos);\r\n return newCaretPos ? newCaretPos.toRange() : null;\r\n };\r\n var insertMiddle = function (target, elms, rootNode, rng) {\r\n var parts = getSplit(target, rng);\r\n var parentElm = target.parentNode;\r\n parentElm.insertBefore(parts[0], target);\r\n $_4ujg4tljkmcwkbk.each(elms, function (li) {\r\n parentElm.insertBefore(li, target);\r\n });\r\n parentElm.insertBefore(parts[1], target);\r\n parentElm.removeChild(target);\r\n return findLastOf(elms[elms.length - 1], rootNode);\r\n };\r\n var insertBefore = function (target, elms, rootNode) {\r\n var parentElm = target.parentNode;\r\n $_4ujg4tljkmcwkbk.each(elms, function (elm) {\r\n parentElm.insertBefore(elm, target);\r\n });\r\n return findFirstIn(target, rootNode);\r\n };\r\n var insertAfter = function (target, elms, rootNode, dom) {\r\n dom.insertAfter(elms.reverse(), target);\r\n return findLastOf(elms[0], rootNode);\r\n };\r\n var insertAtCaret = function (serializer, dom, rng, fragment) {\r\n var domFragment = toDomFragment(dom, serializer, fragment);\r\n var liTarget = getParentLi(dom, rng.startContainer);\r\n var liElms = trimListItems(listItems$1(domFragment.firstChild));\r\n var BEGINNING = 1, END = 2;\r\n var rootNode = dom.getRoot();\r\n var isAt = function (location) {\r\n var caretPos = CaretPosition$1.fromRangeStart(rng);\r\n var caretWalker = CaretWalker(dom.getRoot());\r\n var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\r\n return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;\r\n };\r\n if (isAt(BEGINNING)) {\r\n return insertBefore(liTarget, liElms, rootNode);\r\n } else if (isAt(END)) {\r\n return insertAfter(liTarget, liElms, rootNode, dom);\r\n }\r\n return insertMiddle(liTarget, liElms, rootNode, rng);\r\n };\r\n var $_e6q31u3jjkmcwkvd = {\r\n isListFragment: isListFragment,\r\n insertAtCaret: insertAtCaret,\r\n isParentBlockLi: isParentBlockLi,\r\n trimListItems: trimListItems,\r\n listItems: listItems$1\r\n };\r\n\r\n var each$9 = $_4ujg4tljkmcwkbk.each;\r\n var ElementUtils = function (dom) {\r\n this.compare = function (node1, node2) {\r\n if (node1.nodeName !== node2.nodeName) {\r\n return false;\r\n }\r\n var getAttribs = function (node) {\r\n var attribs = {};\r\n each$9(dom.getAttribs(node), function (attr) {\r\n var name = attr.nodeName.toLowerCase();\r\n if (name.indexOf('_') !== 0 && name !== 'style' && name.indexOf('data-') !== 0) {\r\n attribs[name] = dom.getAttrib(node, name);\r\n }\r\n });\r\n return attribs;\r\n };\r\n var compareObjects = function (obj1, obj2) {\r\n var value, name;\r\n for (name in obj1) {\r\n if (obj1.hasOwnProperty(name)) {\r\n value = obj2[name];\r\n if (typeof value === 'undefined') {\r\n return false;\r\n }\r\n if (obj1[name] !== value) {\r\n return false;\r\n }\r\n delete obj2[name];\r\n }\r\n }\r\n for (name in obj2) {\r\n if (obj2.hasOwnProperty(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\r\n return false;\r\n }\r\n if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\r\n return false;\r\n }\r\n return !$_e4btcc2vjkmcwkq3.isBookmarkNode(node1) && !$_e4btcc2vjkmcwkq3.isBookmarkNode(node2);\r\n };\r\n };\r\n\r\n var getLastChildren = function (elm) {\r\n var children = [];\r\n var rawNode = elm.dom();\r\n while (rawNode) {\r\n children.push(Element$$1.fromDom(rawNode));\r\n rawNode = rawNode.lastChild;\r\n }\r\n return children;\r\n };\r\n var removeTrailingBr = function (elm) {\r\n var allBrs = $_2gqm0n27jkmcwkmi.descendants(elm, 'br');\r\n var brs = filter(getLastChildren(elm).slice(-1), isBr);\r\n if (allBrs.length === brs.length) {\r\n each(brs, $_eualm21wjkmcwkku.remove);\r\n }\r\n };\r\n var fillWithPaddingBr = function (elm) {\r\n $_eualm21wjkmcwkku.empty(elm);\r\n $_f4qt4v1yjkmcwkl2.append(elm, Element$$1.fromHtml('
'));\r\n };\r\n var isPaddingContents = function (elm) {\r\n return $_2xwdjv11jkmcwke0.isText(elm) ? $_ckzc193ejkmcwktu.get(elm) === '\\xA0' : isBr(elm);\r\n };\r\n var isPaddedElement = function (elm) {\r\n return filter($_ca6pc118jkmcwkfs.children(elm), isPaddingContents).length === 1;\r\n };\r\n var trimBlockTrailingBr = function (elm) {\r\n $_ca6pc118jkmcwkfs.lastChild(elm).each(function (lastChild) {\r\n $_ca6pc118jkmcwkfs.prevSibling(lastChild).each(function (lastChildPrevSibling) {\r\n if (isBlock(elm) && isBr(lastChild) && isBlock(lastChildPrevSibling)) {\r\n $_eualm21wjkmcwkku.remove(lastChild);\r\n }\r\n });\r\n });\r\n };\r\n var $_zygeg3ljkmcwkvo = {\r\n removeTrailingBr: removeTrailingBr,\r\n fillWithPaddingBr: fillWithPaddingBr,\r\n isPaddedElement: isPaddedElement,\r\n trimBlockTrailingBr: trimBlockTrailingBr\r\n };\r\n\r\n var makeMap$3 = $_4ujg4tljkmcwkbk.makeMap;\r\n function Writer (settings) {\r\n var html = [];\r\n var indent, indentBefore, indentAfter, encode, htmlOutput;\r\n settings = settings || {};\r\n indent = settings.indent;\r\n indentBefore = makeMap$3(settings.indent_before || '');\r\n indentAfter = makeMap$3(settings.indent_after || '');\r\n encode = $_33qwr1sjkmcwkip.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\r\n htmlOutput = settings.element_format === 'html';\r\n return {\r\n start: function (name, attrs, empty) {\r\n var i, l, attr, value;\r\n if (indent && indentBefore[name] && html.length > 0) {\r\n value = html[html.length - 1];\r\n if (value.length > 0 && value !== '\\n') {\r\n html.push('\\n');\r\n }\r\n }\r\n html.push('<', name);\r\n if (attrs) {\r\n for (i = 0, l = attrs.length; i < l; i++) {\r\n attr = attrs[i];\r\n html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\r\n }\r\n }\r\n if (!empty || htmlOutput) {\r\n html[html.length] = '>';\r\n } else {\r\n html[html.length] = ' />';\r\n }\r\n if (empty && indent && indentAfter[name] && html.length > 0) {\r\n value = html[html.length - 1];\r\n if (value.length > 0 && value !== '\\n') {\r\n html.push('\\n');\r\n }\r\n }\r\n },\r\n end: function (name) {\r\n var value;\r\n html.push('');\r\n if (indent && indentAfter[name] && html.length > 0) {\r\n value = html[html.length - 1];\r\n if (value.length > 0 && value !== '\\n') {\r\n html.push('\\n');\r\n }\r\n }\r\n },\r\n text: function (text, raw) {\r\n if (text.length > 0) {\r\n html[html.length] = raw ? text : encode(text);\r\n }\r\n },\r\n cdata: function (text) {\r\n html.push('');\r\n },\r\n comment: function (text) {\r\n html.push('');\r\n },\r\n pi: function (name, text) {\r\n if (text) {\r\n html.push('');\r\n } else {\r\n html.push('');\r\n }\r\n if (indent) {\r\n html.push('\\n');\r\n }\r\n },\r\n doctype: function (text) {\r\n html.push('', indent ? '\\n' : '');\r\n },\r\n reset: function () {\r\n html.length = 0;\r\n },\r\n getContent: function () {\r\n return html.join('').replace(/\\n$/, '');\r\n }\r\n };\r\n }\r\n\r\n function HtmlSerializer (settings, schema) {\r\n if (schema === void 0) {\r\n schema = Schema();\r\n }\r\n var writer = Writer(settings);\r\n settings = settings || {};\r\n settings.validate = 'validate' in settings ? settings.validate : true;\r\n var serialize = function (node) {\r\n var handlers, validate;\r\n validate = settings.validate;\r\n handlers = {\r\n 3: function (node) {\r\n writer.text(node.value, node.raw);\r\n },\r\n 8: function (node) {\r\n writer.comment(node.value);\r\n },\r\n 7: function (node) {\r\n writer.pi(node.name, node.value);\r\n },\r\n 10: function (node) {\r\n writer.doctype(node.value);\r\n },\r\n 4: function (node) {\r\n writer.cdata(node.value);\r\n },\r\n 11: function (node) {\r\n if (node = node.firstChild) {\r\n do {\r\n walk(node);\r\n } while (node = node.next);\r\n }\r\n }\r\n };\r\n writer.reset();\r\n var walk = function (node) {\r\n var handler = handlers[node.type];\r\n var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;\r\n if (!handler) {\r\n name = node.name;\r\n isEmpty = node.shortEnded;\r\n attrs = node.attributes;\r\n if (validate && attrs && attrs.length > 1) {\r\n sortedAttrs = [];\r\n sortedAttrs.map = {};\r\n elementRule = schema.getElementRule(node.name);\r\n if (elementRule) {\r\n for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\r\n attrName = elementRule.attributesOrder[i];\r\n if (attrName in attrs.map) {\r\n attrValue = attrs.map[attrName];\r\n sortedAttrs.map[attrName] = attrValue;\r\n sortedAttrs.push({\r\n name: attrName,\r\n value: attrValue\r\n });\r\n }\r\n }\r\n for (i = 0, l = attrs.length; i < l; i++) {\r\n attrName = attrs[i].name;\r\n if (!(attrName in sortedAttrs.map)) {\r\n attrValue = attrs.map[attrName];\r\n sortedAttrs.map[attrName] = attrValue;\r\n sortedAttrs.push({\r\n name: attrName,\r\n value: attrValue\r\n });\r\n }\r\n }\r\n attrs = sortedAttrs;\r\n }\r\n }\r\n writer.start(node.name, attrs, isEmpty);\r\n if (!isEmpty) {\r\n if (node = node.firstChild) {\r\n do {\r\n walk(node);\r\n } while (node = node.next);\r\n }\r\n writer.end(name);\r\n }\r\n } else {\r\n handler(node);\r\n }\r\n };\r\n if (node.type === 1 && !settings.inner) {\r\n walk(node);\r\n } else {\r\n handlers[11](node);\r\n }\r\n return writer.getContent();\r\n };\r\n return { serialize: serialize };\r\n }\r\n\r\n var createRange$1 = function (sc, so, ec, eo) {\r\n var rng = document.createRange();\r\n rng.setStart(sc, so);\r\n rng.setEnd(ec, eo);\r\n return rng;\r\n };\r\n var normalizeBlockSelectionRange = function (rng) {\r\n var startPos = CaretPosition$1.fromRangeStart(rng);\r\n var endPos = CaretPosition$1.fromRangeEnd(rng);\r\n var rootNode = rng.commonAncestorContainer;\r\n return $_1m3f3j2yjkmcwkqg.fromPosition(false, rootNode, endPos).map(function (newEndPos) {\r\n if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\r\n return createRange$1(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\r\n } else {\r\n return rng;\r\n }\r\n }).getOr(rng);\r\n };\r\n var normalize = function (rng) {\r\n return rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\r\n };\r\n var $_bx30le3ojkmcwkw9 = { normalize: normalize };\r\n\r\n var isTableCell$2 = $_bjermr1rjkmcwkij.matchNodeNames('td th');\r\n var validInsertion = function (editor, value, parentNode) {\r\n if (parentNode.getAttribute('data-mce-bogus') === 'all') {\r\n parentNode.parentNode.insertBefore(editor.dom.createFragment(value), parentNode);\r\n } else {\r\n var node = parentNode.firstChild;\r\n var node2 = parentNode.lastChild;\r\n if (!node || node === node2 && node.nodeName === 'BR') {\r\n editor.dom.setHTML(parentNode, value);\r\n } else {\r\n editor.selection.setContent(value);\r\n }\r\n }\r\n };\r\n var trimBrsFromTableCell = function (dom, elm) {\r\n Option.from(dom.getParent(elm, 'td,th')).map(Element$$1.fromDom).each($_zygeg3ljkmcwkvo.trimBlockTrailingBr);\r\n };\r\n var insertHtmlAtCaret = function (editor, value, details) {\r\n var parser, serializer, parentNode, rootNode, fragment, args;\r\n var marker, rng, node, node2, bookmarkHtml, merge;\r\n var textInlineElements = editor.schema.getTextInlineElements();\r\n var selection = editor.selection, dom = editor.dom;\r\n var trimOrPaddLeftRight = function (html) {\r\n var rng, container, offset;\r\n rng = selection.getRng();\r\n container = rng.startContainer;\r\n offset = rng.startOffset;\r\n var hasSiblingText = function (siblingName) {\r\n return container[siblingName] && container[siblingName].nodeType === 3;\r\n };\r\n if (container.nodeType === 3) {\r\n if (offset > 0) {\r\n html = html.replace(/^ /, ' ');\r\n } else if (!hasSiblingText('previousSibling')) {\r\n html = html.replace(/^ /, ' ');\r\n }\r\n if (offset < container.length) {\r\n html = html.replace(/ (
|)$/, ' ');\r\n } else if (!hasSiblingText('nextSibling')) {\r\n html = html.replace(/( | )(
|)$/, ' ');\r\n }\r\n }\r\n return html;\r\n };\r\n var trimNbspAfterDeleteAndPaddValue = function () {\r\n var rng, container, offset;\r\n rng = selection.getRng();\r\n container = rng.startContainer;\r\n offset = rng.startOffset;\r\n if (container.nodeType === 3 && rng.collapsed) {\r\n if (container.data[offset] === '\\xA0') {\r\n container.deleteData(offset, 1);\r\n if (!/[\\u00a0| ]$/.test(value)) {\r\n value += ' ';\r\n }\r\n } else if (container.data[offset - 1] === '\\xA0') {\r\n container.deleteData(offset - 1, 1);\r\n if (!/[\\u00a0| ]$/.test(value)) {\r\n value = ' ' + value;\r\n }\r\n }\r\n }\r\n };\r\n var reduceInlineTextElements = function () {\r\n if (merge) {\r\n var root_1 = editor.getBody(), elementUtils_1 = new ElementUtils(dom);\r\n $_4ujg4tljkmcwkbk.each(dom.select('*[data-mce-fragment]'), function (node) {\r\n for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) {\r\n if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) {\r\n dom.remove(node, true);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n var markFragmentElements = function (fragment) {\r\n var node = fragment;\r\n while (node = node.walk()) {\r\n if (node.type === 1) {\r\n node.attr('data-mce-fragment', '1');\r\n }\r\n }\r\n };\r\n var umarkFragmentElements = function (elm) {\r\n $_4ujg4tljkmcwkbk.each(elm.getElementsByTagName('*'), function (elm) {\r\n elm.removeAttribute('data-mce-fragment');\r\n });\r\n };\r\n var isPartOfFragment = function (node) {\r\n return !!node.getAttribute('data-mce-fragment');\r\n };\r\n var canHaveChildren = function (node) {\r\n return node && !editor.schema.getShortEndedElements()[node.nodeName];\r\n };\r\n var moveSelectionToMarker = function (marker) {\r\n var parentEditableFalseElm, parentBlock, nextRng;\r\n var getContentEditableFalseParent = function (node) {\r\n var root = editor.getBody();\r\n for (; node && node !== root; node = node.parentNode) {\r\n if (editor.dom.getContentEditable(node) === 'false') {\r\n return node;\r\n }\r\n }\r\n return null;\r\n };\r\n if (!marker) {\r\n return;\r\n }\r\n selection.scrollIntoView(marker);\r\n parentEditableFalseElm = getContentEditableFalseParent(marker);\r\n if (parentEditableFalseElm) {\r\n dom.remove(marker);\r\n selection.select(parentEditableFalseElm);\r\n return;\r\n }\r\n rng = dom.createRng();\r\n node = marker.previousSibling;\r\n if (node && node.nodeType === 3) {\r\n rng.setStart(node, node.nodeValue.length);\r\n if (!$_cvvl9iajkmcwk25.ie) {\r\n node2 = marker.nextSibling;\r\n if (node2 && node2.nodeType === 3) {\r\n node.appendData(node2.data);\r\n node2.parentNode.removeChild(node2);\r\n }\r\n }\r\n } else {\r\n rng.setStartBefore(marker);\r\n rng.setEndBefore(marker);\r\n }\r\n var findNextCaretRng = function (rng) {\r\n var caretPos = CaretPosition$1.fromRangeStart(rng);\r\n var caretWalker = CaretWalker(editor.getBody());\r\n caretPos = caretWalker.next(caretPos);\r\n if (caretPos) {\r\n return caretPos.toRange();\r\n }\r\n };\r\n parentBlock = dom.getParent(marker, dom.isBlock);\r\n dom.remove(marker);\r\n if (parentBlock && dom.isEmpty(parentBlock)) {\r\n editor.$(parentBlock).empty();\r\n rng.setStart(parentBlock, 0);\r\n rng.setEnd(parentBlock, 0);\r\n if (!isTableCell$2(parentBlock) && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\r\n rng = nextRng;\r\n dom.remove(parentBlock);\r\n } else {\r\n dom.add(parentBlock, dom.create('br', { 'data-mce-bogus': '1' }));\r\n }\r\n }\r\n selection.setRng(rng);\r\n };\r\n if (/^ | $/.test(value)) {\r\n value = trimOrPaddLeftRight(value);\r\n }\r\n parser = editor.parser;\r\n merge = details.merge;\r\n serializer = HtmlSerializer({ validate: editor.settings.validate }, editor.schema);\r\n bookmarkHtml = '​';\r\n args = {\r\n content: value,\r\n format: 'html',\r\n selection: true,\r\n paste: details.paste\r\n };\r\n args = editor.fire('BeforeSetContent', args);\r\n if (args.isDefaultPrevented()) {\r\n editor.fire('SetContent', {\r\n content: args.content,\r\n format: 'html',\r\n selection: true,\r\n paste: details.paste\r\n });\r\n return;\r\n }\r\n value = args.content;\r\n if (value.indexOf('{$caret}') === -1) {\r\n value += '{$caret}';\r\n }\r\n value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\r\n rng = selection.getRng();\r\n var caretElement = rng.startContainer || (rng.parentElement ? rng.parentElement() : null);\r\n var body = editor.getBody();\r\n if (caretElement === body && selection.isCollapsed()) {\r\n if (dom.isBlock(body.firstChild) && canHaveChildren(body.firstChild) && dom.isEmpty(body.firstChild)) {\r\n rng = dom.createRng();\r\n rng.setStart(body.firstChild, 0);\r\n rng.setEnd(body.firstChild, 0);\r\n selection.setRng(rng);\r\n }\r\n }\r\n if (!selection.isCollapsed()) {\r\n editor.selection.setRng($_bx30le3ojkmcwkw9.normalize(editor.selection.getRng()));\r\n editor.getDoc().execCommand('Delete', false, null);\r\n trimNbspAfterDeleteAndPaddValue();\r\n }\r\n parentNode = selection.getNode();\r\n var parserArgs = {\r\n context: parentNode.nodeName.toLowerCase(),\r\n data: details.data,\r\n insert: true\r\n };\r\n fragment = parser.parse(value, parserArgs);\r\n if (details.paste === true && $_e6q31u3jjkmcwkvd.isListFragment(editor.schema, fragment) && $_e6q31u3jjkmcwkvd.isParentBlockLi(dom, parentNode)) {\r\n rng = $_e6q31u3jjkmcwkvd.insertAtCaret(serializer, dom, editor.selection.getRng(), fragment);\r\n editor.selection.setRng(rng);\r\n editor.fire('SetContent', args);\r\n return;\r\n }\r\n markFragmentElements(fragment);\r\n node = fragment.lastChild;\r\n if (node.attr('id') === 'mce_marker') {\r\n marker = node;\r\n for (node = node.prev; node; node = node.walk(true)) {\r\n if (node.type === 3 || !dom.isBlock(node.name)) {\r\n if (editor.schema.isValidChild(node.parent.name, 'span')) {\r\n node.parent.insert(marker, node, node.name === 'br');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n editor._selectionOverrides.showBlockCaretContainer(parentNode);\r\n if (!parserArgs.invalid) {\r\n value = serializer.serialize(fragment);\r\n validInsertion(editor, value, parentNode);\r\n } else {\r\n selection.setContent(bookmarkHtml);\r\n parentNode = selection.getNode();\r\n rootNode = editor.getBody();\r\n if (parentNode.nodeType === 9) {\r\n parentNode = node = rootNode;\r\n } else {\r\n node = parentNode;\r\n }\r\n while (node !== rootNode) {\r\n parentNode = node;\r\n node = node.parentNode;\r\n }\r\n value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\r\n value = serializer.serialize(parser.parse(value.replace(//i, function () {\r\n return serializer.serialize(fragment);\r\n })));\r\n if (parentNode === rootNode) {\r\n dom.setHTML(rootNode, value);\r\n } else {\r\n dom.setOuterHTML(parentNode, value);\r\n }\r\n }\r\n reduceInlineTextElements();\r\n moveSelectionToMarker(dom.get('mce_marker'));\r\n umarkFragmentElements(editor.getBody());\r\n trimBrsFromTableCell(editor.dom, editor.selection.getStart());\r\n editor.fire('SetContent', args);\r\n editor.addVisual();\r\n };\r\n var processValue = function (value) {\r\n var details;\r\n if (typeof value !== 'string') {\r\n details = $_4ujg4tljkmcwkbk.extend({\r\n paste: value.paste,\r\n data: { paste: value.paste }\r\n }, value);\r\n return {\r\n content: value.content,\r\n details: details\r\n };\r\n }\r\n return {\r\n content: value,\r\n details: {}\r\n };\r\n };\r\n var insertAtCaret$1 = function (editor, value) {\r\n var result = processValue(value);\r\n insertHtmlAtCaret(editor, result.content, result.details);\r\n };\r\n var $_g2yj883ijkmcwkv2 = { insertAtCaret: insertAtCaret$1 };\r\n\r\n var sectionResult = Immutable('sections', 'settings');\r\n var detection = $_b1ykk4ojkmcwkcj.detect();\r\n var isTouch = detection.deviceType.isTouch();\r\n var mobilePlugins = [\r\n 'lists',\r\n 'autolink',\r\n 'autosave'\r\n ];\r\n var defaultMobileSettings = { theme: 'mobile' };\r\n var normalizePlugins = function (plugins) {\r\n var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;\r\n var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim$2);\r\n return filter(trimmedPlugins, function (item) {\r\n return item.length > 0;\r\n });\r\n };\r\n var filterMobilePlugins = function (plugins) {\r\n return filter(plugins, curry(contains, mobilePlugins));\r\n };\r\n var extractSections = function (keys$$1, settings) {\r\n var result = bifilter(settings, function (value, key) {\r\n return contains(keys$$1, key);\r\n });\r\n return sectionResult(result.t, result.f);\r\n };\r\n var getSection = function (sectionResult, name, defaults) {\r\n var sections = sectionResult.sections();\r\n var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};\r\n return $_4ujg4tljkmcwkbk.extend({}, defaults, sectionSettings);\r\n };\r\n var hasSection = function (sectionResult, name) {\r\n return sectionResult.sections().hasOwnProperty(name);\r\n };\r\n var getDefaultSettings = function (id, documentBaseUrl, editor) {\r\n return {\r\n id: id,\r\n theme: 'modern',\r\n delta_width: 0,\r\n delta_height: 0,\r\n popup_css: '',\r\n plugins: '',\r\n document_base_url: documentBaseUrl,\r\n add_form_submit_trigger: true,\r\n submit_patch: true,\r\n add_unload_trigger: true,\r\n convert_urls: true,\r\n relative_urls: true,\r\n remove_script_host: true,\r\n object_resizing: true,\r\n doctype: '',\r\n visual: true,\r\n font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large',\r\n font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%',\r\n forced_root_block: 'p',\r\n hidden_input: true,\r\n render_ui: true,\r\n indentation: '30px',\r\n inline_styles: true,\r\n convert_fonts_to_spans: true,\r\n indent: 'simple',\r\n indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\r\n indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',\r\n entity_encoding: 'named',\r\n url_converter: editor.convertURL,\r\n url_converter_scope: editor,\r\n ie7_compat: true\r\n };\r\n };\r\n var getExternalPlugins = function (overrideSettings, settings) {\r\n var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {};\r\n if (overrideSettings && overrideSettings.external_plugins) {\r\n return $_4ujg4tljkmcwkbk.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);\r\n } else {\r\n return userDefinedExternalPlugins;\r\n }\r\n };\r\n var combinePlugins = function (forcedPlugins, plugins) {\r\n return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins));\r\n };\r\n var processPlugins = function (isTouchDevice, sectionResult, defaultOverrideSettings, settings) {\r\n var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins);\r\n var plugins = normalizePlugins(settings.plugins);\r\n var platformPlugins = isTouchDevice && hasSection(sectionResult, 'mobile') ? filterMobilePlugins(plugins) : plugins;\r\n var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\r\n return $_4ujg4tljkmcwkbk.extend(settings, { plugins: combinedPlugins.join(' ') });\r\n };\r\n var isOnMobile = function (isTouchDevice, sectionResult) {\r\n var isInline = sectionResult.settings().inline;\r\n return isTouchDevice && hasSection(sectionResult, 'mobile') && !isInline;\r\n };\r\n var combineSettings = function (isTouchDevice, defaultSettings, defaultOverrideSettings, settings) {\r\n var sectionResult = extractSections(['mobile'], settings);\r\n var extendedSettings = $_4ujg4tljkmcwkbk.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {\r\n validate: true,\r\n content_editable: sectionResult.settings().inline,\r\n external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())\r\n });\r\n return processPlugins(isTouchDevice, sectionResult, defaultOverrideSettings, extendedSettings);\r\n };\r\n var getEditorSettings = function (editor, id, documentBaseUrl, defaultOverrideSettings, settings) {\r\n var defaultSettings = getDefaultSettings(id, documentBaseUrl, editor);\r\n return combineSettings(isTouch, defaultSettings, defaultOverrideSettings, settings);\r\n };\r\n var getFiltered = function (predicate, editor, name) {\r\n return Option.from(editor.settings[name]).filter(predicate);\r\n };\r\n var getString = curry(getFiltered, isString);\r\n var getParamObject = function (value) {\r\n var output = {};\r\n if (typeof value === 'string') {\r\n each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {\r\n var arr = val.split('=');\r\n if (arr.length > 1) {\r\n output[$_4ujg4tljkmcwkbk.trim(arr[0])] = $_4ujg4tljkmcwkbk.trim(arr[1]);\r\n } else {\r\n output[$_4ujg4tljkmcwkbk.trim(arr[0])] = $_4ujg4tljkmcwkbk.trim(arr);\r\n }\r\n });\r\n } else {\r\n output = value;\r\n }\r\n return output;\r\n };\r\n var isArrayOf = function (p) {\r\n return function (a) {\r\n return isArray(a) && forall(a, p);\r\n };\r\n };\r\n var getParam = function (editor, name, defaultVal, type) {\r\n var value = name in editor.settings ? editor.settings[name] : defaultVal;\r\n if (type === 'hash') {\r\n return getParamObject(value);\r\n } else if (type === 'string') {\r\n return getFiltered(isString, editor, name).getOr(defaultVal);\r\n } else if (type === 'number') {\r\n return getFiltered(isNumber, editor, name).getOr(defaultVal);\r\n } else if (type === 'boolean') {\r\n return getFiltered(isBoolean, editor, name).getOr(defaultVal);\r\n } else if (type === 'object') {\r\n return getFiltered(isObject, editor, name).getOr(defaultVal);\r\n } else if (type === 'array') {\r\n return getFiltered(isArray, editor, name).getOr(defaultVal);\r\n } else if (type === 'string[]') {\r\n return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);\r\n } else if (type === 'function') {\r\n return getFiltered(isFunction, editor, name).getOr(defaultVal);\r\n } else {\r\n return value;\r\n }\r\n };\r\n\r\n var strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\r\n var hasStrongRtl = function (text) {\r\n return strongRtl.test(text);\r\n };\r\n\r\n var isInlineTarget = function (editor, elm) {\r\n var selector = getString(editor, 'inline_boundaries_selector').getOr('a[href],code');\r\n return $_4jv6d81gjkmcwkgv.is(Element$$1.fromDom(elm), selector);\r\n };\r\n var isRtl = function (element) {\r\n return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);\r\n };\r\n var findInlineParents = function (isInlineTarget, rootNode, pos) {\r\n return filter(DOMUtils$1.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\r\n };\r\n var findRootInline = function (isInlineTarget, rootNode, pos) {\r\n var parents = findInlineParents(isInlineTarget, rootNode, pos);\r\n return Option.from(parents[parents.length - 1]);\r\n };\r\n var hasSameParentBlock = function (rootNode, node1, node2) {\r\n var block1 = getParentBlock(node1, rootNode);\r\n var block2 = getParentBlock(node2, rootNode);\r\n return block1 && block1 === block2;\r\n };\r\n var isAtZwsp = function (pos) {\r\n return isBeforeInline(pos) || isAfterInline(pos);\r\n };\r\n var normalizePosition = function (forward, pos) {\r\n var container = pos.container(), offset = pos.offset();\r\n if (forward) {\r\n if (isCaretContainerInline(container)) {\r\n if ($_bjermr1rjkmcwkij.isText(container.nextSibling)) {\r\n return CaretPosition$1(container.nextSibling, 0);\r\n } else {\r\n return CaretPosition$1.after(container);\r\n }\r\n } else {\r\n return isBeforeInline(pos) ? CaretPosition$1(container, offset + 1) : pos;\r\n }\r\n } else {\r\n if (isCaretContainerInline(container)) {\r\n if ($_bjermr1rjkmcwkij.isText(container.previousSibling)) {\r\n return CaretPosition$1(container.previousSibling, container.previousSibling.data.length);\r\n } else {\r\n return CaretPosition$1.before(container);\r\n }\r\n } else {\r\n return isAfterInline(pos) ? CaretPosition$1(container, offset - 1) : pos;\r\n }\r\n }\r\n };\r\n var normalizeForwards = curry(normalizePosition, true);\r\n var normalizeBackwards = curry(normalizePosition, false);\r\n var $_crqmqb3tjkmcwkxd = {\r\n isInlineTarget: isInlineTarget,\r\n findRootInline: findRootInline,\r\n isRtl: isRtl,\r\n isAtZwsp: isAtZwsp,\r\n normalizePosition: normalizePosition,\r\n normalizeForwards: normalizeForwards,\r\n normalizeBackwards: normalizeBackwards,\r\n hasSameParentBlock: hasSameParentBlock\r\n };\r\n\r\n var isBeforeRoot = function (rootNode) {\r\n return function (elm) {\r\n return $_e4hu6h1ejkmcwkgj.eq(rootNode, Element$$1.fromDom(elm.dom().parentNode));\r\n };\r\n };\r\n var getParentBlock$1 = function (rootNode, elm) {\r\n return $_e4hu6h1ejkmcwkgj.contains(rootNode, elm) ? $_253nd92ajkmcwkmp.closest(elm, function (element) {\r\n return isTextBlock(element) || isListItem(element);\r\n }, isBeforeRoot(rootNode)) : Option.none();\r\n };\r\n var placeCaretInEmptyBody = function (editor) {\r\n var body = editor.getBody();\r\n var node = body.firstChild && editor.dom.isBlock(body.firstChild) ? body.firstChild : body;\r\n editor.selection.setCursorLocation(node, 0);\r\n };\r\n var paddEmptyBody = function (editor) {\r\n if (editor.dom.isEmpty(editor.getBody())) {\r\n editor.setContent('');\r\n placeCaretInEmptyBody(editor);\r\n }\r\n };\r\n var willDeleteLastPositionInElement = function (forward, fromPos, elm) {\r\n return liftN([\r\n $_1m3f3j2yjkmcwkqg.firstPositionIn(elm),\r\n $_1m3f3j2yjkmcwkqg.lastPositionIn(elm)\r\n ], function (firstPos, lastPos) {\r\n var normalizedFirstPos = $_crqmqb3tjkmcwkxd.normalizePosition(true, firstPos);\r\n var normalizedLastPos = $_crqmqb3tjkmcwkxd.normalizePosition(false, lastPos);\r\n var normalizedFromPos = $_crqmqb3tjkmcwkxd.normalizePosition(false, fromPos);\r\n if (forward) {\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(elm, normalizedFromPos).map(function (nextPos) {\r\n return nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos);\r\n }).getOr(false);\r\n } else {\r\n return $_1m3f3j2yjkmcwkqg.prevPosition(elm, normalizedFromPos).map(function (prevPos) {\r\n return prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos);\r\n }).getOr(false);\r\n }\r\n }).getOr(true);\r\n };\r\n var $_8z75uj3sjkmcwkx3 = {\r\n getParentBlock: getParentBlock$1,\r\n paddEmptyBody: paddEmptyBody,\r\n willDeleteLastPositionInElement: willDeleteLastPositionInElement\r\n };\r\n\r\n var any = function (selector) {\r\n return $_4ki4d929jkmcwkmn.first(selector).isSome();\r\n };\r\n var ancestor$2 = function (scope, selector, isRoot) {\r\n return $_4ki4d929jkmcwkmn.ancestor(scope, selector, isRoot).isSome();\r\n };\r\n var sibling$3 = function (scope, selector) {\r\n return $_4ki4d929jkmcwkmn.sibling(scope, selector).isSome();\r\n };\r\n var child$3 = function (scope, selector) {\r\n return $_4ki4d929jkmcwkmn.child(scope, selector).isSome();\r\n };\r\n var descendant$2 = function (scope, selector) {\r\n return $_4ki4d929jkmcwkmn.descendant(scope, selector).isSome();\r\n };\r\n var closest$2 = function (scope, selector, isRoot) {\r\n return $_4ki4d929jkmcwkmn.closest(scope, selector, isRoot).isSome();\r\n };\r\n var $_6rijl23xjkmcwl24 = {\r\n any: any,\r\n ancestor: ancestor$2,\r\n sibling: sibling$3,\r\n child: child$3,\r\n descendant: descendant$2,\r\n closest: closest$2\r\n };\r\n\r\n var hasWhitespacePreserveParent = function (rootNode, node) {\r\n var rootElement = Element$$1.fromDom(rootNode);\r\n var startNode = Element$$1.fromDom(node);\r\n return $_6rijl23xjkmcwl24.ancestor(startNode, 'pre,code', curry($_e4hu6h1ejkmcwkgj.eq, rootElement));\r\n };\r\n var isWhitespace = function (rootNode, node) {\r\n return $_bjermr1rjkmcwkij.isText(node) && /^[ \\t\\r\\n]*$/.test(node.data) && hasWhitespacePreserveParent(rootNode, node) === false;\r\n };\r\n var isNamedAnchor = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && node.nodeName === 'A' && node.hasAttribute('name');\r\n };\r\n var isContent = function (rootNode, node) {\r\n return isCaretCandidate(node) && isWhitespace(rootNode, node) === false || isNamedAnchor(node) || isBookmark(node);\r\n };\r\n var isBookmark = $_bjermr1rjkmcwkij.hasAttribute('data-mce-bookmark');\r\n var isBogus$2 = $_bjermr1rjkmcwkij.hasAttribute('data-mce-bogus');\r\n var isBogusAll$1 = $_bjermr1rjkmcwkij.hasAttributeValue('data-mce-bogus', 'all');\r\n var isEmptyNode = function (targetNode) {\r\n var walker, node, brCount = 0;\r\n if (isContent(targetNode, targetNode)) {\r\n return false;\r\n } else {\r\n node = targetNode.firstChild;\r\n if (!node) {\r\n return true;\r\n }\r\n walker = new TreeWalker(node, targetNode);\r\n do {\r\n if (isBogusAll$1(node)) {\r\n node = walker.next(true);\r\n continue;\r\n }\r\n if (isBogus$2(node)) {\r\n node = walker.next();\r\n continue;\r\n }\r\n if ($_bjermr1rjkmcwkij.isBr(node)) {\r\n brCount++;\r\n node = walker.next();\r\n continue;\r\n }\r\n if (isContent(targetNode, node)) {\r\n return false;\r\n }\r\n node = walker.next();\r\n } while (node);\r\n return brCount <= 1;\r\n }\r\n };\r\n var isEmpty$1 = function (elm) {\r\n return isEmptyNode(elm.dom());\r\n };\r\n var $_1jnfso3wjkmcwl1v = { isEmpty: isEmpty$1 };\r\n\r\n var BlockPosition = Immutable('block', 'position');\r\n var BlockBoundary = Immutable('from', 'to');\r\n var getBlockPosition = function (rootNode, pos) {\r\n var rootElm = Element$$1.fromDom(rootNode);\r\n var containerElm = Element$$1.fromDom(pos.container());\r\n return $_8z75uj3sjkmcwkx3.getParentBlock(rootElm, containerElm).map(function (block) {\r\n return BlockPosition(block, pos);\r\n });\r\n };\r\n var isDifferentBlocks = function (blockBoundary) {\r\n return $_e4hu6h1ejkmcwkgj.eq(blockBoundary.from().block(), blockBoundary.to().block()) === false;\r\n };\r\n var hasSameParent = function (blockBoundary) {\r\n return $_ca6pc118jkmcwkfs.parent(blockBoundary.from().block()).bind(function (parent1) {\r\n return $_ca6pc118jkmcwkfs.parent(blockBoundary.to().block()).filter(function (parent2) {\r\n return $_e4hu6h1ejkmcwkgj.eq(parent1, parent2);\r\n });\r\n }).isSome();\r\n };\r\n var isEditable = function (blockBoundary) {\r\n return $_bjermr1rjkmcwkij.isContentEditableFalse(blockBoundary.from().block()) === false && $_bjermr1rjkmcwkij.isContentEditableFalse(blockBoundary.to().block()) === false;\r\n };\r\n var skipLastBr = function (rootNode, forward, blockPosition) {\r\n if ($_bjermr1rjkmcwkij.isBr(blockPosition.position().getNode()) && $_1jnfso3wjkmcwl1v.isEmpty(blockPosition.block()) === false) {\r\n return $_1m3f3j2yjkmcwkqg.positionIn(false, blockPosition.block().dom()).bind(function (lastPositionInBlock) {\r\n if (lastPositionInBlock.isEqual(blockPosition.position())) {\r\n return $_1m3f3j2yjkmcwkqg.fromPosition(forward, rootNode, lastPositionInBlock).bind(function (to) {\r\n return getBlockPosition(rootNode, to);\r\n });\r\n } else {\r\n return Option.some(blockPosition);\r\n }\r\n }).getOr(blockPosition);\r\n } else {\r\n return blockPosition;\r\n }\r\n };\r\n var readFromRange = function (rootNode, forward, rng) {\r\n var fromBlockPos = getBlockPosition(rootNode, CaretPosition$1.fromRangeStart(rng));\r\n var toBlockPos = fromBlockPos.bind(function (blockPos) {\r\n return $_1m3f3j2yjkmcwkqg.fromPosition(forward, rootNode, blockPos.position()).bind(function (to) {\r\n return getBlockPosition(rootNode, to).map(function (blockPos) {\r\n return skipLastBr(rootNode, forward, blockPos);\r\n });\r\n });\r\n });\r\n return liftN([\r\n fromBlockPos,\r\n toBlockPos\r\n ], BlockBoundary).filter(function (blockBoundary) {\r\n return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary);\r\n });\r\n };\r\n var read$1 = function (rootNode, forward, rng) {\r\n return rng.collapsed ? readFromRange(rootNode, forward, rng) : Option.none();\r\n };\r\n var $_2x2kic3rjkmcwkwi = { read: read$1 };\r\n\r\n var dropLast = function (xs) {\r\n return xs.slice(0, -1);\r\n };\r\n var parentsUntil$1 = function (startNode, rootElm, predicate) {\r\n if ($_e4hu6h1ejkmcwkgj.contains(rootElm, startNode)) {\r\n return dropLast($_ca6pc118jkmcwkfs.parents(startNode, function (elm) {\r\n return predicate(elm) || $_e4hu6h1ejkmcwkgj.eq(elm, rootElm);\r\n }));\r\n } else {\r\n return [];\r\n }\r\n };\r\n var parents$1 = function (startNode, rootElm) {\r\n return parentsUntil$1(startNode, rootElm, constant(false));\r\n };\r\n var parentsAndSelf = function (startNode, rootElm) {\r\n return [startNode].concat(parents$1(startNode, rootElm));\r\n };\r\n var $_cir6zl3zjkmcwl2j = {\r\n parentsUntil: parentsUntil$1,\r\n parents: parents$1,\r\n parentsAndSelf: parentsAndSelf\r\n };\r\n\r\n var getChildrenUntilBlockBoundary = function (block) {\r\n var children = $_ca6pc118jkmcwkfs.children(block);\r\n return findIndex(children, isBlock).fold(function () {\r\n return children;\r\n }, function (index) {\r\n return children.slice(0, index);\r\n });\r\n };\r\n var extractChildren = function (block) {\r\n var children = getChildrenUntilBlockBoundary(block);\r\n each(children, function (node) {\r\n $_eualm21wjkmcwkku.remove(node);\r\n });\r\n return children;\r\n };\r\n var trimBr = function (first, block) {\r\n $_1m3f3j2yjkmcwkqg.positionIn(first, block.dom()).each(function (position) {\r\n var node = position.getNode();\r\n if ($_bjermr1rjkmcwkij.isBr(node)) {\r\n $_eualm21wjkmcwkku.remove(Element$$1.fromDom(node));\r\n }\r\n });\r\n };\r\n var removeEmptyRoot = function (rootNode, block) {\r\n var parents = $_cir6zl3zjkmcwl2j.parentsAndSelf(block, rootNode);\r\n return find(parents.reverse(), $_1jnfso3wjkmcwl1v.isEmpty).each($_eualm21wjkmcwkku.remove);\r\n };\r\n var findParentInsertPoint = function (toBlock, block) {\r\n var parents = $_ca6pc118jkmcwkfs.parents(block, function (elm) {\r\n return $_e4hu6h1ejkmcwkgj.eq(elm, toBlock);\r\n });\r\n return Option.from(parents[parents.length - 2]);\r\n };\r\n var getInsertionPoint = function (fromBlock, toBlock) {\r\n if ($_e4hu6h1ejkmcwkgj.contains(toBlock, fromBlock)) {\r\n return $_ca6pc118jkmcwkfs.parent(fromBlock).bind(function (parent) {\r\n return $_e4hu6h1ejkmcwkgj.eq(parent, toBlock) ? Option.some(fromBlock) : findParentInsertPoint(toBlock, fromBlock);\r\n });\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var mergeBlockInto = function (rootNode, fromBlock, toBlock) {\r\n if ($_1jnfso3wjkmcwl1v.isEmpty(toBlock)) {\r\n $_eualm21wjkmcwkku.remove(toBlock);\r\n if ($_1jnfso3wjkmcwl1v.isEmpty(fromBlock)) {\r\n $_zygeg3ljkmcwkvo.fillWithPaddingBr(fromBlock);\r\n }\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(fromBlock.dom());\r\n } else {\r\n trimBr(true, fromBlock);\r\n trimBr(false, toBlock);\r\n var children_1 = extractChildren(fromBlock);\r\n return getInsertionPoint(fromBlock, toBlock).fold(function () {\r\n removeEmptyRoot(rootNode, fromBlock);\r\n var position = $_1m3f3j2yjkmcwkqg.lastPositionIn(toBlock.dom());\r\n each(children_1, function (node) {\r\n $_f4qt4v1yjkmcwkl2.append(toBlock, node);\r\n });\r\n return position;\r\n }, function (target) {\r\n var position = $_1m3f3j2yjkmcwkqg.prevPosition(toBlock.dom(), CaretPosition$1.before(target.dom()));\r\n each(children_1, function (node) {\r\n $_f4qt4v1yjkmcwkl2.before(target, node);\r\n });\r\n removeEmptyRoot(rootNode, fromBlock);\r\n return position;\r\n });\r\n }\r\n };\r\n var mergeBlocks = function (rootNode, forward, block1, block2) {\r\n return forward ? mergeBlockInto(rootNode, block2, block1) : mergeBlockInto(rootNode, block1, block2);\r\n };\r\n var $_ezyxdl3yjkmcwl27 = { mergeBlocks: mergeBlocks };\r\n\r\n var backspaceDelete = function (editor, forward) {\r\n var position;\r\n var rootNode = Element$$1.fromDom(editor.getBody());\r\n position = $_2x2kic3rjkmcwkwi.read(rootNode.dom(), forward, editor.selection.getRng()).bind(function (blockBoundary) {\r\n return $_ezyxdl3yjkmcwl27.mergeBlocks(rootNode, forward, blockBoundary.from().block(), blockBoundary.to().block());\r\n });\r\n position.each(function (pos) {\r\n editor.selection.setRng(pos.toRange());\r\n });\r\n return position.isSome();\r\n };\r\n var $_1wrlyf3qjkmcwkwe = { backspaceDelete: backspaceDelete };\r\n\r\n var deleteRangeMergeBlocks = function (rootNode, selection) {\r\n var rng = selection.getRng();\r\n return liftN([\r\n $_8z75uj3sjkmcwkx3.getParentBlock(rootNode, Element$$1.fromDom(rng.startContainer)),\r\n $_8z75uj3sjkmcwkx3.getParentBlock(rootNode, Element$$1.fromDom(rng.endContainer))\r\n ], function (block1, block2) {\r\n if ($_e4hu6h1ejkmcwkgj.eq(block1, block2) === false) {\r\n rng.deleteContents();\r\n $_ezyxdl3yjkmcwl27.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {\r\n selection.setRng(pos.toRange());\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }).getOr(false);\r\n };\r\n var isRawNodeInTable = function (root, rawNode) {\r\n var node = Element$$1.fromDom(rawNode);\r\n var isRoot = curry($_e4hu6h1ejkmcwkgj.eq, root);\r\n return $_253nd92ajkmcwkmp.ancestor(node, isTableCell, isRoot).isSome();\r\n };\r\n var isSelectionInTable = function (root, rng) {\r\n return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\r\n };\r\n var isEverythingSelected = function (root, rng) {\r\n var noPrevious = $_1m3f3j2yjkmcwkqg.prevPosition(root.dom(), CaretPosition$1.fromRangeStart(rng)).isNone();\r\n var noNext = $_1m3f3j2yjkmcwkqg.nextPosition(root.dom(), CaretPosition$1.fromRangeEnd(rng)).isNone();\r\n return !isSelectionInTable(root, rng) && noPrevious && noNext;\r\n };\r\n var emptyEditor = function (editor) {\r\n editor.setContent('');\r\n editor.selection.setCursorLocation();\r\n return true;\r\n };\r\n var deleteRange = function (editor) {\r\n var rootNode = Element$$1.fromDom(editor.getBody());\r\n var rng = editor.selection.getRng();\r\n return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection);\r\n };\r\n var backspaceDelete$1 = function (editor, forward) {\r\n return editor.selection.isCollapsed() ? false : deleteRange(editor);\r\n };\r\n var $_egxtcx40jkmcwl2q = { backspaceDelete: backspaceDelete$1 };\r\n\r\n var generate$1 = function (cases) {\r\n if (!isArray(cases)) {\r\n throw new Error('cases must be an array');\r\n }\r\n if (cases.length === 0) {\r\n throw new Error('there must be at least one case');\r\n }\r\n var constructors = [];\r\n var adt = {};\r\n each(cases, function (acase, count) {\r\n var keys$$1 = keys(acase);\r\n if (keys$$1.length !== 1) {\r\n throw new Error('one and only one name per case');\r\n }\r\n var key = keys$$1[0];\r\n var value = acase[key];\r\n if (adt[key] !== undefined) {\r\n throw new Error('duplicate key detected:' + key);\r\n } else if (key === 'cata') {\r\n throw new Error('cannot have a case named cata (sorry)');\r\n } else if (!isArray(value)) {\r\n throw new Error('case arguments must be an array');\r\n }\r\n constructors.push(key);\r\n adt[key] = function () {\r\n var argLength = arguments.length;\r\n if (argLength !== value.length) {\r\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\r\n }\r\n var args = new Array(argLength);\r\n for (var i = 0; i < args.length; i++)\r\n args[i] = arguments[i];\r\n var match = function (branches) {\r\n var branchKeys = keys(branches);\r\n if (constructors.length !== branchKeys.length) {\r\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\r\n }\r\n var allReqd = forall(constructors, function (reqKey) {\r\n return contains(branchKeys, reqKey);\r\n });\r\n if (!allReqd)\r\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\r\n return branches[key].apply(null, args);\r\n };\r\n return {\r\n fold: function () {\r\n if (arguments.length !== cases.length) {\r\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + arguments.length);\r\n }\r\n var target = arguments[count];\r\n return target.apply(null, args);\r\n },\r\n match: match,\r\n log: function (label) {\r\n console.log(label, {\r\n constructors: constructors,\r\n constructor: key,\r\n params: args\r\n });\r\n }\r\n };\r\n };\r\n });\r\n return adt;\r\n };\r\n var Adt = { generate: generate$1 };\r\n\r\n var isCompoundElement = function (node) {\r\n return isTableCell(Element$$1.fromDom(node)) || isListItem(Element$$1.fromDom(node));\r\n };\r\n var DeleteAction = Adt.generate([\r\n { remove: ['element'] },\r\n { moveToElement: ['element'] },\r\n { moveToPosition: ['position'] }\r\n ]);\r\n var isAtContentEditableBlockCaret = function (forward, from) {\r\n var elm = from.getNode(forward === false);\r\n var caretLocation = forward ? 'after' : 'before';\r\n return $_bjermr1rjkmcwkij.isElement(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\r\n };\r\n var isDeleteFromCefDifferentBlocks = function (root, forward, from, to) {\r\n var inSameBlock = function (elm) {\r\n return isInline(Element$$1.fromDom(elm)) && !isInSameBlock(from, to, root);\r\n };\r\n return getRelativeCefElm(!forward, from).fold(function () {\r\n return getRelativeCefElm(forward, to).fold(constant(false), inSameBlock);\r\n }, inSameBlock);\r\n };\r\n var deleteEmptyBlockOrMoveToCef = function (root, forward, from, to) {\r\n var toCefElm = to.getNode(forward === false);\r\n return $_8z75uj3sjkmcwkx3.getParentBlock(Element$$1.fromDom(root), Element$$1.fromDom(from.getNode())).map(function (blockElm) {\r\n return $_1jnfso3wjkmcwl1v.isEmpty(blockElm) ? DeleteAction.remove(blockElm.dom()) : DeleteAction.moveToElement(toCefElm);\r\n }).orThunk(function () {\r\n return Option.some(DeleteAction.moveToElement(toCefElm));\r\n });\r\n };\r\n var findCefPosition = function (root, forward, from) {\r\n return $_1m3f3j2yjkmcwkqg.fromPosition(forward, root, from).bind(function (to) {\r\n if (isCompoundElement(to.getNode())) {\r\n return Option.none();\r\n } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to)) {\r\n return Option.none();\r\n } else if (forward && $_bjermr1rjkmcwkij.isContentEditableFalse(to.getNode())) {\r\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\r\n } else if (forward === false && $_bjermr1rjkmcwkij.isContentEditableFalse(to.getNode(true))) {\r\n return deleteEmptyBlockOrMoveToCef(root, forward, from, to);\r\n } else if (forward && isAfterContentEditableFalse(from)) {\r\n return Option.some(DeleteAction.moveToPosition(to));\r\n } else if (forward === false && isBeforeContentEditableFalse(from)) {\r\n return Option.some(DeleteAction.moveToPosition(to));\r\n } else {\r\n return Option.none();\r\n }\r\n });\r\n };\r\n var getContentEditableBlockAction = function (forward, elm) {\r\n if (forward && $_bjermr1rjkmcwkij.isContentEditableFalse(elm.nextSibling)) {\r\n return Option.some(DeleteAction.moveToElement(elm.nextSibling));\r\n } else if (forward === false && $_bjermr1rjkmcwkij.isContentEditableFalse(elm.previousSibling)) {\r\n return Option.some(DeleteAction.moveToElement(elm.previousSibling));\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var skipMoveToActionFromInlineCefToContent = function (root, from, deleteAction) {\r\n return deleteAction.fold(function (elm) {\r\n return Option.some(DeleteAction.remove(elm));\r\n }, function (elm) {\r\n return Option.some(DeleteAction.moveToElement(elm));\r\n }, function (to) {\r\n if (isInSameBlock(from, to, root)) {\r\n return Option.none();\r\n } else {\r\n return Option.some(DeleteAction.moveToPosition(to));\r\n }\r\n });\r\n };\r\n var getContentEditableAction = function (root, forward, from) {\r\n if (isAtContentEditableBlockCaret(forward, from)) {\r\n return getContentEditableBlockAction(forward, from.getNode(forward === false)).fold(function () {\r\n return findCefPosition(root, forward, from);\r\n }, Option.some);\r\n } else {\r\n return findCefPosition(root, forward, from).bind(function (deleteAction) {\r\n return skipMoveToActionFromInlineCefToContent(root, from, deleteAction);\r\n });\r\n }\r\n };\r\n var read$2 = function (root, forward, rng) {\r\n var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\r\n var from = CaretPosition$1.fromRangeStart(normalizedRange);\r\n if (forward === false && isAfterContentEditableFalse(from)) {\r\n return Option.some(DeleteAction.remove(from.getNode(true)));\r\n } else if (forward && isBeforeContentEditableFalse(from)) {\r\n return Option.some(DeleteAction.remove(from.getNode()));\r\n } else {\r\n return getContentEditableAction(root, forward, from);\r\n }\r\n };\r\n\r\n var needsReposition = function (pos, elm) {\r\n var container = pos.container();\r\n var offset = pos.offset();\r\n return CaretPosition$1.isTextPosition(pos) === false && container === elm.parentNode && offset > CaretPosition$1.before(elm).offset();\r\n };\r\n var reposition = function (elm, pos) {\r\n return needsReposition(pos, elm) ? CaretPosition$1(pos.container(), pos.offset() - 1) : pos;\r\n };\r\n var beforeOrStartOf = function (node) {\r\n return $_bjermr1rjkmcwkij.isText(node) ? CaretPosition$1(node, 0) : CaretPosition$1.before(node);\r\n };\r\n var afterOrEndOf = function (node) {\r\n return $_bjermr1rjkmcwkij.isText(node) ? CaretPosition$1(node, node.data.length) : CaretPosition$1.after(node);\r\n };\r\n var getPreviousSiblingCaretPosition = function (elm) {\r\n if (isCaretCandidate(elm.previousSibling)) {\r\n return Option.some(afterOrEndOf(elm.previousSibling));\r\n } else {\r\n return elm.previousSibling ? $_1m3f3j2yjkmcwkqg.lastPositionIn(elm.previousSibling) : Option.none();\r\n }\r\n };\r\n var getNextSiblingCaretPosition = function (elm) {\r\n if (isCaretCandidate(elm.nextSibling)) {\r\n return Option.some(beforeOrStartOf(elm.nextSibling));\r\n } else {\r\n return elm.nextSibling ? $_1m3f3j2yjkmcwkqg.firstPositionIn(elm.nextSibling) : Option.none();\r\n }\r\n };\r\n var findCaretPositionBackwardsFromElm = function (rootElement, elm) {\r\n var startPosition = CaretPosition$1.before(elm.previousSibling ? elm.previousSibling : elm.parentNode);\r\n return $_1m3f3j2yjkmcwkqg.prevPosition(rootElement, startPosition).fold(function () {\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(rootElement, CaretPosition$1.after(elm));\r\n }, Option.some);\r\n };\r\n var findCaretPositionForwardsFromElm = function (rootElement, elm) {\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(rootElement, CaretPosition$1.after(elm)).fold(function () {\r\n return $_1m3f3j2yjkmcwkqg.prevPosition(rootElement, CaretPosition$1.before(elm));\r\n }, Option.some);\r\n };\r\n var findCaretPositionBackwards = function (rootElement, elm) {\r\n return getPreviousSiblingCaretPosition(elm).orThunk(function () {\r\n return getNextSiblingCaretPosition(elm);\r\n }).orThunk(function () {\r\n return findCaretPositionBackwardsFromElm(rootElement, elm);\r\n });\r\n };\r\n var findCaretPositionForward = function (rootElement, elm) {\r\n return getNextSiblingCaretPosition(elm).orThunk(function () {\r\n return getPreviousSiblingCaretPosition(elm);\r\n }).orThunk(function () {\r\n return findCaretPositionForwardsFromElm(rootElement, elm);\r\n });\r\n };\r\n var findCaretPosition$1 = function (forward, rootElement, elm) {\r\n return forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\r\n };\r\n var findCaretPosOutsideElmAfterDelete = function (forward, rootElement, elm) {\r\n return findCaretPosition$1(forward, rootElement, elm).map(curry(reposition, elm));\r\n };\r\n var setSelection = function (editor, forward, pos) {\r\n pos.fold(function () {\r\n editor.focus();\r\n }, function (pos) {\r\n editor.selection.setRng(pos.toRange(), forward);\r\n });\r\n };\r\n var eqRawNode = function (rawNode) {\r\n return function (elm) {\r\n return elm.dom() === rawNode;\r\n };\r\n };\r\n var isBlock$2 = function (editor, elm) {\r\n return elm && editor.schema.getBlockElements().hasOwnProperty($_2xwdjv11jkmcwke0.name(elm));\r\n };\r\n var paddEmptyBlock = function (elm) {\r\n if ($_1jnfso3wjkmcwl1v.isEmpty(elm)) {\r\n var br = Element$$1.fromHtml('
');\r\n $_eualm21wjkmcwkku.empty(elm);\r\n $_f4qt4v1yjkmcwkl2.append(elm, br);\r\n return Option.some(CaretPosition$1.before(br.dom()));\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var deleteNormalized = function (elm, afterDeletePosOpt) {\r\n return liftN([\r\n $_ca6pc118jkmcwkfs.prevSibling(elm),\r\n $_ca6pc118jkmcwkfs.nextSibling(elm),\r\n afterDeletePosOpt\r\n ], function (prev, next, afterDeletePos) {\r\n var offset;\r\n var prevNode = prev.dom();\r\n var nextNode = next.dom();\r\n if ($_bjermr1rjkmcwkij.isText(prevNode) && $_bjermr1rjkmcwkij.isText(nextNode)) {\r\n offset = prevNode.data.length;\r\n prevNode.appendData(nextNode.data);\r\n $_eualm21wjkmcwkku.remove(next);\r\n $_eualm21wjkmcwkku.remove(elm);\r\n if (afterDeletePos.container() === nextNode) {\r\n return CaretPosition$1(prevNode, offset);\r\n } else {\r\n return afterDeletePos;\r\n }\r\n } else {\r\n $_eualm21wjkmcwkku.remove(elm);\r\n return afterDeletePos;\r\n }\r\n }).orThunk(function () {\r\n $_eualm21wjkmcwkku.remove(elm);\r\n return afterDeletePosOpt;\r\n });\r\n };\r\n var deleteElement = function (editor, forward, elm) {\r\n var afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom());\r\n var parentBlock = $_253nd92ajkmcwkmp.ancestor(elm, curry(isBlock$2, editor), eqRawNode(editor.getBody()));\r\n var normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos);\r\n if (editor.dom.isEmpty(editor.getBody())) {\r\n editor.setContent('');\r\n editor.selection.setCursorLocation();\r\n } else {\r\n parentBlock.bind(paddEmptyBlock).fold(function () {\r\n setSelection(editor, forward, normalizedAfterDeletePos);\r\n }, function (paddPos) {\r\n setSelection(editor, forward, Option.some(paddPos));\r\n });\r\n }\r\n };\r\n var $_4yq1i444jkmcwl3w = { deleteElement: deleteElement };\r\n\r\n var deleteElement$1 = function (editor, forward) {\r\n return function (element) {\r\n editor._selectionOverrides.hideFakeCaret();\r\n $_4yq1i444jkmcwl3w.deleteElement(editor, forward, Element$$1.fromDom(element));\r\n return true;\r\n };\r\n };\r\n var moveToElement = function (editor, forward) {\r\n return function (element) {\r\n var pos = forward ? CaretPosition$1.before(element) : CaretPosition$1.after(element);\r\n editor.selection.setRng(pos.toRange());\r\n return true;\r\n };\r\n };\r\n var moveToPosition = function (editor) {\r\n return function (pos) {\r\n editor.selection.setRng(pos.toRange());\r\n return true;\r\n };\r\n };\r\n var backspaceDeleteCaret = function (editor, forward) {\r\n var result = read$2(editor.getBody(), forward, editor.selection.getRng()).map(function (deleteAction) {\r\n return deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor));\r\n });\r\n return result.getOr(false);\r\n };\r\n var deleteOffscreenSelection = function (rootElement) {\r\n each($_2gqm0n27jkmcwkmi.descendants(rootElement, '.mce-offscreen-selection'), $_eualm21wjkmcwkku.remove);\r\n };\r\n var backspaceDeleteRange = function (editor, forward) {\r\n var selectedElement = editor.selection.getNode();\r\n if ($_bjermr1rjkmcwkij.isContentEditableFalse(selectedElement)) {\r\n deleteOffscreenSelection(Element$$1.fromDom(editor.getBody()));\r\n $_4yq1i444jkmcwl3w.deleteElement(editor, forward, Element$$1.fromDom(editor.selection.getNode()));\r\n $_8z75uj3sjkmcwkx3.paddEmptyBody(editor);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var getContentEditableRoot = function (root, node) {\r\n while (node && node !== root) {\r\n if ($_bjermr1rjkmcwkij.isContentEditableTrue(node) || $_bjermr1rjkmcwkij.isContentEditableFalse(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var paddEmptyElement = function (editor) {\r\n var br;\r\n var ceRoot = getContentEditableRoot(editor.getBody(), editor.selection.getNode());\r\n if ($_bjermr1rjkmcwkij.isContentEditableTrue(ceRoot) && editor.dom.isBlock(ceRoot) && editor.dom.isEmpty(ceRoot)) {\r\n br = editor.dom.create('br', { 'data-mce-bogus': '1' });\r\n editor.dom.setHTML(ceRoot, '');\r\n ceRoot.appendChild(br);\r\n editor.selection.setRng(CaretPosition$1.before(br).toRange());\r\n }\r\n return true;\r\n };\r\n var backspaceDelete$2 = function (editor, forward) {\r\n if (editor.selection.isCollapsed()) {\r\n return backspaceDeleteCaret(editor, forward);\r\n } else {\r\n return backspaceDeleteRange(editor, forward);\r\n }\r\n };\r\n var $_1hyiiy41jkmcwl2z = {\r\n backspaceDelete: backspaceDelete$2,\r\n paddEmptyElement: paddEmptyElement\r\n };\r\n\r\n var isText$8 = $_bjermr1rjkmcwkij.isText;\r\n var startsWithCaretContainer$1 = function (node) {\r\n return isText$8(node) && node.data[0] === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var endsWithCaretContainer$1 = function (node) {\r\n return isText$8(node) && node.data[node.data.length - 1] === $_cadvcr2pjkmcwkph.ZWSP;\r\n };\r\n var createZwsp = function (node) {\r\n return node.ownerDocument.createTextNode($_cadvcr2pjkmcwkph.ZWSP);\r\n };\r\n var insertBefore$1 = function (node) {\r\n if (isText$8(node.previousSibling)) {\r\n if (endsWithCaretContainer$1(node.previousSibling)) {\r\n return node.previousSibling;\r\n } else {\r\n node.previousSibling.appendData($_cadvcr2pjkmcwkph.ZWSP);\r\n return node.previousSibling;\r\n }\r\n } else if (isText$8(node)) {\r\n if (startsWithCaretContainer$1(node)) {\r\n return node;\r\n } else {\r\n node.insertData(0, $_cadvcr2pjkmcwkph.ZWSP);\r\n return node;\r\n }\r\n } else {\r\n var newNode = createZwsp(node);\r\n node.parentNode.insertBefore(newNode, node);\r\n return newNode;\r\n }\r\n };\r\n var insertAfter$1 = function (node) {\r\n if (isText$8(node.nextSibling)) {\r\n if (startsWithCaretContainer$1(node.nextSibling)) {\r\n return node.nextSibling;\r\n } else {\r\n node.nextSibling.insertData(0, $_cadvcr2pjkmcwkph.ZWSP);\r\n return node.nextSibling;\r\n }\r\n } else if (isText$8(node)) {\r\n if (endsWithCaretContainer$1(node)) {\r\n return node;\r\n } else {\r\n node.appendData($_cadvcr2pjkmcwkph.ZWSP);\r\n return node;\r\n }\r\n } else {\r\n var newNode = createZwsp(node);\r\n if (node.nextSibling) {\r\n node.parentNode.insertBefore(newNode, node.nextSibling);\r\n } else {\r\n node.parentNode.appendChild(newNode);\r\n }\r\n return newNode;\r\n }\r\n };\r\n var insertInline$1 = function (before, node) {\r\n return before ? insertBefore$1(node) : insertAfter$1(node);\r\n };\r\n var insertInlineBefore = curry(insertInline$1, true);\r\n var insertInlineAfter = curry(insertInline$1, false);\r\n\r\n var insertInlinePos = function (pos, before) {\r\n if ($_bjermr1rjkmcwkij.isText(pos.container())) {\r\n return insertInline$1(before, pos.container());\r\n } else {\r\n return insertInline$1(before, pos.getNode());\r\n }\r\n };\r\n var isPosCaretContainer = function (pos, caret) {\r\n var caretNode = caret.get();\r\n return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\r\n };\r\n var renderCaret = function (caret, location) {\r\n return location.fold(function (element) {\r\n $_xl2r331jkmcwkri.remove(caret.get());\r\n var text = insertInlineBefore(element);\r\n caret.set(text);\r\n return Option.some(CaretPosition$1(text, text.length - 1));\r\n }, function (element) {\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(element).map(function (pos) {\r\n if (!isPosCaretContainer(pos, caret)) {\r\n $_xl2r331jkmcwkri.remove(caret.get());\r\n var text = insertInlinePos(pos, true);\r\n caret.set(text);\r\n return CaretPosition$1(text, 1);\r\n } else {\r\n return CaretPosition$1(caret.get(), 1);\r\n }\r\n });\r\n }, function (element) {\r\n return $_1m3f3j2yjkmcwkqg.lastPositionIn(element).map(function (pos) {\r\n if (!isPosCaretContainer(pos, caret)) {\r\n $_xl2r331jkmcwkri.remove(caret.get());\r\n var text = insertInlinePos(pos, false);\r\n caret.set(text);\r\n return CaretPosition$1(text, text.length - 1);\r\n } else {\r\n return CaretPosition$1(caret.get(), caret.get().length - 1);\r\n }\r\n });\r\n }, function (element) {\r\n $_xl2r331jkmcwkri.remove(caret.get());\r\n var text = insertInlineAfter(element);\r\n caret.set(text);\r\n return Option.some(CaretPosition$1(text, 1));\r\n });\r\n };\r\n var $_efgx6546jkmcwl4n = { renderCaret: renderCaret };\r\n\r\n var evaluateUntil = function (fns, args) {\r\n for (var i = 0; i < fns.length; i++) {\r\n var result = fns[i].apply(null, args);\r\n if (result.isSome()) {\r\n return result;\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var $_8hyv6o49jkmcwl58 = { evaluateUntil: evaluateUntil };\r\n\r\n var Location = Adt.generate([\r\n { before: ['element'] },\r\n { start: ['element'] },\r\n { end: ['element'] },\r\n { after: ['element'] }\r\n ]);\r\n var rescope = function (rootNode, node) {\r\n var parentBlock = getParentBlock(node, rootNode);\r\n return parentBlock ? parentBlock : rootNode;\r\n };\r\n var before$3 = function (isInlineTarget, rootNode, pos) {\r\n var nPos = $_crqmqb3tjkmcwkxd.normalizeForwards(pos);\r\n var scope = rescope(rootNode, nPos.container());\r\n return $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, scope, nPos).fold(function () {\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(scope, nPos).bind(curry($_crqmqb3tjkmcwkxd.findRootInline, isInlineTarget, scope)).map(function (inline) {\r\n return Location.before(inline);\r\n });\r\n }, Option.none);\r\n };\r\n var isNotInsideFormatCaretContainer = function (rootNode, elm) {\r\n return getParentCaretContainer(rootNode, elm) === null;\r\n };\r\n var findInsideRootInline = function (isInlineTarget, rootNode, pos) {\r\n return $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\r\n };\r\n var start = function (isInlineTarget, rootNode, pos) {\r\n var nPos = $_crqmqb3tjkmcwkxd.normalizeBackwards(pos);\r\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\r\n var prevPos = $_1m3f3j2yjkmcwkqg.prevPosition(inline, nPos);\r\n return prevPos.isNone() ? Option.some(Location.start(inline)) : Option.none();\r\n });\r\n };\r\n var end = function (isInlineTarget, rootNode, pos) {\r\n var nPos = $_crqmqb3tjkmcwkxd.normalizeForwards(pos);\r\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(function (inline) {\r\n var nextPos = $_1m3f3j2yjkmcwkqg.nextPosition(inline, nPos);\r\n return nextPos.isNone() ? Option.some(Location.end(inline)) : Option.none();\r\n });\r\n };\r\n var after$3 = function (isInlineTarget, rootNode, pos) {\r\n var nPos = $_crqmqb3tjkmcwkxd.normalizeBackwards(pos);\r\n var scope = rescope(rootNode, nPos.container());\r\n return $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, scope, nPos).fold(function () {\r\n return $_1m3f3j2yjkmcwkqg.prevPosition(scope, nPos).bind(curry($_crqmqb3tjkmcwkxd.findRootInline, isInlineTarget, scope)).map(function (inline) {\r\n return Location.after(inline);\r\n });\r\n }, Option.none);\r\n };\r\n var isValidLocation = function (location) {\r\n return $_crqmqb3tjkmcwkxd.isRtl(getElement(location)) === false;\r\n };\r\n var readLocation = function (isInlineTarget, rootNode, pos) {\r\n var location = $_8hyv6o49jkmcwl58.evaluateUntil([\r\n before$3,\r\n start,\r\n end,\r\n after$3\r\n ], [\r\n isInlineTarget,\r\n rootNode,\r\n pos\r\n ]);\r\n return location.filter(isValidLocation);\r\n };\r\n var getElement = function (location) {\r\n return location.fold(identity, identity, identity, identity);\r\n };\r\n var getName = function (location) {\r\n return location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\r\n };\r\n var outside = function (location) {\r\n return location.fold(Location.before, Location.before, Location.after, Location.after);\r\n };\r\n var inside = function (location) {\r\n return location.fold(Location.start, Location.start, Location.end, Location.end);\r\n };\r\n var isEq$1 = function (location1, location2) {\r\n return getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\r\n };\r\n var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) {\r\n return liftN([\r\n $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, rootNode, from),\r\n $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, rootNode, to)\r\n ], function (fromInline, toInline) {\r\n if (fromInline !== toInline && $_crqmqb3tjkmcwkxd.hasSameParentBlock(rootNode, fromInline, toInline)) {\r\n return Location.after(forward ? fromInline : toInline);\r\n } else {\r\n return location;\r\n }\r\n }).getOr(location);\r\n };\r\n var skipNoMovement = function (fromLocation, toLocation) {\r\n return fromLocation.fold(constant(true), function (fromLocation) {\r\n return !isEq$1(fromLocation, toLocation);\r\n });\r\n };\r\n var findLocationTraverse = function (forward, isInlineTarget, rootNode, fromLocation, pos) {\r\n var from = $_crqmqb3tjkmcwkxd.normalizePosition(forward, pos);\r\n var to = $_1m3f3j2yjkmcwkqg.fromPosition(forward, rootNode, from).map(curry($_crqmqb3tjkmcwkxd.normalizePosition, forward));\r\n var location = to.fold(function () {\r\n return fromLocation.map(outside);\r\n }, function (to) {\r\n return readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation));\r\n });\r\n return location.filter(isValidLocation);\r\n };\r\n var findLocationSimple = function (forward, location) {\r\n if (forward) {\r\n return location.fold(compose(Option.some, Location.start), Option.none, compose(Option.some, Location.after), Option.none);\r\n } else {\r\n return location.fold(Option.none, compose(Option.some, Location.before), Option.none, compose(Option.some, Location.end));\r\n }\r\n };\r\n var findLocation = function (forward, isInlineTarget, rootNode, pos) {\r\n var from = $_crqmqb3tjkmcwkxd.normalizePosition(forward, pos);\r\n var fromLocation = readLocation(isInlineTarget, rootNode, from);\r\n return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(function () {\r\n return findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos);\r\n });\r\n };\r\n var $_gau9ep48jkmcwl4x = {\r\n readLocation: readLocation,\r\n findLocation: findLocation,\r\n prevLocation: curry(findLocation, false),\r\n nextLocation: curry(findLocation, true),\r\n getElement: getElement,\r\n outside: outside,\r\n inside: inside\r\n };\r\n\r\n var hasSelectionModifyApi = function (editor) {\r\n return isFunction(editor.selection.getSel().modify);\r\n };\r\n var moveRel = function (forward, selection, pos) {\r\n var delta = forward ? 1 : -1;\r\n selection.setRng(CaretPosition$1(pos.container(), pos.offset() + delta).toRange());\r\n selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\r\n return true;\r\n };\r\n var moveByWord = function (forward, editor) {\r\n var rng = editor.selection.getRng();\r\n var pos = forward ? CaretPosition$1.fromRangeEnd(rng) : CaretPosition$1.fromRangeStart(rng);\r\n if (!hasSelectionModifyApi(editor)) {\r\n return false;\r\n } else if (forward && isBeforeInline(pos)) {\r\n return moveRel(true, editor.selection, pos);\r\n } else if (!forward && isAfterInline(pos)) {\r\n return moveRel(false, editor.selection, pos);\r\n } else {\r\n return false;\r\n }\r\n };\r\n var $_dessn94bjkmcwl5p = {\r\n hasSelectionModifyApi: hasSelectionModifyApi,\r\n moveByWord: moveByWord\r\n };\r\n\r\n var setCaretPosition = function (editor, pos) {\r\n var rng = editor.dom.createRng();\r\n rng.setStart(pos.container(), pos.offset());\r\n rng.setEnd(pos.container(), pos.offset());\r\n editor.selection.setRng(rng);\r\n };\r\n var isFeatureEnabled = function (editor) {\r\n return editor.settings.inline_boundaries !== false;\r\n };\r\n var setSelected = function (state, elm) {\r\n if (state) {\r\n elm.setAttribute('data-mce-selected', 'inline-boundary');\r\n } else {\r\n elm.removeAttribute('data-mce-selected');\r\n }\r\n };\r\n var renderCaretLocation = function (editor, caret, location) {\r\n return $_efgx6546jkmcwl4n.renderCaret(caret, location).map(function (pos) {\r\n setCaretPosition(editor, pos);\r\n return location;\r\n });\r\n };\r\n var findLocation$1 = function (editor, caret, forward) {\r\n var rootNode = editor.getBody();\r\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n var location = $_gau9ep48jkmcwl4x.findLocation(forward, isInlineTarget, rootNode, from);\r\n return location.bind(function (location) {\r\n return renderCaretLocation(editor, caret, location);\r\n });\r\n };\r\n var toggleInlines = function (isInlineTarget, dom, elms) {\r\n var selectedInlines = filter(dom.select('*[data-mce-selected=\"inline-boundary\"]'), isInlineTarget);\r\n var targetInlines = filter(elms, isInlineTarget);\r\n each(difference(selectedInlines, targetInlines), curry(setSelected, false));\r\n each(difference(targetInlines, selectedInlines), curry(setSelected, true));\r\n };\r\n var safeRemoveCaretContainer = function (editor, caret) {\r\n if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) {\r\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n if (CaretPosition$1.isTextPosition(pos) && $_crqmqb3tjkmcwkxd.isAtZwsp(pos) === false) {\r\n setCaretPosition(editor, $_xl2r331jkmcwkri.removeAndReposition(caret.get(), pos));\r\n caret.set(null);\r\n }\r\n }\r\n };\r\n var renderInsideInlineCaret = function (isInlineTarget, editor, caret, elms) {\r\n if (editor.selection.isCollapsed()) {\r\n var inlines = filter(elms, isInlineTarget);\r\n each(inlines, function (inline) {\r\n var pos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {\r\n return renderCaretLocation(editor, caret, location);\r\n });\r\n });\r\n }\r\n };\r\n var move = function (editor, caret, forward) {\r\n return function () {\r\n return isFeatureEnabled(editor) ? findLocation$1(editor, caret, forward).isSome() : false;\r\n };\r\n };\r\n var moveWord = function (forward, editor, caret) {\r\n return function () {\r\n return isFeatureEnabled(editor) ? $_dessn94bjkmcwl5p.moveByWord(forward, editor) : false;\r\n };\r\n };\r\n var setupSelectedState = function (editor) {\r\n var caret = Cell(null);\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n editor.on('NodeChange', function (e) {\r\n if (isFeatureEnabled(editor)) {\r\n toggleInlines(isInlineTarget, editor.dom, e.parents);\r\n safeRemoveCaretContainer(editor, caret);\r\n renderInsideInlineCaret(isInlineTarget, editor, caret, e.parents);\r\n }\r\n });\r\n return caret;\r\n };\r\n var moveNextWord = curry(moveWord, true);\r\n var movePrevWord = curry(moveWord, false);\r\n var $_dl6t9m4ajkmcwl5b = {\r\n move: move,\r\n moveNextWord: moveNextWord,\r\n movePrevWord: movePrevWord,\r\n setupSelectedState: setupSelectedState,\r\n setCaretPosition: setCaretPosition\r\n };\r\n\r\n var isFeatureEnabled$1 = function (editor) {\r\n return editor.settings.inline_boundaries !== false;\r\n };\r\n var rangeFromPositions = function (from, to) {\r\n var range = document.createRange();\r\n range.setStart(from.container(), from.offset());\r\n range.setEnd(to.container(), to.offset());\r\n return range;\r\n };\r\n var hasOnlyTwoOrLessPositionsLeft = function (elm) {\r\n return liftN([\r\n $_1m3f3j2yjkmcwkqg.firstPositionIn(elm),\r\n $_1m3f3j2yjkmcwkqg.lastPositionIn(elm)\r\n ], function (firstPos, lastPos) {\r\n var normalizedFirstPos = $_crqmqb3tjkmcwkxd.normalizePosition(true, firstPos);\r\n var normalizedLastPos = $_crqmqb3tjkmcwkxd.normalizePosition(false, lastPos);\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(elm, normalizedFirstPos).map(function (pos) {\r\n return pos.isEqual(normalizedLastPos);\r\n }).getOr(true);\r\n }).getOr(true);\r\n };\r\n var setCaretLocation = function (editor, caret) {\r\n return function (location$$1) {\r\n return $_efgx6546jkmcwl4n.renderCaret(caret, location$$1).map(function (pos) {\r\n $_dl6t9m4ajkmcwl5b.setCaretPosition(editor, pos);\r\n return true;\r\n }).getOr(false);\r\n };\r\n };\r\n var deleteFromTo = function (editor, caret, from, to) {\r\n var rootNode = editor.getBody();\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n editor.undoManager.ignore(function () {\r\n editor.selection.setRng(rangeFromPositions(from, to));\r\n editor.execCommand('Delete');\r\n $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, rootNode, CaretPosition$1.fromRangeStart(editor.selection.getRng())).map($_gau9ep48jkmcwl4x.inside).map(setCaretLocation(editor, caret));\r\n });\r\n editor.nodeChanged();\r\n };\r\n var rescope$1 = function (rootNode, node) {\r\n var parentBlock = getParentBlock(node, rootNode);\r\n return parentBlock ? parentBlock : rootNode;\r\n };\r\n var backspaceDeleteCollapsed = function (editor, caret, forward, from) {\r\n var rootNode = rescope$1(editor.getBody(), from.container());\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n var fromLocation = $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, rootNode, from);\r\n return fromLocation.bind(function (location$$1) {\r\n if (forward) {\r\n return location$$1.fold(constant(Option.some($_gau9ep48jkmcwl4x.inside(location$$1))), Option.none, constant(Option.some($_gau9ep48jkmcwl4x.outside(location$$1))), Option.none);\r\n } else {\r\n return location$$1.fold(Option.none, constant(Option.some($_gau9ep48jkmcwl4x.outside(location$$1))), Option.none, constant(Option.some($_gau9ep48jkmcwl4x.inside(location$$1))));\r\n }\r\n }).map(setCaretLocation(editor, caret)).getOrThunk(function () {\r\n var toPosition = $_1m3f3j2yjkmcwkqg.navigate(forward, rootNode, from);\r\n var toLocation = toPosition.bind(function (pos) {\r\n return $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, rootNode, pos);\r\n });\r\n if (fromLocation.isSome() && toLocation.isSome()) {\r\n return $_crqmqb3tjkmcwkxd.findRootInline(isInlineTarget, rootNode, from).map(function (elm) {\r\n if (hasOnlyTwoOrLessPositionsLeft(elm)) {\r\n $_4yq1i444jkmcwl3w.deleteElement(editor, forward, Element$$1.fromDom(elm));\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }).getOr(false);\r\n } else {\r\n return toLocation.bind(function (_) {\r\n return toPosition.map(function (to) {\r\n if (forward) {\r\n deleteFromTo(editor, caret, from, to);\r\n } else {\r\n deleteFromTo(editor, caret, to, from);\r\n }\r\n return true;\r\n });\r\n }).getOr(false);\r\n }\r\n });\r\n };\r\n var backspaceDelete$3 = function (editor, caret, forward) {\r\n if (editor.selection.isCollapsed() && isFeatureEnabled$1(editor)) {\r\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n return backspaceDeleteCollapsed(editor, caret, forward, from);\r\n }\r\n return false;\r\n };\r\n var $_dqvreg45jkmcwl4e = { backspaceDelete: backspaceDelete$3 };\r\n\r\n var tableCellRng = Immutable('start', 'end');\r\n var tableSelection = Immutable('rng', 'table', 'cells');\r\n var deleteAction = Adt.generate([\r\n { removeTable: ['element'] },\r\n { emptyCells: ['cells'] }\r\n ]);\r\n var isRootFromElement = function (root) {\r\n return curry($_e4hu6h1ejkmcwkgj.eq, root);\r\n };\r\n var getClosestCell$1 = function (container, isRoot) {\r\n return $_4ki4d929jkmcwkmn.closest(Element$$1.fromDom(container), 'td,th', isRoot);\r\n };\r\n var getClosestTable = function (cell, isRoot) {\r\n return $_4ki4d929jkmcwkmn.ancestor(cell, 'table', isRoot);\r\n };\r\n var isExpandedCellRng = function (cellRng) {\r\n return $_e4hu6h1ejkmcwkgj.eq(cellRng.start(), cellRng.end()) === false;\r\n };\r\n var getTableFromCellRng = function (cellRng, isRoot) {\r\n return getClosestTable(cellRng.start(), isRoot).bind(function (startParentTable) {\r\n return getClosestTable(cellRng.end(), isRoot).bind(function (endParentTable) {\r\n return $_e4hu6h1ejkmcwkgj.eq(startParentTable, endParentTable) ? Option.some(startParentTable) : Option.none();\r\n });\r\n });\r\n };\r\n var getTableCells = function (table) {\r\n return $_2gqm0n27jkmcwkmi.descendants(table, 'td,th');\r\n };\r\n var getCellRangeFromStartTable = function (cellRng, isRoot) {\r\n return getClosestTable(cellRng.start(), isRoot).bind(function (table) {\r\n return last(getTableCells(table)).map(function (endCell) {\r\n return tableCellRng(cellRng.start(), endCell);\r\n });\r\n });\r\n };\r\n var partialSelection = function (isRoot, rng) {\r\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\r\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\r\n return rng.collapsed ? Option.none() : liftN([\r\n startCell,\r\n endCell\r\n ], tableCellRng).fold(function () {\r\n return startCell.fold(function () {\r\n return endCell.bind(function (endCell) {\r\n return getClosestTable(endCell, isRoot).bind(function (table) {\r\n return head(getTableCells(table)).map(function (startCell) {\r\n return tableCellRng(startCell, endCell);\r\n });\r\n });\r\n });\r\n }, function (startCell) {\r\n return getClosestTable(startCell, isRoot).bind(function (table) {\r\n return last(getTableCells(table)).map(function (endCell) {\r\n return tableCellRng(startCell, endCell);\r\n });\r\n });\r\n });\r\n }, function (cellRng) {\r\n return isWithinSameTable(isRoot, cellRng) ? Option.none() : getCellRangeFromStartTable(cellRng, isRoot);\r\n });\r\n };\r\n var isWithinSameTable = function (isRoot, cellRng) {\r\n return getTableFromCellRng(cellRng, isRoot).isSome();\r\n };\r\n var getCellRng = function (rng, isRoot) {\r\n var startCell = getClosestCell$1(rng.startContainer, isRoot);\r\n var endCell = getClosestCell$1(rng.endContainer, isRoot);\r\n return liftN([\r\n startCell,\r\n endCell\r\n ], tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {\r\n return isWithinSameTable(isRoot, cellRng);\r\n }).orThunk(function () {\r\n return partialSelection(isRoot, rng);\r\n });\r\n };\r\n var getTableSelectionFromCellRng = function (cellRng, isRoot) {\r\n return getTableFromCellRng(cellRng, isRoot).map(function (table) {\r\n return tableSelection(cellRng, table, getTableCells(table));\r\n });\r\n };\r\n var getTableSelectionFromRng = function (root, rng) {\r\n var isRoot = isRootFromElement(root);\r\n return getCellRng(rng, isRoot).bind(function (cellRng) {\r\n return getTableSelectionFromCellRng(cellRng, isRoot);\r\n });\r\n };\r\n var getCellIndex = function (cells, cell) {\r\n return findIndex(cells, function (x) {\r\n return $_e4hu6h1ejkmcwkgj.eq(x, cell);\r\n });\r\n };\r\n var getSelectedCells = function (tableSelection) {\r\n return liftN([\r\n getCellIndex(tableSelection.cells(), tableSelection.rng().start()),\r\n getCellIndex(tableSelection.cells(), tableSelection.rng().end())\r\n ], function (startIndex, endIndex) {\r\n return tableSelection.cells().slice(startIndex, endIndex + 1);\r\n });\r\n };\r\n var getAction = function (tableSelection) {\r\n return getSelectedCells(tableSelection).map(function (selected) {\r\n var cells = tableSelection.cells();\r\n return selected.length === cells.length ? deleteAction.removeTable(tableSelection.table()) : deleteAction.emptyCells(selected);\r\n });\r\n };\r\n var getActionFromCells = function (cells) {\r\n return deleteAction.emptyCells(cells);\r\n };\r\n var getActionFromRange = function (root, rng) {\r\n return getTableSelectionFromRng(root, rng).bind(getAction);\r\n };\r\n var $_2x2sml4djkmcwl68 = {\r\n getActionFromRange: getActionFromRange,\r\n getActionFromCells: getActionFromCells\r\n };\r\n\r\n var getRanges = function (selection) {\r\n var ranges = [];\r\n if (selection) {\r\n for (var i = 0; i < selection.rangeCount; i++) {\r\n ranges.push(selection.getRangeAt(i));\r\n }\r\n }\r\n return ranges;\r\n };\r\n var getSelectedNodes = function (ranges) {\r\n return bind(ranges, function (range$$1) {\r\n var node = getSelectedNode(range$$1);\r\n return node ? [Element$$1.fromDom(node)] : [];\r\n });\r\n };\r\n var hasMultipleRanges = function (selection) {\r\n return getRanges(selection).length > 1;\r\n };\r\n var $_admly54fjkmcwl6u = {\r\n getRanges: getRanges,\r\n getSelectedNodes: getSelectedNodes,\r\n hasMultipleRanges: hasMultipleRanges\r\n };\r\n\r\n var getCellsFromRanges = function (ranges) {\r\n return filter($_admly54fjkmcwl6u.getSelectedNodes(ranges), isTableCell);\r\n };\r\n var getCellsFromElement = function (elm) {\r\n var selectedCells = $_2gqm0n27jkmcwkmi.descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');\r\n return selectedCells;\r\n };\r\n var getCellsFromElementOrRanges = function (ranges, element) {\r\n var selectedCells = getCellsFromElement(element);\r\n var rangeCells = getCellsFromRanges(ranges);\r\n return selectedCells.length > 0 ? selectedCells : rangeCells;\r\n };\r\n var getCellsFromEditor = function (editor) {\r\n return getCellsFromElementOrRanges($_admly54fjkmcwl6u.getRanges(editor.selection.getSel()), Element$$1.fromDom(editor.getBody()));\r\n };\r\n var $_7q5gk44ejkmcwl6p = {\r\n getCellsFromRanges: getCellsFromRanges,\r\n getCellsFromElement: getCellsFromElement,\r\n getCellsFromElementOrRanges: getCellsFromElementOrRanges,\r\n getCellsFromEditor: getCellsFromEditor\r\n };\r\n\r\n var emptyCells = function (editor, cells) {\r\n each(cells, $_zygeg3ljkmcwkvo.fillWithPaddingBr);\r\n editor.selection.setCursorLocation(cells[0].dom(), 0);\r\n return true;\r\n };\r\n var deleteTableElement = function (editor, table) {\r\n $_4yq1i444jkmcwl3w.deleteElement(editor, false, table);\r\n return true;\r\n };\r\n var deleteCellRange = function (editor, rootElm, rng) {\r\n return $_2x2sml4djkmcwl68.getActionFromRange(rootElm, rng).map(function (action) {\r\n return action.fold(curry(deleteTableElement, editor), curry(emptyCells, editor));\r\n });\r\n };\r\n var deleteCaptionRange = function (editor, caption) {\r\n return emptyElement(editor, caption);\r\n };\r\n var deleteTableRange = function (editor, rootElm, rng, startElm) {\r\n return getParentCaption(rootElm, startElm).fold(function () {\r\n return deleteCellRange(editor, rootElm, rng);\r\n }, function (caption) {\r\n return deleteCaptionRange(editor, caption);\r\n }).getOr(false);\r\n };\r\n var deleteRange$1 = function (editor, startElm) {\r\n var rootNode = Element$$1.fromDom(editor.getBody());\r\n var rng = editor.selection.getRng();\r\n var selectedCells = $_7q5gk44ejkmcwl6p.getCellsFromEditor(editor);\r\n return selectedCells.length !== 0 ? emptyCells(editor, selectedCells) : deleteTableRange(editor, rootNode, rng, startElm);\r\n };\r\n var getParentCell = function (rootElm, elm) {\r\n return find($_cir6zl3zjkmcwl2j.parentsAndSelf(elm, rootElm), isTableCell);\r\n };\r\n var getParentCaption = function (rootElm, elm) {\r\n return find($_cir6zl3zjkmcwl2j.parentsAndSelf(elm, rootElm), function (elm) {\r\n return $_2xwdjv11jkmcwke0.name(elm) === 'caption';\r\n });\r\n };\r\n var deleteBetweenCells = function (editor, rootElm, forward, fromCell, from) {\r\n return $_1m3f3j2yjkmcwkqg.navigate(forward, editor.getBody(), from).bind(function (to) {\r\n return getParentCell(rootElm, Element$$1.fromDom(to.getNode())).map(function (toCell) {\r\n return $_e4hu6h1ejkmcwkgj.eq(toCell, fromCell) === false;\r\n });\r\n });\r\n };\r\n var emptyElement = function (editor, elm) {\r\n $_zygeg3ljkmcwkvo.fillWithPaddingBr(elm);\r\n editor.selection.setCursorLocation(elm.dom(), 0);\r\n return Option.some(true);\r\n };\r\n var isDeleteOfLastCharPos = function (fromCaption, forward, from, to) {\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(fromCaption.dom()).bind(function (first) {\r\n return $_1m3f3j2yjkmcwkqg.lastPositionIn(fromCaption.dom()).map(function (last$$1) {\r\n return forward ? from.isEqual(first) && to.isEqual(last$$1) : from.isEqual(last$$1) && to.isEqual(first);\r\n });\r\n }).getOr(true);\r\n };\r\n var emptyCaretCaption = function (editor, elm) {\r\n return emptyElement(editor, elm);\r\n };\r\n var validateCaretCaption = function (rootElm, fromCaption, to) {\r\n return getParentCaption(rootElm, Element$$1.fromDom(to.getNode())).map(function (toCaption) {\r\n return $_e4hu6h1ejkmcwkgj.eq(toCaption, fromCaption) === false;\r\n });\r\n };\r\n var deleteCaretInsideCaption = function (editor, rootElm, forward, fromCaption, from) {\r\n return $_1m3f3j2yjkmcwkqg.navigate(forward, editor.getBody(), from).bind(function (to) {\r\n return isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to);\r\n }).or(Option.some(true));\r\n };\r\n var deleteCaretCells = function (editor, forward, rootElm, startElm) {\r\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n return getParentCell(rootElm, startElm).bind(function (fromCell) {\r\n return $_1jnfso3wjkmcwl1v.isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);\r\n });\r\n };\r\n var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) {\r\n var from = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n return $_1jnfso3wjkmcwl1v.isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\r\n };\r\n var deleteCaret = function (editor, forward, startElm) {\r\n var rootElm = Element$$1.fromDom(editor.getBody());\r\n return getParentCaption(rootElm, startElm).fold(function () {\r\n return deleteCaretCells(editor, forward, rootElm, startElm);\r\n }, function (fromCaption) {\r\n return deleteCaretCaption(editor, forward, rootElm, fromCaption);\r\n }).getOr(false);\r\n };\r\n var backspaceDelete$4 = function (editor, forward) {\r\n var startElm = Element$$1.fromDom(editor.selection.getStart(true));\r\n var cells = $_7q5gk44ejkmcwl6p.getCellsFromEditor(editor);\r\n return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret(editor, forward, startElm) : deleteRange$1(editor, startElm);\r\n };\r\n var $_5lrlvq4cjkmcwl5t = { backspaceDelete: backspaceDelete$4 };\r\n\r\n var nativeCommand = function (editor, command) {\r\n editor.getDoc().execCommand(command, false, null);\r\n };\r\n var deleteCommand = function (editor) {\r\n if ($_1hyiiy41jkmcwl2z.backspaceDelete(editor, false)) {\r\n return;\r\n } else if ($_dqvreg45jkmcwl4e.backspaceDelete(editor, false)) {\r\n return;\r\n } else if ($_1wrlyf3qjkmcwkwe.backspaceDelete(editor, false)) {\r\n return;\r\n } else if ($_5lrlvq4cjkmcwl5t.backspaceDelete(editor)) {\r\n return;\r\n } else if ($_egxtcx40jkmcwl2q.backspaceDelete(editor, false)) {\r\n return;\r\n } else {\r\n nativeCommand(editor, 'Delete');\r\n $_8z75uj3sjkmcwkx3.paddEmptyBody(editor);\r\n }\r\n };\r\n var forwardDeleteCommand = function (editor) {\r\n if ($_1hyiiy41jkmcwl2z.backspaceDelete(editor, true)) {\r\n return;\r\n } else if ($_dqvreg45jkmcwl4e.backspaceDelete(editor, true)) {\r\n return;\r\n } else if ($_1wrlyf3qjkmcwkwe.backspaceDelete(editor, true)) {\r\n return;\r\n } else if ($_5lrlvq4cjkmcwl5t.backspaceDelete(editor)) {\r\n return;\r\n } else if ($_egxtcx40jkmcwl2q.backspaceDelete(editor, true)) {\r\n return;\r\n } else {\r\n nativeCommand(editor, 'ForwardDelete');\r\n }\r\n };\r\n var $_3ahn8y3pjkmcwkwc = {\r\n deleteCommand: deleteCommand,\r\n forwardDeleteCommand: forwardDeleteCommand\r\n };\r\n\r\n var getSpecifiedFontProp = function (propName, rootElm, elm) {\r\n var getProperty = function (elm) {\r\n return $_4enzit13jkmcwke5.getRaw(elm, propName);\r\n };\r\n var isRoot = function (elm) {\r\n return $_e4hu6h1ejkmcwkgj.eq(Element$$1.fromDom(rootElm), elm);\r\n };\r\n return $_253nd92ajkmcwkmp.closest(Element$$1.fromDom(elm), function (elm) {\r\n return getProperty(elm).isSome();\r\n }, isRoot).bind(getProperty);\r\n };\r\n var round$1 = function (number, precision) {\r\n var factor = Math.pow(10, precision);\r\n return Math.round(number * factor) / factor;\r\n };\r\n var toPt = function (fontSize, precision) {\r\n if (/[0-9.]+px$/.test(fontSize)) {\r\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\r\n }\r\n return fontSize;\r\n };\r\n var normalizeFontFamily = function (fontFamily) {\r\n return fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\r\n };\r\n var getComputedFontProp = function (propName, elm) {\r\n return Option.from(DOMUtils$1.DOM.getStyle(elm, propName, true));\r\n };\r\n var getFontProp = function (propName) {\r\n return function (rootElm, elm) {\r\n return Option.from(elm).map(Element$$1.fromDom).filter($_2xwdjv11jkmcwke0.isElement).bind(function (element) {\r\n return getSpecifiedFontProp(propName, rootElm, element.dom()).or(getComputedFontProp(propName, element.dom()));\r\n }).getOr('');\r\n };\r\n };\r\n var $_3qs0f64hjkmcwl74 = {\r\n getFontSize: getFontProp('font-size'),\r\n getFontFamily: compose(normalizeFontFamily, getFontProp('font-family')),\r\n toPt: toPt\r\n };\r\n\r\n var findFirstCaretElement = function (editor) {\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(editor.getBody()).map(function (caret) {\r\n var container = caret.container();\r\n return $_bjermr1rjkmcwkij.isText(container) ? container.parentNode : container;\r\n });\r\n };\r\n var isRangeAtStartOfNode = function (rng, root) {\r\n return rng.startContainer === root && rng.startOffset === 0;\r\n };\r\n var getCaretElement = function (editor) {\r\n return Option.from(editor.selection.getRng()).bind(function (rng) {\r\n var root = editor.getBody();\r\n return isRangeAtStartOfNode(rng, root) ? Option.none() : Option.from(editor.selection.getStart(true));\r\n });\r\n };\r\n var fromFontSizeNumber = function (editor, value) {\r\n if (/^[0-9\\.]+$/.test(value)) {\r\n var fontSizeNumber = parseInt(value, 10);\r\n if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\r\n var fontSizes = $_2ycm1438jkmcwkta.getFontStyleValues(editor);\r\n var fontClasses = $_2ycm1438jkmcwkta.getFontSizeClasses(editor);\r\n if (fontClasses) {\r\n return fontClasses[fontSizeNumber - 1] || value;\r\n } else {\r\n return fontSizes[fontSizeNumber - 1] || value;\r\n }\r\n } else {\r\n return value;\r\n }\r\n } else {\r\n return value;\r\n }\r\n };\r\n var fontNameAction = function (editor, value) {\r\n editor.formatter.toggle('fontname', { value: fromFontSizeNumber(editor, value) });\r\n editor.nodeChanged();\r\n };\r\n var fontNameQuery = function (editor) {\r\n return getCaretElement(editor).fold(function () {\r\n return findFirstCaretElement(editor).map(function (caretElement) {\r\n return $_3qs0f64hjkmcwl74.getFontFamily(editor.getBody(), caretElement);\r\n }).getOr('');\r\n }, function (caretElement) {\r\n return $_3qs0f64hjkmcwl74.getFontFamily(editor.getBody(), caretElement);\r\n });\r\n };\r\n var fontSizeAction = function (editor, value) {\r\n editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\r\n editor.nodeChanged();\r\n };\r\n var fontSizeQuery = function (editor) {\r\n return getCaretElement(editor).fold(function () {\r\n return findFirstCaretElement(editor).map(function (caretElement) {\r\n return $_3qs0f64hjkmcwl74.getFontSize(editor.getBody(), caretElement);\r\n }).getOr('');\r\n }, function (caretElement) {\r\n return $_3qs0f64hjkmcwl74.getFontSize(editor.getBody(), caretElement);\r\n });\r\n };\r\n\r\n var isEq$2 = function (rng1, rng2) {\r\n return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\r\n };\r\n var $_axtxv74kjkmcwl84 = { isEq: isEq$2 };\r\n\r\n var findParent = function (node, rootNode, predicate) {\r\n while (node && node !== rootNode) {\r\n if (predicate(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var hasParent = function (node, rootNode, predicate) {\r\n return findParent(node, rootNode, predicate) !== null;\r\n };\r\n var hasParentWithName = function (node, rootNode, name) {\r\n return hasParent(node, rootNode, function (node) {\r\n return node.nodeName === name;\r\n });\r\n };\r\n var isTable$2 = function (node) {\r\n return node && node.nodeName === 'TABLE';\r\n };\r\n var isTableCell$3 = function (node) {\r\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\r\n };\r\n var isCeFalseCaretContainer = function (node, rootNode) {\r\n return isCaretContainer(node) && hasParent(node, rootNode, isCaretNode) === false;\r\n };\r\n var hasBrBeforeAfter = function (dom, node, left) {\r\n var walker = new TreeWalker(node, dom.getParent(node.parentNode, dom.isBlock) || dom.getRoot());\r\n while (node = walker[left ? 'prev' : 'next']()) {\r\n if ($_bjermr1rjkmcwkij.isBr(node)) {\r\n return true;\r\n }\r\n }\r\n };\r\n var isPrevNode = function (node, name) {\r\n return node.previousSibling && node.previousSibling.nodeName === name;\r\n };\r\n var hasContentEditableFalseParent = function (body, node) {\r\n while (node && node !== body) {\r\n if ($_bjermr1rjkmcwkij.isContentEditableFalse(node)) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n };\r\n var findTextNodeRelative = function (dom, isAfterNode, collapsed, left, startNode) {\r\n var walker, lastInlineElement, parentBlockContainer;\r\n var body = dom.getRoot();\r\n var node;\r\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\r\n parentBlockContainer = dom.getParent(startNode.parentNode, dom.isBlock) || body;\r\n if (left && $_bjermr1rjkmcwkij.isBr(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\r\n return Option.some(CaretPosition(startNode.parentNode, dom.nodeIndex(startNode)));\r\n }\r\n walker = new TreeWalker(startNode, parentBlockContainer);\r\n while (node = walker[left ? 'prev' : 'next']()) {\r\n if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\r\n return Option.none();\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(node) && node.nodeValue.length > 0) {\r\n if (hasParentWithName(node, body, 'A') === false) {\r\n return Option.some(CaretPosition(node, left ? node.nodeValue.length : 0));\r\n }\r\n return Option.none();\r\n }\r\n if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\r\n return Option.none();\r\n }\r\n lastInlineElement = node;\r\n }\r\n if (collapsed && lastInlineElement) {\r\n return Option.some(CaretPosition(lastInlineElement, 0));\r\n }\r\n return Option.none();\r\n };\r\n var normalizeEndPoint = function (dom, collapsed, start, rng) {\r\n var container, offset, walker;\r\n var body = dom.getRoot();\r\n var node, nonEmptyElementsMap;\r\n var directionLeft, isAfterNode, normalized = false;\r\n container = rng[(start ? 'start' : 'end') + 'Container'];\r\n offset = rng[(start ? 'start' : 'end') + 'Offset'];\r\n isAfterNode = $_bjermr1rjkmcwkij.isElement(container) && offset === container.childNodes.length;\r\n nonEmptyElementsMap = dom.schema.getNonEmptyElements();\r\n directionLeft = start;\r\n if (isCaretContainer(container)) {\r\n return Option.none();\r\n }\r\n if ($_bjermr1rjkmcwkij.isElement(container) && offset > container.childNodes.length - 1) {\r\n directionLeft = false;\r\n }\r\n if ($_bjermr1rjkmcwkij.isDocument(container)) {\r\n container = body;\r\n offset = 0;\r\n }\r\n if (container === body) {\r\n if (directionLeft) {\r\n node = container.childNodes[offset > 0 ? offset - 1 : 0];\r\n if (node) {\r\n if (isCaretContainer(node)) {\r\n return Option.none();\r\n }\r\n if (nonEmptyElementsMap[node.nodeName] || isTable$2(node)) {\r\n return Option.none();\r\n }\r\n }\r\n }\r\n if (container.hasChildNodes()) {\r\n offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\r\n container = container.childNodes[offset];\r\n offset = $_bjermr1rjkmcwkij.isText(container) && isAfterNode ? container.data.length : 0;\r\n if (!collapsed && container === body.lastChild && isTable$2(container)) {\r\n return Option.none();\r\n }\r\n if (hasContentEditableFalseParent(body, container) || isCaretContainer(container)) {\r\n return Option.none();\r\n }\r\n if (container.hasChildNodes() && isTable$2(container) === false) {\r\n node = container;\r\n walker = new TreeWalker(container, body);\r\n do {\r\n if ($_bjermr1rjkmcwkij.isContentEditableFalse(node) || isCaretContainer(node)) {\r\n normalized = false;\r\n break;\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(node) && node.nodeValue.length > 0) {\r\n offset = directionLeft ? 0 : node.nodeValue.length;\r\n container = node;\r\n normalized = true;\r\n break;\r\n }\r\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCell$3(node)) {\r\n offset = dom.nodeIndex(node);\r\n container = node.parentNode;\r\n if (!directionLeft) {\r\n offset++;\r\n }\r\n normalized = true;\r\n break;\r\n }\r\n } while (node = directionLeft ? walker.next() : walker.prev());\r\n }\r\n }\r\n }\r\n if (collapsed) {\r\n if ($_bjermr1rjkmcwkij.isText(container) && offset === 0) {\r\n findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(function (pos) {\r\n container = pos.container();\r\n offset = pos.offset();\r\n normalized = true;\r\n });\r\n }\r\n if ($_bjermr1rjkmcwkij.isElement(container)) {\r\n node = container.childNodes[offset];\r\n if (!node) {\r\n node = container.childNodes[offset - 1];\r\n }\r\n if (node && $_bjermr1rjkmcwkij.isBr(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\r\n findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(function (pos) {\r\n container = pos.container();\r\n offset = pos.offset();\r\n normalized = true;\r\n });\r\n }\r\n }\r\n }\r\n if (directionLeft && !collapsed && $_bjermr1rjkmcwkij.isText(container) && offset === container.nodeValue.length) {\r\n findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(function (pos) {\r\n container = pos.container();\r\n offset = pos.offset();\r\n normalized = true;\r\n });\r\n }\r\n return normalized ? Option.some(CaretPosition(container, offset)) : Option.none();\r\n };\r\n var normalize$1 = function (dom, rng) {\r\n var collapsed = rng.collapsed, normRng = rng.cloneRange();\r\n var startPos = CaretPosition.fromRangeStart(rng);\r\n normalizeEndPoint(dom, collapsed, true, normRng).each(function (pos) {\r\n if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\r\n normRng.setStart(pos.container(), pos.offset());\r\n }\r\n });\r\n if (!collapsed) {\r\n normalizeEndPoint(dom, collapsed, false, normRng).each(function (pos) {\r\n normRng.setEnd(pos.container(), pos.offset());\r\n });\r\n }\r\n if (collapsed) {\r\n normRng.collapse(true);\r\n }\r\n return $_axtxv74kjkmcwl84.isEq(rng, normRng) ? Option.none() : Option.some(normRng);\r\n };\r\n var $_21c07i4jjkmcwl7w = { normalize: normalize$1 };\r\n\r\n var hasRightSideContent = function (schema, container, parentBlock) {\r\n var walker = new TreeWalker(container, parentBlock);\r\n var node;\r\n var nonEmptyElementsMap = schema.getNonEmptyElements();\r\n while (node = walker.next()) {\r\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || node.length > 0) {\r\n return true;\r\n }\r\n }\r\n };\r\n var scrollToBr = function (dom, selection, brElm) {\r\n var marker = dom.create('span', {}, ' ');\r\n brElm.parentNode.insertBefore(marker, brElm);\r\n selection.scrollIntoView(marker);\r\n dom.remove(marker);\r\n };\r\n var moveSelectionToBr = function (dom, selection, brElm, extraBr) {\r\n var rng = dom.createRng();\r\n if (!extraBr) {\r\n rng.setStartAfter(brElm);\r\n rng.setEndAfter(brElm);\r\n } else {\r\n rng.setStartBefore(brElm);\r\n rng.setEndBefore(brElm);\r\n }\r\n selection.setRng(rng);\r\n };\r\n var insertBrAtCaret = function (editor, evt) {\r\n var selection = editor.selection, dom = editor.dom;\r\n var brElm, extraBr;\r\n var rng = selection.getRng();\r\n $_21c07i4jjkmcwl7w.normalize(dom, rng).each(function (normRng) {\r\n rng.setStart(normRng.startContainer, normRng.startOffset);\r\n rng.setEnd(normRng.endContainer, normRng.endOffset);\r\n });\r\n var offset = rng.startOffset;\r\n var container = rng.startContainer;\r\n if (container.nodeType === 1 && container.hasChildNodes()) {\r\n var isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\r\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\r\n if (isAfterLastNodeInContainer && container.nodeType === 3) {\r\n offset = container.nodeValue.length;\r\n } else {\r\n offset = 0;\r\n }\r\n }\r\n var parentBlock = dom.getParent(container, dom.isBlock);\r\n var containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\r\n var containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\r\n var isControlKey = evt && evt.ctrlKey;\r\n if (containerBlockName === 'LI' && !isControlKey) {\r\n parentBlock = containerBlock;\r\n }\r\n if (container && container.nodeType === 3 && offset >= container.nodeValue.length) {\r\n if (!hasRightSideContent(editor.schema, container, parentBlock)) {\r\n brElm = dom.create('br');\r\n rng.insertNode(brElm);\r\n rng.setStartAfter(brElm);\r\n rng.setEndAfter(brElm);\r\n extraBr = true;\r\n }\r\n }\r\n brElm = dom.create('br');\r\n rng.insertNode(brElm);\r\n scrollToBr(dom, selection, brElm);\r\n moveSelectionToBr(dom, selection, brElm, extraBr);\r\n editor.undoManager.add();\r\n };\r\n var insertBrBefore = function (editor, inline) {\r\n var br = Element$$1.fromTag('br');\r\n $_f4qt4v1yjkmcwkl2.before(Element$$1.fromDom(inline), br);\r\n editor.undoManager.add();\r\n };\r\n var insertBrAfter = function (editor, inline) {\r\n if (!hasBrAfter(editor.getBody(), inline)) {\r\n $_f4qt4v1yjkmcwkl2.after(Element$$1.fromDom(inline), Element$$1.fromTag('br'));\r\n }\r\n var br = Element$$1.fromTag('br');\r\n $_f4qt4v1yjkmcwkl2.after(Element$$1.fromDom(inline), br);\r\n scrollToBr(editor.dom, editor.selection, br.dom());\r\n moveSelectionToBr(editor.dom, editor.selection, br.dom(), false);\r\n editor.undoManager.add();\r\n };\r\n var isBeforeBr = function (pos) {\r\n return $_bjermr1rjkmcwkij.isBr(pos.getNode());\r\n };\r\n var hasBrAfter = function (rootNode, startNode) {\r\n if (isBeforeBr(CaretPosition$1.after(startNode))) {\r\n return true;\r\n } else {\r\n return $_1m3f3j2yjkmcwkqg.nextPosition(rootNode, CaretPosition$1.after(startNode)).map(function (pos) {\r\n return $_bjermr1rjkmcwkij.isBr(pos.getNode());\r\n }).getOr(false);\r\n }\r\n };\r\n var isAnchorLink = function (elm) {\r\n return elm && elm.nodeName === 'A' && 'href' in elm;\r\n };\r\n var isInsideAnchor = function (location) {\r\n return location.fold(constant(false), isAnchorLink, isAnchorLink, constant(false));\r\n };\r\n var readInlineAnchorLocation = function (editor) {\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n var position = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n return $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, editor.getBody(), position).filter(isInsideAnchor);\r\n };\r\n var insertBrOutsideAnchor = function (editor, location) {\r\n location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\r\n };\r\n var insert = function (editor, evt) {\r\n var anchorLocation = readInlineAnchorLocation(editor);\r\n if (anchorLocation.isSome()) {\r\n anchorLocation.each(curry(insertBrOutsideAnchor, editor));\r\n } else {\r\n insertBrAtCaret(editor, evt);\r\n }\r\n };\r\n var $_dc07up4ijkmcwl7n = { insert: insert };\r\n\r\n var adt = Adt.generate([\r\n { 'before': ['element'] },\r\n {\r\n 'on': [\r\n 'element',\r\n 'offset'\r\n ]\r\n },\r\n { after: ['element'] }\r\n ]);\r\n var cata = function (subject, onBefore, onOn, onAfter) {\r\n return subject.fold(onBefore, onOn, onAfter);\r\n };\r\n var getStart = function (situ) {\r\n return situ.fold(identity, identity, identity);\r\n };\r\n var $_1s5vuk4njkmcwl8r = {\r\n before: adt.before,\r\n on: adt.on,\r\n after: adt.after,\r\n cata: cata,\r\n getStart: getStart\r\n };\r\n\r\n var type$1 = Adt.generate([\r\n { domRange: ['rng'] },\r\n {\r\n relative: [\r\n 'startSitu',\r\n 'finishSitu'\r\n ]\r\n },\r\n {\r\n exact: [\r\n 'start',\r\n 'soffset',\r\n 'finish',\r\n 'foffset'\r\n ]\r\n }\r\n ]);\r\n var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');\r\n var exactFromRange = function (simRange) {\r\n return type$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());\r\n };\r\n var getStart$1 = function (selection) {\r\n return selection.match({\r\n domRange: function (rng) {\r\n return Element$$1.fromDom(rng.startContainer);\r\n },\r\n relative: function (startSitu, finishSitu) {\r\n return $_1s5vuk4njkmcwl8r.getStart(startSitu);\r\n },\r\n exact: function (start, soffset, finish, foffset) {\r\n return start;\r\n }\r\n });\r\n };\r\n var getWin = function (selection) {\r\n var start = getStart$1(selection);\r\n return $_ca6pc118jkmcwkfs.defaultView(start);\r\n };\r\n var $_2v8ne64mjkmcwl8l = {\r\n domRange: type$1.domRange,\r\n relative: type$1.relative,\r\n exact: type$1.exact,\r\n exactFromRange: exactFromRange,\r\n range: range$1,\r\n getWin: getWin\r\n };\r\n\r\n var browser$3 = $_b1ykk4ojkmcwkcj.detect().browser;\r\n var clamp = function (offset, element) {\r\n var max = $_2xwdjv11jkmcwke0.isText(element) ? $_ckzc193ejkmcwktu.get(element).length : $_ca6pc118jkmcwkfs.children(element).length + 1;\r\n if (offset > max) {\r\n return max;\r\n } else if (offset < 0) {\r\n return 0;\r\n }\r\n return offset;\r\n };\r\n var normalizeRng = function (rng) {\r\n return $_2v8ne64mjkmcwl8l.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));\r\n };\r\n var isOrContains = function (root, elm) {\r\n return $_e4hu6h1ejkmcwkgj.contains(root, elm) || $_e4hu6h1ejkmcwkgj.eq(root, elm);\r\n };\r\n var isRngInRoot = function (root) {\r\n return function (rng) {\r\n return isOrContains(root, rng.start()) && isOrContains(root, rng.finish());\r\n };\r\n };\r\n var shouldStore = function (editor) {\r\n return editor.inline === true || browser$3.isIE();\r\n };\r\n var nativeRangeToSelectionRange = function (r) {\r\n return $_2v8ne64mjkmcwl8l.range(Element$$1.fromDom(r.startContainer), r.startOffset, Element$$1.fromDom(r.endContainer), r.endOffset);\r\n };\r\n var readRange = function (win) {\r\n var selection = win.getSelection();\r\n var rng = !selection || selection.rangeCount === 0 ? Option.none() : Option.from(selection.getRangeAt(0));\r\n return rng.map(nativeRangeToSelectionRange);\r\n };\r\n var getBookmark$2 = function (root) {\r\n var win = $_ca6pc118jkmcwkfs.defaultView(root);\r\n return readRange(win.dom()).filter(isRngInRoot(root));\r\n };\r\n var validate = function (root, bookmark) {\r\n return Option.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\r\n };\r\n var bookmarkToNativeRng = function (bookmark) {\r\n var rng = document.createRange();\r\n try {\r\n rng.setStart(bookmark.start().dom(), bookmark.soffset());\r\n rng.setEnd(bookmark.finish().dom(), bookmark.foffset());\r\n return Option.some(rng);\r\n } catch (_) {\r\n return Option.none();\r\n }\r\n };\r\n var store = function (editor) {\r\n var newBookmark = shouldStore(editor) ? getBookmark$2(Element$$1.fromDom(editor.getBody())) : Option.none();\r\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\r\n };\r\n var storeNative = function (editor, rng) {\r\n var root = Element$$1.fromDom(editor.getBody());\r\n var range = shouldStore(editor) ? Option.from(rng) : Option.none();\r\n var newBookmark = range.map(nativeRangeToSelectionRange).filter(isRngInRoot(root));\r\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\r\n };\r\n var getRng = function (editor) {\r\n var bookmark = editor.bookmark ? editor.bookmark : Option.none();\r\n return bookmark.bind(curry(validate, Element$$1.fromDom(editor.getBody()))).bind(bookmarkToNativeRng);\r\n };\r\n var restore = function (editor) {\r\n getRng(editor).each(function (rng) {\r\n editor.selection.setRng(rng);\r\n });\r\n };\r\n var $_39c3zs4ljkmcwl86 = {\r\n store: store,\r\n storeNative: storeNative,\r\n readRange: readRange,\r\n restore: restore,\r\n getRng: getRng,\r\n getBookmark: getBookmark$2,\r\n validate: validate\r\n };\r\n\r\n var indentElement = function (dom, command, useMargin, value, unit, element) {\r\n if (dom.getContentEditable(element) === 'false') {\r\n return;\r\n }\r\n if (element.nodeName !== 'LI') {\r\n var indentStyleName = useMargin ? 'margin' : 'padding';\r\n indentStyleName = element.nodeName === 'TABLE' ? 'margin' : indentStyleName;\r\n indentStyleName += dom.getStyle(element, 'direction', true) === 'rtl' ? 'Right' : 'Left';\r\n if (command === 'outdent') {\r\n var styleValue = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - value);\r\n dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\r\n } else {\r\n var styleValue = parseInt(element.style[indentStyleName] || 0, 10) + value + unit;\r\n dom.setStyle(element, indentStyleName, styleValue);\r\n }\r\n }\r\n };\r\n var handle = function (editor, command) {\r\n var settings = editor.settings, dom = editor.dom, selection = editor.selection, formatter = editor.formatter;\r\n var indentUnit = /[a-z%]+$/i.exec(settings.indentation)[0];\r\n var indentValue = parseInt(settings.indentation, 10);\r\n var useMargin = editor.getParam('indent_use_margin', false);\r\n if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) {\r\n if (!settings.forced_root_block && !dom.getParent(selection.getNode(), dom.isBlock)) {\r\n formatter.apply('div');\r\n }\r\n each(selection.getSelectedBlocks(), function (element) {\r\n return indentElement(dom, command, useMargin, indentValue, indentUnit, element);\r\n });\r\n }\r\n };\r\n\r\n var each$10 = $_4ujg4tljkmcwkbk.each;\r\n var extend$2 = $_4ujg4tljkmcwkbk.extend;\r\n var map$3 = $_4ujg4tljkmcwkbk.map;\r\n var inArray$2 = $_4ujg4tljkmcwkbk.inArray;\r\n function EditorCommands (editor) {\r\n var dom, selection, formatter;\r\n var commands = {\r\n state: {},\r\n exec: {},\r\n value: {}\r\n };\r\n var settings = editor.settings, bookmark;\r\n editor.on('PreInit', function () {\r\n dom = editor.dom;\r\n selection = editor.selection;\r\n settings = editor.settings;\r\n formatter = editor.formatter;\r\n });\r\n var execCommand = function (command, ui, value, args) {\r\n var func, customCommand, state = false;\r\n if (editor.removed) {\r\n return;\r\n }\r\n if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(command) && (!args || !args.skip_focus)) {\r\n editor.focus();\r\n } else {\r\n $_39c3zs4ljkmcwl86.restore(editor);\r\n }\r\n args = editor.fire('BeforeExecCommand', {\r\n command: command,\r\n ui: ui,\r\n value: value\r\n });\r\n if (args.isDefaultPrevented()) {\r\n return false;\r\n }\r\n customCommand = command.toLowerCase();\r\n if (func = commands.exec[customCommand]) {\r\n func(customCommand, ui, value);\r\n editor.fire('ExecCommand', {\r\n command: command,\r\n ui: ui,\r\n value: value\r\n });\r\n return true;\r\n }\r\n each$10(editor.plugins, function (p) {\r\n if (p.execCommand && p.execCommand(command, ui, value)) {\r\n editor.fire('ExecCommand', {\r\n command: command,\r\n ui: ui,\r\n value: value\r\n });\r\n state = true;\r\n return false;\r\n }\r\n });\r\n if (state) {\r\n return state;\r\n }\r\n if (editor.theme && editor.theme.execCommand && editor.theme.execCommand(command, ui, value)) {\r\n editor.fire('ExecCommand', {\r\n command: command,\r\n ui: ui,\r\n value: value\r\n });\r\n return true;\r\n }\r\n try {\r\n state = editor.getDoc().execCommand(command, ui, value);\r\n } catch (ex) {\r\n }\r\n if (state) {\r\n editor.fire('ExecCommand', {\r\n command: command,\r\n ui: ui,\r\n value: value\r\n });\r\n return true;\r\n }\r\n return false;\r\n };\r\n var queryCommandState = function (command) {\r\n var func;\r\n if (editor.quirks.isHidden() || editor.removed) {\r\n return;\r\n }\r\n command = command.toLowerCase();\r\n if (func = commands.state[command]) {\r\n return func(command);\r\n }\r\n try {\r\n return editor.getDoc().queryCommandState(command);\r\n } catch (ex) {\r\n }\r\n return false;\r\n };\r\n var queryCommandValue = function (command) {\r\n var func;\r\n if (editor.quirks.isHidden() || editor.removed) {\r\n return;\r\n }\r\n command = command.toLowerCase();\r\n if (func = commands.value[command]) {\r\n return func(command);\r\n }\r\n try {\r\n return editor.getDoc().queryCommandValue(command);\r\n } catch (ex) {\r\n }\r\n };\r\n var addCommands = function (commandList, type) {\r\n type = type || 'exec';\r\n each$10(commandList, function (callback, command) {\r\n each$10(command.toLowerCase().split(','), function (command) {\r\n commands[type][command] = callback;\r\n });\r\n });\r\n };\r\n var addCommand = function (command, callback, scope) {\r\n command = command.toLowerCase();\r\n commands.exec[command] = function (command, ui, value, args) {\r\n return callback.call(scope || editor, ui, value, args);\r\n };\r\n };\r\n var queryCommandSupported = function (command) {\r\n command = command.toLowerCase();\r\n if (commands.exec[command]) {\r\n return true;\r\n }\r\n try {\r\n return editor.getDoc().queryCommandSupported(command);\r\n } catch (ex) {\r\n }\r\n return false;\r\n };\r\n var addQueryStateHandler = function (command, callback, scope) {\r\n command = command.toLowerCase();\r\n commands.state[command] = function () {\r\n return callback.call(scope || editor);\r\n };\r\n };\r\n var addQueryValueHandler = function (command, callback, scope) {\r\n command = command.toLowerCase();\r\n commands.value[command] = function () {\r\n return callback.call(scope || editor);\r\n };\r\n };\r\n var hasCustomCommand = function (command) {\r\n command = command.toLowerCase();\r\n return !!commands.exec[command];\r\n };\r\n extend$2(this, {\r\n execCommand: execCommand,\r\n queryCommandState: queryCommandState,\r\n queryCommandValue: queryCommandValue,\r\n queryCommandSupported: queryCommandSupported,\r\n addCommands: addCommands,\r\n addCommand: addCommand,\r\n addQueryStateHandler: addQueryStateHandler,\r\n addQueryValueHandler: addQueryValueHandler,\r\n hasCustomCommand: hasCustomCommand\r\n });\r\n var execNativeCommand = function (command, ui, value) {\r\n if (ui === undefined) {\r\n ui = false;\r\n }\r\n if (value === undefined) {\r\n value = null;\r\n }\r\n return editor.getDoc().execCommand(command, ui, value);\r\n };\r\n var isFormatMatch = function (name) {\r\n return formatter.match(name);\r\n };\r\n var toggleFormat = function (name, value) {\r\n formatter.toggle(name, value ? { value: value } : undefined);\r\n editor.nodeChanged();\r\n };\r\n var storeSelection = function (type) {\r\n bookmark = selection.getBookmark(type);\r\n };\r\n var restoreSelection = function () {\r\n selection.moveToBookmark(bookmark);\r\n };\r\n addCommands({\r\n 'mceResetDesignMode,mceBeginUndoLevel': function () {\r\n },\r\n 'mceEndUndoLevel,mceAddUndoLevel': function () {\r\n editor.undoManager.add();\r\n },\r\n 'Cut,Copy,Paste': function (command) {\r\n var doc = editor.getDoc();\r\n var failed;\r\n try {\r\n execNativeCommand(command);\r\n } catch (ex) {\r\n failed = true;\r\n }\r\n if (command === 'paste' && !doc.queryCommandEnabled(command)) {\r\n failed = true;\r\n }\r\n if (failed || !doc.queryCommandSupported(command)) {\r\n var msg = editor.translate('Your browser doesn\\'t support direct access to the clipboard. ' + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\r\n if ($_cvvl9iajkmcwk25.mac) {\r\n msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\r\n }\r\n editor.notificationManager.open({\r\n text: msg,\r\n type: 'error'\r\n });\r\n }\r\n },\r\n 'unlink': function () {\r\n if (selection.isCollapsed()) {\r\n var elm = editor.dom.getParent(editor.selection.getStart(), 'a');\r\n if (elm) {\r\n editor.dom.remove(elm, true);\r\n }\r\n return;\r\n }\r\n formatter.remove('link');\r\n },\r\n 'JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone': function (command) {\r\n var align = command.substring(7);\r\n if (align === 'full') {\r\n align = 'justify';\r\n }\r\n each$10('left,center,right,justify'.split(','), function (name) {\r\n if (align !== name) {\r\n formatter.remove('align' + name);\r\n }\r\n });\r\n if (align !== 'none') {\r\n toggleFormat('align' + align);\r\n }\r\n },\r\n 'InsertUnorderedList,InsertOrderedList': function (command) {\r\n var listElm, listParent;\r\n execNativeCommand(command);\r\n listElm = dom.getParent(selection.getNode(), 'ol,ul');\r\n if (listElm) {\r\n listParent = listElm.parentNode;\r\n if (/^(H[1-6]|P|ADDRESS|PRE)$/.test(listParent.nodeName)) {\r\n storeSelection();\r\n dom.split(listParent, listElm);\r\n restoreSelection();\r\n }\r\n }\r\n },\r\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\r\n toggleFormat(command);\r\n },\r\n 'ForeColor,HiliteColor': function (command, ui, value) {\r\n toggleFormat(command, value);\r\n },\r\n 'FontName': function (command, ui, value) {\r\n fontNameAction(editor, value);\r\n },\r\n 'FontSize': function (command, ui, value) {\r\n fontSizeAction(editor, value);\r\n },\r\n 'RemoveFormat': function (command) {\r\n formatter.remove(command);\r\n },\r\n 'mceBlockQuote': function () {\r\n toggleFormat('blockquote');\r\n },\r\n 'FormatBlock': function (command, ui, value) {\r\n return toggleFormat(value || 'p');\r\n },\r\n 'mceCleanup': function () {\r\n var bookmark = selection.getBookmark();\r\n editor.setContent(editor.getContent());\r\n selection.moveToBookmark(bookmark);\r\n },\r\n 'mceRemoveNode': function (command, ui, value) {\r\n var node = value || selection.getNode();\r\n if (node !== editor.getBody()) {\r\n storeSelection();\r\n editor.dom.remove(node, true);\r\n restoreSelection();\r\n }\r\n },\r\n 'mceSelectNodeDepth': function (command, ui, value) {\r\n var counter = 0;\r\n dom.getParent(selection.getNode(), function (node) {\r\n if (node.nodeType === 1 && counter++ === value) {\r\n selection.select(node);\r\n return false;\r\n }\r\n }, editor.getBody());\r\n },\r\n 'mceSelectNode': function (command, ui, value) {\r\n selection.select(value);\r\n },\r\n 'mceInsertContent': function (command, ui, value) {\r\n $_g2yj883ijkmcwkv2.insertAtCaret(editor, value);\r\n },\r\n 'mceInsertRawHTML': function (command, ui, value) {\r\n var content = editor.getContent();\r\n selection.setContent('tiny_mce_marker');\r\n editor.setContent(content.replace(/tiny_mce_marker/g, function () {\r\n return value;\r\n }));\r\n },\r\n 'mceToggleFormat': function (command, ui, value) {\r\n toggleFormat(value);\r\n },\r\n 'mceSetContent': function (command, ui, value) {\r\n editor.setContent(value);\r\n },\r\n 'Indent,Outdent': function (command) {\r\n handle(editor, command);\r\n },\r\n 'mceRepaint': function () {\r\n },\r\n 'InsertHorizontalRule': function () {\r\n editor.execCommand('mceInsertContent', false, '
');\r\n },\r\n 'mceToggleVisualAid': function () {\r\n editor.hasVisual = !editor.hasVisual;\r\n editor.addVisual();\r\n },\r\n 'mceReplaceContent': function (command, ui, value) {\r\n editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, selection.getContent({ format: 'text' })));\r\n },\r\n 'mceInsertLink': function (command, ui, value) {\r\n var anchor;\r\n if (typeof value === 'string') {\r\n value = { href: value };\r\n }\r\n anchor = dom.getParent(selection.getNode(), 'a');\r\n value.href = value.href.replace(' ', '%20');\r\n if (!anchor || !value.href) {\r\n formatter.remove('link');\r\n }\r\n if (value.href) {\r\n formatter.apply('link', value, anchor);\r\n }\r\n },\r\n 'selectAll': function () {\r\n var editingHost = dom.getParent(selection.getStart(), $_bjermr1rjkmcwkij.isContentEditableTrue);\r\n if (editingHost) {\r\n var rng = dom.createRng();\r\n rng.selectNodeContents(editingHost);\r\n selection.setRng(rng);\r\n }\r\n },\r\n 'delete': function () {\r\n $_3ahn8y3pjkmcwkwc.deleteCommand(editor);\r\n },\r\n 'forwardDelete': function () {\r\n $_3ahn8y3pjkmcwkwc.forwardDeleteCommand(editor);\r\n },\r\n 'mceNewDocument': function () {\r\n editor.setContent('');\r\n },\r\n 'InsertLineBreak': function (command, ui, value) {\r\n $_dc07up4ijkmcwl7n.insert(editor, value);\r\n return true;\r\n }\r\n });\r\n var alignStates = function (name) {\r\n return function () {\r\n var nodes = selection.isCollapsed() ? [dom.getParent(selection.getNode(), dom.isBlock)] : selection.getSelectedBlocks();\r\n var matches = map$3(nodes, function (node) {\r\n return !!formatter.matchNode(node, name);\r\n });\r\n return inArray$2(matches, true) !== -1;\r\n };\r\n };\r\n addCommands({\r\n 'JustifyLeft': alignStates('alignleft'),\r\n 'JustifyCenter': alignStates('aligncenter'),\r\n 'JustifyRight': alignStates('alignright'),\r\n 'JustifyFull': alignStates('alignjustify'),\r\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': function (command) {\r\n return isFormatMatch(command);\r\n },\r\n 'mceBlockQuote': function () {\r\n return isFormatMatch('blockquote');\r\n },\r\n 'Outdent': function () {\r\n var node;\r\n if (settings.inline_styles) {\r\n if ((node = dom.getParent(selection.getStart(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) {\r\n return true;\r\n }\r\n if ((node = dom.getParent(selection.getEnd(), dom.isBlock)) && parseInt(node.style.paddingLeft, 10) > 0) {\r\n return true;\r\n }\r\n }\r\n return queryCommandState('InsertUnorderedList') || queryCommandState('InsertOrderedList') || !settings.inline_styles && !!dom.getParent(selection.getNode(), 'BLOCKQUOTE');\r\n },\r\n 'InsertUnorderedList,InsertOrderedList': function (command) {\r\n var list = dom.getParent(selection.getNode(), 'ul,ol');\r\n return list && (command === 'insertunorderedlist' && list.tagName === 'UL' || command === 'insertorderedlist' && list.tagName === 'OL');\r\n }\r\n }, 'state');\r\n addCommands({\r\n Undo: function () {\r\n editor.undoManager.undo();\r\n },\r\n Redo: function () {\r\n editor.undoManager.redo();\r\n }\r\n });\r\n addQueryValueHandler('FontName', function () {\r\n return fontNameQuery(editor);\r\n }, this);\r\n addQueryValueHandler('FontSize', function () {\r\n return fontSizeQuery(editor);\r\n }, this);\r\n }\r\n\r\n var nativeEvents = $_4ujg4tljkmcwkbk.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend', ' ');\r\n var Dispatcher = function (settings) {\r\n var self = this;\r\n var scope, bindings = {}, toggleEvent;\r\n var returnFalse = function () {\r\n return false;\r\n };\r\n var returnTrue = function () {\r\n return true;\r\n };\r\n settings = settings || {};\r\n scope = settings.scope || self;\r\n toggleEvent = settings.toggleEvent || returnFalse;\r\n var fire = function (name, args) {\r\n var handlers, i, l, callback;\r\n name = name.toLowerCase();\r\n args = args || {};\r\n args.type = name;\r\n if (!args.target) {\r\n args.target = scope;\r\n }\r\n if (!args.preventDefault) {\r\n args.preventDefault = function () {\r\n args.isDefaultPrevented = returnTrue;\r\n };\r\n args.stopPropagation = function () {\r\n args.isPropagationStopped = returnTrue;\r\n };\r\n args.stopImmediatePropagation = function () {\r\n args.isImmediatePropagationStopped = returnTrue;\r\n };\r\n args.isDefaultPrevented = returnFalse;\r\n args.isPropagationStopped = returnFalse;\r\n args.isImmediatePropagationStopped = returnFalse;\r\n }\r\n if (settings.beforeFire) {\r\n settings.beforeFire(args);\r\n }\r\n handlers = bindings[name];\r\n if (handlers) {\r\n for (i = 0, l = handlers.length; i < l; i++) {\r\n callback = handlers[i];\r\n if (callback.once) {\r\n off(name, callback.func);\r\n }\r\n if (args.isImmediatePropagationStopped()) {\r\n args.stopPropagation();\r\n return args;\r\n }\r\n if (callback.func.call(scope, args) === false) {\r\n args.preventDefault();\r\n return args;\r\n }\r\n }\r\n }\r\n return args;\r\n };\r\n var on = function (name, callback, prepend, extra) {\r\n var handlers, names, i;\r\n if (callback === false) {\r\n callback = returnFalse;\r\n }\r\n if (callback) {\r\n callback = { func: callback };\r\n if (extra) {\r\n $_4ujg4tljkmcwkbk.extend(callback, extra);\r\n }\r\n names = name.toLowerCase().split(' ');\r\n i = names.length;\r\n while (i--) {\r\n name = names[i];\r\n handlers = bindings[name];\r\n if (!handlers) {\r\n handlers = bindings[name] = [];\r\n toggleEvent(name, true);\r\n }\r\n if (prepend) {\r\n handlers.unshift(callback);\r\n } else {\r\n handlers.push(callback);\r\n }\r\n }\r\n }\r\n return self;\r\n };\r\n var off = function (name, callback) {\r\n var i, handlers, bindingName, names, hi;\r\n if (name) {\r\n names = name.toLowerCase().split(' ');\r\n i = names.length;\r\n while (i--) {\r\n name = names[i];\r\n handlers = bindings[name];\r\n if (!name) {\r\n for (bindingName in bindings) {\r\n toggleEvent(bindingName, false);\r\n delete bindings[bindingName];\r\n }\r\n return self;\r\n }\r\n if (handlers) {\r\n if (!callback) {\r\n handlers.length = 0;\r\n } else {\r\n hi = handlers.length;\r\n while (hi--) {\r\n if (handlers[hi].func === callback) {\r\n handlers = handlers.slice(0, hi).concat(handlers.slice(hi + 1));\r\n bindings[name] = handlers;\r\n }\r\n }\r\n }\r\n if (!handlers.length) {\r\n toggleEvent(name, false);\r\n delete bindings[name];\r\n }\r\n }\r\n }\r\n } else {\r\n for (name in bindings) {\r\n toggleEvent(name, false);\r\n }\r\n bindings = {};\r\n }\r\n return self;\r\n };\r\n var once = function (name, callback, prepend) {\r\n return on(name, callback, prepend, { once: true });\r\n };\r\n var has = function (name) {\r\n name = name.toLowerCase();\r\n return !(!bindings[name] || bindings[name].length === 0);\r\n };\r\n self.fire = fire;\r\n self.on = on;\r\n self.off = off;\r\n self.once = once;\r\n self.has = has;\r\n };\r\n Dispatcher.isNative = function (name) {\r\n return !!nativeEvents[name.toLowerCase()];\r\n };\r\n\r\n var getEventDispatcher = function (obj) {\r\n if (!obj._eventDispatcher) {\r\n obj._eventDispatcher = new Dispatcher({\r\n scope: obj,\r\n toggleEvent: function (name, state) {\r\n if (Dispatcher.isNative(name) && obj.toggleNativeEvent) {\r\n obj.toggleNativeEvent(name, state);\r\n }\r\n }\r\n });\r\n }\r\n return obj._eventDispatcher;\r\n };\r\n var $_ed2ug44qjkmcwl97 = {\r\n fire: function (name, args, bubble) {\r\n var self = this;\r\n if (self.removed && name !== 'remove') {\r\n return args;\r\n }\r\n args = getEventDispatcher(self).fire(name, args, bubble);\r\n if (bubble !== false && self.parent) {\r\n var parent = self.parent();\r\n while (parent && !args.isPropagationStopped()) {\r\n parent.fire(name, args, false);\r\n parent = parent.parent();\r\n }\r\n }\r\n return args;\r\n },\r\n on: function (name, callback, prepend) {\r\n return getEventDispatcher(this).on(name, callback, prepend);\r\n },\r\n off: function (name, callback) {\r\n return getEventDispatcher(this).off(name, callback);\r\n },\r\n once: function (name, callback) {\r\n return getEventDispatcher(this).once(name, callback);\r\n },\r\n hasEventListeners: function (name) {\r\n return getEventDispatcher(this).has(name);\r\n }\r\n };\r\n\r\n var firePreProcess = function (editor, args) {\r\n return editor.fire('PreProcess', args);\r\n };\r\n var firePostProcess = function (editor, args) {\r\n return editor.fire('PostProcess', args);\r\n };\r\n var fireRemove = function (editor) {\r\n return editor.fire('remove');\r\n };\r\n var fireSwitchMode = function (editor, mode) {\r\n return editor.fire('SwitchMode', { mode: mode });\r\n };\r\n var fireObjectResizeStart = function (editor, target, width, height) {\r\n editor.fire('ObjectResizeStart', {\r\n target: target,\r\n width: width,\r\n height: height\r\n });\r\n };\r\n var fireObjectResized = function (editor, target, width, height) {\r\n editor.fire('ObjectResized', {\r\n target: target,\r\n width: width,\r\n height: height\r\n });\r\n };\r\n var $_q3ric4tjkmcwl9q = {\r\n firePreProcess: firePreProcess,\r\n firePostProcess: firePostProcess,\r\n fireRemove: fireRemove,\r\n fireSwitchMode: fireSwitchMode,\r\n fireObjectResizeStart: fireObjectResizeStart,\r\n fireObjectResized: fireObjectResized\r\n };\r\n\r\n var setEditorCommandState = function (editor, cmd, state) {\r\n try {\r\n editor.getDoc().execCommand(cmd, false, state);\r\n } catch (ex) {\r\n }\r\n };\r\n var toggleClass = function (elm, cls, state) {\r\n if ($_ftm4v023jkmcwklz.has(elm, cls) && state === false) {\r\n $_ftm4v023jkmcwklz.remove(elm, cls);\r\n } else if (state) {\r\n $_ftm4v023jkmcwklz.add(elm, cls);\r\n }\r\n };\r\n var toggleReadOnly = function (editor, state) {\r\n toggleClass(Element$$1.fromDom(editor.getBody()), 'mce-content-readonly', state);\r\n if (state) {\r\n editor.selection.controlSelection.hideResizeRect();\r\n editor.readonly = true;\r\n editor.getBody().contentEditable = 'false';\r\n } else {\r\n editor.readonly = false;\r\n editor.getBody().contentEditable = 'true';\r\n setEditorCommandState(editor, 'StyleWithCSS', false);\r\n setEditorCommandState(editor, 'enableInlineTableEditing', false);\r\n setEditorCommandState(editor, 'enableObjectResizing', false);\r\n editor.focus();\r\n editor.nodeChanged();\r\n }\r\n };\r\n var setMode = function (editor, mode) {\r\n if (mode === getMode(editor)) {\r\n return;\r\n }\r\n if (editor.initialized) {\r\n toggleReadOnly(editor, mode === 'readonly');\r\n } else {\r\n editor.on('init', function () {\r\n toggleReadOnly(editor, mode === 'readonly');\r\n });\r\n }\r\n $_q3ric4tjkmcwl9q.fireSwitchMode(editor, mode);\r\n };\r\n var getMode = function (editor) {\r\n return editor.readonly ? 'readonly' : 'design';\r\n };\r\n var isReadOnly = function (editor) {\r\n return editor.readonly === true;\r\n };\r\n\r\n var DOM$1 = DOMUtils$1.DOM;\r\n var customEventRootDelegates;\r\n var getEventTarget = function (editor, eventName) {\r\n if (eventName === 'selectionchange') {\r\n return editor.getDoc();\r\n }\r\n if (!editor.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(eventName)) {\r\n return editor.getDoc().documentElement;\r\n }\r\n if (editor.settings.event_root) {\r\n if (!editor.eventRoot) {\r\n editor.eventRoot = DOM$1.select(editor.settings.event_root)[0];\r\n }\r\n return editor.eventRoot;\r\n }\r\n return editor.getBody();\r\n };\r\n var isListening = function (editor) {\r\n return !editor.hidden && !editor.readonly;\r\n };\r\n var fireEvent = function (editor, eventName, e) {\r\n if (isListening(editor)) {\r\n editor.fire(eventName, e);\r\n } else if (isReadOnly(editor)) {\r\n e.preventDefault();\r\n }\r\n };\r\n var bindEventDelegate = function (editor, eventName) {\r\n var eventRootElm, delegate;\r\n if (!editor.delegates) {\r\n editor.delegates = {};\r\n }\r\n if (editor.delegates[eventName] || editor.removed) {\r\n return;\r\n }\r\n eventRootElm = getEventTarget(editor, eventName);\r\n if (editor.settings.event_root) {\r\n if (!customEventRootDelegates) {\r\n customEventRootDelegates = {};\r\n editor.editorManager.on('removeEditor', function () {\r\n var name;\r\n if (!editor.editorManager.activeEditor) {\r\n if (customEventRootDelegates) {\r\n for (name in customEventRootDelegates) {\r\n editor.dom.unbind(getEventTarget(editor, name));\r\n }\r\n customEventRootDelegates = null;\r\n }\r\n }\r\n });\r\n }\r\n if (customEventRootDelegates[eventName]) {\r\n return;\r\n }\r\n delegate = function (e) {\r\n var target = e.target;\r\n var editors = editor.editorManager.get();\r\n var i = editors.length;\r\n while (i--) {\r\n var body = editors[i].getBody();\r\n if (body === target || DOM$1.isChildOf(target, body)) {\r\n fireEvent(editors[i], eventName, e);\r\n }\r\n }\r\n };\r\n customEventRootDelegates[eventName] = delegate;\r\n DOM$1.bind(eventRootElm, eventName, delegate);\r\n } else {\r\n delegate = function (e) {\r\n fireEvent(editor, eventName, e);\r\n };\r\n DOM$1.bind(eventRootElm, eventName, delegate);\r\n editor.delegates[eventName] = delegate;\r\n }\r\n };\r\n var EditorObservable = {\r\n bindPendingEventDelegates: function () {\r\n var self = this;\r\n $_4ujg4tljkmcwkbk.each(self._pendingNativeEvents, function (name) {\r\n bindEventDelegate(self, name);\r\n });\r\n },\r\n toggleNativeEvent: function (name, state) {\r\n var self = this;\r\n if (name === 'focus' || name === 'blur') {\r\n return;\r\n }\r\n if (state) {\r\n if (self.initialized) {\r\n bindEventDelegate(self, name);\r\n } else {\r\n if (!self._pendingNativeEvents) {\r\n self._pendingNativeEvents = [name];\r\n } else {\r\n self._pendingNativeEvents.push(name);\r\n }\r\n }\r\n } else if (self.initialized) {\r\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\r\n delete self.delegates[name];\r\n }\r\n },\r\n unbindAllNativeEvents: function () {\r\n var self = this;\r\n var body = self.getBody();\r\n var dom = self.dom;\r\n var name;\r\n if (self.delegates) {\r\n for (name in self.delegates) {\r\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\r\n }\r\n delete self.delegates;\r\n }\r\n if (!self.inline && body && dom) {\r\n body.onload = null;\r\n dom.unbind(self.getWin());\r\n dom.unbind(self.getDoc());\r\n }\r\n if (dom) {\r\n dom.unbind(body);\r\n dom.unbind(self.getContainer());\r\n }\r\n }\r\n };\r\n EditorObservable = $_4ujg4tljkmcwkbk.extend({}, $_ed2ug44qjkmcwl97, EditorObservable);\r\n var EditorObservable$1 = EditorObservable;\r\n\r\n var each$11 = $_4ujg4tljkmcwkbk.each;\r\n var explode$2 = $_4ujg4tljkmcwkbk.explode;\r\n var keyCodeLookup = {\r\n f9: 120,\r\n f10: 121,\r\n f11: 122\r\n };\r\n var modifierNames = $_4ujg4tljkmcwkbk.makeMap('alt,ctrl,shift,meta,access');\r\n function Shortcuts (editor) {\r\n var self = this;\r\n var shortcuts = {};\r\n var pendingPatterns = [];\r\n var parseShortcut = function (pattern) {\r\n var id, key;\r\n var shortcut = {};\r\n each$11(explode$2(pattern, '+'), function (value) {\r\n if (value in modifierNames) {\r\n shortcut[value] = true;\r\n } else {\r\n if (/^[0-9]{2,}$/.test(value)) {\r\n shortcut.keyCode = parseInt(value, 10);\r\n } else {\r\n shortcut.charCode = value.charCodeAt(0);\r\n shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\r\n }\r\n }\r\n });\r\n id = [shortcut.keyCode];\r\n for (key in modifierNames) {\r\n if (shortcut[key]) {\r\n id.push(key);\r\n } else {\r\n shortcut[key] = false;\r\n }\r\n }\r\n shortcut.id = id.join(',');\r\n if (shortcut.access) {\r\n shortcut.alt = true;\r\n if ($_cvvl9iajkmcwk25.mac) {\r\n shortcut.ctrl = true;\r\n } else {\r\n shortcut.shift = true;\r\n }\r\n }\r\n if (shortcut.meta) {\r\n if ($_cvvl9iajkmcwk25.mac) {\r\n shortcut.meta = true;\r\n } else {\r\n shortcut.ctrl = true;\r\n shortcut.meta = false;\r\n }\r\n }\r\n return shortcut;\r\n };\r\n var createShortcut = function (pattern, desc, cmdFunc, scope) {\r\n var shortcuts;\r\n shortcuts = $_4ujg4tljkmcwkbk.map(explode$2(pattern, '>'), parseShortcut);\r\n shortcuts[shortcuts.length - 1] = $_4ujg4tljkmcwkbk.extend(shortcuts[shortcuts.length - 1], {\r\n func: cmdFunc,\r\n scope: scope || editor\r\n });\r\n return $_4ujg4tljkmcwkbk.extend(shortcuts[0], {\r\n desc: editor.translate(desc),\r\n subpatterns: shortcuts.slice(1)\r\n });\r\n };\r\n var hasModifier = function (e) {\r\n return e.altKey || e.ctrlKey || e.metaKey;\r\n };\r\n var isFunctionKey = function (e) {\r\n return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\r\n };\r\n var matchShortcut = function (e, shortcut) {\r\n if (!shortcut) {\r\n return false;\r\n }\r\n if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\r\n return false;\r\n }\r\n if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\r\n return false;\r\n }\r\n if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\r\n e.preventDefault();\r\n return true;\r\n }\r\n return false;\r\n };\r\n var executeShortcutAction = function (shortcut) {\r\n return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\r\n };\r\n editor.on('keyup keypress keydown', function (e) {\r\n if ((hasModifier(e) || isFunctionKey(e)) && !e.isDefaultPrevented()) {\r\n each$11(shortcuts, function (shortcut) {\r\n if (matchShortcut(e, shortcut)) {\r\n pendingPatterns = shortcut.subpatterns.slice(0);\r\n if (e.type === 'keydown') {\r\n executeShortcutAction(shortcut);\r\n }\r\n return true;\r\n }\r\n });\r\n if (matchShortcut(e, pendingPatterns[0])) {\r\n if (pendingPatterns.length === 1) {\r\n if (e.type === 'keydown') {\r\n executeShortcutAction(pendingPatterns[0]);\r\n }\r\n }\r\n pendingPatterns.shift();\r\n }\r\n }\r\n });\r\n self.add = function (pattern, desc, cmdFunc, scope) {\r\n var cmd;\r\n cmd = cmdFunc;\r\n if (typeof cmdFunc === 'string') {\r\n cmdFunc = function () {\r\n editor.execCommand(cmd, false, null);\r\n };\r\n } else if ($_4ujg4tljkmcwkbk.isArray(cmd)) {\r\n cmdFunc = function () {\r\n editor.execCommand(cmd[0], cmd[1], cmd[2]);\r\n };\r\n }\r\n each$11(explode$2($_4ujg4tljkmcwkbk.trim(pattern.toLowerCase())), function (pattern) {\r\n var shortcut = createShortcut(pattern, desc, cmdFunc, scope);\r\n shortcuts[shortcut.id] = shortcut;\r\n });\r\n return true;\r\n };\r\n self.remove = function (pattern) {\r\n var shortcut = createShortcut(pattern);\r\n if (shortcuts[shortcut.id]) {\r\n delete shortcuts[shortcut.id];\r\n return true;\r\n }\r\n return false;\r\n };\r\n }\r\n\r\n var any$1 = function (predicate) {\r\n return $_253nd92ajkmcwkmp.first(predicate).isSome();\r\n };\r\n var ancestor$3 = function (scope, predicate, isRoot) {\r\n return $_253nd92ajkmcwkmp.ancestor(scope, predicate, isRoot).isSome();\r\n };\r\n var closest$3 = function (scope, predicate, isRoot) {\r\n return $_253nd92ajkmcwkmp.closest(scope, predicate, isRoot).isSome();\r\n };\r\n var sibling$4 = function (scope, predicate) {\r\n return $_253nd92ajkmcwkmp.sibling(scope, predicate).isSome();\r\n };\r\n var child$4 = function (scope, predicate) {\r\n return $_253nd92ajkmcwkmp.child(scope, predicate).isSome();\r\n };\r\n var descendant$3 = function (scope, predicate) {\r\n return $_253nd92ajkmcwkmp.descendant(scope, predicate).isSome();\r\n };\r\n var $_szg1f4xjkmcwlad = {\r\n any: any$1,\r\n ancestor: ancestor$3,\r\n closest: closest$3,\r\n sibling: sibling$4,\r\n child: child$4,\r\n descendant: descendant$3\r\n };\r\n\r\n var focus$$1 = function (element) {\r\n element.dom().focus();\r\n };\r\n var blur$$1 = function (element) {\r\n element.dom().blur();\r\n };\r\n var hasFocus = function (element) {\r\n var doc = $_ca6pc118jkmcwkfs.owner(element).dom();\r\n return element.dom() === doc.activeElement;\r\n };\r\n var active = function (_doc) {\r\n var doc = _doc !== undefined ? _doc.dom() : document;\r\n return Option.from(doc.activeElement).map(Element$$1.fromDom);\r\n };\r\n var focusInside = function (element) {\r\n var doc = $_ca6pc118jkmcwkfs.owner(element);\r\n var inside = active(doc).filter(function (a) {\r\n return $_szg1f4xjkmcwlad.closest(a, curry($_e4hu6h1ejkmcwkgj.eq, element));\r\n });\r\n inside.fold(function () {\r\n focus$$1(element);\r\n }, noop);\r\n };\r\n var search = function (element) {\r\n return active($_ca6pc118jkmcwkfs.owner(element)).filter(function (e) {\r\n return element.dom().contains(e.dom());\r\n });\r\n };\r\n var $_468a0m4wjkmcwla6 = {\r\n hasFocus: hasFocus,\r\n focus: focus$$1,\r\n blur: blur$$1,\r\n active: active,\r\n search: search,\r\n focusInside: focusInside\r\n };\r\n\r\n var getContentEditableHost = function (editor, node) {\r\n return editor.dom.getParent(node, function (node) {\r\n return editor.dom.getContentEditable(node) === 'true';\r\n });\r\n };\r\n var getCollapsedNode = function (rng) {\r\n return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element$$1.fromDom) : Option.none();\r\n };\r\n var getFocusInElement = function (root, rng) {\r\n return getCollapsedNode(rng).bind(function (node) {\r\n if (isTableSection(node)) {\r\n return Option.some(node);\r\n } else if ($_e4hu6h1ejkmcwkgj.contains(root, node) === false) {\r\n return Option.some(root);\r\n } else {\r\n return Option.none();\r\n }\r\n });\r\n };\r\n var normalizeSelection = function (editor, rng) {\r\n getFocusInElement(Element$$1.fromDom(editor.getBody()), rng).bind(function (elm) {\r\n return $_1m3f3j2yjkmcwkqg.firstPositionIn(elm.dom());\r\n }).fold(function () {\r\n editor.selection.normalize();\r\n return;\r\n }, function (caretPos) {\r\n return editor.selection.setRng(caretPos.toRange());\r\n });\r\n };\r\n var focusBody = function (body) {\r\n if (body.setActive) {\r\n try {\r\n body.setActive();\r\n } catch (ex) {\r\n body.focus();\r\n }\r\n } else {\r\n body.focus();\r\n }\r\n };\r\n var hasElementFocus = function (elm) {\r\n return $_468a0m4wjkmcwla6.hasFocus(elm) || $_468a0m4wjkmcwla6.search(elm).isSome();\r\n };\r\n var hasIframeFocus = function (editor) {\r\n return editor.iframeElement && $_468a0m4wjkmcwla6.hasFocus(Element$$1.fromDom(editor.iframeElement));\r\n };\r\n var hasInlineFocus = function (editor) {\r\n var rawBody = editor.getBody();\r\n return rawBody && hasElementFocus(Element$$1.fromDom(rawBody));\r\n };\r\n var hasFocus$1 = function (editor) {\r\n return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\r\n };\r\n var focusEditor = function (editor) {\r\n var selection = editor.selection, contentEditable = editor.settings.content_editable;\r\n var body = editor.getBody();\r\n var rng = selection.getRng();\r\n editor.quirks.refreshContentEditable();\r\n var contentEditableHost = getContentEditableHost(editor, selection.getNode());\r\n if (editor.$.contains(body, contentEditableHost)) {\r\n focusBody(contentEditableHost);\r\n normalizeSelection(editor, rng);\r\n activateEditor(editor);\r\n return;\r\n }\r\n if (editor.bookmark !== undefined && hasFocus$1(editor) === false) {\r\n $_39c3zs4ljkmcwl86.getRng(editor).each(function (bookmarkRng) {\r\n editor.selection.setRng(bookmarkRng);\r\n rng = bookmarkRng;\r\n });\r\n }\r\n if (!contentEditable) {\r\n if (!$_cvvl9iajkmcwk25.opera) {\r\n focusBody(body);\r\n }\r\n editor.getWin().focus();\r\n }\r\n if ($_cvvl9iajkmcwk25.gecko || contentEditable) {\r\n focusBody(body);\r\n normalizeSelection(editor, rng);\r\n }\r\n activateEditor(editor);\r\n };\r\n var activateEditor = function (editor) {\r\n return editor.editorManager.setActive(editor);\r\n };\r\n var focus$1 = function (editor, skipFocus) {\r\n if (editor.removed) {\r\n return;\r\n }\r\n skipFocus ? activateEditor(editor) : focusEditor(editor);\r\n };\r\n var $_e3v8sn4vjkmcwl9y = {\r\n focus: focus$1,\r\n hasFocus: hasFocus$1\r\n };\r\n\r\n var getProp = function (propName, elm) {\r\n var rawElm = elm.dom();\r\n return rawElm[propName];\r\n };\r\n var getComputedSizeProp = function (propName, elm) {\r\n return parseInt($_4enzit13jkmcwke5.get(elm, propName), 10);\r\n };\r\n var getClientWidth = curry(getProp, 'clientWidth');\r\n var getClientHeight = curry(getProp, 'clientHeight');\r\n var getMarginTop = curry(getComputedSizeProp, 'margin-top');\r\n var getMarginLeft = curry(getComputedSizeProp, 'margin-left');\r\n var getBoundingClientRect$1 = function (elm) {\r\n return elm.dom().getBoundingClientRect();\r\n };\r\n var isInsideElementContentArea = function (bodyElm, clientX, clientY) {\r\n var clientWidth = getClientWidth(bodyElm);\r\n var clientHeight = getClientHeight(bodyElm);\r\n return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\r\n };\r\n var transpose = function (inline, elm, clientX, clientY) {\r\n var clientRect = getBoundingClientRect$1(elm);\r\n var deltaX = inline ? clientRect.left + elm.dom().clientLeft + getMarginLeft(elm) : 0;\r\n var deltaY = inline ? clientRect.top + elm.dom().clientTop + getMarginTop(elm) : 0;\r\n var x = clientX - deltaX;\r\n var y = clientY - deltaY;\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n };\r\n var isXYInContentArea = function (editor, clientX, clientY) {\r\n var bodyElm = Element$$1.fromDom(editor.getBody());\r\n var targetElm = editor.inline ? bodyElm : $_ca6pc118jkmcwkfs.documentElement(bodyElm);\r\n var transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\r\n return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\r\n };\r\n var fromDomSafe = function (node) {\r\n return Option.from(node).map(Element$$1.fromDom);\r\n };\r\n var isEditorAttachedToDom = function (editor) {\r\n var rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\r\n return fromDomSafe(rawContainer).map(function (container) {\r\n return $_e4hu6h1ejkmcwkgj.contains($_ca6pc118jkmcwkfs.owner(container), container);\r\n }).getOr(false);\r\n };\r\n var $_8we2e850jkmcwlaw = {\r\n isXYInContentArea: isXYInContentArea,\r\n isEditorAttachedToDom: isEditorAttachedToDom\r\n };\r\n\r\n function NotificationManagerImpl () {\r\n var unimplemented = function () {\r\n throw new Error('Theme did not provide a NotificationManager implementation.');\r\n };\r\n return {\r\n open: unimplemented,\r\n close: unimplemented,\r\n reposition: unimplemented,\r\n getArgs: unimplemented\r\n };\r\n }\r\n\r\n function NotificationManager (editor) {\r\n var notifications = [];\r\n var getImplementation = function () {\r\n var theme = editor.theme;\r\n return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\r\n };\r\n var getTopNotification = function () {\r\n return Option.from(notifications[0]);\r\n };\r\n var isEqual = function (a, b) {\r\n return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\r\n };\r\n var reposition = function () {\r\n if (notifications.length > 0) {\r\n getImplementation().reposition(notifications);\r\n }\r\n };\r\n var addNotification = function (notification) {\r\n notifications.push(notification);\r\n };\r\n var closeNotification = function (notification) {\r\n findIndex(notifications, function (otherNotification) {\r\n return otherNotification === notification;\r\n }).each(function (index) {\r\n notifications.splice(index, 1);\r\n });\r\n };\r\n var open = function (args) {\r\n if (editor.removed || !$_8we2e850jkmcwlaw.isEditorAttachedToDom(editor)) {\r\n return;\r\n }\r\n return find(notifications, function (notification) {\r\n return isEqual(getImplementation().getArgs(notification), args);\r\n }).getOrThunk(function () {\r\n editor.editorManager.setActive(editor);\r\n var notification = getImplementation().open(args, function () {\r\n closeNotification(notification);\r\n reposition();\r\n });\r\n addNotification(notification);\r\n reposition();\r\n return notification;\r\n });\r\n };\r\n var close = function () {\r\n getTopNotification().each(function (notification) {\r\n getImplementation().close(notification);\r\n closeNotification(notification);\r\n reposition();\r\n });\r\n };\r\n var getNotifications = function () {\r\n return notifications;\r\n };\r\n var registerEvents = function (editor) {\r\n editor.on('SkinLoaded', function () {\r\n var serviceMessage = editor.settings.service_message;\r\n if (serviceMessage) {\r\n open({\r\n text: serviceMessage,\r\n type: 'warning',\r\n timeout: 0,\r\n icon: ''\r\n });\r\n }\r\n });\r\n editor.on('ResizeEditor ResizeWindow', function () {\r\n $_3l01gcijkmcwk99.requestAnimationFrame(reposition);\r\n });\r\n editor.on('remove', function () {\r\n each(notifications, function (notification) {\r\n getImplementation().close(notification);\r\n });\r\n });\r\n };\r\n registerEvents(editor);\r\n return {\r\n open: open,\r\n close: close,\r\n getNotifications: getNotifications\r\n };\r\n }\r\n\r\n function WindowManagerImpl () {\r\n var unimplemented = function () {\r\n throw new Error('Theme did not provide a WindowManager implementation.');\r\n };\r\n return {\r\n open: unimplemented,\r\n alert: unimplemented,\r\n confirm: unimplemented,\r\n close: unimplemented,\r\n getParams: unimplemented,\r\n setParams: unimplemented\r\n };\r\n }\r\n\r\n function WindowManager (editor) {\r\n var windows = [];\r\n var getImplementation = function () {\r\n var theme = editor.theme;\r\n return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\r\n };\r\n var funcBind = function (scope, f) {\r\n return function () {\r\n return f ? f.apply(scope, arguments) : undefined;\r\n };\r\n };\r\n var fireOpenEvent = function (win) {\r\n editor.fire('OpenWindow', { win: win });\r\n };\r\n var fireCloseEvent = function (win) {\r\n editor.fire('CloseWindow', { win: win });\r\n };\r\n var addWindow = function (win) {\r\n windows.push(win);\r\n fireOpenEvent(win);\r\n };\r\n var closeWindow = function (win) {\r\n findIndex(windows, function (otherWindow) {\r\n return otherWindow === win;\r\n }).each(function (index) {\r\n windows.splice(index, 1);\r\n fireCloseEvent(win);\r\n if (windows.length === 0) {\r\n editor.focus();\r\n }\r\n });\r\n };\r\n var getTopWindow = function () {\r\n return Option.from(windows[windows.length - 1]);\r\n };\r\n var open = function (args, params) {\r\n editor.editorManager.setActive(editor);\r\n $_39c3zs4ljkmcwl86.store(editor);\r\n var win = getImplementation().open(args, params, closeWindow);\r\n addWindow(win);\r\n return win;\r\n };\r\n var alert = function (message, callback, scope) {\r\n var win = getImplementation().alert(message, funcBind(scope ? scope : this, callback), closeWindow);\r\n addWindow(win);\r\n };\r\n var confirm = function (message, callback, scope) {\r\n var win = getImplementation().confirm(message, funcBind(scope ? scope : this, callback), closeWindow);\r\n addWindow(win);\r\n };\r\n var close = function () {\r\n getTopWindow().each(function (win) {\r\n getImplementation().close(win);\r\n closeWindow(win);\r\n });\r\n };\r\n var getParams = function () {\r\n return getTopWindow().map(getImplementation().getParams).getOr(null);\r\n };\r\n var setParams = function (params) {\r\n getTopWindow().each(function (win) {\r\n getImplementation().setParams(win, params);\r\n });\r\n };\r\n var getWindows = function () {\r\n return windows;\r\n };\r\n editor.on('remove', function () {\r\n each(windows.slice(0), function (win) {\r\n getImplementation().close(win);\r\n });\r\n });\r\n return {\r\n windows: windows,\r\n open: open,\r\n alert: alert,\r\n confirm: confirm,\r\n close: close,\r\n getParams: getParams,\r\n setParams: setParams,\r\n getWindows: getWindows\r\n };\r\n }\r\n\r\n var PluginManager = AddOnManager.PluginManager;\r\n var resolvePluginName = function (targetUrl, suffix) {\r\n for (var name$$1 in PluginManager.urls) {\r\n var matchUrl = PluginManager.urls[name$$1] + '/plugin' + suffix + '.js';\r\n if (matchUrl === targetUrl) {\r\n return name$$1;\r\n }\r\n }\r\n return null;\r\n };\r\n var pluginUrlToMessage = function (editor, url) {\r\n var plugin = resolvePluginName(url, editor.suffix);\r\n return plugin ? 'Failed to load plugin: ' + plugin + ' from url ' + url : 'Failed to load plugin url: ' + url;\r\n };\r\n var displayNotification = function (editor, message) {\r\n editor.notificationManager.open({\r\n type: 'error',\r\n text: message\r\n });\r\n };\r\n var displayError = function (editor, message) {\r\n if (editor._skinLoaded) {\r\n displayNotification(editor, message);\r\n } else {\r\n editor.on('SkinLoaded', function () {\r\n displayNotification(editor, message);\r\n });\r\n }\r\n };\r\n var uploadError = function (editor, message) {\r\n displayError(editor, 'Failed to upload image: ' + message);\r\n };\r\n var pluginLoadError = function (editor, url) {\r\n displayError(editor, pluginUrlToMessage(editor, url));\r\n };\r\n var initError = function (message) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var console$$1 = window.console;\r\n if (console$$1) {\r\n if (console$$1.error) {\r\n console$$1.error.apply(console$$1, arguments);\r\n } else {\r\n console$$1.log.apply(console$$1, arguments);\r\n }\r\n }\r\n };\r\n var $_b9je0i54jkmcwlbe = {\r\n pluginLoadError: pluginLoadError,\r\n uploadError: uploadError,\r\n displayError: displayError,\r\n initError: initError\r\n };\r\n\r\n var PluginManager$1 = AddOnManager.PluginManager;\r\n\r\n var ThemeManager = AddOnManager.ThemeManager;\r\n\r\n function XMLHttpRequest () {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('XMLHttpRequest');\r\n return new f();\r\n }\r\n\r\n function Uploader (uploadStatus, settings) {\r\n var pendingPromises = {};\r\n var pathJoin = function (path1, path2) {\r\n if (path1) {\r\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\r\n }\r\n return path2;\r\n };\r\n var defaultHandler = function (blobInfo, success, failure, progress) {\r\n var xhr, formData;\r\n xhr = new XMLHttpRequest();\r\n xhr.open('POST', settings.url);\r\n xhr.withCredentials = settings.credentials;\r\n xhr.upload.onprogress = function (e) {\r\n progress(e.loaded / e.total * 100);\r\n };\r\n xhr.onerror = function () {\r\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\r\n };\r\n xhr.onload = function () {\r\n var json;\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n failure('HTTP Error: ' + xhr.status);\r\n return;\r\n }\r\n json = JSON.parse(xhr.responseText);\r\n if (!json || typeof json.location !== 'string') {\r\n failure('Invalid JSON: ' + xhr.responseText);\r\n return;\r\n }\r\n success(pathJoin(settings.basePath, json.location));\r\n };\r\n formData = new FormData();\r\n formData.append('file', blobInfo.blob(), blobInfo.filename());\r\n xhr.send(formData);\r\n };\r\n var noUpload = function () {\r\n return new promiseObj(function (resolve) {\r\n resolve([]);\r\n });\r\n };\r\n var handlerSuccess = function (blobInfo, url) {\r\n return {\r\n url: url,\r\n blobInfo: blobInfo,\r\n status: true\r\n };\r\n };\r\n var handlerFailure = function (blobInfo, error) {\r\n return {\r\n url: '',\r\n blobInfo: blobInfo,\r\n status: false,\r\n error: error\r\n };\r\n };\r\n var resolvePending = function (blobUri, result) {\r\n $_4ujg4tljkmcwkbk.each(pendingPromises[blobUri], function (resolve) {\r\n resolve(result);\r\n });\r\n delete pendingPromises[blobUri];\r\n };\r\n var uploadBlobInfo = function (blobInfo, handler, openNotification) {\r\n uploadStatus.markPending(blobInfo.blobUri());\r\n return new promiseObj(function (resolve) {\r\n var notification, progress;\r\n var noop = function () {\r\n };\r\n try {\r\n var closeNotification_1 = function () {\r\n if (notification) {\r\n notification.close();\r\n progress = noop;\r\n }\r\n };\r\n var success = function (url) {\r\n closeNotification_1();\r\n uploadStatus.markUploaded(blobInfo.blobUri(), url);\r\n resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\r\n resolve(handlerSuccess(blobInfo, url));\r\n };\r\n var failure = function (error) {\r\n closeNotification_1();\r\n uploadStatus.removeFailed(blobInfo.blobUri());\r\n resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\r\n resolve(handlerFailure(blobInfo, error));\r\n };\r\n progress = function (percent) {\r\n if (percent < 0 || percent > 100) {\r\n return;\r\n }\r\n if (!notification) {\r\n notification = openNotification();\r\n }\r\n notification.progressBar.value(percent);\r\n };\r\n handler(blobInfo, success, failure, progress);\r\n } catch (ex) {\r\n resolve(handlerFailure(blobInfo, ex.message));\r\n }\r\n });\r\n };\r\n var isDefaultHandler = function (handler) {\r\n return handler === defaultHandler;\r\n };\r\n var pendingUploadBlobInfo = function (blobInfo) {\r\n var blobUri = blobInfo.blobUri();\r\n return new promiseObj(function (resolve) {\r\n pendingPromises[blobUri] = pendingPromises[blobUri] || [];\r\n pendingPromises[blobUri].push(resolve);\r\n });\r\n };\r\n var uploadBlobs = function (blobInfos, openNotification) {\r\n blobInfos = $_4ujg4tljkmcwkbk.grep(blobInfos, function (blobInfo) {\r\n return !uploadStatus.isUploaded(blobInfo.blobUri());\r\n });\r\n return promiseObj.all($_4ujg4tljkmcwkbk.map(blobInfos, function (blobInfo) {\r\n return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);\r\n }));\r\n };\r\n var upload = function (blobInfos, openNotification) {\r\n return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\r\n };\r\n settings = $_4ujg4tljkmcwkbk.extend({\r\n credentials: false,\r\n handler: defaultHandler\r\n }, settings);\r\n return { upload: upload };\r\n }\r\n\r\n function Blob (parts, properties) {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('Blob');\r\n return new f(parts, properties);\r\n }\r\n\r\n function FileReader () {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('FileReader');\r\n return new f();\r\n }\r\n\r\n function Uint8Array (arr) {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('Uint8Array');\r\n return new f(arr);\r\n }\r\n\r\n var requestAnimationFrame$1 = function (callback) {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('requestAnimationFrame');\r\n f(callback);\r\n };\r\n var atob = function (base64) {\r\n var f = $_89i3w1cjkmcwk2c.getOrDie('atob');\r\n return f(base64);\r\n };\r\n var $_b0eesx5hjkmcwld6 = {\r\n atob: atob,\r\n requestAnimationFrame: requestAnimationFrame$1\r\n };\r\n\r\n var blobUriToBlob = function (url) {\r\n return new promiseObj(function (resolve, reject) {\r\n var rejectWithError = function () {\r\n reject('Cannot convert ' + url + ' to Blob. Resource might not exist or is inaccessible.');\r\n };\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n if (this.status === 200) {\r\n resolve(this.response);\r\n } else {\r\n rejectWithError();\r\n }\r\n };\r\n xhr.onerror = rejectWithError;\r\n xhr.send();\r\n } catch (ex) {\r\n rejectWithError();\r\n }\r\n });\r\n };\r\n var parseDataUri = function (uri) {\r\n var type, matches;\r\n uri = decodeURIComponent(uri).split(',');\r\n matches = /data:([^;]+)/.exec(uri[0]);\r\n if (matches) {\r\n type = matches[1];\r\n }\r\n return {\r\n type: type,\r\n data: uri[1]\r\n };\r\n };\r\n var dataUriToBlob = function (uri) {\r\n return new promiseObj(function (resolve) {\r\n var str, arr, i;\r\n uri = parseDataUri(uri);\r\n try {\r\n str = $_b0eesx5hjkmcwld6.atob(uri.data);\r\n } catch (e) {\r\n resolve(new Blob([]));\r\n return;\r\n }\r\n arr = new Uint8Array(str.length);\r\n for (i = 0; i < arr.length; i++) {\r\n arr[i] = str.charCodeAt(i);\r\n }\r\n resolve(new Blob([arr], { type: uri.type }));\r\n });\r\n };\r\n var uriToBlob = function (url) {\r\n if (url.indexOf('blob:') === 0) {\r\n return blobUriToBlob(url);\r\n }\r\n if (url.indexOf('data:') === 0) {\r\n return dataUriToBlob(url);\r\n }\r\n return null;\r\n };\r\n var blobToDataUri = function (blob) {\r\n return new promiseObj(function (resolve) {\r\n var reader = new FileReader();\r\n reader.onloadend = function () {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n };\r\n var $_7eufcj5djkmcwlcv = {\r\n uriToBlob: uriToBlob,\r\n blobToDataUri: blobToDataUri,\r\n parseDataUri: parseDataUri\r\n };\r\n\r\n var count = 0;\r\n var uniqueId = function (prefix) {\r\n return (prefix || 'blobid') + count++;\r\n };\r\n var imageToBlobInfo = function (blobCache, img, resolve, reject) {\r\n var base64, blobInfo;\r\n if (img.src.indexOf('blob:') === 0) {\r\n blobInfo = blobCache.getByUri(img.src);\r\n if (blobInfo) {\r\n resolve({\r\n image: img,\r\n blobInfo: blobInfo\r\n });\r\n } else {\r\n $_7eufcj5djkmcwlcv.uriToBlob(img.src).then(function (blob) {\r\n $_7eufcj5djkmcwlcv.blobToDataUri(blob).then(function (dataUri) {\r\n base64 = $_7eufcj5djkmcwlcv.parseDataUri(dataUri).data;\r\n blobInfo = blobCache.create(uniqueId(), blob, base64);\r\n blobCache.add(blobInfo);\r\n resolve({\r\n image: img,\r\n blobInfo: blobInfo\r\n });\r\n });\r\n }, function (err) {\r\n reject(err);\r\n });\r\n }\r\n return;\r\n }\r\n base64 = $_7eufcj5djkmcwlcv.parseDataUri(img.src).data;\r\n blobInfo = blobCache.findFirst(function (cachedBlobInfo) {\r\n return cachedBlobInfo.base64() === base64;\r\n });\r\n if (blobInfo) {\r\n resolve({\r\n image: img,\r\n blobInfo: blobInfo\r\n });\r\n } else {\r\n $_7eufcj5djkmcwlcv.uriToBlob(img.src).then(function (blob) {\r\n blobInfo = blobCache.create(uniqueId(), blob, base64);\r\n blobCache.add(blobInfo);\r\n resolve({\r\n image: img,\r\n blobInfo: blobInfo\r\n });\r\n }, function (err) {\r\n reject(err);\r\n });\r\n }\r\n };\r\n var getAllImages = function (elm) {\r\n return elm ? elm.getElementsByTagName('img') : [];\r\n };\r\n function ImageScanner (uploadStatus, blobCache) {\r\n var cachedPromises = {};\r\n var findAll = function (elm, predicate) {\r\n var images;\r\n if (!predicate) {\r\n predicate = $_fl2rax2ljkmcwkot.constant(true);\r\n }\r\n images = $_9g1fibmjkmcwkbu.filter(getAllImages(elm), function (img) {\r\n var src = img.src;\r\n if (!$_cvvl9iajkmcwk25.fileApi) {\r\n return false;\r\n }\r\n if (img.hasAttribute('data-mce-bogus')) {\r\n return false;\r\n }\r\n if (img.hasAttribute('data-mce-placeholder')) {\r\n return false;\r\n }\r\n if (!src || src === $_cvvl9iajkmcwk25.transparentSrc) {\r\n return false;\r\n }\r\n if (src.indexOf('blob:') === 0) {\r\n return !uploadStatus.isUploaded(src);\r\n }\r\n if (src.indexOf('data:') === 0) {\r\n return predicate(img);\r\n }\r\n return false;\r\n });\r\n var promises = $_9g1fibmjkmcwkbu.map(images, function (img) {\r\n if (cachedPromises[img.src]) {\r\n return new promiseObj(function (resolve) {\r\n cachedPromises[img.src].then(function (imageInfo) {\r\n if (typeof imageInfo === 'string') {\r\n return imageInfo;\r\n }\r\n resolve({\r\n image: img,\r\n blobInfo: imageInfo.blobInfo\r\n });\r\n });\r\n });\r\n }\r\n var newPromise = new promiseObj(function (resolve, reject) {\r\n imageToBlobInfo(blobCache, img, resolve, reject);\r\n }).then(function (result) {\r\n delete cachedPromises[result.image.src];\r\n return result;\r\n }).catch(function (error) {\r\n delete cachedPromises[img.src];\r\n return error;\r\n });\r\n cachedPromises[img.src] = newPromise;\r\n return newPromise;\r\n });\r\n return promiseObj.all(promises);\r\n };\r\n return { findAll: findAll };\r\n }\r\n\r\n var count$1 = 0;\r\n var seed = function () {\r\n var rnd = function () {\r\n return Math.round(Math.random() * 4294967295).toString(36);\r\n };\r\n var now = new Date().getTime();\r\n return 's' + now.toString(36) + rnd() + rnd() + rnd();\r\n };\r\n var uuid = function (prefix) {\r\n return prefix + count$1++ + seed();\r\n };\r\n var $_8flfjw5jjkmcwldd = { uuid: uuid };\r\n\r\n function BlobCache () {\r\n var cache = [];\r\n var constant = $_fl2rax2ljkmcwkot.constant;\r\n var mimeToExt = function (mime) {\r\n var mimes = {\r\n 'image/jpeg': 'jpg',\r\n 'image/jpg': 'jpg',\r\n 'image/gif': 'gif',\r\n 'image/png': 'png'\r\n };\r\n return mimes[mime.toLowerCase()] || 'dat';\r\n };\r\n var create = function (o, blob, base64, filename) {\r\n return typeof o === 'object' ? toBlobInfo(o) : toBlobInfo({\r\n id: o,\r\n name: filename,\r\n blob: blob,\r\n base64: base64\r\n });\r\n };\r\n var toBlobInfo = function (o) {\r\n var id, name;\r\n if (!o.blob || !o.base64) {\r\n throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\r\n }\r\n id = o.id || $_8flfjw5jjkmcwldd.uuid('blobid');\r\n name = o.name || id;\r\n return {\r\n id: constant(id),\r\n name: constant(name),\r\n filename: constant(name + '.' + mimeToExt(o.blob.type)),\r\n blob: constant(o.blob),\r\n base64: constant(o.base64),\r\n blobUri: constant(o.blobUri || $_ci16mbjkmcwk2b.createObjectURL(o.blob)),\r\n uri: constant(o.uri)\r\n };\r\n };\r\n var add = function (blobInfo) {\r\n if (!get(blobInfo.id())) {\r\n cache.push(blobInfo);\r\n }\r\n };\r\n var get = function (id) {\r\n return findFirst(function (cachedBlobInfo) {\r\n return cachedBlobInfo.id() === id;\r\n });\r\n };\r\n var findFirst = function (predicate) {\r\n return $_9g1fibmjkmcwkbu.filter(cache, predicate)[0];\r\n };\r\n var getByUri = function (blobUri) {\r\n return findFirst(function (blobInfo) {\r\n return blobInfo.blobUri() === blobUri;\r\n });\r\n };\r\n var removeByUri = function (blobUri) {\r\n cache = $_9g1fibmjkmcwkbu.filter(cache, function (blobInfo) {\r\n if (blobInfo.blobUri() === blobUri) {\r\n $_ci16mbjkmcwk2b.revokeObjectURL(blobInfo.blobUri());\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n var destroy = function () {\r\n $_9g1fibmjkmcwkbu.each(cache, function (cachedBlobInfo) {\r\n $_ci16mbjkmcwk2b.revokeObjectURL(cachedBlobInfo.blobUri());\r\n });\r\n cache = [];\r\n };\r\n return {\r\n create: create,\r\n add: add,\r\n get: get,\r\n getByUri: getByUri,\r\n findFirst: findFirst,\r\n removeByUri: removeByUri,\r\n destroy: destroy\r\n };\r\n }\r\n\r\n function UploadStatus () {\r\n var PENDING = 1, UPLOADED = 2;\r\n var blobUriStatuses = {};\r\n var createStatus = function (status, resultUri) {\r\n return {\r\n status: status,\r\n resultUri: resultUri\r\n };\r\n };\r\n var hasBlobUri = function (blobUri) {\r\n return blobUri in blobUriStatuses;\r\n };\r\n var getResultUri = function (blobUri) {\r\n var result = blobUriStatuses[blobUri];\r\n return result ? result.resultUri : null;\r\n };\r\n var isPending = function (blobUri) {\r\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\r\n };\r\n var isUploaded = function (blobUri) {\r\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\r\n };\r\n var markPending = function (blobUri) {\r\n blobUriStatuses[blobUri] = createStatus(PENDING, null);\r\n };\r\n var markUploaded = function (blobUri, resultUri) {\r\n blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\r\n };\r\n var removeFailed = function (blobUri) {\r\n delete blobUriStatuses[blobUri];\r\n };\r\n var destroy = function () {\r\n blobUriStatuses = {};\r\n };\r\n return {\r\n hasBlobUri: hasBlobUri,\r\n getResultUri: getResultUri,\r\n isPending: isPending,\r\n isUploaded: isUploaded,\r\n markPending: markPending,\r\n markUploaded: markUploaded,\r\n removeFailed: removeFailed,\r\n destroy: destroy\r\n };\r\n }\r\n\r\n function EditorUpload (editor) {\r\n var blobCache = BlobCache();\r\n var uploader, imageScanner;\r\n var settings = editor.settings;\r\n var uploadStatus = UploadStatus();\r\n var aliveGuard = function (callback) {\r\n return function (result) {\r\n if (editor.selection) {\r\n return callback(result);\r\n }\r\n return [];\r\n };\r\n };\r\n var cacheInvalidator = function () {\r\n return '?' + new Date().getTime();\r\n };\r\n var replaceString = function (content, search, replace) {\r\n var index = 0;\r\n do {\r\n index = content.indexOf(search, index);\r\n if (index !== -1) {\r\n content = content.substring(0, index) + replace + content.substr(index + search.length);\r\n index += replace.length - search.length + 1;\r\n }\r\n } while (index !== -1);\r\n return content;\r\n };\r\n var replaceImageUrl = function (content, targetUrl, replacementUrl) {\r\n content = replaceString(content, 'src=\"' + targetUrl + '\"', 'src=\"' + replacementUrl + '\"');\r\n content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\r\n return content;\r\n };\r\n var replaceUrlInUndoStack = function (targetUrl, replacementUrl) {\r\n $_9g1fibmjkmcwkbu.each(editor.undoManager.data, function (level) {\r\n if (level.type === 'fragmented') {\r\n level.fragments = $_9g1fibmjkmcwkbu.map(level.fragments, function (fragment) {\r\n return replaceImageUrl(fragment, targetUrl, replacementUrl);\r\n });\r\n } else {\r\n level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\r\n }\r\n });\r\n };\r\n var openNotification = function () {\r\n return editor.notificationManager.open({\r\n text: editor.translate('Image uploading...'),\r\n type: 'info',\r\n timeout: -1,\r\n progressBar: true\r\n });\r\n };\r\n var replaceImageUri = function (image, resultUri) {\r\n blobCache.removeByUri(image.src);\r\n replaceUrlInUndoStack(image.src, resultUri);\r\n editor.$(image).attr({\r\n 'src': settings.images_reuse_filename ? resultUri + cacheInvalidator() : resultUri,\r\n 'data-mce-src': editor.convertURL(resultUri, 'src')\r\n });\r\n };\r\n var uploadImages = function (callback) {\r\n if (!uploader) {\r\n uploader = Uploader(uploadStatus, {\r\n url: settings.images_upload_url,\r\n basePath: settings.images_upload_base_path,\r\n credentials: settings.images_upload_credentials,\r\n handler: settings.images_upload_handler\r\n });\r\n }\r\n return scanForImages().then(aliveGuard(function (imageInfos) {\r\n var blobInfos;\r\n blobInfos = $_9g1fibmjkmcwkbu.map(imageInfos, function (imageInfo) {\r\n return imageInfo.blobInfo;\r\n });\r\n return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) {\r\n var filteredResult = $_9g1fibmjkmcwkbu.map(result, function (uploadInfo, index) {\r\n var image = imageInfos[index].image;\r\n if (uploadInfo.status && editor.settings.images_replace_blob_uris !== false) {\r\n replaceImageUri(image, uploadInfo.url);\r\n } else if (uploadInfo.error) {\r\n $_b9je0i54jkmcwlbe.uploadError(editor, uploadInfo.error);\r\n }\r\n return {\r\n element: image,\r\n status: uploadInfo.status\r\n };\r\n });\r\n if (callback) {\r\n callback(filteredResult);\r\n }\r\n return filteredResult;\r\n }));\r\n }));\r\n };\r\n var uploadImagesAuto = function (callback) {\r\n if (settings.automatic_uploads !== false) {\r\n return uploadImages(callback);\r\n }\r\n };\r\n var isValidDataUriImage = function (imgElm) {\r\n return settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true;\r\n };\r\n var scanForImages = function () {\r\n if (!imageScanner) {\r\n imageScanner = ImageScanner(uploadStatus, blobCache);\r\n }\r\n return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(function (result) {\r\n result = $_9g1fibmjkmcwkbu.filter(result, function (resultItem) {\r\n if (typeof resultItem === 'string') {\r\n $_b9je0i54jkmcwlbe.displayError(editor, resultItem);\r\n return false;\r\n }\r\n return true;\r\n });\r\n $_9g1fibmjkmcwkbu.each(result, function (resultItem) {\r\n replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\r\n resultItem.image.src = resultItem.blobInfo.blobUri();\r\n resultItem.image.removeAttribute('data-mce-src');\r\n });\r\n return result;\r\n }));\r\n };\r\n var destroy = function () {\r\n blobCache.destroy();\r\n uploadStatus.destroy();\r\n imageScanner = uploader = null;\r\n };\r\n var replaceBlobUris = function (content) {\r\n return content.replace(/src=\"(blob:[^\"]+)\"/g, function (match, blobUri) {\r\n var resultUri = uploadStatus.getResultUri(blobUri);\r\n if (resultUri) {\r\n return 'src=\"' + resultUri + '\"';\r\n }\r\n var blobInfo = blobCache.getByUri(blobUri);\r\n if (!blobInfo) {\r\n blobInfo = $_9g1fibmjkmcwkbu.reduce(editor.editorManager.get(), function (result, editor) {\r\n return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\r\n }, null);\r\n }\r\n if (blobInfo) {\r\n return 'src=\"data:' + blobInfo.blob().type + ';base64,' + blobInfo.base64() + '\"';\r\n }\r\n return match;\r\n });\r\n };\r\n editor.on('setContent', function () {\r\n if (editor.settings.automatic_uploads !== false) {\r\n uploadImagesAuto();\r\n } else {\r\n scanForImages();\r\n }\r\n });\r\n editor.on('RawSaveContent', function (e) {\r\n e.content = replaceBlobUris(e.content);\r\n });\r\n editor.on('getContent', function (e) {\r\n if (e.source_view || e.format === 'raw') {\r\n return;\r\n }\r\n e.content = replaceBlobUris(e.content);\r\n });\r\n editor.on('PostRender', function () {\r\n editor.parser.addNodeFilter('img', function (images) {\r\n $_9g1fibmjkmcwkbu.each(images, function (img) {\r\n var src = img.attr('src');\r\n if (blobCache.getByUri(src)) {\r\n return;\r\n }\r\n var resultUri = uploadStatus.getResultUri(src);\r\n if (resultUri) {\r\n img.attr('src', resultUri);\r\n }\r\n });\r\n });\r\n });\r\n return {\r\n blobCache: blobCache,\r\n uploadImages: uploadImages,\r\n uploadImagesAuto: uploadImagesAuto,\r\n scanForImages: scanForImages,\r\n destroy: destroy\r\n };\r\n }\r\n\r\n var isBlockElement = function (blockElements, node) {\r\n return blockElements.hasOwnProperty(node.nodeName);\r\n };\r\n var isValidTarget = function (blockElements, node) {\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n return true;\r\n } else if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n return !isBlockElement(blockElements, node) && !$_e4btcc2vjkmcwkq3.isBookmarkNode(node);\r\n } else {\r\n return false;\r\n }\r\n };\r\n var hasBlockParent = function (blockElements, root, node) {\r\n return exists($_cir6zl3zjkmcwl2j.parents(Element$$1.fromDom(node), Element$$1.fromDom(root)), function (elm) {\r\n return isBlockElement(blockElements, elm.dom());\r\n });\r\n };\r\n var shouldRemoveTextNode = function (blockElements, node) {\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n if (node.nodeValue.length === 0) {\r\n return true;\r\n } else if (/^\\s+$/.test(node.nodeValue) && (!node.nextSibling || isBlockElement(blockElements, node.nextSibling))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var addRootBlocks = function (editor) {\r\n var settings = editor.settings, dom = editor.dom, selection = editor.selection;\r\n var schema = editor.schema, blockElements = schema.getBlockElements();\r\n var node = selection.getStart();\r\n var rootNode = editor.getBody();\r\n var rng;\r\n var startContainer, startOffset, endContainer, endOffset, rootBlockNode;\r\n var tempNode, wrapped, restoreSelection;\r\n var rootNodeName, forcedRootBlock;\r\n forcedRootBlock = settings.forced_root_block;\r\n if (!node || !$_bjermr1rjkmcwkij.isElement(node) || !forcedRootBlock) {\r\n return;\r\n }\r\n rootNodeName = rootNode.nodeName.toLowerCase();\r\n if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, node)) {\r\n return;\r\n }\r\n rng = selection.getRng();\r\n startContainer = rng.startContainer;\r\n startOffset = rng.startOffset;\r\n endContainer = rng.endContainer;\r\n endOffset = rng.endOffset;\r\n restoreSelection = $_e3v8sn4vjkmcwl9y.hasFocus(editor);\r\n node = rootNode.firstChild;\r\n while (node) {\r\n if (isValidTarget(blockElements, node)) {\r\n if (shouldRemoveTextNode(blockElements, node)) {\r\n tempNode = node;\r\n node = node.nextSibling;\r\n dom.remove(tempNode);\r\n continue;\r\n }\r\n if (!rootBlockNode) {\r\n rootBlockNode = dom.create(forcedRootBlock, editor.settings.forced_root_block_attrs);\r\n node.parentNode.insertBefore(rootBlockNode, node);\r\n wrapped = true;\r\n }\r\n tempNode = node;\r\n node = node.nextSibling;\r\n rootBlockNode.appendChild(tempNode);\r\n } else {\r\n rootBlockNode = null;\r\n node = node.nextSibling;\r\n }\r\n }\r\n if (wrapped && restoreSelection) {\r\n rng.setStart(startContainer, startOffset);\r\n rng.setEnd(endContainer, endOffset);\r\n selection.setRng(rng);\r\n editor.nodeChanged();\r\n }\r\n };\r\n var setup$2 = function (editor) {\r\n if (editor.settings.forced_root_block) {\r\n editor.on('NodeChange', curry(addRootBlocks, editor));\r\n }\r\n };\r\n var $_5utnj35ljkmcwldh = { setup: setup$2 };\r\n\r\n var getStartNode = function (rng) {\r\n var sc = rng.startContainer, so = rng.startOffset;\r\n if ($_bjermr1rjkmcwkij.isText(sc)) {\r\n return so === 0 ? Option.some(Element$$1.fromDom(sc)) : Option.none();\r\n } else {\r\n return Option.from(sc.childNodes[so]).map(Element$$1.fromDom);\r\n }\r\n };\r\n var getEndNode = function (rng) {\r\n var ec = rng.endContainer, eo = rng.endOffset;\r\n if ($_bjermr1rjkmcwkij.isText(ec)) {\r\n return eo === ec.data.length ? Option.some(Element$$1.fromDom(ec)) : Option.none();\r\n } else {\r\n return Option.from(ec.childNodes[eo - 1]).map(Element$$1.fromDom);\r\n }\r\n };\r\n var getFirstChildren = function (node) {\r\n return $_ca6pc118jkmcwkfs.firstChild(node).fold(constant([node]), function (child) {\r\n return [node].concat(getFirstChildren(child));\r\n });\r\n };\r\n var getLastChildren$1 = function (node) {\r\n return $_ca6pc118jkmcwkfs.lastChild(node).fold(constant([node]), function (child) {\r\n if ($_2xwdjv11jkmcwke0.name(child) === 'br') {\r\n return $_ca6pc118jkmcwkfs.prevSibling(child).map(function (sibling) {\r\n return [node].concat(getLastChildren$1(sibling));\r\n }).getOr([]);\r\n } else {\r\n return [node].concat(getLastChildren$1(child));\r\n }\r\n });\r\n };\r\n var hasAllContentsSelected = function (elm, rng) {\r\n return liftN([\r\n getStartNode(rng),\r\n getEndNode(rng)\r\n ], function (startNode, endNode) {\r\n var start = find(getFirstChildren(elm), curry($_e4hu6h1ejkmcwkgj.eq, startNode));\r\n var end = find(getLastChildren$1(elm), curry($_e4hu6h1ejkmcwkgj.eq, endNode));\r\n return start.isSome() && end.isSome();\r\n }).getOr(false);\r\n };\r\n var moveEndPoint$1 = function (dom, rng, node, start) {\r\n var root = node, walker = new TreeWalker(node, root);\r\n var nonEmptyElementsMap = dom.schema.getNonEmptyElements();\r\n do {\r\n if (node.nodeType === 3 && $_4ujg4tljkmcwkbk.trim(node.nodeValue).length !== 0) {\r\n if (start) {\r\n rng.setStart(node, 0);\r\n } else {\r\n rng.setEnd(node, node.nodeValue.length);\r\n }\r\n return;\r\n }\r\n if (nonEmptyElementsMap[node.nodeName] && !/^(TD|TH)$/.test(node.nodeName)) {\r\n if (start) {\r\n rng.setStartBefore(node);\r\n } else {\r\n if (node.nodeName === 'BR') {\r\n rng.setEndBefore(node);\r\n } else {\r\n rng.setEndAfter(node);\r\n }\r\n }\r\n return;\r\n }\r\n if ($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 11 && dom.isBlock(node) && dom.isEmpty(node)) {\r\n if (start) {\r\n rng.setStart(node, 0);\r\n } else {\r\n rng.setEnd(node, 0);\r\n }\r\n return;\r\n }\r\n } while (node = start ? walker.next() : walker.prev());\r\n if (root.nodeName === 'BODY') {\r\n if (start) {\r\n rng.setStart(root, 0);\r\n } else {\r\n rng.setEnd(root, root.childNodes.length);\r\n }\r\n }\r\n };\r\n var hasAnyRanges = function (editor) {\r\n var sel = editor.selection.getSel();\r\n return sel && sel.rangeCount > 0;\r\n };\r\n\r\n function NodeChange (editor) {\r\n var lastRng, lastPath = [];\r\n var isSameElementPath = function (startElm) {\r\n var i, currentPath;\r\n currentPath = editor.$(startElm).parentsUntil(editor.getBody()).add(startElm);\r\n if (currentPath.length === lastPath.length) {\r\n for (i = currentPath.length; i >= 0; i--) {\r\n if (currentPath[i] !== lastPath[i]) {\r\n break;\r\n }\r\n }\r\n if (i === -1) {\r\n lastPath = currentPath;\r\n return true;\r\n }\r\n }\r\n lastPath = currentPath;\r\n return false;\r\n };\r\n if (!('onselectionchange' in editor.getDoc())) {\r\n editor.on('NodeChange Click MouseUp KeyUp Focus', function (e) {\r\n var nativeRng, fakeRng;\r\n nativeRng = editor.selection.getRng();\r\n fakeRng = {\r\n startContainer: nativeRng.startContainer,\r\n startOffset: nativeRng.startOffset,\r\n endContainer: nativeRng.endContainer,\r\n endOffset: nativeRng.endOffset\r\n };\r\n if (e.type === 'nodechange' || !$_axtxv74kjkmcwl84.isEq(fakeRng, lastRng)) {\r\n editor.fire('SelectionChange');\r\n }\r\n lastRng = fakeRng;\r\n });\r\n }\r\n editor.on('contextmenu', function () {\r\n editor.fire('SelectionChange');\r\n });\r\n editor.on('SelectionChange', function () {\r\n var startElm = editor.selection.getStart(true);\r\n if (!startElm || !$_cvvl9iajkmcwk25.range && editor.selection.isCollapsed()) {\r\n return;\r\n }\r\n if (hasAnyRanges(editor) && !isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\r\n editor.nodeChanged({ selectionChange: true });\r\n }\r\n });\r\n editor.on('MouseUp', function (e) {\r\n if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\r\n if (editor.selection.getNode().nodeName === 'IMG') {\r\n $_3l01gcijkmcwk99.setEditorTimeout(editor, function () {\r\n editor.nodeChanged();\r\n });\r\n } else {\r\n editor.nodeChanged();\r\n }\r\n }\r\n });\r\n this.nodeChanged = function (args) {\r\n var selection = editor.selection;\r\n var node, parents, root;\r\n if (editor.initialized && selection && !editor.settings.disable_nodechange && !editor.readonly) {\r\n root = editor.getBody();\r\n node = selection.getStart(true) || root;\r\n if (node.ownerDocument !== editor.getDoc() || !editor.dom.isChildOf(node, root)) {\r\n node = root;\r\n }\r\n parents = [];\r\n editor.dom.getParent(node, function (node) {\r\n if (node === root) {\r\n return true;\r\n }\r\n parents.push(node);\r\n });\r\n args = args || {};\r\n args.element = node;\r\n args.parents = parents;\r\n editor.fire('NodeChange', args);\r\n }\r\n };\r\n }\r\n\r\n var getAbsolutePosition = function (elm) {\r\n var doc, docElem, win, clientRect;\r\n clientRect = elm.getBoundingClientRect();\r\n doc = elm.ownerDocument;\r\n docElem = doc.documentElement;\r\n win = doc.defaultView;\r\n return {\r\n top: clientRect.top + win.pageYOffset - docElem.clientTop,\r\n left: clientRect.left + win.pageXOffset - docElem.clientLeft\r\n };\r\n };\r\n var getBodyPosition = function (editor) {\r\n return editor.inline ? getAbsolutePosition(editor.getBody()) : {\r\n left: 0,\r\n top: 0\r\n };\r\n };\r\n var getScrollPosition = function (editor) {\r\n var body = editor.getBody();\r\n return editor.inline ? {\r\n left: body.scrollLeft,\r\n top: body.scrollTop\r\n } : {\r\n left: 0,\r\n top: 0\r\n };\r\n };\r\n var getBodyScroll = function (editor) {\r\n var body = editor.getBody(), docElm = editor.getDoc().documentElement;\r\n var inlineScroll = {\r\n left: body.scrollLeft,\r\n top: body.scrollTop\r\n };\r\n var iframeScroll = {\r\n left: body.scrollLeft || docElm.scrollLeft,\r\n top: body.scrollTop || docElm.scrollTop\r\n };\r\n return editor.inline ? inlineScroll : iframeScroll;\r\n };\r\n var getMousePosition = function (editor, event) {\r\n if (event.target.ownerDocument !== editor.getDoc()) {\r\n var iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\r\n var scrollPosition = getBodyScroll(editor);\r\n return {\r\n left: event.pageX - iframePosition.left + scrollPosition.left,\r\n top: event.pageY - iframePosition.top + scrollPosition.top\r\n };\r\n }\r\n return {\r\n left: event.pageX,\r\n top: event.pageY\r\n };\r\n };\r\n var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) {\r\n return {\r\n pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\r\n pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\r\n };\r\n };\r\n var calc = function (editor, event) {\r\n return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\r\n };\r\n var $_7vqqhl5qjkmcwlfd = { calc: calc };\r\n\r\n var isContentEditableFalse$7 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isContentEditableTrue$4 = $_bjermr1rjkmcwkij.isContentEditableTrue;\r\n var isDraggable = function (rootElm, elm) {\r\n return isContentEditableFalse$7(elm) && elm !== rootElm;\r\n };\r\n var isValidDropTarget = function (editor, targetElement, dragElement) {\r\n if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\r\n return false;\r\n }\r\n if (isContentEditableFalse$7(targetElement)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var cloneElement = function (elm) {\r\n var cloneElm = elm.cloneNode(true);\r\n cloneElm.removeAttribute('data-mce-selected');\r\n return cloneElm;\r\n };\r\n var createGhost = function (editor, elm, width, height) {\r\n var clonedElm = elm.cloneNode(true);\r\n editor.dom.setStyles(clonedElm, {\r\n width: width,\r\n height: height\r\n });\r\n editor.dom.setAttrib(clonedElm, 'data-mce-selected', null);\r\n var ghostElm = editor.dom.create('div', {\r\n 'class': 'mce-drag-container',\r\n 'data-mce-bogus': 'all',\r\n 'unselectable': 'on',\r\n 'contenteditable': 'false'\r\n });\r\n editor.dom.setStyles(ghostElm, {\r\n position: 'absolute',\r\n opacity: 0.5,\r\n overflow: 'hidden',\r\n border: 0,\r\n padding: 0,\r\n margin: 0,\r\n width: width,\r\n height: height\r\n });\r\n editor.dom.setStyles(clonedElm, {\r\n margin: 0,\r\n boxSizing: 'border-box'\r\n });\r\n ghostElm.appendChild(clonedElm);\r\n return ghostElm;\r\n };\r\n var appendGhostToBody = function (ghostElm, bodyElm) {\r\n if (ghostElm.parentNode !== bodyElm) {\r\n bodyElm.appendChild(ghostElm);\r\n }\r\n };\r\n var moveGhost = function (ghostElm, position, width, height, maxX, maxY) {\r\n var overflowX = 0, overflowY = 0;\r\n ghostElm.style.left = position.pageX + 'px';\r\n ghostElm.style.top = position.pageY + 'px';\r\n if (position.pageX + width > maxX) {\r\n overflowX = position.pageX + width - maxX;\r\n }\r\n if (position.pageY + height > maxY) {\r\n overflowY = position.pageY + height - maxY;\r\n }\r\n ghostElm.style.width = width - overflowX + 'px';\r\n ghostElm.style.height = height - overflowY + 'px';\r\n };\r\n var removeElement = function (elm) {\r\n if (elm && elm.parentNode) {\r\n elm.parentNode.removeChild(elm);\r\n }\r\n };\r\n var isLeftMouseButtonPressed = function (e) {\r\n return e.button === 0;\r\n };\r\n var hasDraggableElement = function (state) {\r\n return state.element;\r\n };\r\n var applyRelPos = function (state, position) {\r\n return {\r\n pageX: position.pageX - state.relX,\r\n pageY: position.pageY + 5\r\n };\r\n };\r\n var start$1 = function (state, editor) {\r\n return function (e) {\r\n if (isLeftMouseButtonPressed(e)) {\r\n var ceElm = $_9g1fibmjkmcwkbu.find(editor.dom.getParents(e.target), $_fl2rax2ljkmcwkot.or(isContentEditableFalse$7, isContentEditableTrue$4));\r\n if (isDraggable(editor.getBody(), ceElm)) {\r\n var elmPos = editor.dom.getPos(ceElm);\r\n var bodyElm = editor.getBody();\r\n var docElm = editor.getDoc().documentElement;\r\n state.element = ceElm;\r\n state.screenX = e.screenX;\r\n state.screenY = e.screenY;\r\n state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2;\r\n state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2;\r\n state.relX = e.pageX - elmPos.x;\r\n state.relY = e.pageY - elmPos.y;\r\n state.width = ceElm.offsetWidth;\r\n state.height = ceElm.offsetHeight;\r\n state.ghost = createGhost(editor, ceElm, state.width, state.height);\r\n }\r\n }\r\n };\r\n };\r\n var move$1 = function (state, editor) {\r\n var throttledPlaceCaretAt = $_3l01gcijkmcwk99.throttle(function (clientX, clientY) {\r\n editor._selectionOverrides.hideFakeCaret();\r\n editor.selection.placeCaretAt(clientX, clientY);\r\n }, 0);\r\n return function (e) {\r\n var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\r\n if (hasDraggableElement(state) && !state.dragging && movement > 10) {\r\n var args = editor.fire('dragstart', { target: state.element });\r\n if (args.isDefaultPrevented()) {\r\n return;\r\n }\r\n state.dragging = true;\r\n editor.focus();\r\n }\r\n if (state.dragging) {\r\n var targetPos = applyRelPos(state, $_7vqqhl5qjkmcwlfd.calc(editor, e));\r\n appendGhostToBody(state.ghost, editor.getBody());\r\n moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);\r\n throttledPlaceCaretAt(e.clientX, e.clientY);\r\n }\r\n };\r\n };\r\n var getRawTarget = function (selection) {\r\n var rng = selection.getSel().getRangeAt(0);\r\n var startContainer = rng.startContainer;\r\n return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer;\r\n };\r\n var drop = function (state, editor) {\r\n return function (e) {\r\n if (state.dragging) {\r\n if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\r\n var targetClone_1 = cloneElement(state.element);\r\n var args = editor.fire('drop', {\r\n targetClone: targetClone_1,\r\n clientX: e.clientX,\r\n clientY: e.clientY\r\n });\r\n if (!args.isDefaultPrevented()) {\r\n targetClone_1 = args.targetClone;\r\n editor.undoManager.transact(function () {\r\n removeElement(state.element);\r\n editor.insertContent(editor.dom.getOuterHTML(targetClone_1));\r\n editor._selectionOverrides.hideFakeCaret();\r\n });\r\n }\r\n }\r\n }\r\n removeDragState(state);\r\n };\r\n };\r\n var stop$$1 = function (state, editor) {\r\n return function () {\r\n if (state.dragging) {\r\n editor.fire('dragend');\r\n }\r\n removeDragState(state);\r\n };\r\n };\r\n var removeDragState = function (state) {\r\n state.dragging = false;\r\n state.element = null;\r\n removeElement(state.ghost);\r\n };\r\n var bindFakeDragEvents = function (editor) {\r\n var state = {};\r\n var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument;\r\n pageDom = DOMUtils$1.DOM;\r\n rootDocument = document;\r\n dragStartHandler = start$1(state, editor);\r\n dragHandler = move$1(state, editor);\r\n dropHandler = drop(state, editor);\r\n dragEndHandler = stop$$1(state, editor);\r\n editor.on('mousedown', dragStartHandler);\r\n editor.on('mousemove', dragHandler);\r\n editor.on('mouseup', dropHandler);\r\n pageDom.bind(rootDocument, 'mousemove', dragHandler);\r\n pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\r\n editor.on('remove', function () {\r\n pageDom.unbind(rootDocument, 'mousemove', dragHandler);\r\n pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\r\n });\r\n };\r\n var blockIeDrop = function (editor) {\r\n editor.on('drop', function (e) {\r\n var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null;\r\n if (isContentEditableFalse$7(realTarget) || isContentEditableFalse$7(editor.dom.getContentEditableParent(realTarget))) {\r\n e.preventDefault();\r\n }\r\n });\r\n };\r\n var init = function (editor) {\r\n bindFakeDragEvents(editor);\r\n blockIeDrop(editor);\r\n };\r\n var $_amfo0m5pjkmcwlf7 = { init: init };\r\n\r\n var getNodeClientRects = function (node) {\r\n var toArrayWithNode = function (clientRects) {\r\n return $_9g1fibmjkmcwkbu.map(clientRects, function (clientRect) {\r\n clientRect = clone$2(clientRect);\r\n clientRect.node = node;\r\n return clientRect;\r\n });\r\n };\r\n if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n return toArrayWithNode(node.getClientRects());\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n var rng = node.ownerDocument.createRange();\r\n rng.setStart(node, 0);\r\n rng.setEnd(node, node.data.length);\r\n return toArrayWithNode(rng.getClientRects());\r\n }\r\n };\r\n var getClientRects = function (node) {\r\n return $_9g1fibmjkmcwkbu.reduce(node, function (result, node) {\r\n return result.concat(getNodeClientRects(node));\r\n }, []);\r\n };\r\n\r\n var VDirection;\r\n (function (VDirection) {\r\n VDirection[VDirection['Up'] = -1] = 'Up';\r\n VDirection[VDirection['Down'] = 1] = 'Down';\r\n }(VDirection || (VDirection = {})));\r\n var findUntil = function (direction, root, predicateFn, node) {\r\n while (node = findNode(node, direction, isEditableCaretCandidate, root)) {\r\n if (predicateFn(node)) {\r\n return;\r\n }\r\n }\r\n };\r\n var walkUntil = function (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) {\r\n var line = 0, node;\r\n var result = [];\r\n var targetClientRect;\r\n var add = function (node) {\r\n var i, clientRect, clientRects;\r\n clientRects = getClientRects([node]);\r\n if (direction === -1) {\r\n clientRects = clientRects.reverse();\r\n }\r\n for (i = 0; i < clientRects.length; i++) {\r\n clientRect = clientRects[i];\r\n if (isBeflowFn(clientRect, targetClientRect)) {\r\n continue;\r\n }\r\n if (result.length > 0 && isAboveFn(clientRect, $_9g1fibmjkmcwkbu.last(result))) {\r\n line++;\r\n }\r\n clientRect.line = line;\r\n if (predicateFn(clientRect)) {\r\n return true;\r\n }\r\n result.push(clientRect);\r\n }\r\n };\r\n targetClientRect = $_9g1fibmjkmcwkbu.last(caretPosition.getClientRects());\r\n if (!targetClientRect) {\r\n return result;\r\n }\r\n node = caretPosition.getNode();\r\n add(node);\r\n findUntil(direction, root, add, node);\r\n return result;\r\n };\r\n var aboveLineNumber = function (lineNumber, clientRect) {\r\n return clientRect.line > lineNumber;\r\n };\r\n var isLineNumber = function (lineNumber, clientRect) {\r\n return clientRect.line === lineNumber;\r\n };\r\n var upUntil = curry(walkUntil, VDirection.Up, isAbove, isBelow);\r\n var downUntil = curry(walkUntil, VDirection.Down, isBelow, isAbove);\r\n var positionsUntil = function (direction, root, predicateFn, node) {\r\n var caretWalker = CaretWalker(root);\r\n var walkFn, isBelowFn, isAboveFn, caretPosition;\r\n var result = [];\r\n var line = 0, clientRect, targetClientRect;\r\n var getClientRect = function (caretPosition) {\r\n if (direction === 1) {\r\n return $_9g1fibmjkmcwkbu.last(caretPosition.getClientRects());\r\n }\r\n return $_9g1fibmjkmcwkbu.last(caretPosition.getClientRects());\r\n };\r\n if (direction === 1) {\r\n walkFn = caretWalker.next;\r\n isBelowFn = isBelow;\r\n isAboveFn = isAbove;\r\n caretPosition = CaretPosition$1.after(node);\r\n } else {\r\n walkFn = caretWalker.prev;\r\n isBelowFn = isAbove;\r\n isAboveFn = isBelow;\r\n caretPosition = CaretPosition$1.before(node);\r\n }\r\n targetClientRect = getClientRect(caretPosition);\r\n do {\r\n if (!caretPosition.isVisible()) {\r\n continue;\r\n }\r\n clientRect = getClientRect(caretPosition);\r\n if (isAboveFn(clientRect, targetClientRect)) {\r\n continue;\r\n }\r\n if (result.length > 0 && isBelowFn(clientRect, $_9g1fibmjkmcwkbu.last(result))) {\r\n line++;\r\n }\r\n clientRect = clone$2(clientRect);\r\n clientRect.position = caretPosition;\r\n clientRect.line = line;\r\n if (predicateFn(clientRect)) {\r\n return result;\r\n }\r\n result.push(clientRect);\r\n } while (caretPosition = walkFn(caretPosition));\r\n return result;\r\n };\r\n var isAboveLine = function (lineNumber) {\r\n return function (clientRect) {\r\n return aboveLineNumber(lineNumber, clientRect);\r\n };\r\n };\r\n var isLine = function (lineNumber) {\r\n return function (clientRect) {\r\n return isLineNumber(lineNumber, clientRect);\r\n };\r\n };\r\n\r\n var isContentEditableFalse$8 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var findNode$1 = findNode;\r\n var distanceToRectLeft = function (clientRect, clientX) {\r\n return Math.abs(clientRect.left - clientX);\r\n };\r\n var distanceToRectRight = function (clientRect, clientX) {\r\n return Math.abs(clientRect.right - clientX);\r\n };\r\n var isInside = function (clientX, clientRect) {\r\n return clientX >= clientRect.left && clientX <= clientRect.right;\r\n };\r\n var findClosestClientRect = function (clientRects, clientX) {\r\n return $_9g1fibmjkmcwkbu.reduce(clientRects, function (oldClientRect, clientRect) {\r\n var oldDistance, newDistance;\r\n oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX));\r\n newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX));\r\n if (isInside(clientX, clientRect)) {\r\n return clientRect;\r\n }\r\n if (isInside(clientX, oldClientRect)) {\r\n return oldClientRect;\r\n }\r\n if (newDistance === oldDistance && isContentEditableFalse$8(clientRect.node)) {\r\n return clientRect;\r\n }\r\n if (newDistance < oldDistance) {\r\n return clientRect;\r\n }\r\n return oldClientRect;\r\n });\r\n };\r\n var walkUntil$1 = function (direction, root, predicateFn, node) {\r\n while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) {\r\n if (predicateFn(node)) {\r\n return;\r\n }\r\n }\r\n };\r\n var findLineNodeRects = function (root, targetNodeRect) {\r\n var clientRects = [];\r\n var collect = function (checkPosFn, node) {\r\n var lineRects;\r\n lineRects = $_9g1fibmjkmcwkbu.filter(getClientRects([node]), function (clientRect) {\r\n return !checkPosFn(clientRect, targetNodeRect);\r\n });\r\n clientRects = clientRects.concat(lineRects);\r\n return lineRects.length === 0;\r\n };\r\n clientRects.push(targetNodeRect);\r\n walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);\r\n walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);\r\n return clientRects;\r\n };\r\n var getFakeCaretTargets = function (root) {\r\n return $_9g1fibmjkmcwkbu.filter($_9g1fibmjkmcwkbu.toArray(root.getElementsByTagName('*')), isFakeCaretTarget);\r\n };\r\n var caretInfo = function (clientRect, clientX) {\r\n return {\r\n node: clientRect.node,\r\n before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX)\r\n };\r\n };\r\n var closestCaret = function (root, clientX, clientY) {\r\n var closestNodeRect;\r\n var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root));\r\n var targetNodeRects = $_9g1fibmjkmcwkbu.filter(contentEditableFalseNodeRects, function (rect) {\r\n return clientY >= rect.top && clientY <= rect.bottom;\r\n });\r\n closestNodeRect = findClosestClientRect(targetNodeRects, clientX);\r\n if (closestNodeRect) {\r\n closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX);\r\n if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) {\r\n return caretInfo(closestNodeRect, clientX);\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n var isXYWithinRange = function (clientX, clientY, range$$1) {\r\n if (range$$1.collapsed) {\r\n return false;\r\n }\r\n return foldl(range$$1.getClientRects(), function (state, rect) {\r\n return state || containsXY(rect, clientX, clientY);\r\n }, false);\r\n };\r\n var $_95lcbc5ujkmcwlg1 = { isXYWithinRange: isXYWithinRange };\r\n\r\n var setup$3 = function (editor) {\r\n var renderFocusCaret = first$1(function () {\r\n if (!editor.removed) {\r\n var rng = editor.selection.getRng();\r\n if (rng.collapsed) {\r\n var caretRange = renderRangeCaret(editor, editor.selection.getRng(), false);\r\n editor.selection.setRng(caretRange);\r\n }\r\n }\r\n }, 0);\r\n editor.on('focus', function () {\r\n renderFocusCaret.throttle();\r\n });\r\n editor.on('blur', function () {\r\n renderFocusCaret.cancel();\r\n });\r\n };\r\n var $_8glegd5vjkmcwlg3 = { setup: setup$3 };\r\n\r\n var $_6bj5795wjkmcwlg6 = {\r\n BACKSPACE: 8,\r\n DELETE: 46,\r\n DOWN: 40,\r\n ENTER: 13,\r\n LEFT: 37,\r\n RIGHT: 39,\r\n SPACEBAR: 32,\r\n TAB: 9,\r\n UP: 38,\r\n modifierPressed: function (e) {\r\n return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);\r\n },\r\n metaKeyPressed: function (e) {\r\n return $_cvvl9iajkmcwk25.mac ? e.metaKey : e.ctrlKey && !e.altKey;\r\n }\r\n };\r\n\r\n var isContentEditableTrue$5 = $_bjermr1rjkmcwkij.isContentEditableTrue;\r\n var isContentEditableFalse$9 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isAfterContentEditableFalse$1 = isAfterContentEditableFalse;\r\n var isBeforeContentEditableFalse$1 = isBeforeContentEditableFalse;\r\n var getContentEditableRoot$1 = function (editor, node) {\r\n var root = editor.getBody();\r\n while (node && node !== root) {\r\n if (isContentEditableTrue$5(node) || isContentEditableFalse$9(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var SelectionOverrides = function (editor) {\r\n var isBlock = function (node) {\r\n return editor.dom.isBlock(node);\r\n };\r\n var rootNode = editor.getBody();\r\n var fakeCaret = FakeCaret(editor.getBody(), isBlock, function () {\r\n return $_e3v8sn4vjkmcwl9y.hasFocus(editor);\r\n });\r\n var realSelectionId = 'sel-' + editor.dom.uniqueId();\r\n var selectedContentEditableNode;\r\n var isFakeSelectionElement = function (elm) {\r\n return editor.dom.hasClass(elm, 'mce-offscreen-selection');\r\n };\r\n var getRealSelectionElement = function () {\r\n var container = editor.dom.get(realSelectionId);\r\n return container ? container.getElementsByTagName('*')[0] : container;\r\n };\r\n var setRange = function (range$$1) {\r\n if (range$$1) {\r\n editor.selection.setRng(range$$1);\r\n }\r\n };\r\n var getRange = function () {\r\n return editor.selection.getRng();\r\n };\r\n var showCaret$$1 = function (direction, node, before, scrollIntoView) {\r\n if (scrollIntoView === void 0) {\r\n scrollIntoView = true;\r\n }\r\n var e;\r\n e = editor.fire('ShowCaret', {\r\n target: node,\r\n direction: direction,\r\n before: before\r\n });\r\n if (e.isDefaultPrevented()) {\r\n return null;\r\n }\r\n if (scrollIntoView) {\r\n editor.selection.scrollIntoView(node, direction === -1);\r\n }\r\n return fakeCaret.show(before, node);\r\n };\r\n var getNormalizedRangeEndPoint$$1 = function (direction, range$$1) {\r\n range$$1 = normalizeRange(direction, rootNode, range$$1);\r\n if (direction === -1) {\r\n return CaretPosition$1.fromRangeStart(range$$1);\r\n }\r\n return CaretPosition$1.fromRangeEnd(range$$1);\r\n };\r\n var showBlockCaretContainer = function (blockCaretContainer) {\r\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\r\n showCaretContainerBlock(blockCaretContainer);\r\n setRange(getRange());\r\n editor.selection.scrollIntoView(blockCaretContainer[0]);\r\n }\r\n };\r\n var registerEvents = function () {\r\n editor.on('mouseup', function (e) {\r\n var range$$1 = getRange();\r\n if (range$$1.collapsed && $_8we2e850jkmcwlaw.isXYInContentArea(editor, e.clientX, e.clientY)) {\r\n setRange(renderCaretAtRange(editor, range$$1, false));\r\n }\r\n });\r\n editor.on('click', function (e) {\r\n var contentEditableRoot;\r\n contentEditableRoot = getContentEditableRoot$1(editor, e.target);\r\n if (contentEditableRoot) {\r\n if (isContentEditableFalse$9(contentEditableRoot)) {\r\n e.preventDefault();\r\n editor.focus();\r\n }\r\n if (isContentEditableTrue$5(contentEditableRoot)) {\r\n if (editor.dom.isChildOf(contentEditableRoot, editor.selection.getNode())) {\r\n removeContentEditableSelection();\r\n }\r\n }\r\n }\r\n });\r\n editor.on('blur NewBlock', function () {\r\n removeContentEditableSelection();\r\n });\r\n editor.on('ResizeWindow FullscreenStateChanged', function () {\r\n return fakeCaret.reposition();\r\n });\r\n var handleTouchSelect = function (editor) {\r\n var moved = false;\r\n editor.on('touchstart', function () {\r\n moved = false;\r\n });\r\n editor.on('touchmove', function () {\r\n moved = true;\r\n });\r\n editor.on('touchend', function (e) {\r\n var contentEditableRoot = getContentEditableRoot$1(editor, e.target);\r\n if (isContentEditableFalse$9(contentEditableRoot)) {\r\n if (!moved) {\r\n e.preventDefault();\r\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\r\n }\r\n }\r\n });\r\n };\r\n var hasNormalCaretPosition = function (elm) {\r\n var caretWalker = CaretWalker(elm);\r\n if (!elm.firstChild) {\r\n return false;\r\n }\r\n var startPos = CaretPosition$1.before(elm.firstChild);\r\n var newPos = caretWalker.next(startPos);\r\n return newPos && !isBeforeContentEditableFalse$1(newPos) && !isAfterContentEditableFalse$1(newPos);\r\n };\r\n var isInSameBlock$$1 = function (node1, node2) {\r\n var block1 = editor.dom.getParent(node1, editor.dom.isBlock);\r\n var block2 = editor.dom.getParent(node2, editor.dom.isBlock);\r\n return block1 === block2;\r\n };\r\n var hasBetterMouseTarget = function (targetNode, caretNode) {\r\n var targetBlock = editor.dom.getParent(targetNode, editor.dom.isBlock);\r\n var caretBlock = editor.dom.getParent(caretNode, editor.dom.isBlock);\r\n if (targetBlock && editor.dom.isChildOf(targetBlock, caretBlock) && isContentEditableFalse$9(getContentEditableRoot$1(editor, targetBlock)) === false) {\r\n return true;\r\n }\r\n return targetBlock && !isInSameBlock$$1(targetBlock, caretBlock) && hasNormalCaretPosition(targetBlock);\r\n };\r\n handleTouchSelect(editor);\r\n editor.on('mousedown', function (e) {\r\n var contentEditableRoot;\r\n var targetElm = e.target;\r\n if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !editor.dom.isChildOf(targetElm, rootNode)) {\r\n return;\r\n }\r\n if ($_8we2e850jkmcwlaw.isXYInContentArea(editor, e.clientX, e.clientY) === false) {\r\n return;\r\n }\r\n contentEditableRoot = getContentEditableRoot$1(editor, targetElm);\r\n if (contentEditableRoot) {\r\n if (isContentEditableFalse$9(contentEditableRoot)) {\r\n e.preventDefault();\r\n setContentEditableSelection(selectNode(editor, contentEditableRoot));\r\n } else {\r\n removeContentEditableSelection();\r\n if (!(isContentEditableTrue$5(contentEditableRoot) && e.shiftKey) && !$_95lcbc5ujkmcwlg1.isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) {\r\n hideFakeCaret();\r\n editor.selection.placeCaretAt(e.clientX, e.clientY);\r\n }\r\n }\r\n } else if (isFakeCaretTarget(targetElm) === false) {\r\n removeContentEditableSelection();\r\n hideFakeCaret();\r\n var caretInfo = closestCaret(rootNode, e.clientX, e.clientY);\r\n if (caretInfo) {\r\n if (!hasBetterMouseTarget(e.target, caretInfo.node)) {\r\n e.preventDefault();\r\n var range$$1 = showCaret$$1(1, caretInfo.node, caretInfo.before, false);\r\n editor.getBody().focus();\r\n setRange(range$$1);\r\n }\r\n }\r\n }\r\n });\r\n editor.on('keypress', function (e) {\r\n if ($_6bj5795wjkmcwlg6.modifierPressed(e)) {\r\n return;\r\n }\r\n switch (e.keyCode) {\r\n default:\r\n if (isContentEditableFalse$9(editor.selection.getNode())) {\r\n e.preventDefault();\r\n }\r\n break;\r\n }\r\n });\r\n editor.on('getSelectionRange', function (e) {\r\n var rng = e.range;\r\n if (selectedContentEditableNode) {\r\n if (!selectedContentEditableNode.parentNode) {\r\n selectedContentEditableNode = null;\r\n return;\r\n }\r\n rng = rng.cloneRange();\r\n rng.selectNode(selectedContentEditableNode);\r\n e.range = rng;\r\n }\r\n });\r\n editor.on('setSelectionRange', function (e) {\r\n var rng;\r\n rng = setContentEditableSelection(e.range, e.forward);\r\n if (rng) {\r\n e.range = rng;\r\n }\r\n });\r\n var isPasteBin = function (node) {\r\n return node.id === 'mcepastebin';\r\n };\r\n editor.on('AfterSetSelectionRange', function (e) {\r\n var rng = e.range;\r\n if (!isRangeInCaretContainer(rng) && !isPasteBin(rng.startContainer.parentNode)) {\r\n hideFakeCaret();\r\n }\r\n if (!isFakeSelectionElement(rng.startContainer.parentNode)) {\r\n removeContentEditableSelection();\r\n }\r\n });\r\n editor.on('copy', function (e) {\r\n var clipboardData = e.clipboardData;\r\n if (!e.isDefaultPrevented() && e.clipboardData && !$_cvvl9iajkmcwk25.ie) {\r\n var realSelectionElement = getRealSelectionElement();\r\n if (realSelectionElement) {\r\n e.preventDefault();\r\n clipboardData.clearData();\r\n clipboardData.setData('text/html', realSelectionElement.outerHTML);\r\n clipboardData.setData('text/plain', realSelectionElement.outerText);\r\n }\r\n }\r\n });\r\n $_amfo0m5pjkmcwlf7.init(editor);\r\n $_8glegd5vjkmcwlg3.setup(editor);\r\n };\r\n var addCss = function () {\r\n var styles = editor.contentStyles, rootClass = '.mce-content-body';\r\n styles.push(fakeCaret.getCss());\r\n styles.push(rootClass + ' .mce-offscreen-selection {' + 'position: absolute;' + 'left: -9999999999px;' + 'max-width: 1000000px;' + '}' + rootClass + ' *[contentEditable=false] {' + 'cursor: default;' + '}' + rootClass + ' *[contentEditable=true] {' + 'cursor: text;' + '}');\r\n };\r\n var isWithinCaretContainer = function (node) {\r\n return isCaretContainer(node) || startsWithCaretContainer(node) || endsWithCaretContainer(node);\r\n };\r\n var isRangeInCaretContainer = function (rng) {\r\n return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\r\n };\r\n var setContentEditableSelection = function (range$$1, forward) {\r\n var node;\r\n var $ = editor.$;\r\n var dom = editor.dom;\r\n var $realSelectionContainer, sel, startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone;\r\n if (!range$$1) {\r\n return null;\r\n }\r\n if (range$$1.collapsed) {\r\n if (!isRangeInCaretContainer(range$$1)) {\r\n if (forward === false) {\r\n caretPosition = getNormalizedRangeEndPoint$$1(-1, range$$1);\r\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\r\n return showCaret$$1(-1, caretPosition.getNode(true), false, false);\r\n }\r\n if (isFakeCaretTarget(caretPosition.getNode())) {\r\n return showCaret$$1(-1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\r\n }\r\n } else {\r\n caretPosition = getNormalizedRangeEndPoint$$1(1, range$$1);\r\n if (isFakeCaretTarget(caretPosition.getNode())) {\r\n return showCaret$$1(1, caretPosition.getNode(), !caretPosition.isAtEnd(), false);\r\n }\r\n if (isFakeCaretTarget(caretPosition.getNode(true))) {\r\n return showCaret$$1(1, caretPosition.getNode(true), false, false);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n startContainer = range$$1.startContainer;\r\n startOffset = range$$1.startOffset;\r\n endOffset = range$$1.endOffset;\r\n if (startContainer.nodeType === 3 && startOffset === 0 && isContentEditableFalse$9(startContainer.parentNode)) {\r\n startContainer = startContainer.parentNode;\r\n startOffset = dom.nodeIndex(startContainer);\r\n startContainer = startContainer.parentNode;\r\n }\r\n if (startContainer.nodeType !== 1) {\r\n return null;\r\n }\r\n if (endOffset === startOffset + 1) {\r\n node = startContainer.childNodes[startOffset];\r\n }\r\n if (!isContentEditableFalse$9(node)) {\r\n return null;\r\n }\r\n targetClone = origTargetClone = node.cloneNode(true);\r\n e = editor.fire('ObjectSelected', {\r\n target: node,\r\n targetClone: targetClone\r\n });\r\n if (e.isDefaultPrevented()) {\r\n return null;\r\n }\r\n $realSelectionContainer = $_4ki4d929jkmcwkmn.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).fold(function () {\r\n return $([]);\r\n }, function (elm) {\r\n return $([elm.dom()]);\r\n });\r\n targetClone = e.targetClone;\r\n if ($realSelectionContainer.length === 0) {\r\n $realSelectionContainer = $('
').attr('id', realSelectionId);\r\n $realSelectionContainer.appendTo(editor.getBody());\r\n }\r\n range$$1 = editor.dom.createRng();\r\n if (targetClone === origTargetClone && $_cvvl9iajkmcwk25.ie) {\r\n $realSelectionContainer.empty().append('

\\xA0

').append(targetClone);\r\n range$$1.setStartAfter($realSelectionContainer[0].firstChild.firstChild);\r\n range$$1.setEndAfter(targetClone);\r\n } else {\r\n $realSelectionContainer.empty().append('\\xA0').append(targetClone).append('\\xA0');\r\n range$$1.setStart($realSelectionContainer[0].firstChild, 1);\r\n range$$1.setEnd($realSelectionContainer[0].lastChild, 0);\r\n }\r\n $realSelectionContainer.css({ top: dom.getPos(node, editor.getBody()).y });\r\n $realSelectionContainer[0].focus();\r\n sel = editor.selection.getSel();\r\n sel.removeAllRanges();\r\n sel.addRange(range$$1);\r\n each($_2gqm0n27jkmcwkmi.descendants(Element$$1.fromDom(editor.getBody()), '*[data-mce-selected]'), function (elm) {\r\n $_29helg15jkmcwkf0.remove(elm, 'data-mce-selected');\r\n });\r\n node.setAttribute('data-mce-selected', '1');\r\n selectedContentEditableNode = node;\r\n hideFakeCaret();\r\n return range$$1;\r\n };\r\n var removeContentEditableSelection = function () {\r\n if (selectedContentEditableNode) {\r\n selectedContentEditableNode.removeAttribute('data-mce-selected');\r\n $_4ki4d929jkmcwkmn.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).each($_eualm21wjkmcwkku.remove);\r\n selectedContentEditableNode = null;\r\n }\r\n $_4ki4d929jkmcwkmn.descendant(Element$$1.fromDom(editor.getBody()), '#' + realSelectionId).each($_eualm21wjkmcwkku.remove);\r\n selectedContentEditableNode = null;\r\n };\r\n var destroy = function () {\r\n fakeCaret.destroy();\r\n selectedContentEditableNode = null;\r\n };\r\n var hideFakeCaret = function () {\r\n fakeCaret.hide();\r\n };\r\n if ($_cvvl9iajkmcwk25.ceFalse) {\r\n registerEvents();\r\n addCss();\r\n }\r\n return {\r\n showCaret: showCaret$$1,\r\n showBlockCaretContainer: showBlockCaretContainer,\r\n hideFakeCaret: hideFakeCaret,\r\n destroy: destroy\r\n };\r\n };\r\n\r\n var isValidPrefixAttrName = function (name) {\r\n return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;\r\n };\r\n var trimComments = function (text) {\r\n return text.replace(//g, '');\r\n };\r\n var isInvalidUri = function (settings, uri) {\r\n if (settings.allow_html_data_urls) {\r\n return false;\r\n } else if (/^data:image\\//i.test(uri)) {\r\n return settings.allow_svg_data_urls === false && /^data:image\\/svg\\+xml/i.test(uri);\r\n } else {\r\n return /^data:/i.test(uri);\r\n }\r\n };\r\n var findEndTagIndex = function (schema, html, startIndex) {\r\n var count = 1, index, matches, tokenRegExp, shortEndedElements;\r\n shortEndedElements = schema.getShortEndedElements();\r\n tokenRegExp = /<([!?\\/])?([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\/|\\s+)>/g;\r\n tokenRegExp.lastIndex = index = startIndex;\r\n while (matches = tokenRegExp.exec(html)) {\r\n index = tokenRegExp.lastIndex;\r\n if (matches[1] === '/') {\r\n count--;\r\n } else if (!matches[1]) {\r\n if (matches[2] in shortEndedElements) {\r\n continue;\r\n }\r\n count++;\r\n }\r\n if (count === 0) {\r\n break;\r\n }\r\n }\r\n return index;\r\n };\r\n function SaxParser(settings, schema) {\r\n if (schema === void 0) {\r\n schema = Schema();\r\n }\r\n var noop = function () {\r\n };\r\n settings = settings || {};\r\n if (settings.fix_self_closing !== false) {\r\n settings.fix_self_closing = true;\r\n }\r\n var comment = settings.comment ? settings.comment : noop;\r\n var cdata = settings.cdata ? settings.cdata : noop;\r\n var text = settings.text ? settings.text : noop;\r\n var start = settings.start ? settings.start : noop;\r\n var end = settings.end ? settings.end : noop;\r\n var pi = settings.pi ? settings.pi : noop;\r\n var doctype = settings.doctype ? settings.doctype : noop;\r\n var parse = function (html) {\r\n var matches, index = 0, value, endRegExp;\r\n var stack = [];\r\n var attrList, i, textData, name;\r\n var isInternalElement, removeInternalElements, shortEndedElements, fillAttrsMap, isShortEnded;\r\n var validate, elementRule, isValidElement, attr, attribsValue, validAttributesMap, validAttributePatterns;\r\n var attributesRequired, attributesDefault, attributesForced, processHtml;\r\n var anyAttributesRequired, selfClosing, tokenRegExp, attrRegExp, specialElements, attrValue, idCount = 0;\r\n var decode = $_33qwr1sjkmcwkip.decode;\r\n var fixSelfClosing;\r\n var filteredUrlAttrs = $_4ujg4tljkmcwkbk.makeMap('src,href,data,background,formaction,poster,xlink:href');\r\n var scriptUriRegExp = /((java|vb)script|mhtml):/i;\r\n var processEndTag = function (name) {\r\n var pos, i;\r\n pos = stack.length;\r\n while (pos--) {\r\n if (stack[pos].name === name) {\r\n break;\r\n }\r\n }\r\n if (pos >= 0) {\r\n for (i = stack.length - 1; i >= pos; i--) {\r\n name = stack[i];\r\n if (name.valid) {\r\n end(name.name);\r\n }\r\n }\r\n stack.length = pos;\r\n }\r\n };\r\n var parseAttribute = function (match, name, value, val2, val3) {\r\n var attrRule, i;\r\n var trimRegExp = /[\\s\\u0000-\\u001F]+/g;\r\n name = name.toLowerCase();\r\n value = name in fillAttrsMap ? name : decode(value || val2 || val3 || '');\r\n if (validate && !isInternalElement && isValidPrefixAttrName(name) === false) {\r\n attrRule = validAttributesMap[name];\r\n if (!attrRule && validAttributePatterns) {\r\n i = validAttributePatterns.length;\r\n while (i--) {\r\n attrRule = validAttributePatterns[i];\r\n if (attrRule.pattern.test(name)) {\r\n break;\r\n }\r\n }\r\n if (i === -1) {\r\n attrRule = null;\r\n }\r\n }\r\n if (!attrRule) {\r\n return;\r\n }\r\n if (attrRule.validValues && !(value in attrRule.validValues)) {\r\n return;\r\n }\r\n }\r\n if (filteredUrlAttrs[name] && !settings.allow_script_urls) {\r\n var uri = value.replace(trimRegExp, '');\r\n try {\r\n uri = decodeURIComponent(uri);\r\n } catch (ex) {\r\n uri = unescape(uri);\r\n }\r\n if (scriptUriRegExp.test(uri)) {\r\n return;\r\n }\r\n if (isInvalidUri(settings, uri)) {\r\n return;\r\n }\r\n }\r\n if (isInternalElement && (name in filteredUrlAttrs || name.indexOf('on') === 0)) {\r\n return;\r\n }\r\n attrList.map[name] = value;\r\n attrList.push({\r\n name: name,\r\n value: value\r\n });\r\n };\r\n tokenRegExp = new RegExp('<(?:' + '(?:!--([\\\\w\\\\W]*?)-->)|' + '(?:!\\\\[CDATA\\\\[([\\\\w\\\\W]*?)\\\\]\\\\]>)|' + '(?:!DOCTYPE([\\\\w\\\\W]*?)>)|' + '(?:\\\\?([^\\\\s\\\\/<>]+) ?([\\\\w\\\\W]*?)[?/]>)|' + '(?:\\\\/([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\\\-_\\\\:\\\\.]*)((?:\\\\s+[^\"\\'>]+(?:(?:\"[^\"]*\")|(?:\\'[^\\']*\\')|[^>]*))*|\\\\/|\\\\s+)>)' + ')', 'g');\r\n attrRegExp = /([\\w:\\-]+)(?:\\s*=\\s*(?:(?:\\\"((?:[^\\\"])*)\\\")|(?:\\'((?:[^\\'])*)\\')|([^>\\s]+)))?/g;\r\n shortEndedElements = schema.getShortEndedElements();\r\n selfClosing = settings.self_closing_elements || schema.getSelfClosingElements();\r\n fillAttrsMap = schema.getBoolAttrs();\r\n validate = settings.validate;\r\n removeInternalElements = settings.remove_internals;\r\n fixSelfClosing = settings.fix_self_closing;\r\n specialElements = schema.getSpecialElements();\r\n processHtml = html + '>';\r\n while (matches = tokenRegExp.exec(processHtml)) {\r\n if (index < matches.index) {\r\n text(decode(html.substr(index, matches.index - index)));\r\n }\r\n if (value = matches[6]) {\r\n value = value.toLowerCase();\r\n if (value.charAt(0) === ':') {\r\n value = value.substr(1);\r\n }\r\n processEndTag(value);\r\n } else if (value = matches[7]) {\r\n if (matches.index + matches[0].length > html.length) {\r\n text(decode(html.substr(matches.index)));\r\n index = matches.index + matches[0].length;\r\n continue;\r\n }\r\n value = value.toLowerCase();\r\n if (value.charAt(0) === ':') {\r\n value = value.substr(1);\r\n }\r\n isShortEnded = value in shortEndedElements;\r\n if (fixSelfClosing && selfClosing[value] && stack.length > 0 && stack[stack.length - 1].name === value) {\r\n processEndTag(value);\r\n }\r\n if (!validate || (elementRule = schema.getElementRule(value))) {\r\n isValidElement = true;\r\n if (validate) {\r\n validAttributesMap = elementRule.attributes;\r\n validAttributePatterns = elementRule.attributePatterns;\r\n }\r\n if (attribsValue = matches[8]) {\r\n isInternalElement = attribsValue.indexOf('data-mce-type') !== -1;\r\n if (isInternalElement && removeInternalElements) {\r\n isValidElement = false;\r\n }\r\n attrList = [];\r\n attrList.map = {};\r\n attribsValue.replace(attrRegExp, parseAttribute);\r\n } else {\r\n attrList = [];\r\n attrList.map = {};\r\n }\r\n if (validate && !isInternalElement) {\r\n attributesRequired = elementRule.attributesRequired;\r\n attributesDefault = elementRule.attributesDefault;\r\n attributesForced = elementRule.attributesForced;\r\n anyAttributesRequired = elementRule.removeEmptyAttrs;\r\n if (anyAttributesRequired && !attrList.length) {\r\n isValidElement = false;\r\n }\r\n if (attributesForced) {\r\n i = attributesForced.length;\r\n while (i--) {\r\n attr = attributesForced[i];\r\n name = attr.name;\r\n attrValue = attr.value;\r\n if (attrValue === '{$uid}') {\r\n attrValue = 'mce_' + idCount++;\r\n }\r\n attrList.map[name] = attrValue;\r\n attrList.push({\r\n name: name,\r\n value: attrValue\r\n });\r\n }\r\n }\r\n if (attributesDefault) {\r\n i = attributesDefault.length;\r\n while (i--) {\r\n attr = attributesDefault[i];\r\n name = attr.name;\r\n if (!(name in attrList.map)) {\r\n attrValue = attr.value;\r\n if (attrValue === '{$uid}') {\r\n attrValue = 'mce_' + idCount++;\r\n }\r\n attrList.map[name] = attrValue;\r\n attrList.push({\r\n name: name,\r\n value: attrValue\r\n });\r\n }\r\n }\r\n }\r\n if (attributesRequired) {\r\n i = attributesRequired.length;\r\n while (i--) {\r\n if (attributesRequired[i] in attrList.map) {\r\n break;\r\n }\r\n }\r\n if (i === -1) {\r\n isValidElement = false;\r\n }\r\n }\r\n if (attr = attrList.map['data-mce-bogus']) {\r\n if (attr === 'all') {\r\n index = findEndTagIndex(schema, html, tokenRegExp.lastIndex);\r\n tokenRegExp.lastIndex = index;\r\n continue;\r\n }\r\n isValidElement = false;\r\n }\r\n }\r\n if (isValidElement) {\r\n start(value, attrList, isShortEnded);\r\n }\r\n } else {\r\n isValidElement = false;\r\n }\r\n if (endRegExp = specialElements[value]) {\r\n endRegExp.lastIndex = index = matches.index + matches[0].length;\r\n if (matches = endRegExp.exec(html)) {\r\n if (isValidElement) {\r\n textData = html.substr(index, matches.index - index);\r\n }\r\n index = matches.index + matches[0].length;\r\n } else {\r\n textData = html.substr(index);\r\n index = html.length;\r\n }\r\n if (isValidElement) {\r\n if (textData.length > 0) {\r\n text(textData, true);\r\n }\r\n end(value);\r\n }\r\n tokenRegExp.lastIndex = index;\r\n continue;\r\n }\r\n if (!isShortEnded) {\r\n if (!attribsValue || attribsValue.indexOf('/') !== attribsValue.length - 1) {\r\n stack.push({\r\n name: value,\r\n valid: isValidElement\r\n });\r\n } else if (isValidElement) {\r\n end(value);\r\n }\r\n }\r\n } else if (value = matches[1]) {\r\n if (value.charAt(0) === '>') {\r\n value = ' ' + value;\r\n }\r\n if (!settings.allow_conditional_comments && value.substr(0, 3).toLowerCase() === '[if') {\r\n value = ' ' + value;\r\n }\r\n comment(value);\r\n } else if (value = matches[2]) {\r\n cdata(trimComments(value));\r\n } else if (value = matches[3]) {\r\n doctype(value);\r\n } else if (value = matches[4]) {\r\n pi(value, matches[5]);\r\n }\r\n index = matches.index + matches[0].length;\r\n }\r\n if (index < html.length) {\r\n text(decode(html.substr(index)));\r\n }\r\n for (i = stack.length - 1; i >= 0; i--) {\r\n value = stack[i];\r\n if (value.valid) {\r\n end(value.name);\r\n }\r\n }\r\n };\r\n return { parse: parse };\r\n }\r\n (function (SaxParser) {\r\n SaxParser.findEndTag = findEndTagIndex;\r\n }(SaxParser || (SaxParser = {})));\r\n var SaxParser$1 = SaxParser;\r\n\r\n var trimHtml = function (tempAttrs, html) {\r\n var trimContentRegExp = new RegExp(['\\\\s?(' + tempAttrs.join('|') + ')=\"[^\"]+\"'].join('|'), 'gi');\r\n return html.replace(trimContentRegExp, '');\r\n };\r\n var trimInternal = function (serializer, html) {\r\n var content = html;\r\n var bogusAllRegExp = /<(\\w+) [^>]*data-mce-bogus=\"all\"[^>]*>/g;\r\n var endTagIndex, index, matchLength, matches, shortEndedElements;\r\n var schema = serializer.schema;\r\n content = trimHtml(serializer.getTempAttrs(), content);\r\n shortEndedElements = schema.getShortEndedElements();\r\n while (matches = bogusAllRegExp.exec(content)) {\r\n index = bogusAllRegExp.lastIndex;\r\n matchLength = matches[0].length;\r\n if (shortEndedElements[matches[1]]) {\r\n endTagIndex = index;\r\n } else {\r\n endTagIndex = SaxParser$1.findEndTag(schema, content, index);\r\n }\r\n content = content.substring(0, index - matchLength) + content.substring(endTagIndex);\r\n bogusAllRegExp.lastIndex = index - matchLength;\r\n }\r\n return $_cadvcr2pjkmcwkph.trim(content);\r\n };\r\n var trimExternal = trimInternal;\r\n var $_2varuf5zjkmcwlgq = {\r\n trimExternal: trimExternal,\r\n trimInternal: trimInternal\r\n };\r\n\r\n var KEEP = 0;\r\n var INSERT = 1;\r\n var DELETE = 2;\r\n var diff = function (left, right) {\r\n var size = left.length + right.length + 2;\r\n var vDown = new Array(size);\r\n var vUp = new Array(size);\r\n var snake = function (start, end, diag) {\r\n return {\r\n start: start,\r\n end: end,\r\n diag: diag\r\n };\r\n };\r\n var buildScript = function (start1, end1, start2, end2, script) {\r\n var middle = getMiddleSnake(start1, end1, start2, end2);\r\n if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\r\n var i = start1;\r\n var j = start2;\r\n while (i < end1 || j < end2) {\r\n if (i < end1 && j < end2 && left[i] === right[j]) {\r\n script.push([\r\n KEEP,\r\n left[i]\r\n ]);\r\n ++i;\r\n ++j;\r\n } else {\r\n if (end1 - start1 > end2 - start2) {\r\n script.push([\r\n DELETE,\r\n left[i]\r\n ]);\r\n ++i;\r\n } else {\r\n script.push([\r\n INSERT,\r\n right[j]\r\n ]);\r\n ++j;\r\n }\r\n }\r\n }\r\n } else {\r\n buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\r\n for (var i2 = middle.start; i2 < middle.end; ++i2) {\r\n script.push([\r\n KEEP,\r\n left[i2]\r\n ]);\r\n }\r\n buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\r\n }\r\n };\r\n var buildSnake = function (start, diag, end1, end2) {\r\n var end = start;\r\n while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\r\n ++end;\r\n }\r\n return snake(start, end, diag);\r\n };\r\n var getMiddleSnake = function (start1, end1, start2, end2) {\r\n var m = end1 - start1;\r\n var n = end2 - start2;\r\n if (m === 0 || n === 0) {\r\n return null;\r\n }\r\n var delta = m - n;\r\n var sum = n + m;\r\n var offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\r\n vDown[1 + offset] = start1;\r\n vUp[1 + offset] = end1 + 1;\r\n var d, k, i, x, y;\r\n for (d = 0; d <= offset; ++d) {\r\n for (k = -d; k <= d; k += 2) {\r\n i = k + offset;\r\n if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\r\n vDown[i] = vDown[i + 1];\r\n } else {\r\n vDown[i] = vDown[i - 1] + 1;\r\n }\r\n x = vDown[i];\r\n y = x - start1 + start2 - k;\r\n while (x < end1 && y < end2 && left[x] === right[y]) {\r\n vDown[i] = ++x;\r\n ++y;\r\n }\r\n if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\r\n if (vUp[i - delta] <= vDown[i]) {\r\n return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\r\n }\r\n }\r\n }\r\n for (k = delta - d; k <= delta + d; k += 2) {\r\n i = k + offset - delta;\r\n if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\r\n vUp[i] = vUp[i + 1] - 1;\r\n } else {\r\n vUp[i] = vUp[i - 1];\r\n }\r\n x = vUp[i] - 1;\r\n y = x - start1 + start2 - k;\r\n while (x >= start1 && y >= start2 && left[x] === right[y]) {\r\n vUp[i] = x--;\r\n y--;\r\n }\r\n if (delta % 2 === 0 && -d <= k && k <= d) {\r\n if (vUp[i] <= vDown[i + delta]) {\r\n return buildSnake(vUp[i], k + start1 - start2, end1, end2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var script = [];\r\n buildScript(0, left.length, 0, right.length, script);\r\n return script;\r\n };\r\n var $_3xze2m62jkmcwlh7 = {\r\n KEEP: KEEP,\r\n DELETE: DELETE,\r\n INSERT: INSERT,\r\n diff: diff\r\n };\r\n\r\n var getOuterHtml = function (elm) {\r\n if ($_bjermr1rjkmcwkij.isElement(elm)) {\r\n return elm.outerHTML;\r\n } else if ($_bjermr1rjkmcwkij.isText(elm)) {\r\n return $_33qwr1sjkmcwkip.encodeRaw(elm.data, false);\r\n } else if ($_bjermr1rjkmcwkij.isComment(elm)) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n var createFragment$1 = function (html) {\r\n var frag, node, container;\r\n container = document.createElement('div');\r\n frag = document.createDocumentFragment();\r\n if (html) {\r\n container.innerHTML = html;\r\n }\r\n while (node = container.firstChild) {\r\n frag.appendChild(node);\r\n }\r\n return frag;\r\n };\r\n var insertAt = function (elm, html, index) {\r\n var fragment = createFragment$1(html);\r\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\r\n var target = elm.childNodes[index];\r\n target.parentNode.insertBefore(fragment, target);\r\n } else {\r\n elm.appendChild(fragment);\r\n }\r\n };\r\n var removeAt = function (elm, index) {\r\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\r\n var target = elm.childNodes[index];\r\n target.parentNode.removeChild(target);\r\n }\r\n };\r\n var applyDiff = function (diff, elm) {\r\n var index = 0;\r\n $_9g1fibmjkmcwkbu.each(diff, function (action) {\r\n if (action[0] === $_3xze2m62jkmcwlh7.KEEP) {\r\n index++;\r\n } else if (action[0] === $_3xze2m62jkmcwlh7.INSERT) {\r\n insertAt(elm, action[1], index);\r\n index++;\r\n } else if (action[0] === $_3xze2m62jkmcwlh7.DELETE) {\r\n removeAt(elm, index);\r\n }\r\n });\r\n };\r\n var read$3 = function (elm) {\r\n return $_9g1fibmjkmcwkbu.filter($_9g1fibmjkmcwkbu.map(elm.childNodes, getOuterHtml), function (item) {\r\n return item.length > 0;\r\n });\r\n };\r\n var write = function (fragments, elm) {\r\n var currentFragments = $_9g1fibmjkmcwkbu.map(elm.childNodes, getOuterHtml);\r\n applyDiff($_3xze2m62jkmcwlh7.diff(currentFragments, fragments), elm);\r\n return elm;\r\n };\r\n var $_cyedqm61jkmcwlh3 = {\r\n read: read$3,\r\n write: write\r\n };\r\n\r\n var fromHtml$1 = function (html, scope) {\r\n var doc = scope || document;\r\n var div = doc.createElement('div');\r\n div.innerHTML = html;\r\n return $_ca6pc118jkmcwkfs.children(Element$$1.fromDom(div));\r\n };\r\n var fromTags = function (tags, scope) {\r\n return map(tags, function (x) {\r\n return Element$$1.fromTag(x, scope);\r\n });\r\n };\r\n var fromText$1 = function (texts, scope) {\r\n return map(texts, function (x) {\r\n return Element$$1.fromText(x, scope);\r\n });\r\n };\r\n var fromDom$1 = function (nodes) {\r\n return map(nodes, Element$$1.fromDom);\r\n };\r\n var $_bos53z64jkmcwlhd = {\r\n fromHtml: fromHtml$1,\r\n fromTags: fromTags,\r\n fromText: fromText$1,\r\n fromDom: fromDom$1\r\n };\r\n\r\n var get$6 = function (element) {\r\n return element.dom().innerHTML;\r\n };\r\n var set$3 = function (element, content) {\r\n var owner = $_ca6pc118jkmcwkfs.owner(element);\r\n var docDom = owner.dom();\r\n var fragment = Element$$1.fromDom(docDom.createDocumentFragment());\r\n var contentElements = $_bos53z64jkmcwlhd.fromHtml(content, docDom);\r\n $_1ev7t1xjkmcwkky.append(fragment, contentElements);\r\n $_eualm21wjkmcwkku.empty(element);\r\n $_f4qt4v1yjkmcwkl2.append(element, fragment);\r\n };\r\n var getOuter = function (element) {\r\n var container = Element$$1.fromTag('div');\r\n var clone = Element$$1.fromDom(element.dom().cloneNode(true));\r\n $_f4qt4v1yjkmcwkl2.append(container, clone);\r\n return get$6(container);\r\n };\r\n var $_xg5463jkmcwlhb = {\r\n get: get$6,\r\n set: set$3,\r\n getOuter: getOuter\r\n };\r\n\r\n var undoLevelDocument = Cell(Option.none());\r\n var lazyTempDocument = function () {\r\n return undoLevelDocument.get().getOrThunk(function () {\r\n var doc = document.implementation.createHTMLDocument('undo');\r\n undoLevelDocument.set(Option.some(doc));\r\n return doc;\r\n });\r\n };\r\n var hasIframes = function (html) {\r\n return html.indexOf('') !== -1;\r\n };\r\n var createFragmentedLevel = function (fragments) {\r\n return {\r\n type: 'fragmented',\r\n fragments: fragments,\r\n content: '',\r\n bookmark: null,\r\n beforeBookmark: null\r\n };\r\n };\r\n var createCompleteLevel = function (content) {\r\n return {\r\n type: 'complete',\r\n fragments: null,\r\n content: content,\r\n bookmark: null,\r\n beforeBookmark: null\r\n };\r\n };\r\n var createFromEditor = function (editor) {\r\n var fragments, content, trimmedFragments;\r\n fragments = $_cyedqm61jkmcwlh3.read(editor.getBody());\r\n trimmedFragments = bind(fragments, function (html) {\r\n var trimmed = $_2varuf5zjkmcwlgq.trimInternal(editor.serializer, html);\r\n return trimmed.length > 0 ? [trimmed] : [];\r\n });\r\n content = trimmedFragments.join('');\r\n return hasIframes(content) ? createFragmentedLevel(trimmedFragments) : createCompleteLevel(content);\r\n };\r\n var applyToEditor = function (editor, level, before) {\r\n if (level.type === 'fragmented') {\r\n $_cyedqm61jkmcwlh3.write(level.fragments, editor.getBody());\r\n } else {\r\n editor.setContent(level.content, { format: 'raw' });\r\n }\r\n editor.selection.moveToBookmark(before ? level.beforeBookmark : level.bookmark);\r\n };\r\n var getLevelContent = function (level) {\r\n return level.type === 'fragmented' ? level.fragments.join('') : level.content;\r\n };\r\n var getCleanLevelContent = function (level) {\r\n var elm = Element$$1.fromTag('body', lazyTempDocument());\r\n $_xg5463jkmcwlhb.set(elm, getLevelContent(level));\r\n each($_2gqm0n27jkmcwkmi.descendants(elm, '*[data-mce-bogus]'), $_eualm21wjkmcwkku.unwrap);\r\n return $_xg5463jkmcwlhb.get(elm);\r\n };\r\n var hasEqualContent = function (level1, level2) {\r\n return getLevelContent(level1) === getLevelContent(level2);\r\n };\r\n var hasEqualCleanedContent = function (level1, level2) {\r\n return getCleanLevelContent(level1) === getCleanLevelContent(level2);\r\n };\r\n var isEq$3 = function (level1, level2) {\r\n if (!level1 || !level2) {\r\n return false;\r\n } else if (hasEqualContent(level1, level2)) {\r\n return true;\r\n } else {\r\n return hasEqualCleanedContent(level1, level2);\r\n }\r\n };\r\n var $_3cqp0r5yjkmcwlgf = {\r\n createFragmentedLevel: createFragmentedLevel,\r\n createCompleteLevel: createCompleteLevel,\r\n createFromEditor: createFromEditor,\r\n applyToEditor: applyToEditor,\r\n isEq: isEq$3\r\n };\r\n\r\n function UndoManager (editor) {\r\n var self = this, index = 0, data = [], beforeBookmark, isFirstTypedCharacter, locks = 0;\r\n var isUnlocked = function () {\r\n return locks === 0;\r\n };\r\n var setTyping = function (typing) {\r\n if (isUnlocked()) {\r\n self.typing = typing;\r\n }\r\n };\r\n var setDirty = function (state) {\r\n editor.setDirty(state);\r\n };\r\n var addNonTypingUndoLevel = function (e) {\r\n setTyping(false);\r\n self.add({}, e);\r\n };\r\n var endTyping = function () {\r\n if (self.typing) {\r\n setTyping(false);\r\n self.add();\r\n }\r\n };\r\n editor.on('init', function () {\r\n self.add();\r\n });\r\n editor.on('BeforeExecCommand', function (e) {\r\n var cmd = e.command;\r\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\r\n endTyping();\r\n self.beforeChange();\r\n }\r\n });\r\n editor.on('ExecCommand', function (e) {\r\n var cmd = e.command;\r\n if (cmd !== 'Undo' && cmd !== 'Redo' && cmd !== 'mceRepaint') {\r\n addNonTypingUndoLevel(e);\r\n }\r\n });\r\n editor.on('ObjectResizeStart Cut', function () {\r\n self.beforeChange();\r\n });\r\n editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\r\n editor.on('DragEnd', addNonTypingUndoLevel);\r\n editor.on('KeyUp', function (e) {\r\n var keyCode = e.keyCode;\r\n if (e.isDefaultPrevented()) {\r\n return;\r\n }\r\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey) {\r\n addNonTypingUndoLevel();\r\n editor.nodeChanged();\r\n }\r\n if (keyCode === 46 || keyCode === 8) {\r\n editor.nodeChanged();\r\n }\r\n if (isFirstTypedCharacter && self.typing && $_3cqp0r5yjkmcwlgf.isEq($_3cqp0r5yjkmcwlgf.createFromEditor(editor), data[0]) === false) {\r\n if (editor.isDirty() === false) {\r\n setDirty(true);\r\n editor.fire('change', {\r\n level: data[0],\r\n lastLevel: null\r\n });\r\n }\r\n editor.fire('TypingUndo');\r\n isFirstTypedCharacter = false;\r\n editor.nodeChanged();\r\n }\r\n });\r\n editor.on('KeyDown', function (e) {\r\n var keyCode = e.keyCode;\r\n if (e.isDefaultPrevented()) {\r\n return;\r\n }\r\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\r\n if (self.typing) {\r\n addNonTypingUndoLevel(e);\r\n }\r\n return;\r\n }\r\n var modKey = e.ctrlKey && !e.altKey || e.metaKey;\r\n if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !self.typing && !modKey) {\r\n self.beforeChange();\r\n setTyping(true);\r\n self.add({}, e);\r\n isFirstTypedCharacter = true;\r\n }\r\n });\r\n editor.on('MouseDown', function (e) {\r\n if (self.typing) {\r\n addNonTypingUndoLevel(e);\r\n }\r\n });\r\n var isInsertReplacementText = function (event) {\r\n return event.inputType === 'insertReplacementText';\r\n };\r\n var isInsertTextDataNull = function (event) {\r\n return event.inputType === 'insertText' && event.data === null;\r\n };\r\n editor.on('input', function (e) {\r\n if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e))) {\r\n addNonTypingUndoLevel(e);\r\n }\r\n });\r\n editor.addShortcut('meta+z', '', 'Undo');\r\n editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\r\n editor.on('AddUndo Undo Redo ClearUndos', function (e) {\r\n if (!e.isDefaultPrevented()) {\r\n editor.nodeChanged();\r\n }\r\n });\r\n self = {\r\n data: data,\r\n typing: false,\r\n beforeChange: function () {\r\n if (isUnlocked()) {\r\n beforeBookmark = $_aw3zi52jjkmcwkoa.getUndoBookmark(editor.selection);\r\n }\r\n },\r\n add: function (level, event) {\r\n var i;\r\n var settings = editor.settings;\r\n var lastLevel, currentLevel;\r\n currentLevel = $_3cqp0r5yjkmcwlgf.createFromEditor(editor);\r\n level = level || {};\r\n level = $_4ujg4tljkmcwkbk.extend(level, currentLevel);\r\n if (isUnlocked() === false || editor.removed) {\r\n return null;\r\n }\r\n lastLevel = data[index];\r\n if (editor.fire('BeforeAddUndo', {\r\n level: level,\r\n lastLevel: lastLevel,\r\n originalEvent: event\r\n }).isDefaultPrevented()) {\r\n return null;\r\n }\r\n if (lastLevel && $_3cqp0r5yjkmcwlgf.isEq(lastLevel, level)) {\r\n return null;\r\n }\r\n if (data[index]) {\r\n data[index].beforeBookmark = beforeBookmark;\r\n }\r\n if (settings.custom_undo_redo_levels) {\r\n if (data.length > settings.custom_undo_redo_levels) {\r\n for (i = 0; i < data.length - 1; i++) {\r\n data[i] = data[i + 1];\r\n }\r\n data.length--;\r\n index = data.length;\r\n }\r\n }\r\n level.bookmark = $_aw3zi52jjkmcwkoa.getUndoBookmark(editor.selection);\r\n if (index < data.length - 1) {\r\n data.length = index + 1;\r\n }\r\n data.push(level);\r\n index = data.length - 1;\r\n var args = {\r\n level: level,\r\n lastLevel: lastLevel,\r\n originalEvent: event\r\n };\r\n editor.fire('AddUndo', args);\r\n if (index > 0) {\r\n setDirty(true);\r\n editor.fire('change', args);\r\n }\r\n return level;\r\n },\r\n undo: function () {\r\n var level;\r\n if (self.typing) {\r\n self.add();\r\n self.typing = false;\r\n setTyping(false);\r\n }\r\n if (index > 0) {\r\n level = data[--index];\r\n $_3cqp0r5yjkmcwlgf.applyToEditor(editor, level, true);\r\n setDirty(true);\r\n editor.fire('undo', { level: level });\r\n }\r\n return level;\r\n },\r\n redo: function () {\r\n var level;\r\n if (index < data.length - 1) {\r\n level = data[++index];\r\n $_3cqp0r5yjkmcwlgf.applyToEditor(editor, level, false);\r\n setDirty(true);\r\n editor.fire('redo', { level: level });\r\n }\r\n return level;\r\n },\r\n clear: function () {\r\n data = [];\r\n index = 0;\r\n self.typing = false;\r\n self.data = data;\r\n editor.fire('ClearUndos');\r\n },\r\n hasUndo: function () {\r\n return index > 0 || self.typing && data[0] && !$_3cqp0r5yjkmcwlgf.isEq($_3cqp0r5yjkmcwlgf.createFromEditor(editor), data[0]);\r\n },\r\n hasRedo: function () {\r\n return index < data.length - 1 && !self.typing;\r\n },\r\n transact: function (callback) {\r\n endTyping();\r\n self.beforeChange();\r\n self.ignore(callback);\r\n return self.add();\r\n },\r\n ignore: function (callback) {\r\n try {\r\n locks++;\r\n callback();\r\n } finally {\r\n locks--;\r\n }\r\n },\r\n extra: function (callback1, callback2) {\r\n var lastLevel, bookmark;\r\n if (self.transact(callback1)) {\r\n bookmark = data[index].bookmark;\r\n lastLevel = data[index - 1];\r\n $_3cqp0r5yjkmcwlgf.applyToEditor(editor, lastLevel, true);\r\n if (self.transact(callback2)) {\r\n data[index - 1].beforeBookmark = bookmark;\r\n }\r\n }\r\n }\r\n };\r\n return self;\r\n }\r\n\r\n var isEq$4 = $_dli08w3ajkmcwktg.isEq;\r\n var matchesUnInheritedFormatSelector = function (ed, node, name) {\r\n var formatList = ed.formatter.get(name);\r\n if (formatList) {\r\n for (var i = 0; i < formatList.length; i++) {\r\n if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var matchParents = function (editor, node, name, vars) {\r\n var root = editor.dom.getRoot();\r\n if (node === root) {\r\n return false;\r\n }\r\n node = editor.dom.getParent(node, function (node) {\r\n if (matchesUnInheritedFormatSelector(editor, node, name)) {\r\n return true;\r\n }\r\n return node.parentNode === root || !!matchNode(editor, node, name, vars, true);\r\n });\r\n return matchNode(editor, node, name, vars);\r\n };\r\n var matchName = function (dom, node, format) {\r\n if (isEq$4(node, format.inline)) {\r\n return true;\r\n }\r\n if (isEq$4(node, format.block)) {\r\n return true;\r\n }\r\n if (format.selector) {\r\n return node.nodeType === 1 && dom.is(node, format.selector);\r\n }\r\n };\r\n var matchItems = function (dom, node, format, itemName, similar, vars) {\r\n var key, value;\r\n var items = format[itemName];\r\n var i;\r\n if (format.onmatch) {\r\n return format.onmatch(node, format, itemName);\r\n }\r\n if (items) {\r\n if (typeof items.length === 'undefined') {\r\n for (key in items) {\r\n if (items.hasOwnProperty(key)) {\r\n if (itemName === 'attributes') {\r\n value = dom.getAttrib(node, key);\r\n } else {\r\n value = $_dli08w3ajkmcwktg.getStyle(dom, node, key);\r\n }\r\n if (similar && !value && !format.exact) {\r\n return;\r\n }\r\n if ((!similar || format.exact) && !isEq$4(value, $_dli08w3ajkmcwktg.normalizeStyleValue(dom, $_dli08w3ajkmcwktg.replaceVars(items[key], vars), key))) {\r\n return;\r\n }\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < items.length; i++) {\r\n if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : $_dli08w3ajkmcwktg.getStyle(dom, node, items[i])) {\r\n return format;\r\n }\r\n }\r\n }\r\n }\r\n return format;\r\n };\r\n var matchNode = function (ed, node, name, vars, similar) {\r\n var formatList = ed.formatter.get(name);\r\n var format, i, x, classes;\r\n var dom = ed.dom;\r\n if (formatList && node) {\r\n for (i = 0; i < formatList.length; i++) {\r\n format = formatList[i];\r\n if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\r\n if (classes = format.classes) {\r\n for (x = 0; x < classes.length; x++) {\r\n if (!ed.dom.hasClass(node, classes[x])) {\r\n return;\r\n }\r\n }\r\n }\r\n return format;\r\n }\r\n }\r\n }\r\n };\r\n var match = function (editor, name, vars, node) {\r\n var startNode;\r\n if (node) {\r\n return matchParents(editor, node, name, vars);\r\n }\r\n node = editor.selection.getNode();\r\n if (matchParents(editor, node, name, vars)) {\r\n return true;\r\n }\r\n startNode = editor.selection.getStart();\r\n if (startNode !== node) {\r\n if (matchParents(editor, startNode, name, vars)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var matchAll = function (editor, names, vars) {\r\n var startElement;\r\n var matchedFormatNames = [];\r\n var checkedMap = {};\r\n startElement = editor.selection.getStart();\r\n editor.dom.getParent(startElement, function (node) {\r\n var i, name;\r\n for (i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\r\n checkedMap[name] = true;\r\n matchedFormatNames.push(name);\r\n }\r\n }\r\n }, editor.dom.getRoot());\r\n return matchedFormatNames;\r\n };\r\n var canApply = function (editor, name) {\r\n var formatList = editor.formatter.get(name);\r\n var startNode, parents, i, x, selector;\r\n var dom = editor.dom;\r\n if (formatList) {\r\n startNode = editor.selection.getStart();\r\n parents = $_dli08w3ajkmcwktg.getParents(dom, startNode);\r\n for (x = formatList.length - 1; x >= 0; x--) {\r\n selector = formatList[x].selector;\r\n if (!selector || formatList[x].defaultBlock) {\r\n return true;\r\n }\r\n for (i = parents.length - 1; i >= 0; i--) {\r\n if (dom.is(parents[i], selector)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var $_axwnk168jkmcwlim = {\r\n matchNode: matchNode,\r\n matchName: matchName,\r\n match: match,\r\n matchAll: matchAll,\r\n canApply: canApply,\r\n matchesUnInheritedFormatSelector: matchesUnInheritedFormatSelector\r\n };\r\n\r\n var splitText = function (node, offset) {\r\n return node.splitText(offset);\r\n };\r\n var split$1 = function (rng) {\r\n var startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\r\n if (startContainer === endContainer && $_bjermr1rjkmcwkij.isText(startContainer)) {\r\n if (startOffset > 0 && startOffset < startContainer.nodeValue.length) {\r\n endContainer = splitText(startContainer, startOffset);\r\n startContainer = endContainer.previousSibling;\r\n if (endOffset > startOffset) {\r\n endOffset = endOffset - startOffset;\r\n startContainer = endContainer = splitText(endContainer, endOffset).previousSibling;\r\n endOffset = endContainer.nodeValue.length;\r\n startOffset = 0;\r\n } else {\r\n endOffset = 0;\r\n }\r\n }\r\n } else {\r\n if ($_bjermr1rjkmcwkij.isText(startContainer) && startOffset > 0 && startOffset < startContainer.nodeValue.length) {\r\n startContainer = splitText(startContainer, startOffset);\r\n startOffset = 0;\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(endContainer) && endOffset > 0 && endOffset < endContainer.nodeValue.length) {\r\n endContainer = splitText(endContainer, endOffset).previousSibling;\r\n endOffset = endContainer.nodeValue.length;\r\n }\r\n }\r\n return {\r\n startContainer: startContainer,\r\n startOffset: startOffset,\r\n endContainer: endContainer,\r\n endOffset: endOffset\r\n };\r\n };\r\n var $_bnmynr69jkmcwlir = { split: split$1 };\r\n\r\n var ZWSP$1 = $_cadvcr2pjkmcwkph.ZWSP;\r\n var CARET_ID$1 = '_mce_caret';\r\n var importNode = function (ownerDocument, node) {\r\n return ownerDocument.importNode(node, true);\r\n };\r\n var getEmptyCaretContainers = function (node) {\r\n var nodes = [];\r\n while (node) {\r\n if (node.nodeType === 3 && node.nodeValue !== ZWSP$1 || node.childNodes.length > 1) {\r\n return [];\r\n }\r\n if (node.nodeType === 1) {\r\n nodes.push(node);\r\n }\r\n node = node.firstChild;\r\n }\r\n return nodes;\r\n };\r\n var isCaretContainerEmpty = function (node) {\r\n return getEmptyCaretContainers(node).length > 0;\r\n };\r\n var findFirstTextNode = function (node) {\r\n var walker;\r\n if (node) {\r\n walker = new TreeWalker(node, node);\r\n for (node = walker.current(); node; node = walker.next()) {\r\n if (node.nodeType === 3) {\r\n return node;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n var createCaretContainer = function (fill) {\r\n var caretContainer = Element$$1.fromTag('span');\r\n $_29helg15jkmcwkf0.setAll(caretContainer, {\r\n 'id': CARET_ID$1,\r\n 'data-mce-bogus': '1',\r\n 'data-mce-type': 'format-caret'\r\n });\r\n if (fill) {\r\n $_f4qt4v1yjkmcwkl2.append(caretContainer, Element$$1.fromText(ZWSP$1));\r\n }\r\n return caretContainer;\r\n };\r\n var trimZwspFromCaretContainer = function (caretContainerNode) {\r\n var textNode = findFirstTextNode(caretContainerNode);\r\n if (textNode && textNode.nodeValue.charAt(0) === ZWSP$1) {\r\n textNode.deleteData(0, 1);\r\n }\r\n return textNode;\r\n };\r\n var removeCaretContainerNode = function (dom, selection, node, moveCaret) {\r\n var rng, block, textNode;\r\n rng = selection.getRng(true);\r\n block = dom.getParent(node, dom.isBlock);\r\n if (isCaretContainerEmpty(node)) {\r\n if (moveCaret !== false) {\r\n rng.setStartBefore(node);\r\n rng.setEndBefore(node);\r\n }\r\n dom.remove(node);\r\n } else {\r\n textNode = trimZwspFromCaretContainer(node);\r\n if (rng.startContainer === textNode && rng.startOffset > 0) {\r\n rng.setStart(textNode, rng.startOffset - 1);\r\n }\r\n if (rng.endContainer === textNode && rng.endOffset > 0) {\r\n rng.setEnd(textNode, rng.endOffset - 1);\r\n }\r\n dom.remove(node, true);\r\n }\r\n if (block && dom.isEmpty(block)) {\r\n $_zygeg3ljkmcwkvo.fillWithPaddingBr(Element$$1.fromDom(block));\r\n }\r\n selection.setRng(rng);\r\n };\r\n var removeCaretContainer = function (body, dom, selection, node, moveCaret) {\r\n if (!node) {\r\n node = getParentCaretContainer(body, selection.getStart());\r\n if (!node) {\r\n while (node = dom.get(CARET_ID$1)) {\r\n removeCaretContainerNode(dom, selection, node, false);\r\n }\r\n }\r\n } else {\r\n removeCaretContainerNode(dom, selection, node, moveCaret);\r\n }\r\n };\r\n var insertCaretContainerNode = function (editor, caretContainer, formatNode) {\r\n var dom = editor.dom, block = dom.getParent(formatNode, $_fl2rax2ljkmcwkot.curry($_dli08w3ajkmcwktg.isTextBlock, editor));\r\n if (block && dom.isEmpty(block)) {\r\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\r\n } else {\r\n $_zygeg3ljkmcwkvo.removeTrailingBr(Element$$1.fromDom(formatNode));\r\n if (dom.isEmpty(formatNode)) {\r\n formatNode.parentNode.replaceChild(caretContainer, formatNode);\r\n } else {\r\n dom.insertAfter(caretContainer, formatNode);\r\n }\r\n }\r\n };\r\n var appendNode = function (parentNode, node) {\r\n parentNode.appendChild(node);\r\n return node;\r\n };\r\n var insertFormatNodesIntoCaretContainer = function (formatNodes, caretContainer) {\r\n var innerMostFormatNode = foldr(formatNodes, function (parentNode, formatNode) {\r\n return appendNode(parentNode, formatNode.cloneNode(false));\r\n }, caretContainer);\r\n return appendNode(innerMostFormatNode, innerMostFormatNode.ownerDocument.createTextNode(ZWSP$1));\r\n };\r\n var applyCaretFormat = function (editor, name, vars) {\r\n var rng, caretContainer, textNode, offset, bookmark, container, text;\r\n var selection = editor.selection;\r\n rng = selection.getRng(true);\r\n offset = rng.startOffset;\r\n container = rng.startContainer;\r\n text = container.nodeValue;\r\n caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\r\n if (caretContainer) {\r\n textNode = findFirstTextNode(caretContainer);\r\n }\r\n var wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\r\n if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\r\n bookmark = selection.getBookmark();\r\n rng.collapse(true);\r\n rng = $_97afwh2ujkmcwkpw.expandRng(editor, rng, editor.formatter.get(name));\r\n rng = $_bnmynr69jkmcwlir.split(rng);\r\n editor.formatter.apply(name, vars, rng);\r\n selection.moveToBookmark(bookmark);\r\n } else {\r\n if (!caretContainer || textNode.nodeValue !== ZWSP$1) {\r\n caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom());\r\n textNode = caretContainer.firstChild;\r\n rng.insertNode(caretContainer);\r\n offset = 1;\r\n editor.formatter.apply(name, vars, caretContainer);\r\n } else {\r\n editor.formatter.apply(name, vars, caretContainer);\r\n }\r\n selection.setCursorLocation(textNode, offset);\r\n }\r\n };\r\n var removeCaretFormat = function (editor, name, vars, similar) {\r\n var dom = editor.dom, selection = editor.selection;\r\n var container, offset, bookmark;\r\n var hasContentAfter, node, formatNode;\r\n var parents = [], rng = selection.getRng();\r\n var caretContainer;\r\n container = rng.startContainer;\r\n offset = rng.startOffset;\r\n node = container;\r\n if (container.nodeType === 3) {\r\n if (offset !== container.nodeValue.length) {\r\n hasContentAfter = true;\r\n }\r\n node = node.parentNode;\r\n }\r\n while (node) {\r\n if ($_axwnk168jkmcwlim.matchNode(editor, node, name, vars, similar)) {\r\n formatNode = node;\r\n break;\r\n }\r\n if (node.nextSibling) {\r\n hasContentAfter = true;\r\n }\r\n parents.push(node);\r\n node = node.parentNode;\r\n }\r\n if (!formatNode) {\r\n return;\r\n }\r\n if (hasContentAfter) {\r\n bookmark = selection.getBookmark();\r\n rng.collapse(true);\r\n var expandedRng = $_97afwh2ujkmcwkpw.expandRng(editor, rng, editor.formatter.get(name), true);\r\n expandedRng = $_bnmynr69jkmcwlir.split(expandedRng);\r\n editor.formatter.remove(name, vars, expandedRng);\r\n selection.moveToBookmark(bookmark);\r\n } else {\r\n caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\r\n var newCaretContainer = createCaretContainer(false).dom();\r\n var caretNode = insertFormatNodesIntoCaretContainer(parents, newCaretContainer);\r\n if (caretContainer) {\r\n insertCaretContainerNode(editor, newCaretContainer, caretContainer);\r\n } else {\r\n insertCaretContainerNode(editor, newCaretContainer, formatNode);\r\n }\r\n removeCaretContainerNode(dom, selection, caretContainer, false);\r\n selection.setCursorLocation(caretNode, 1);\r\n if (dom.isEmpty(formatNode)) {\r\n dom.remove(formatNode);\r\n }\r\n }\r\n };\r\n var disableCaretContainer = function (body, dom, selection, keyCode) {\r\n removeCaretContainer(body, dom, selection, null, false);\r\n if (keyCode === 8 && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP$1) {\r\n removeCaretContainer(body, dom, selection, getParentCaretContainer(body, selection.getStart()));\r\n }\r\n if (keyCode === 37 || keyCode === 39) {\r\n removeCaretContainer(body, dom, selection, getParentCaretContainer(body, selection.getStart()));\r\n }\r\n };\r\n var setup$4 = function (editor) {\r\n var dom = editor.dom, selection = editor.selection;\r\n var body = editor.getBody();\r\n editor.on('mouseup keydown', function (e) {\r\n disableCaretContainer(body, dom, selection, e.keyCode);\r\n });\r\n };\r\n var replaceWithCaretFormat = function (targetNode, formatNodes) {\r\n var caretContainer = createCaretContainer(false);\r\n var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom());\r\n $_f4qt4v1yjkmcwkl2.before(Element$$1.fromDom(targetNode), caretContainer);\r\n $_eualm21wjkmcwkku.remove(Element$$1.fromDom(targetNode));\r\n return CaretPosition$1(innerMost, 0);\r\n };\r\n var isFormatElement = function (editor, element) {\r\n var inlineElements = editor.schema.getTextInlineElements();\r\n return inlineElements.hasOwnProperty($_2xwdjv11jkmcwke0.name(element)) && !isCaretNode(element.dom()) && !$_bjermr1rjkmcwkij.isBogus(element.dom());\r\n };\r\n\r\n var postProcessHooks = {};\r\n var filter$2 = $_9g1fibmjkmcwkbu.filter;\r\n var each$12 = $_9g1fibmjkmcwkbu.each;\r\n var addPostProcessHook = function (name, hook) {\r\n var hooks = postProcessHooks[name];\r\n if (!hooks) {\r\n postProcessHooks[name] = hooks = [];\r\n }\r\n postProcessHooks[name].push(hook);\r\n };\r\n var postProcess = function (name, editor) {\r\n each$12(postProcessHooks[name], function (hook) {\r\n hook(editor);\r\n });\r\n };\r\n addPostProcessHook('pre', function (editor) {\r\n var rng = editor.selection.getRng();\r\n var isPre, blocks;\r\n var hasPreSibling = function (pre) {\r\n return isPre(pre.previousSibling) && $_9g1fibmjkmcwkbu.indexOf(blocks, pre.previousSibling) !== -1;\r\n };\r\n var joinPre = function (pre1, pre2) {\r\n DomQuery(pre2).remove();\r\n DomQuery(pre1).append('

').append(pre2.childNodes);\r\n };\r\n isPre = $_bjermr1rjkmcwkij.matchNodeNames('pre');\r\n if (!rng.collapsed) {\r\n blocks = editor.selection.getSelectedBlocks();\r\n each$12(filter$2(filter$2(blocks, isPre), hasPreSibling), function (pre) {\r\n joinPre(pre.previousSibling, pre);\r\n });\r\n }\r\n });\r\n var $_dp9y746ajkmcwlit = { postProcess: postProcess };\r\n\r\n var MCE_ATTR_RE = /^(src|href|style)$/;\r\n var each$13 = $_4ujg4tljkmcwkbk.each;\r\n var isEq$5 = $_dli08w3ajkmcwktg.isEq;\r\n var isTableCell$4 = function (node) {\r\n return /^(TH|TD)$/.test(node.nodeName);\r\n };\r\n var getContainer = function (ed, rng, start) {\r\n var container, offset, lastIdx;\r\n container = rng[start ? 'startContainer' : 'endContainer'];\r\n offset = rng[start ? 'startOffset' : 'endOffset'];\r\n if ($_bjermr1rjkmcwkij.isElement(container)) {\r\n lastIdx = container.childNodes.length - 1;\r\n if (!start && offset) {\r\n offset--;\r\n }\r\n container = container.childNodes[offset > lastIdx ? lastIdx : offset];\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(container) && start && offset >= container.nodeValue.length) {\r\n container = new TreeWalker(container, ed.getBody()).next() || container;\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(container) && !start && offset === 0) {\r\n container = new TreeWalker(container, ed.getBody()).prev() || container;\r\n }\r\n return container;\r\n };\r\n var wrap$2 = function (dom, node, name, attrs) {\r\n var wrapper = dom.create(name, attrs);\r\n node.parentNode.insertBefore(wrapper, node);\r\n wrapper.appendChild(node);\r\n return wrapper;\r\n };\r\n var matchName$1 = function (dom, node, format) {\r\n if (isEq$5(node, format.inline)) {\r\n return true;\r\n }\r\n if (isEq$5(node, format.block)) {\r\n return true;\r\n }\r\n if (format.selector) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && dom.is(node, format.selector);\r\n }\r\n };\r\n var isColorFormatAndAnchor = function (node, format) {\r\n return format.links && node.tagName === 'A';\r\n };\r\n var find$4 = function (dom, node, next, inc) {\r\n node = $_dli08w3ajkmcwktg.getNonWhiteSpaceSibling(node, next, inc);\r\n return !node || (node.nodeName === 'BR' || dom.isBlock(node));\r\n };\r\n var removeNode$1 = function (ed, node, format) {\r\n var parentNode = node.parentNode;\r\n var rootBlockElm;\r\n var dom = ed.dom, forcedRootBlock = ed.settings.forced_root_block;\r\n if (format.block) {\r\n if (!forcedRootBlock) {\r\n if (dom.isBlock(node) && !dom.isBlock(parentNode)) {\r\n if (!find$4(dom, node, false) && !find$4(dom, node.firstChild, true, 1)) {\r\n node.insertBefore(dom.create('br'), node.firstChild);\r\n }\r\n if (!find$4(dom, node, true) && !find$4(dom, node.lastChild, false, 1)) {\r\n node.appendChild(dom.create('br'));\r\n }\r\n }\r\n } else {\r\n if (parentNode === dom.getRoot()) {\r\n if (!format.list_block || !isEq$5(node, format.list_block)) {\r\n each$13($_4ujg4tljkmcwkbk.grep(node.childNodes), function (node) {\r\n if ($_dli08w3ajkmcwktg.isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\r\n if (!rootBlockElm) {\r\n rootBlockElm = wrap$2(dom, node, forcedRootBlock);\r\n dom.setAttribs(rootBlockElm, ed.settings.forced_root_block_attrs);\r\n } else {\r\n rootBlockElm.appendChild(node);\r\n }\r\n } else {\r\n rootBlockElm = 0;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n if (format.selector && format.inline && !isEq$5(format.inline, node)) {\r\n return;\r\n }\r\n dom.remove(node, 1);\r\n };\r\n var removeFormat = function (ed, format, vars, node, compareNode) {\r\n var i, attrs, stylesModified;\r\n var dom = ed.dom;\r\n if (!matchName$1(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\r\n return false;\r\n }\r\n if (format.remove !== 'all') {\r\n each$13(format.styles, function (value, name) {\r\n value = $_dli08w3ajkmcwktg.normalizeStyleValue(dom, $_dli08w3ajkmcwktg.replaceVars(value, vars), name);\r\n if (typeof name === 'number') {\r\n name = value;\r\n compareNode = 0;\r\n }\r\n if (format.remove_similar || (!compareNode || isEq$5($_dli08w3ajkmcwktg.getStyle(dom, compareNode, name), value))) {\r\n dom.setStyle(node, name, '');\r\n }\r\n stylesModified = 1;\r\n });\r\n if (stylesModified && dom.getAttrib(node, 'style') === '') {\r\n node.removeAttribute('style');\r\n node.removeAttribute('data-mce-style');\r\n }\r\n each$13(format.attributes, function (value, name) {\r\n var valueOut;\r\n value = $_dli08w3ajkmcwktg.replaceVars(value, vars);\r\n if (typeof name === 'number') {\r\n name = value;\r\n compareNode = 0;\r\n }\r\n if (!compareNode || isEq$5(dom.getAttrib(compareNode, name), value)) {\r\n if (name === 'class') {\r\n value = dom.getAttrib(node, name);\r\n if (value) {\r\n valueOut = '';\r\n each$13(value.split(/\\s+/), function (cls) {\r\n if (/mce\\-\\w+/.test(cls)) {\r\n valueOut += (valueOut ? ' ' : '') + cls;\r\n }\r\n });\r\n if (valueOut) {\r\n dom.setAttrib(node, name, valueOut);\r\n return;\r\n }\r\n }\r\n }\r\n if (name === 'class') {\r\n node.removeAttribute('className');\r\n }\r\n if (MCE_ATTR_RE.test(name)) {\r\n node.removeAttribute('data-mce-' + name);\r\n }\r\n node.removeAttribute(name);\r\n }\r\n });\r\n each$13(format.classes, function (value) {\r\n value = $_dli08w3ajkmcwktg.replaceVars(value, vars);\r\n if (!compareNode || dom.hasClass(compareNode, value)) {\r\n dom.removeClass(node, value);\r\n }\r\n });\r\n attrs = dom.getAttribs(node);\r\n for (i = 0; i < attrs.length; i++) {\r\n var attrName = attrs[i].nodeName;\r\n if (attrName.indexOf('_') !== 0 && attrName.indexOf('data-') !== 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (format.remove !== 'none') {\r\n removeNode$1(ed, node, format);\r\n return true;\r\n }\r\n };\r\n var findFormatRoot = function (editor, container, name, vars, similar) {\r\n var formatRoot;\r\n each$13($_dli08w3ajkmcwktg.getParents(editor.dom, container.parentNode).reverse(), function (parent) {\r\n var format;\r\n if (!formatRoot && parent.id !== '_start' && parent.id !== '_end') {\r\n format = $_axwnk168jkmcwlim.matchNode(editor, parent, name, vars, similar);\r\n if (format && format.split !== false) {\r\n formatRoot = parent;\r\n }\r\n }\r\n });\r\n return formatRoot;\r\n };\r\n var wrapAndSplit = function (editor, formatList, formatRoot, container, target, split, format, vars) {\r\n var parent, clone, lastClone, firstClone, i, formatRootParent;\r\n var dom = editor.dom;\r\n if (formatRoot) {\r\n formatRootParent = formatRoot.parentNode;\r\n for (parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\r\n clone = dom.clone(parent, false);\r\n for (i = 0; i < formatList.length; i++) {\r\n if (removeFormat(editor, formatList[i], vars, clone, clone)) {\r\n clone = 0;\r\n break;\r\n }\r\n }\r\n if (clone) {\r\n if (lastClone) {\r\n clone.appendChild(lastClone);\r\n }\r\n if (!firstClone) {\r\n firstClone = clone;\r\n }\r\n lastClone = clone;\r\n }\r\n }\r\n if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\r\n container = dom.split(formatRoot, container);\r\n }\r\n if (lastClone) {\r\n target.parentNode.insertBefore(lastClone, target);\r\n firstClone.appendChild(target);\r\n }\r\n }\r\n return container;\r\n };\r\n var remove$8 = function (ed, name, vars, node, similar) {\r\n var formatList = ed.formatter.get(name), format = formatList[0];\r\n var bookmark, rng, contentEditable = true;\r\n var dom = ed.dom;\r\n var selection = ed.selection;\r\n var splitToFormatRoot = function (container) {\r\n var formatRoot = findFormatRoot(ed, container, name, vars, similar);\r\n return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\r\n };\r\n var process = function (node) {\r\n var children, i, l, lastContentEditable, hasContentEditableState;\r\n if ($_bjermr1rjkmcwkij.isElement(node) && dom.getContentEditable(node)) {\r\n lastContentEditable = contentEditable;\r\n contentEditable = dom.getContentEditable(node) === 'true';\r\n hasContentEditableState = true;\r\n }\r\n children = $_4ujg4tljkmcwkbk.grep(node.childNodes);\r\n if (contentEditable && !hasContentEditableState) {\r\n for (i = 0, l = formatList.length; i < l; i++) {\r\n if (removeFormat(ed, formatList[i], vars, node, node)) {\r\n break;\r\n }\r\n }\r\n }\r\n if (format.deep) {\r\n if (children.length) {\r\n for (i = 0, l = children.length; i < l; i++) {\r\n process(children[i]);\r\n }\r\n if (hasContentEditableState) {\r\n contentEditable = lastContentEditable;\r\n }\r\n }\r\n }\r\n };\r\n var unwrap = function (start) {\r\n var node = dom.get(start ? '_start' : '_end');\r\n var out = node[start ? 'firstChild' : 'lastChild'];\r\n if ($_e4btcc2vjkmcwkq3.isBookmarkNode(out)) {\r\n out = out[start ? 'firstChild' : 'lastChild'];\r\n }\r\n if ($_bjermr1rjkmcwkij.isText(out) && out.data.length === 0) {\r\n out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\r\n }\r\n dom.remove(node, true);\r\n return out;\r\n };\r\n var removeRngStyle = function (rng) {\r\n var startContainer, endContainer;\r\n var commonAncestorContainer = rng.commonAncestorContainer;\r\n rng = $_97afwh2ujkmcwkpw.expandRng(ed, rng, formatList, true);\r\n if (format.split) {\r\n startContainer = getContainer(ed, rng, true);\r\n endContainer = getContainer(ed, rng);\r\n if (startContainer !== endContainer) {\r\n if (/^(TR|TH|TD)$/.test(startContainer.nodeName) && startContainer.firstChild) {\r\n if (startContainer.nodeName === 'TR') {\r\n startContainer = startContainer.firstChild.firstChild || startContainer;\r\n } else {\r\n startContainer = startContainer.firstChild || startContainer;\r\n }\r\n }\r\n if (commonAncestorContainer && /^T(HEAD|BODY|FOOT|R)$/.test(commonAncestorContainer.nodeName) && isTableCell$4(endContainer) && endContainer.firstChild) {\r\n endContainer = endContainer.firstChild || endContainer;\r\n }\r\n if (dom.isChildOf(startContainer, endContainer) && startContainer !== endContainer && !dom.isBlock(endContainer) && !isTableCell$4(startContainer) && !isTableCell$4(endContainer)) {\r\n startContainer = wrap$2(dom, startContainer, 'span', {\r\n 'id': '_start',\r\n 'data-mce-type': 'bookmark'\r\n });\r\n splitToFormatRoot(startContainer);\r\n startContainer = unwrap(true);\r\n return;\r\n }\r\n startContainer = wrap$2(dom, startContainer, 'span', {\r\n 'id': '_start',\r\n 'data-mce-type': 'bookmark'\r\n });\r\n endContainer = wrap$2(dom, endContainer, 'span', {\r\n 'id': '_end',\r\n 'data-mce-type': 'bookmark'\r\n });\r\n splitToFormatRoot(startContainer);\r\n splitToFormatRoot(endContainer);\r\n startContainer = unwrap(true);\r\n endContainer = unwrap();\r\n } else {\r\n startContainer = endContainer = splitToFormatRoot(startContainer);\r\n }\r\n rng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\r\n rng.startOffset = dom.nodeIndex(startContainer);\r\n rng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\r\n rng.endOffset = dom.nodeIndex(endContainer) + 1;\r\n }\r\n $_cuckrv3bjkmcwktk.walk(dom, rng, function (nodes) {\r\n each$13(nodes, function (node) {\r\n process(node);\r\n if ($_bjermr1rjkmcwkij.isElement(node) && ed.dom.getStyle(node, 'text-decoration') === 'underline' && node.parentNode && $_dli08w3ajkmcwktg.getTextDecoration(dom, node.parentNode) === 'underline') {\r\n removeFormat(ed, {\r\n deep: false,\r\n exact: true,\r\n inline: 'span',\r\n styles: { textDecoration: 'underline' }\r\n }, null, node);\r\n }\r\n });\r\n });\r\n };\r\n if (node) {\r\n if (node.nodeType) {\r\n rng = dom.createRng();\r\n rng.setStartBefore(node);\r\n rng.setEndAfter(node);\r\n removeRngStyle(rng);\r\n } else {\r\n removeRngStyle(node);\r\n }\r\n return;\r\n }\r\n if (dom.getContentEditable(selection.getNode()) === 'false') {\r\n node = selection.getNode();\r\n for (var i = 0, l = formatList.length; i < l; i++) {\r\n if (formatList[i].ceFalseOverride) {\r\n if (removeFormat(ed, formatList[i], vars, node, node)) {\r\n break;\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n if (!selection.isCollapsed() || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\r\n bookmark = $_aw3zi52jjkmcwkoa.getPersistentBookmark(ed.selection, true);\r\n removeRngStyle(selection.getRng());\r\n selection.moveToBookmark(bookmark);\r\n if (format.inline && $_axwnk168jkmcwlim.match(ed, name, vars, selection.getStart())) {\r\n $_dli08w3ajkmcwktg.moveStart(dom, selection, selection.getRng());\r\n }\r\n ed.nodeChanged();\r\n } else {\r\n removeCaretFormat(ed, name, vars, similar);\r\n }\r\n };\r\n var $_2vklhc6cjkmcwlj5 = {\r\n removeFormat: removeFormat,\r\n remove: remove$8\r\n };\r\n\r\n var each$14 = $_4ujg4tljkmcwkbk.each;\r\n var isElementNode = function (node) {\r\n return node && node.nodeType === 1 && !$_e4btcc2vjkmcwkq3.isBookmarkNode(node) && !isCaretNode(node) && !$_bjermr1rjkmcwkij.isBogus(node);\r\n };\r\n var findElementSibling = function (node, siblingName) {\r\n var sibling;\r\n for (sibling = node; sibling; sibling = sibling[siblingName]) {\r\n if (sibling.nodeType === 3 && sibling.nodeValue.length !== 0) {\r\n return node;\r\n }\r\n if (sibling.nodeType === 1 && !$_e4btcc2vjkmcwkq3.isBookmarkNode(sibling)) {\r\n return sibling;\r\n }\r\n }\r\n return node;\r\n };\r\n var mergeSiblingsNodes = function (dom, prev, next) {\r\n var sibling, tmpSibling;\r\n var elementUtils = new ElementUtils(dom);\r\n if (prev && next) {\r\n prev = findElementSibling(prev, 'previousSibling');\r\n next = findElementSibling(next, 'nextSibling');\r\n if (elementUtils.compare(prev, next)) {\r\n for (sibling = prev.nextSibling; sibling && sibling !== next;) {\r\n tmpSibling = sibling;\r\n sibling = sibling.nextSibling;\r\n prev.appendChild(tmpSibling);\r\n }\r\n dom.remove(next);\r\n $_4ujg4tljkmcwkbk.each($_4ujg4tljkmcwkbk.grep(next.childNodes), function (node) {\r\n prev.appendChild(node);\r\n });\r\n return prev;\r\n }\r\n }\r\n return next;\r\n };\r\n var processChildElements = function (node, filter, process) {\r\n each$14(node.childNodes, function (node) {\r\n if (isElementNode(node)) {\r\n if (filter(node)) {\r\n process(node);\r\n }\r\n if (node.hasChildNodes()) {\r\n processChildElements(node, filter, process);\r\n }\r\n }\r\n });\r\n };\r\n var hasStyle = function (dom, name) {\r\n return curry(function (name, node) {\r\n return !!(node && $_dli08w3ajkmcwktg.getStyle(dom, node, name));\r\n }, name);\r\n };\r\n var applyStyle = function (dom, name, value) {\r\n return curry(function (name, value, node) {\r\n dom.setStyle(node, name, value);\r\n if (node.getAttribute('style') === '') {\r\n node.removeAttribute('style');\r\n }\r\n unwrapEmptySpan(dom, node);\r\n }, name, value);\r\n };\r\n var unwrapEmptySpan = function (dom, node) {\r\n if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\r\n dom.remove(node, true);\r\n }\r\n };\r\n var processUnderlineAndColor = function (dom, node) {\r\n var textDecoration;\r\n if (node.nodeType === 1 && node.parentNode && node.parentNode.nodeType === 1) {\r\n textDecoration = $_dli08w3ajkmcwktg.getTextDecoration(dom, node.parentNode);\r\n if (dom.getStyle(node, 'color') && textDecoration) {\r\n dom.setStyle(node, 'text-decoration', textDecoration);\r\n } else if (dom.getStyle(node, 'text-decoration') === textDecoration) {\r\n dom.setStyle(node, 'text-decoration', null);\r\n }\r\n }\r\n };\r\n var mergeUnderlineAndColor = function (dom, format, vars, node) {\r\n if (format.styles.color || format.styles.textDecoration) {\r\n $_4ujg4tljkmcwkbk.walk(node, curry(processUnderlineAndColor, dom), 'childNodes');\r\n processUnderlineAndColor(dom, node);\r\n }\r\n };\r\n var mergeBackgroundColorAndFontSize = function (dom, format, vars, node) {\r\n if (format.styles && format.styles.backgroundColor) {\r\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'backgroundColor', $_dli08w3ajkmcwktg.replaceVars(format.styles.backgroundColor, vars)));\r\n }\r\n };\r\n var mergeSubSup = function (dom, format, vars, node) {\r\n if (format.inline === 'sub' || format.inline === 'sup') {\r\n processChildElements(node, hasStyle(dom, 'fontSize'), applyStyle(dom, 'fontSize', ''));\r\n dom.remove(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), true);\r\n }\r\n };\r\n var mergeSiblings = function (dom, format, vars, node) {\r\n if (node && format.merge_siblings !== false) {\r\n node = mergeSiblingsNodes(dom, $_dli08w3ajkmcwktg.getNonWhiteSpaceSibling(node), node);\r\n node = mergeSiblingsNodes(dom, node, $_dli08w3ajkmcwktg.getNonWhiteSpaceSibling(node, true));\r\n }\r\n };\r\n var clearChildStyles = function (dom, format, node) {\r\n if (format.clear_child_styles) {\r\n var selector = format.links ? '*:not(a)' : '*';\r\n each$14(dom.select(selector, node), function (node) {\r\n if (isElementNode(node)) {\r\n each$14(format.styles, function (value, name) {\r\n dom.setStyle(node, name, '');\r\n });\r\n }\r\n });\r\n }\r\n };\r\n var mergeWithChildren = function (editor, formatList, vars, node) {\r\n each$14(formatList, function (format) {\r\n each$14(editor.dom.select(format.inline, node), function (child) {\r\n if (!isElementNode(child)) {\r\n return;\r\n }\r\n $_2vklhc6cjkmcwlj5.removeFormat(editor, format, vars, child, format.exact ? child : null);\r\n });\r\n clearChildStyles(editor.dom, format, node);\r\n });\r\n };\r\n var mergeWithParents = function (editor, format, name, vars, node) {\r\n if ($_axwnk168jkmcwlim.matchNode(editor, node.parentNode, name, vars)) {\r\n if ($_2vklhc6cjkmcwlj5.removeFormat(editor, format, vars, node)) {\r\n return;\r\n }\r\n }\r\n if (format.merge_with_parents) {\r\n editor.dom.getParent(node.parentNode, function (parent) {\r\n if ($_axwnk168jkmcwlim.matchNode(editor, parent, name, vars)) {\r\n $_2vklhc6cjkmcwlj5.removeFormat(editor, format, vars, node);\r\n return true;\r\n }\r\n });\r\n }\r\n };\r\n var $_ehzows6bjkmcwliw = {\r\n mergeWithChildren: mergeWithChildren,\r\n mergeUnderlineAndColor: mergeUnderlineAndColor,\r\n mergeBackgroundColorAndFontSize: mergeBackgroundColorAndFontSize,\r\n mergeSubSup: mergeSubSup,\r\n mergeSiblings: mergeSiblings,\r\n mergeWithParents: mergeWithParents\r\n };\r\n\r\n var each$15 = $_4ujg4tljkmcwkbk.each;\r\n var isElementNode$1 = function (node) {\r\n return node && node.nodeType === 1 && !$_e4btcc2vjkmcwkq3.isBookmarkNode(node) && !isCaretNode(node) && !$_bjermr1rjkmcwkij.isBogus(node);\r\n };\r\n var applyFormat = function (ed, name, vars, node) {\r\n var formatList = ed.formatter.get(name);\r\n var format = formatList[0];\r\n var bookmark, rng;\r\n var isCollapsed = !node && ed.selection.isCollapsed();\r\n var dom = ed.dom, selection = ed.selection;\r\n var setElementFormat = function (elm, fmt) {\r\n fmt = fmt || format;\r\n if (elm) {\r\n if (fmt.onformat) {\r\n fmt.onformat(elm, fmt, vars, node);\r\n }\r\n each$15(fmt.styles, function (value, name) {\r\n dom.setStyle(elm, name, $_dli08w3ajkmcwktg.replaceVars(value, vars));\r\n });\r\n if (fmt.styles) {\r\n var styleVal = dom.getAttrib(elm, 'style');\r\n if (styleVal) {\r\n elm.setAttribute('data-mce-style', styleVal);\r\n }\r\n }\r\n each$15(fmt.attributes, function (value, name) {\r\n dom.setAttrib(elm, name, $_dli08w3ajkmcwktg.replaceVars(value, vars));\r\n });\r\n each$15(fmt.classes, function (value) {\r\n value = $_dli08w3ajkmcwktg.replaceVars(value, vars);\r\n if (!dom.hasClass(elm, value)) {\r\n dom.addClass(elm, value);\r\n }\r\n });\r\n }\r\n };\r\n var applyNodeStyle = function (formatList, node) {\r\n var found = false;\r\n if (!format.selector) {\r\n return false;\r\n }\r\n each$15(formatList, function (format) {\r\n if ('collapsed' in format && format.collapsed !== isCollapsed) {\r\n return;\r\n }\r\n if (dom.is(node, format.selector) && !isCaretNode(node)) {\r\n setElementFormat(node, format);\r\n found = true;\r\n return false;\r\n }\r\n });\r\n return found;\r\n };\r\n var applyRngStyle = function (dom, rng, bookmark, nodeSpecific) {\r\n var newWrappers = [];\r\n var wrapName, wrapElm, contentEditable = true;\r\n wrapName = format.inline || format.block;\r\n wrapElm = dom.create(wrapName);\r\n setElementFormat(wrapElm);\r\n $_cuckrv3bjkmcwktk.walk(dom, rng, function (nodes) {\r\n var currentWrapElm;\r\n var process = function (node) {\r\n var nodeName, parentName, hasContentEditableState, lastContentEditable;\r\n lastContentEditable = contentEditable;\r\n nodeName = node.nodeName.toLowerCase();\r\n parentName = node.parentNode.nodeName.toLowerCase();\r\n if (node.nodeType === 1 && dom.getContentEditable(node)) {\r\n lastContentEditable = contentEditable;\r\n contentEditable = dom.getContentEditable(node) === 'true';\r\n hasContentEditableState = true;\r\n }\r\n if ($_dli08w3ajkmcwktg.isEq(nodeName, 'br')) {\r\n currentWrapElm = 0;\r\n if (format.block) {\r\n dom.remove(node);\r\n }\r\n return;\r\n }\r\n if (format.wrapper && $_axwnk168jkmcwlim.matchNode(ed, node, name, vars)) {\r\n currentWrapElm = 0;\r\n return;\r\n }\r\n if (contentEditable && !hasContentEditableState && format.block && !format.wrapper && $_dli08w3ajkmcwktg.isTextBlock(ed, nodeName) && $_dli08w3ajkmcwktg.isValid(ed, parentName, wrapName)) {\r\n node = dom.rename(node, wrapName);\r\n setElementFormat(node);\r\n newWrappers.push(node);\r\n currentWrapElm = 0;\r\n return;\r\n }\r\n if (format.selector) {\r\n var found = applyNodeStyle(formatList, node);\r\n if (!format.inline || found) {\r\n currentWrapElm = 0;\r\n return;\r\n }\r\n }\r\n if (contentEditable && !hasContentEditableState && $_dli08w3ajkmcwktg.isValid(ed, wrapName, nodeName) && $_dli08w3ajkmcwktg.isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format.inline || !dom.isBlock(node))) {\r\n if (!currentWrapElm) {\r\n currentWrapElm = dom.clone(wrapElm, false);\r\n node.parentNode.insertBefore(currentWrapElm, node);\r\n newWrappers.push(currentWrapElm);\r\n }\r\n currentWrapElm.appendChild(node);\r\n } else {\r\n currentWrapElm = 0;\r\n each$15($_4ujg4tljkmcwkbk.grep(node.childNodes), process);\r\n if (hasContentEditableState) {\r\n contentEditable = lastContentEditable;\r\n }\r\n currentWrapElm = 0;\r\n }\r\n };\r\n each$15(nodes, process);\r\n });\r\n if (format.links === true) {\r\n each$15(newWrappers, function (node) {\r\n var process = function (node) {\r\n if (node.nodeName === 'A') {\r\n setElementFormat(node, format);\r\n }\r\n each$15($_4ujg4tljkmcwkbk.grep(node.childNodes), process);\r\n };\r\n process(node);\r\n });\r\n }\r\n each$15(newWrappers, function (node) {\r\n var childCount;\r\n var getChildCount = function (node) {\r\n var count = 0;\r\n each$15(node.childNodes, function (node) {\r\n if (!$_dli08w3ajkmcwktg.isWhiteSpaceNode(node) && !$_e4btcc2vjkmcwkq3.isBookmarkNode(node)) {\r\n count++;\r\n }\r\n });\r\n return count;\r\n };\r\n var getChildElementNode = function (root) {\r\n var child = false;\r\n each$15(root.childNodes, function (node) {\r\n if (isElementNode$1(node)) {\r\n child = node;\r\n return false;\r\n }\r\n });\r\n return child;\r\n };\r\n var mergeStyles = function (node) {\r\n var child, clone;\r\n child = getChildElementNode(node);\r\n if (child && !$_e4btcc2vjkmcwkq3.isBookmarkNode(child) && $_axwnk168jkmcwlim.matchName(dom, child, format)) {\r\n clone = dom.clone(child, false);\r\n setElementFormat(clone);\r\n dom.replace(clone, node, true);\r\n dom.remove(child, 1);\r\n }\r\n return clone || node;\r\n };\r\n childCount = getChildCount(node);\r\n if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\r\n dom.remove(node, 1);\r\n return;\r\n }\r\n if (format.inline || format.wrapper) {\r\n if (!format.exact && childCount === 1) {\r\n node = mergeStyles(node);\r\n }\r\n $_ehzows6bjkmcwliw.mergeWithChildren(ed, formatList, vars, node);\r\n $_ehzows6bjkmcwliw.mergeWithParents(ed, format, name, vars, node);\r\n $_ehzows6bjkmcwliw.mergeBackgroundColorAndFontSize(dom, format, vars, node);\r\n $_ehzows6bjkmcwliw.mergeSubSup(dom, format, vars, node);\r\n $_ehzows6bjkmcwliw.mergeSiblings(dom, format, vars, node);\r\n }\r\n });\r\n };\r\n if (dom.getContentEditable(selection.getNode()) === 'false') {\r\n node = selection.getNode();\r\n for (var i = 0, l = formatList.length; i < l; i++) {\r\n if (formatList[i].ceFalseOverride && dom.is(node, formatList[i].selector)) {\r\n setElementFormat(node, formatList[i]);\r\n return;\r\n }\r\n }\r\n return;\r\n }\r\n if (format) {\r\n if (node) {\r\n if (node.nodeType) {\r\n if (!applyNodeStyle(formatList, node)) {\r\n rng = dom.createRng();\r\n rng.setStartBefore(node);\r\n rng.setEndAfter(node);\r\n applyRngStyle(dom, $_97afwh2ujkmcwkpw.expandRng(ed, rng, formatList), null, true);\r\n }\r\n } else {\r\n applyRngStyle(dom, node, null, true);\r\n }\r\n } else {\r\n if (!isCollapsed || !format.inline || dom.select('td[data-mce-selected],th[data-mce-selected]').length) {\r\n var curSelNode = ed.selection.getNode();\r\n if (!ed.settings.forced_root_block && formatList[0].defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) {\r\n applyFormat(ed, formatList[0].defaultBlock);\r\n }\r\n ed.selection.setRng($_bx30le3ojkmcwkw9.normalize(ed.selection.getRng()));\r\n bookmark = $_aw3zi52jjkmcwkoa.getPersistentBookmark(ed.selection, true);\r\n applyRngStyle(dom, $_97afwh2ujkmcwkpw.expandRng(ed, selection.getRng(), formatList), bookmark);\r\n if (format.styles) {\r\n $_ehzows6bjkmcwliw.mergeUnderlineAndColor(dom, format, vars, curSelNode);\r\n }\r\n selection.moveToBookmark(bookmark);\r\n $_dli08w3ajkmcwktg.moveStart(dom, selection, selection.getRng());\r\n ed.nodeChanged();\r\n } else {\r\n applyCaretFormat(ed, name, vars);\r\n }\r\n }\r\n $_dp9y746ajkmcwlit.postProcess(name, ed);\r\n }\r\n };\r\n var $_bcenmc66jkmcwlhp = { applyFormat: applyFormat };\r\n\r\n var each$16 = $_4ujg4tljkmcwkbk.each;\r\n var setup$5 = function (formatChangeData, editor) {\r\n var currentFormats = {};\r\n formatChangeData.set({});\r\n editor.on('NodeChange', function (e) {\r\n var parents = $_dli08w3ajkmcwktg.getParents(editor.dom, e.element);\r\n var matchedFormats = {};\r\n parents = $_4ujg4tljkmcwkbk.grep(parents, function (node) {\r\n return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');\r\n });\r\n each$16(formatChangeData.get(), function (callbacks, format) {\r\n each$16(parents, function (node) {\r\n if (editor.formatter.matchNode(node, format, {}, callbacks.similar)) {\r\n if (!currentFormats[format]) {\r\n each$16(callbacks, function (callback) {\r\n callback(true, {\r\n node: node,\r\n format: format,\r\n parents: parents\r\n });\r\n });\r\n currentFormats[format] = callbacks;\r\n }\r\n matchedFormats[format] = callbacks;\r\n return false;\r\n }\r\n if ($_axwnk168jkmcwlim.matchesUnInheritedFormatSelector(editor, node, format)) {\r\n return false;\r\n }\r\n });\r\n });\r\n each$16(currentFormats, function (callbacks, format) {\r\n if (!matchedFormats[format]) {\r\n delete currentFormats[format];\r\n each$16(callbacks, function (callback) {\r\n callback(false, {\r\n node: e.element,\r\n format: format,\r\n parents: parents\r\n });\r\n });\r\n }\r\n });\r\n });\r\n };\r\n var addListeners = function (formatChangeData, formats, callback, similar) {\r\n var formatChangeItems = formatChangeData.get();\r\n each$16(formats.split(','), function (format) {\r\n if (!formatChangeItems[format]) {\r\n formatChangeItems[format] = [];\r\n formatChangeItems[format].similar = similar;\r\n }\r\n formatChangeItems[format].push(callback);\r\n });\r\n formatChangeData.set(formatChangeItems);\r\n };\r\n var formatChanged = function (editor, formatChangeState, formats, callback, similar) {\r\n if (formatChangeState.get() === null) {\r\n setup$5(formatChangeState, editor);\r\n }\r\n addListeners(formatChangeState, formats, callback, similar);\r\n };\r\n var $_5j3j9s6djkmcwljg = { formatChanged: formatChanged };\r\n\r\n var get$7 = function (dom) {\r\n var formats = {\r\n valigntop: [{\r\n selector: 'td,th',\r\n styles: { verticalAlign: 'top' }\r\n }],\r\n valignmiddle: [{\r\n selector: 'td,th',\r\n styles: { verticalAlign: 'middle' }\r\n }],\r\n valignbottom: [{\r\n selector: 'td,th',\r\n styles: { verticalAlign: 'bottom' }\r\n }],\r\n alignleft: [\r\n {\r\n selector: 'figure.image',\r\n collapsed: false,\r\n classes: 'align-left',\r\n ceFalseOverride: true,\r\n preview: 'font-family font-size'\r\n },\r\n {\r\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\r\n styles: { textAlign: 'left' },\r\n inherit: false,\r\n preview: false,\r\n defaultBlock: 'div'\r\n },\r\n {\r\n selector: 'img,table',\r\n collapsed: false,\r\n styles: { float: 'left' },\r\n preview: 'font-family font-size'\r\n }\r\n ],\r\n aligncenter: [\r\n {\r\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\r\n styles: { textAlign: 'center' },\r\n inherit: false,\r\n preview: 'font-family font-size',\r\n defaultBlock: 'div'\r\n },\r\n {\r\n selector: 'figure.image',\r\n collapsed: false,\r\n classes: 'align-center',\r\n ceFalseOverride: true,\r\n preview: 'font-family font-size'\r\n },\r\n {\r\n selector: 'img',\r\n collapsed: false,\r\n styles: {\r\n display: 'block',\r\n marginLeft: 'auto',\r\n marginRight: 'auto'\r\n },\r\n preview: false\r\n },\r\n {\r\n selector: 'table',\r\n collapsed: false,\r\n styles: {\r\n marginLeft: 'auto',\r\n marginRight: 'auto'\r\n },\r\n preview: 'font-family font-size'\r\n }\r\n ],\r\n alignright: [\r\n {\r\n selector: 'figure.image',\r\n collapsed: false,\r\n classes: 'align-right',\r\n ceFalseOverride: true,\r\n preview: 'font-family font-size'\r\n },\r\n {\r\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\r\n styles: { textAlign: 'right' },\r\n inherit: false,\r\n preview: 'font-family font-size',\r\n defaultBlock: 'div'\r\n },\r\n {\r\n selector: 'img,table',\r\n collapsed: false,\r\n styles: { float: 'right' },\r\n preview: 'font-family font-size'\r\n }\r\n ],\r\n alignjustify: [{\r\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li',\r\n styles: { textAlign: 'justify' },\r\n inherit: false,\r\n defaultBlock: 'div',\r\n preview: 'font-family font-size'\r\n }],\r\n bold: [\r\n {\r\n inline: 'strong',\r\n remove: 'all'\r\n },\r\n {\r\n inline: 'span',\r\n styles: { fontWeight: 'bold' }\r\n },\r\n {\r\n inline: 'b',\r\n remove: 'all'\r\n }\r\n ],\r\n italic: [\r\n {\r\n inline: 'em',\r\n remove: 'all'\r\n },\r\n {\r\n inline: 'span',\r\n styles: { fontStyle: 'italic' }\r\n },\r\n {\r\n inline: 'i',\r\n remove: 'all'\r\n }\r\n ],\r\n underline: [\r\n {\r\n inline: 'span',\r\n styles: { textDecoration: 'underline' },\r\n exact: true\r\n },\r\n {\r\n inline: 'u',\r\n remove: 'all'\r\n }\r\n ],\r\n strikethrough: [\r\n {\r\n inline: 'span',\r\n styles: { textDecoration: 'line-through' },\r\n exact: true\r\n },\r\n {\r\n inline: 'strike',\r\n remove: 'all'\r\n }\r\n ],\r\n forecolor: {\r\n inline: 'span',\r\n styles: { color: '%value' },\r\n links: true,\r\n remove_similar: true,\r\n clear_child_styles: true\r\n },\r\n hilitecolor: {\r\n inline: 'span',\r\n styles: { backgroundColor: '%value' },\r\n links: true,\r\n remove_similar: true,\r\n clear_child_styles: true\r\n },\r\n fontname: {\r\n inline: 'span',\r\n toggle: false,\r\n styles: { fontFamily: '%value' },\r\n clear_child_styles: true\r\n },\r\n fontsize: {\r\n inline: 'span',\r\n toggle: false,\r\n styles: { fontSize: '%value' },\r\n clear_child_styles: true\r\n },\r\n fontsize_class: {\r\n inline: 'span',\r\n attributes: { class: '%value' }\r\n },\r\n blockquote: {\r\n block: 'blockquote',\r\n wrapper: 1,\r\n remove: 'all'\r\n },\r\n subscript: { inline: 'sub' },\r\n superscript: { inline: 'sup' },\r\n code: { inline: 'code' },\r\n link: {\r\n inline: 'a',\r\n selector: 'a',\r\n remove: 'all',\r\n split: true,\r\n deep: true,\r\n onmatch: function () {\r\n return true;\r\n },\r\n onformat: function (elm, fmt, vars) {\r\n $_4ujg4tljkmcwkbk.each(vars, function (value, key) {\r\n dom.setAttrib(elm, key, value);\r\n });\r\n }\r\n },\r\n removeformat: [\r\n {\r\n selector: 'b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins',\r\n remove: 'all',\r\n split: true,\r\n expand: false,\r\n block_expand: true,\r\n deep: true\r\n },\r\n {\r\n selector: 'span',\r\n attributes: [\r\n 'style',\r\n 'class'\r\n ],\r\n remove: 'empty',\r\n split: true,\r\n expand: false,\r\n deep: true\r\n },\r\n {\r\n selector: '*',\r\n attributes: [\r\n 'style',\r\n 'class'\r\n ],\r\n split: false,\r\n expand: false,\r\n deep: true\r\n }\r\n ]\r\n };\r\n $_4ujg4tljkmcwkbk.each('p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp'.split(/\\s/), function (name) {\r\n formats[name] = {\r\n block: name,\r\n remove: 'all'\r\n };\r\n });\r\n return formats;\r\n };\r\n var $_8oc5be6fjkmcwljl = { get: get$7 };\r\n\r\n function FormatRegistry (editor) {\r\n var formats = {};\r\n var get = function (name) {\r\n return name ? formats[name] : formats;\r\n };\r\n var register = function (name, format) {\r\n if (name) {\r\n if (typeof name !== 'string') {\r\n $_4ujg4tljkmcwkbk.each(name, function (format, name) {\r\n register(name, format);\r\n });\r\n } else {\r\n format = format.length ? format : [format];\r\n $_4ujg4tljkmcwkbk.each(format, function (format) {\r\n if (typeof format.deep === 'undefined') {\r\n format.deep = !format.selector;\r\n }\r\n if (typeof format.split === 'undefined') {\r\n format.split = !format.selector || format.inline;\r\n }\r\n if (typeof format.remove === 'undefined' && format.selector && !format.inline) {\r\n format.remove = 'none';\r\n }\r\n if (format.selector && format.inline) {\r\n format.mixed = true;\r\n format.block_expand = true;\r\n }\r\n if (typeof format.classes === 'string') {\r\n format.classes = format.classes.split(/\\s+/);\r\n }\r\n });\r\n formats[name] = format;\r\n }\r\n }\r\n };\r\n var unregister = function (name) {\r\n if (name && formats[name]) {\r\n delete formats[name];\r\n }\r\n return formats;\r\n };\r\n register($_8oc5be6fjkmcwljl.get(editor.dom));\r\n register(editor.settings.formats);\r\n return {\r\n get: get,\r\n register: register,\r\n unregister: unregister\r\n };\r\n }\r\n\r\n var each$17 = $_4ujg4tljkmcwkbk.each;\r\n var dom = DOMUtils$1.DOM;\r\n var parsedSelectorToHtml = function (ancestry, editor) {\r\n var elm, item, fragment;\r\n var schema = editor && editor.schema || Schema({});\r\n var decorate = function (elm, item) {\r\n if (item.classes.length) {\r\n dom.addClass(elm, item.classes.join(' '));\r\n }\r\n dom.setAttribs(elm, item.attrs);\r\n };\r\n var createElement = function (sItem) {\r\n var elm;\r\n item = typeof sItem === 'string' ? {\r\n name: sItem,\r\n classes: [],\r\n attrs: {}\r\n } : sItem;\r\n elm = dom.create(item.name);\r\n decorate(elm, item);\r\n return elm;\r\n };\r\n var getRequiredParent = function (elm, candidate) {\r\n var name = typeof elm !== 'string' ? elm.nodeName.toLowerCase() : elm;\r\n var elmRule = schema.getElementRule(name);\r\n var parentsRequired = elmRule && elmRule.parentsRequired;\r\n if (parentsRequired && parentsRequired.length) {\r\n return candidate && $_4ujg4tljkmcwkbk.inArray(parentsRequired, candidate) !== -1 ? candidate : parentsRequired[0];\r\n } else {\r\n return false;\r\n }\r\n };\r\n var wrapInHtml = function (elm, ancestry, siblings) {\r\n var parent, parentCandidate, parentRequired;\r\n var ancestor = ancestry.length > 0 && ancestry[0];\r\n var ancestorName = ancestor && ancestor.name;\r\n parentRequired = getRequiredParent(elm, ancestorName);\r\n if (parentRequired) {\r\n if (ancestorName === parentRequired) {\r\n parentCandidate = ancestry[0];\r\n ancestry = ancestry.slice(1);\r\n } else {\r\n parentCandidate = parentRequired;\r\n }\r\n } else if (ancestor) {\r\n parentCandidate = ancestry[0];\r\n ancestry = ancestry.slice(1);\r\n } else if (!siblings) {\r\n return elm;\r\n }\r\n if (parentCandidate) {\r\n parent = createElement(parentCandidate);\r\n parent.appendChild(elm);\r\n }\r\n if (siblings) {\r\n if (!parent) {\r\n parent = dom.create('div');\r\n parent.appendChild(elm);\r\n }\r\n $_4ujg4tljkmcwkbk.each(siblings, function (sibling) {\r\n var siblingElm = createElement(sibling);\r\n parent.insertBefore(siblingElm, elm);\r\n });\r\n }\r\n return wrapInHtml(parent, ancestry, parentCandidate && parentCandidate.siblings);\r\n };\r\n if (ancestry && ancestry.length) {\r\n item = ancestry[0];\r\n elm = createElement(item);\r\n fragment = dom.create('div');\r\n fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), item.siblings));\r\n return fragment;\r\n } else {\r\n return '';\r\n }\r\n };\r\n var selectorToHtml = function (selector, editor) {\r\n return parsedSelectorToHtml(parseSelector(selector), editor);\r\n };\r\n var parseSelectorItem = function (item) {\r\n var tagName;\r\n var obj = {\r\n classes: [],\r\n attrs: {}\r\n };\r\n item = obj.selector = $_4ujg4tljkmcwkbk.trim(item);\r\n if (item !== '*') {\r\n tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, function ($0, $1, $2, $3, $4) {\r\n switch ($1) {\r\n case '#':\r\n obj.attrs.id = $2;\r\n break;\r\n case '.':\r\n obj.classes.push($2);\r\n break;\r\n case ':':\r\n if ($_4ujg4tljkmcwkbk.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\r\n obj.attrs[$2] = $2;\r\n }\r\n break;\r\n }\r\n if ($3 === '[') {\r\n var m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\r\n if (m) {\r\n obj.attrs[m[1]] = m[2];\r\n }\r\n }\r\n return '';\r\n });\r\n }\r\n obj.name = tagName || 'div';\r\n return obj;\r\n };\r\n var parseSelector = function (selector) {\r\n if (!selector || typeof selector !== 'string') {\r\n return [];\r\n }\r\n selector = selector.split(/\\s*,\\s*/)[0];\r\n selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\r\n return $_4ujg4tljkmcwkbk.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), function (item) {\r\n var siblings = $_4ujg4tljkmcwkbk.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\r\n var obj = siblings.pop();\r\n if (siblings.length) {\r\n obj.siblings = siblings;\r\n }\r\n return obj;\r\n }).reverse();\r\n };\r\n var getCssText = function (editor, format) {\r\n var name, previewFrag, previewElm, items;\r\n var previewCss = '', parentFontSize, previewStyles;\r\n previewStyles = editor.settings.preview_styles;\r\n if (previewStyles === false) {\r\n return '';\r\n }\r\n if (typeof previewStyles !== 'string') {\r\n previewStyles = 'font-family font-size font-weight font-style text-decoration ' + 'text-transform color background-color border border-radius outline text-shadow';\r\n }\r\n var removeVars = function (val) {\r\n return val.replace(/%(\\w+)/g, '');\r\n };\r\n if (typeof format === 'string') {\r\n format = editor.formatter.get(format);\r\n if (!format) {\r\n return;\r\n }\r\n format = format[0];\r\n }\r\n if ('preview' in format) {\r\n previewStyles = format.preview;\r\n if (previewStyles === false) {\r\n return '';\r\n }\r\n }\r\n name = format.block || format.inline || 'span';\r\n items = parseSelector(format.selector);\r\n if (items.length) {\r\n if (!items[0].name) {\r\n items[0].name = name;\r\n }\r\n name = format.selector;\r\n previewFrag = parsedSelectorToHtml(items, editor);\r\n } else {\r\n previewFrag = parsedSelectorToHtml([name], editor);\r\n }\r\n previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\r\n each$17(format.styles, function (value, name) {\r\n value = removeVars(value);\r\n if (value) {\r\n dom.setStyle(previewElm, name, value);\r\n }\r\n });\r\n each$17(format.attributes, function (value, name) {\r\n value = removeVars(value);\r\n if (value) {\r\n dom.setAttrib(previewElm, name, value);\r\n }\r\n });\r\n each$17(format.classes, function (value) {\r\n value = removeVars(value);\r\n if (!dom.hasClass(previewElm, value)) {\r\n dom.addClass(previewElm, value);\r\n }\r\n });\r\n editor.fire('PreviewFormats');\r\n dom.setStyles(previewFrag, {\r\n position: 'absolute',\r\n left: -65535\r\n });\r\n editor.getBody().appendChild(previewFrag);\r\n parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true);\r\n parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;\r\n each$17(previewStyles.split(' '), function (name) {\r\n var value = dom.getStyle(previewElm, name, true);\r\n if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\r\n value = dom.getStyle(editor.getBody(), name, true);\r\n if (dom.toHex(value).toLowerCase() === '#ffffff') {\r\n return;\r\n }\r\n }\r\n if (name === 'color') {\r\n if (dom.toHex(value).toLowerCase() === '#000000') {\r\n return;\r\n }\r\n }\r\n if (name === 'font-size') {\r\n if (/em|%$/.test(value)) {\r\n if (parentFontSize === 0) {\r\n return;\r\n }\r\n var numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\r\n value = numValue * parentFontSize + 'px';\r\n }\r\n }\r\n if (name === 'border' && value) {\r\n previewCss += 'padding:0 2px;';\r\n }\r\n previewCss += name + ':' + value + ';';\r\n });\r\n editor.fire('AfterPreviewFormats');\r\n dom.remove(previewFrag);\r\n return previewCss;\r\n };\r\n var $_ga7lpr6gjkmcwlk1 = {\r\n getCssText: getCssText,\r\n parseSelector: parseSelector,\r\n selectorToHtml: selectorToHtml\r\n };\r\n\r\n var toggle$3 = function (editor, formats, name, vars, node) {\r\n var fmt = formats.get(name);\r\n if ($_axwnk168jkmcwlim.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\r\n $_2vklhc6cjkmcwlj5.remove(editor, name, vars, node);\r\n } else {\r\n $_bcenmc66jkmcwlhp.applyFormat(editor, name, vars, node);\r\n }\r\n };\r\n var $_1zpcor6hjkmcwlk7 = { toggle: toggle$3 };\r\n\r\n var setup$6 = function (editor) {\r\n editor.addShortcut('meta+b', '', 'Bold');\r\n editor.addShortcut('meta+i', '', 'Italic');\r\n editor.addShortcut('meta+u', '', 'Underline');\r\n for (var i = 1; i <= 6; i++) {\r\n editor.addShortcut('access+' + i, '', [\r\n 'FormatBlock',\r\n false,\r\n 'h' + i\r\n ]);\r\n }\r\n editor.addShortcut('access+7', '', [\r\n 'FormatBlock',\r\n false,\r\n 'p'\r\n ]);\r\n editor.addShortcut('access+8', '', [\r\n 'FormatBlock',\r\n false,\r\n 'div'\r\n ]);\r\n editor.addShortcut('access+9', '', [\r\n 'FormatBlock',\r\n false,\r\n 'address'\r\n ]);\r\n };\r\n var $_2ind0x6ijkmcwlk8 = { setup: setup$6 };\r\n\r\n function Formatter (editor) {\r\n var formats = FormatRegistry(editor);\r\n var formatChangeState = Cell(null);\r\n $_2ind0x6ijkmcwlk8.setup(editor);\r\n setup$4(editor);\r\n return {\r\n get: formats.get,\r\n register: formats.register,\r\n unregister: formats.unregister,\r\n apply: curry($_bcenmc66jkmcwlhp.applyFormat, editor),\r\n remove: curry($_2vklhc6cjkmcwlj5.remove, editor),\r\n toggle: curry($_1zpcor6hjkmcwlk7.toggle, editor, formats),\r\n match: curry($_axwnk168jkmcwlim.match, editor),\r\n matchAll: curry($_axwnk168jkmcwlim.matchAll, editor),\r\n matchNode: curry($_axwnk168jkmcwlim.matchNode, editor),\r\n canApply: curry($_axwnk168jkmcwlim.canApply, editor),\r\n formatChanged: curry($_5j3j9s6djkmcwljg.formatChanged, editor, formatChangeState),\r\n getCssText: curry($_ga7lpr6gjkmcwlk1.getCssText, editor)\r\n };\r\n }\r\n\r\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\r\n var shallow$1 = function (old, nu) {\r\n return nu;\r\n };\r\n var baseMerge = function (merger) {\r\n return function () {\r\n var objects = new Array(arguments.length);\r\n for (var i = 0; i < objects.length; i++)\r\n objects[i] = arguments[i];\r\n if (objects.length === 0)\r\n throw new Error('Can\\'t merge zero objects');\r\n var ret = {};\r\n for (var j = 0; j < objects.length; j++) {\r\n var curObject = objects[j];\r\n for (var key in curObject)\r\n if (hasOwnProperty$1.call(curObject, key)) {\r\n ret[key] = merger(ret[key], curObject[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n };\r\n\r\n var merge = baseMerge(shallow$1);\r\n\r\n var register = function (htmlParser, settings, dom) {\r\n htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n node.attr('tabindex', node.attributes.map['data-mce-tabindex']);\r\n node.attr(name, null);\r\n }\r\n });\r\n htmlParser.addAttributeFilter('src,href,style', function (nodes, name) {\r\n var i = nodes.length, node, value;\r\n var internalName = 'data-mce-' + name;\r\n var urlConverter = settings.url_converter;\r\n var urlConverterScope = settings.url_converter_scope;\r\n while (i--) {\r\n node = nodes[i];\r\n value = node.attributes.map[internalName];\r\n if (value !== undefined) {\r\n node.attr(name, value.length > 0 ? value : null);\r\n node.attr(internalName, null);\r\n } else {\r\n value = node.attributes.map[name];\r\n if (name === 'style') {\r\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\r\n } else if (urlConverter) {\r\n value = urlConverter.call(urlConverterScope, value, name, node.name);\r\n }\r\n node.attr(name, value.length > 0 ? value : null);\r\n }\r\n }\r\n });\r\n htmlParser.addAttributeFilter('class', function (nodes) {\r\n var i = nodes.length, node, value;\r\n while (i--) {\r\n node = nodes[i];\r\n value = node.attr('class');\r\n if (value) {\r\n value = node.attr('class').replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\r\n node.attr('class', value.length > 0 ? value : null);\r\n }\r\n }\r\n });\r\n htmlParser.addAttributeFilter('data-mce-type', function (nodes, name, args) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup) {\r\n node.remove();\r\n }\r\n }\r\n });\r\n htmlParser.addNodeFilter('noscript', function (nodes) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i].firstChild;\r\n if (node) {\r\n node.value = $_33qwr1sjkmcwkip.decode(node.value);\r\n }\r\n }\r\n });\r\n htmlParser.addNodeFilter('script,style', function (nodes, name) {\r\n var i = nodes.length, node, value, type;\r\n var trim = function (value) {\r\n return value.replace(/()/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*(()?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\r\n };\r\n while (i--) {\r\n node = nodes[i];\r\n value = node.firstChild ? node.firstChild.value : '';\r\n if (name === 'script') {\r\n type = node.attr('type');\r\n if (type) {\r\n node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\r\n }\r\n if (settings.element_format === 'xhtml' && value.length > 0) {\r\n node.firstChild.value = '// ';\r\n }\r\n } else {\r\n if (settings.element_format === 'xhtml' && value.length > 0) {\r\n node.firstChild.value = '';\r\n }\r\n }\r\n }\r\n });\r\n htmlParser.addNodeFilter('#comment', function (nodes) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.value.indexOf('[CDATA[') === 0) {\r\n node.name = '#cdata';\r\n node.type = 4;\r\n node.value = node.value.replace(/^\\[CDATA\\[|\\]\\]$/g, '');\r\n } else if (node.value.indexOf('mce:protected ') === 0) {\r\n node.name = '#text';\r\n node.type = 3;\r\n node.raw = true;\r\n node.value = unescape(node.value).substr(14);\r\n }\r\n }\r\n });\r\n htmlParser.addNodeFilter('xml:namespace,input', function (nodes, name) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.type === 7) {\r\n node.remove();\r\n } else if (node.type === 1) {\r\n if (name === 'input' && !('type' in node.attributes.map)) {\r\n node.attr('type', 'text');\r\n }\r\n }\r\n }\r\n });\r\n htmlParser.addAttributeFilter('data-mce-type', function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.attr('data-mce-type') === 'format-caret') {\r\n if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\r\n node.remove();\r\n } else {\r\n node.unwrap();\r\n }\r\n }\r\n });\r\n });\r\n htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,' + 'data-mce-type,data-mce-resize', function (nodes, name) {\r\n var i = nodes.length;\r\n while (i--) {\r\n nodes[i].attr(name, null);\r\n }\r\n });\r\n };\r\n var trimTrailingBr = function (rootNode) {\r\n var brNode1, brNode2;\r\n var isBr = function (node) {\r\n return node && node.name === 'br';\r\n };\r\n brNode1 = rootNode.lastChild;\r\n if (isBr(brNode1)) {\r\n brNode2 = brNode1.prev;\r\n if (isBr(brNode2)) {\r\n brNode1.remove();\r\n brNode2.remove();\r\n }\r\n }\r\n };\r\n var $_ft0zjh6mjkmcwlkr = {\r\n register: register,\r\n trimTrailingBr: trimTrailingBr\r\n };\r\n\r\n var preProcess = function (editor, node, args) {\r\n var impl, doc, oldDoc;\r\n var dom = editor.dom;\r\n node = node.cloneNode(true);\r\n impl = document.implementation;\r\n if (impl.createHTMLDocument) {\r\n doc = impl.createHTMLDocument('');\r\n $_4ujg4tljkmcwkbk.each(node.nodeName === 'BODY' ? node.childNodes : [node], function (node) {\r\n doc.body.appendChild(doc.importNode(node, true));\r\n });\r\n if (node.nodeName !== 'BODY') {\r\n node = doc.body.firstChild;\r\n } else {\r\n node = doc.body;\r\n }\r\n oldDoc = dom.doc;\r\n dom.doc = doc;\r\n }\r\n $_q3ric4tjkmcwl9q.firePreProcess(editor, merge(args, { node: node }));\r\n if (oldDoc) {\r\n dom.doc = oldDoc;\r\n }\r\n return node;\r\n };\r\n var shouldFireEvent = function (editor, args) {\r\n return editor && editor.hasEventListeners('PreProcess') && !args.no_events;\r\n };\r\n var process = function (editor, node, args) {\r\n return shouldFireEvent(editor, args) ? preProcess(editor, node, args) : node;\r\n };\r\n var $_27apc6njkmcwll3 = { process: process };\r\n\r\n var removeAttrs = function (node, names) {\r\n each(names, function (name) {\r\n node.attr(name, null);\r\n });\r\n };\r\n var addFontToSpansFilter = function (domParser, styles, fontSizes) {\r\n domParser.addNodeFilter('font', function (nodes) {\r\n each(nodes, function (node) {\r\n var props = styles.parse(node.attr('style'));\r\n var color = node.attr('color');\r\n var face = node.attr('face');\r\n var size = node.attr('size');\r\n if (color) {\r\n props.color = color;\r\n }\r\n if (face) {\r\n props['font-family'] = face;\r\n }\r\n if (size) {\r\n props['font-size'] = fontSizes[parseInt(node.attr('size'), 10) - 1];\r\n }\r\n node.name = 'span';\r\n node.attr('style', styles.serialize(props));\r\n removeAttrs(node, [\r\n 'color',\r\n 'face',\r\n 'size'\r\n ]);\r\n });\r\n });\r\n };\r\n var addStrikeToSpanFilter = function (domParser, styles) {\r\n domParser.addNodeFilter('strike', function (nodes) {\r\n each(nodes, function (node) {\r\n var props = styles.parse(node.attr('style'));\r\n props['text-decoration'] = 'line-through';\r\n node.name = 'span';\r\n node.attr('style', styles.serialize(props));\r\n });\r\n });\r\n };\r\n var addFilters = function (domParser, settings) {\r\n var styles = Styles();\r\n if (settings.convert_fonts_to_spans) {\r\n addFontToSpansFilter(domParser, styles, $_4ujg4tljkmcwkbk.explode(settings.font_size_legacy_values));\r\n }\r\n addStrikeToSpanFilter(domParser, styles);\r\n };\r\n var register$1 = function (domParser, settings) {\r\n if (settings.inline_styles) {\r\n addFilters(domParser, settings);\r\n }\r\n };\r\n var $_2klegh6pjkmcwllk = { register: register$1 };\r\n\r\n var whiteSpaceRegExp$3 = /^[ \\t\\r\\n]*$/;\r\n var typeLookup = {\r\n '#text': 3,\r\n '#comment': 8,\r\n '#cdata': 4,\r\n '#pi': 7,\r\n '#doctype': 10,\r\n '#document-fragment': 11\r\n };\r\n var walk$3 = function (node, root, prev) {\r\n var sibling;\r\n var parent;\r\n var startName = prev ? 'lastChild' : 'firstChild';\r\n var siblingName = prev ? 'prev' : 'next';\r\n if (node[startName]) {\r\n return node[startName];\r\n }\r\n if (node !== root) {\r\n sibling = node[siblingName];\r\n if (sibling) {\r\n return sibling;\r\n }\r\n for (parent = node.parent; parent && parent !== root; parent = parent.parent) {\r\n sibling = parent[siblingName];\r\n if (sibling) {\r\n return sibling;\r\n }\r\n }\r\n }\r\n };\r\n var Node$2 = function () {\r\n function Node(name, type) {\r\n this.name = name;\r\n this.type = type;\r\n if (type === 1) {\r\n this.attributes = [];\r\n this.attributes.map = {};\r\n }\r\n }\r\n Node.create = function (name, attrs) {\r\n var node, attrName;\r\n node = new Node(name, typeLookup[name] || 1);\r\n if (attrs) {\r\n for (attrName in attrs) {\r\n node.attr(attrName, attrs[attrName]);\r\n }\r\n }\r\n return node;\r\n };\r\n Node.prototype.replace = function (node) {\r\n var self = this;\r\n if (node.parent) {\r\n node.remove();\r\n }\r\n self.insert(node, self);\r\n self.remove();\r\n return self;\r\n };\r\n Node.prototype.attr = function (name, value) {\r\n var self = this;\r\n var attrs, i;\r\n if (typeof name !== 'string') {\r\n for (i in name) {\r\n self.attr(i, name[i]);\r\n }\r\n return self;\r\n }\r\n if (attrs = self.attributes) {\r\n if (value !== undefined) {\r\n if (value === null) {\r\n if (name in attrs.map) {\r\n delete attrs.map[name];\r\n i = attrs.length;\r\n while (i--) {\r\n if (attrs[i].name === name) {\r\n attrs = attrs.splice(i, 1);\r\n return self;\r\n }\r\n }\r\n }\r\n return self;\r\n }\r\n if (name in attrs.map) {\r\n i = attrs.length;\r\n while (i--) {\r\n if (attrs[i].name === name) {\r\n attrs[i].value = value;\r\n break;\r\n }\r\n }\r\n } else {\r\n attrs.push({\r\n name: name,\r\n value: value\r\n });\r\n }\r\n attrs.map[name] = value;\r\n return self;\r\n }\r\n return attrs.map[name];\r\n }\r\n };\r\n Node.prototype.clone = function () {\r\n var self = this;\r\n var clone = new Node(self.name, self.type);\r\n var i, l, selfAttrs, selfAttr, cloneAttrs;\r\n if (selfAttrs = self.attributes) {\r\n cloneAttrs = [];\r\n cloneAttrs.map = {};\r\n for (i = 0, l = selfAttrs.length; i < l; i++) {\r\n selfAttr = selfAttrs[i];\r\n if (selfAttr.name !== 'id') {\r\n cloneAttrs[cloneAttrs.length] = {\r\n name: selfAttr.name,\r\n value: selfAttr.value\r\n };\r\n cloneAttrs.map[selfAttr.name] = selfAttr.value;\r\n }\r\n }\r\n clone.attributes = cloneAttrs;\r\n }\r\n clone.value = self.value;\r\n clone.shortEnded = self.shortEnded;\r\n return clone;\r\n };\r\n Node.prototype.wrap = function (wrapper) {\r\n var self = this;\r\n self.parent.insert(wrapper, self);\r\n wrapper.append(self);\r\n return self;\r\n };\r\n Node.prototype.unwrap = function () {\r\n var self = this;\r\n var node, next;\r\n for (node = self.firstChild; node;) {\r\n next = node.next;\r\n self.insert(node, self, true);\r\n node = next;\r\n }\r\n self.remove();\r\n };\r\n Node.prototype.remove = function () {\r\n var self = this, parent = self.parent, next = self.next, prev = self.prev;\r\n if (parent) {\r\n if (parent.firstChild === self) {\r\n parent.firstChild = next;\r\n if (next) {\r\n next.prev = null;\r\n }\r\n } else {\r\n prev.next = next;\r\n }\r\n if (parent.lastChild === self) {\r\n parent.lastChild = prev;\r\n if (prev) {\r\n prev.next = null;\r\n }\r\n } else {\r\n next.prev = prev;\r\n }\r\n self.parent = self.next = self.prev = null;\r\n }\r\n return self;\r\n };\r\n Node.prototype.append = function (node) {\r\n var self = this;\r\n var last;\r\n if (node.parent) {\r\n node.remove();\r\n }\r\n last = self.lastChild;\r\n if (last) {\r\n last.next = node;\r\n node.prev = last;\r\n self.lastChild = node;\r\n } else {\r\n self.lastChild = self.firstChild = node;\r\n }\r\n node.parent = self;\r\n return node;\r\n };\r\n Node.prototype.insert = function (node, refNode, before) {\r\n var parent;\r\n if (node.parent) {\r\n node.remove();\r\n }\r\n parent = refNode.parent || this;\r\n if (before) {\r\n if (refNode === parent.firstChild) {\r\n parent.firstChild = node;\r\n } else {\r\n refNode.prev.next = node;\r\n }\r\n node.prev = refNode.prev;\r\n node.next = refNode;\r\n refNode.prev = node;\r\n } else {\r\n if (refNode === parent.lastChild) {\r\n parent.lastChild = node;\r\n } else {\r\n refNode.next.prev = node;\r\n }\r\n node.next = refNode.next;\r\n node.prev = refNode;\r\n refNode.next = node;\r\n }\r\n node.parent = parent;\r\n return node;\r\n };\r\n Node.prototype.getAll = function (name) {\r\n var self = this;\r\n var node;\r\n var collection = [];\r\n for (node = self.firstChild; node; node = walk$3(node, self)) {\r\n if (node.name === name) {\r\n collection.push(node);\r\n }\r\n }\r\n return collection;\r\n };\r\n Node.prototype.empty = function () {\r\n var self = this;\r\n var nodes, i, node;\r\n if (self.firstChild) {\r\n nodes = [];\r\n for (node = self.firstChild; node; node = walk$3(node, self)) {\r\n nodes.push(node);\r\n }\r\n i = nodes.length;\r\n while (i--) {\r\n node = nodes[i];\r\n node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\r\n }\r\n }\r\n self.firstChild = self.lastChild = null;\r\n return self;\r\n };\r\n Node.prototype.isEmpty = function (elements, whitespace, predicate) {\r\n var self = this;\r\n var node = self.firstChild, i, name;\r\n whitespace = whitespace || {};\r\n if (node) {\r\n do {\r\n if (node.type === 1) {\r\n if (node.attributes.map['data-mce-bogus']) {\r\n continue;\r\n }\r\n if (elements[node.name]) {\r\n return false;\r\n }\r\n i = node.attributes.length;\r\n while (i--) {\r\n name = node.attributes[i].name;\r\n if (name === 'name' || name.indexOf('data-mce-bookmark') === 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (node.type === 8) {\r\n return false;\r\n }\r\n if (node.type === 3 && !whiteSpaceRegExp$3.test(node.value)) {\r\n return false;\r\n }\r\n if (node.type === 3 && node.parent && whitespace[node.parent.name] && whiteSpaceRegExp$3.test(node.value)) {\r\n return false;\r\n }\r\n if (predicate && predicate(node)) {\r\n return false;\r\n }\r\n } while (node = walk$3(node, self));\r\n }\r\n return true;\r\n };\r\n Node.prototype.walk = function (prev) {\r\n return walk$3(this, null, prev);\r\n };\r\n return Node;\r\n }();\r\n\r\n var paddEmptyNode = function (settings, args, blockElements, node) {\r\n var brPreferred = settings.padd_empty_with_br || args.insert;\r\n if (brPreferred && blockElements[node.name]) {\r\n node.empty().append(new Node$2('br', 1)).shortEnded = true;\r\n } else {\r\n node.empty().append(new Node$2('#text', 3)).value = '\\xA0';\r\n }\r\n };\r\n var isPaddedWithNbsp = function (node) {\r\n return hasOnlyChild(node, '#text') && node.firstChild.value === '\\xA0';\r\n };\r\n var hasOnlyChild = function (node, name) {\r\n return node && node.firstChild && node.firstChild === node.lastChild && node.firstChild.name === name;\r\n };\r\n var isPadded = function (schema, node) {\r\n var rule = schema.getElementRule(node.name);\r\n return rule && rule.paddEmpty;\r\n };\r\n var isEmpty$2 = function (schema, nonEmptyElements, whitespaceElements, node) {\r\n return node.isEmpty(nonEmptyElements, whitespaceElements, function (node) {\r\n return isPadded(schema, node);\r\n });\r\n };\r\n var isLineBreakNode = function (node, blockElements) {\r\n return node && (blockElements[node.name] || node.name === 'br');\r\n };\r\n\r\n var register$2 = function (parser, settings) {\r\n var schema = parser.schema;\r\n if (settings.remove_trailing_brs) {\r\n parser.addNodeFilter('br', function (nodes, _, args) {\r\n var i;\r\n var l = nodes.length;\r\n var node;\r\n var blockElements = $_4ujg4tljkmcwkbk.extend({}, schema.getBlockElements());\r\n var nonEmptyElements = schema.getNonEmptyElements();\r\n var parent, lastParent, prev, prevName;\r\n var whiteSpaceElements = schema.getNonEmptyElements();\r\n var elementRule, textNode;\r\n blockElements.body = 1;\r\n for (i = 0; i < l; i++) {\r\n node = nodes[i];\r\n parent = node.parent;\r\n if (blockElements[node.parent.name] && node === parent.lastChild) {\r\n prev = node.prev;\r\n while (prev) {\r\n prevName = prev.name;\r\n if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\r\n if (prevName !== 'br') {\r\n break;\r\n }\r\n if (prevName === 'br') {\r\n node = null;\r\n break;\r\n }\r\n }\r\n prev = prev.prev;\r\n }\r\n if (node) {\r\n node.remove();\r\n if (isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, parent)) {\r\n elementRule = schema.getElementRule(parent.name);\r\n if (elementRule) {\r\n if (elementRule.removeEmpty) {\r\n parent.remove();\r\n } else if (elementRule.paddEmpty) {\r\n paddEmptyNode(settings, args, blockElements, parent);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n lastParent = node;\r\n while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\r\n lastParent = parent;\r\n if (blockElements[parent.name]) {\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n if (lastParent === parent && settings.padd_empty_with_br !== true) {\r\n textNode = new Node$2('#text', 3);\r\n textNode.value = '\\xA0';\r\n node.replace(textNode);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n parser.addAttributeFilter('href', function (nodes) {\r\n var i = nodes.length, node;\r\n var appendRel = function (rel) {\r\n var parts = rel.split(' ').filter(function (p) {\r\n return p.length > 0;\r\n });\r\n return parts.concat(['noopener']).sort().join(' ');\r\n };\r\n var addNoOpener = function (rel) {\r\n var newRel = rel ? $_4ujg4tljkmcwkbk.trim(rel) : '';\r\n if (!/\\b(noopener)\\b/g.test(newRel)) {\r\n return appendRel(newRel);\r\n } else {\r\n return newRel;\r\n }\r\n };\r\n if (!settings.allow_unsafe_link_target) {\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.name === 'a' && node.attr('target') === '_blank') {\r\n node.attr('rel', addNoOpener(node.attr('rel')));\r\n }\r\n }\r\n }\r\n });\r\n if (!settings.allow_html_in_named_anchor) {\r\n parser.addAttributeFilter('id,name', function (nodes) {\r\n var i = nodes.length, sibling, prevSibling, parent, node;\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.name === 'a' && node.firstChild && !node.attr('href')) {\r\n parent = node.parent;\r\n sibling = node.lastChild;\r\n do {\r\n prevSibling = sibling.prev;\r\n parent.insert(sibling, node);\r\n sibling = prevSibling;\r\n } while (sibling);\r\n }\r\n }\r\n });\r\n }\r\n if (settings.fix_list_elements) {\r\n parser.addNodeFilter('ul,ol', function (nodes) {\r\n var i = nodes.length, node, parentNode;\r\n while (i--) {\r\n node = nodes[i];\r\n parentNode = node.parent;\r\n if (parentNode.name === 'ul' || parentNode.name === 'ol') {\r\n if (node.prev && node.prev.name === 'li') {\r\n node.prev.append(node);\r\n } else {\r\n var li = new Node$2('li', 1);\r\n li.attr('style', 'list-style-type: none');\r\n node.wrap(li);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (settings.validate && schema.getValidClasses()) {\r\n parser.addAttributeFilter('class', function (nodes) {\r\n var i = nodes.length, node, classList, ci, className, classValue;\r\n var validClasses = schema.getValidClasses();\r\n var validClassesMap, valid;\r\n while (i--) {\r\n node = nodes[i];\r\n classList = node.attr('class').split(' ');\r\n classValue = '';\r\n for (ci = 0; ci < classList.length; ci++) {\r\n className = classList[ci];\r\n valid = false;\r\n validClassesMap = validClasses['*'];\r\n if (validClassesMap && validClassesMap[className]) {\r\n valid = true;\r\n }\r\n validClassesMap = validClasses[node.name];\r\n if (!valid && validClassesMap && validClassesMap[className]) {\r\n valid = true;\r\n }\r\n if (valid) {\r\n if (classValue) {\r\n classValue += ' ';\r\n }\r\n classValue += className;\r\n }\r\n }\r\n if (!classValue.length) {\r\n classValue = null;\r\n }\r\n node.attr('class', classValue);\r\n }\r\n });\r\n }\r\n };\r\n\r\n var makeMap$4 = $_4ujg4tljkmcwkbk.makeMap;\r\n var each$18 = $_4ujg4tljkmcwkbk.each;\r\n var explode$3 = $_4ujg4tljkmcwkbk.explode;\r\n var extend$3 = $_4ujg4tljkmcwkbk.extend;\r\n function DomParser (settings, schema) {\r\n if (schema === void 0) {\r\n schema = Schema();\r\n }\r\n var nodeFilters = {};\r\n var attributeFilters = [];\r\n var matchedNodes = {};\r\n var matchedAttributes = {};\r\n settings = settings || {};\r\n settings.validate = 'validate' in settings ? settings.validate : true;\r\n settings.root_name = settings.root_name || 'body';\r\n var fixInvalidChildren = function (nodes) {\r\n var ni, node, parent, parents, newParent, currentNode, tempNode, childNode, i;\r\n var nonEmptyElements, whitespaceElements, nonSplitableElements, textBlockElements, specialElements, sibling, nextNode;\r\n nonSplitableElements = makeMap$4('tr,td,th,tbody,thead,tfoot,table');\r\n nonEmptyElements = schema.getNonEmptyElements();\r\n whitespaceElements = schema.getWhiteSpaceElements();\r\n textBlockElements = schema.getTextBlockElements();\r\n specialElements = schema.getSpecialElements();\r\n for (ni = 0; ni < nodes.length; ni++) {\r\n node = nodes[ni];\r\n if (!node.parent || node.fixed) {\r\n continue;\r\n }\r\n if (textBlockElements[node.name] && node.parent.name === 'li') {\r\n sibling = node.next;\r\n while (sibling) {\r\n if (textBlockElements[sibling.name]) {\r\n sibling.name = 'li';\r\n sibling.fixed = true;\r\n node.parent.insert(sibling, node.parent);\r\n } else {\r\n break;\r\n }\r\n sibling = sibling.next;\r\n }\r\n node.unwrap(node);\r\n continue;\r\n }\r\n parents = [node];\r\n for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && !nonSplitableElements[parent.name]; parent = parent.parent) {\r\n parents.push(parent);\r\n }\r\n if (parent && parents.length > 1) {\r\n parents.reverse();\r\n newParent = currentNode = filterNode(parents[0].clone());\r\n for (i = 0; i < parents.length - 1; i++) {\r\n if (schema.isValidChild(currentNode.name, parents[i].name)) {\r\n tempNode = filterNode(parents[i].clone());\r\n currentNode.append(tempNode);\r\n } else {\r\n tempNode = currentNode;\r\n }\r\n for (childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\r\n nextNode = childNode.next;\r\n tempNode.append(childNode);\r\n childNode = nextNode;\r\n }\r\n currentNode = tempNode;\r\n }\r\n if (!isEmpty$2(schema, nonEmptyElements, whitespaceElements, newParent)) {\r\n parent.insert(newParent, parents[0], true);\r\n parent.insert(node, newParent);\r\n } else {\r\n parent.insert(node, parents[0], true);\r\n }\r\n parent = parents[0];\r\n if (isEmpty$2(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\r\n parent.empty().remove();\r\n }\r\n } else if (node.parent) {\r\n if (node.name === 'li') {\r\n sibling = node.prev;\r\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\r\n sibling.append(node);\r\n continue;\r\n }\r\n sibling = node.next;\r\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ul')) {\r\n sibling.insert(node, sibling.firstChild, true);\r\n continue;\r\n }\r\n node.wrap(filterNode(new Node$2('ul', 1)));\r\n continue;\r\n }\r\n if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\r\n node.wrap(filterNode(new Node$2('div', 1)));\r\n } else {\r\n if (specialElements[node.name]) {\r\n node.empty().remove();\r\n } else {\r\n node.unwrap();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var filterNode = function (node) {\r\n var i, name, list;\r\n if (name in nodeFilters) {\r\n list = matchedNodes[name];\r\n if (list) {\r\n list.push(node);\r\n } else {\r\n matchedNodes[name] = [node];\r\n }\r\n }\r\n i = attributeFilters.length;\r\n while (i--) {\r\n name = attributeFilters[i].name;\r\n if (name in node.attributes.map) {\r\n list = matchedAttributes[name];\r\n if (list) {\r\n list.push(node);\r\n } else {\r\n matchedAttributes[name] = [node];\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n var addNodeFilter = function (name, callback) {\r\n each$18(explode$3(name), function (name) {\r\n var list = nodeFilters[name];\r\n if (!list) {\r\n nodeFilters[name] = list = [];\r\n }\r\n list.push(callback);\r\n });\r\n };\r\n var getNodeFilters = function () {\r\n var out = [];\r\n for (var name in nodeFilters) {\r\n if (nodeFilters.hasOwnProperty(name)) {\r\n out.push({\r\n name: name,\r\n callbacks: nodeFilters[name]\r\n });\r\n }\r\n }\r\n return out;\r\n };\r\n var addAttributeFilter = function (name, callback) {\r\n each$18(explode$3(name), function (name) {\r\n var i;\r\n for (i = 0; i < attributeFilters.length; i++) {\r\n if (attributeFilters[i].name === name) {\r\n attributeFilters[i].callbacks.push(callback);\r\n return;\r\n }\r\n }\r\n attributeFilters.push({\r\n name: name,\r\n callbacks: [callback]\r\n });\r\n });\r\n };\r\n var getAttributeFilters = function () {\r\n return [].concat(attributeFilters);\r\n };\r\n var parse = function (html, args) {\r\n var parser, nodes, i, l, fi, fl, list, name;\r\n var blockElements;\r\n var invalidChildren = [];\r\n var isInWhiteSpacePreservedElement;\r\n var node;\r\n args = args || {};\r\n matchedNodes = {};\r\n matchedAttributes = {};\r\n blockElements = extend$3(makeMap$4('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\r\n var nonEmptyElements = schema.getNonEmptyElements();\r\n var children = schema.children;\r\n var validate = settings.validate;\r\n var rootBlockName = 'forced_root_block' in args ? args.forced_root_block : settings.forced_root_block;\r\n var whiteSpaceElements = schema.getWhiteSpaceElements();\r\n var startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\r\n var endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\r\n var allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\r\n var isAllWhiteSpaceRegExp = /^[ \\t\\r\\n]+$/;\r\n isInWhiteSpacePreservedElement = whiteSpaceElements.hasOwnProperty(args.context) || whiteSpaceElements.hasOwnProperty(settings.root_name);\r\n var addRootBlocks = function () {\r\n var node = rootNode.firstChild, next, rootBlockNode;\r\n var trim = function (rootBlockNode) {\r\n if (rootBlockNode) {\r\n node = rootBlockNode.firstChild;\r\n if (node && node.type === 3) {\r\n node.value = node.value.replace(startWhiteSpaceRegExp, '');\r\n }\r\n node = rootBlockNode.lastChild;\r\n if (node && node.type === 3) {\r\n node.value = node.value.replace(endWhiteSpaceRegExp, '');\r\n }\r\n }\r\n };\r\n if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\r\n return;\r\n }\r\n while (node) {\r\n next = node.next;\r\n if (node.type === 3 || node.type === 1 && node.name !== 'p' && !blockElements[node.name] && !node.attr('data-mce-type')) {\r\n if (!rootBlockNode) {\r\n rootBlockNode = createNode(rootBlockName, 1);\r\n rootBlockNode.attr(settings.forced_root_block_attrs);\r\n rootNode.insert(rootBlockNode, node);\r\n rootBlockNode.append(node);\r\n } else {\r\n rootBlockNode.append(node);\r\n }\r\n } else {\r\n trim(rootBlockNode);\r\n rootBlockNode = null;\r\n }\r\n node = next;\r\n }\r\n trim(rootBlockNode);\r\n };\r\n var createNode = function (name, type) {\r\n var node = new Node$2(name, type);\r\n var list;\r\n if (name in nodeFilters) {\r\n list = matchedNodes[name];\r\n if (list) {\r\n list.push(node);\r\n } else {\r\n matchedNodes[name] = [node];\r\n }\r\n }\r\n return node;\r\n };\r\n var removeWhitespaceBefore = function (node) {\r\n var textNode, textNodeNext, textVal, sibling;\r\n var blockElements = schema.getBlockElements();\r\n for (textNode = node.prev; textNode && textNode.type === 3;) {\r\n textVal = textNode.value.replace(endWhiteSpaceRegExp, '');\r\n if (textVal.length > 0) {\r\n textNode.value = textVal;\r\n return;\r\n }\r\n textNodeNext = textNode.next;\r\n if (textNodeNext) {\r\n if (textNodeNext.type === 3 && textNodeNext.value.length) {\r\n textNode = textNode.prev;\r\n continue;\r\n }\r\n if (!blockElements[textNodeNext.name] && textNodeNext.name !== 'script' && textNodeNext.name !== 'style') {\r\n textNode = textNode.prev;\r\n continue;\r\n }\r\n }\r\n sibling = textNode.prev;\r\n textNode.remove();\r\n textNode = sibling;\r\n }\r\n };\r\n var cloneAndExcludeBlocks = function (input) {\r\n var name;\r\n var output = {};\r\n for (name in input) {\r\n if (name !== 'li' && name !== 'p') {\r\n output[name] = input[name];\r\n }\r\n }\r\n return output;\r\n };\r\n parser = SaxParser$1({\r\n validate: validate,\r\n allow_script_urls: settings.allow_script_urls,\r\n allow_conditional_comments: settings.allow_conditional_comments,\r\n self_closing_elements: cloneAndExcludeBlocks(schema.getSelfClosingElements()),\r\n cdata: function (text) {\r\n node.append(createNode('#cdata', 4)).value = text;\r\n },\r\n text: function (text, raw) {\r\n var textNode;\r\n if (!isInWhiteSpacePreservedElement) {\r\n text = text.replace(allWhiteSpaceRegExp, ' ');\r\n if (isLineBreakNode(node.lastChild, blockElements)) {\r\n text = text.replace(startWhiteSpaceRegExp, '');\r\n }\r\n }\r\n if (text.length !== 0) {\r\n textNode = createNode('#text', 3);\r\n textNode.raw = !!raw;\r\n node.append(textNode).value = text;\r\n }\r\n },\r\n comment: function (text) {\r\n node.append(createNode('#comment', 8)).value = text;\r\n },\r\n pi: function (name, text) {\r\n node.append(createNode(name, 7)).value = text;\r\n removeWhitespaceBefore(node);\r\n },\r\n doctype: function (text) {\r\n var newNode;\r\n newNode = node.append(createNode('#doctype', 10));\r\n newNode.value = text;\r\n removeWhitespaceBefore(node);\r\n },\r\n start: function (name, attrs, empty) {\r\n var newNode, attrFiltersLen, elementRule, attrName, parent;\r\n elementRule = validate ? schema.getElementRule(name) : {};\r\n if (elementRule) {\r\n newNode = createNode(elementRule.outputName || name, 1);\r\n newNode.attributes = attrs;\r\n newNode.shortEnded = empty;\r\n node.append(newNode);\r\n parent = children[node.name];\r\n if (parent && children[newNode.name] && !parent[newNode.name]) {\r\n invalidChildren.push(newNode);\r\n }\r\n attrFiltersLen = attributeFilters.length;\r\n while (attrFiltersLen--) {\r\n attrName = attributeFilters[attrFiltersLen].name;\r\n if (attrName in attrs.map) {\r\n list = matchedAttributes[attrName];\r\n if (list) {\r\n list.push(newNode);\r\n } else {\r\n matchedAttributes[attrName] = [newNode];\r\n }\r\n }\r\n }\r\n if (blockElements[name]) {\r\n removeWhitespaceBefore(newNode);\r\n }\r\n if (!empty) {\r\n node = newNode;\r\n }\r\n if (!isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\r\n isInWhiteSpacePreservedElement = true;\r\n }\r\n }\r\n },\r\n end: function (name) {\r\n var textNode, elementRule, text, sibling, tempNode;\r\n elementRule = validate ? schema.getElementRule(name) : {};\r\n if (elementRule) {\r\n if (blockElements[name]) {\r\n if (!isInWhiteSpacePreservedElement) {\r\n textNode = node.firstChild;\r\n if (textNode && textNode.type === 3) {\r\n text = textNode.value.replace(startWhiteSpaceRegExp, '');\r\n if (text.length > 0) {\r\n textNode.value = text;\r\n textNode = textNode.next;\r\n } else {\r\n sibling = textNode.next;\r\n textNode.remove();\r\n textNode = sibling;\r\n while (textNode && textNode.type === 3) {\r\n text = textNode.value;\r\n sibling = textNode.next;\r\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\r\n textNode.remove();\r\n textNode = sibling;\r\n }\r\n textNode = sibling;\r\n }\r\n }\r\n }\r\n textNode = node.lastChild;\r\n if (textNode && textNode.type === 3) {\r\n text = textNode.value.replace(endWhiteSpaceRegExp, '');\r\n if (text.length > 0) {\r\n textNode.value = text;\r\n textNode = textNode.prev;\r\n } else {\r\n sibling = textNode.prev;\r\n textNode.remove();\r\n textNode = sibling;\r\n while (textNode && textNode.type === 3) {\r\n text = textNode.value;\r\n sibling = textNode.prev;\r\n if (text.length === 0 || isAllWhiteSpaceRegExp.test(text)) {\r\n textNode.remove();\r\n textNode = sibling;\r\n }\r\n textNode = sibling;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (isInWhiteSpacePreservedElement && whiteSpaceElements[name]) {\r\n isInWhiteSpacePreservedElement = false;\r\n }\r\n if (elementRule.removeEmpty && isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node)) {\r\n if (!node.attributes.map.name && !node.attr('id')) {\r\n tempNode = node.parent;\r\n if (blockElements[node.name]) {\r\n node.empty().remove();\r\n } else {\r\n node.unwrap();\r\n }\r\n node = tempNode;\r\n return;\r\n }\r\n }\r\n if (elementRule.paddEmpty && (isPaddedWithNbsp(node) || isEmpty$2(schema, nonEmptyElements, whiteSpaceElements, node))) {\r\n paddEmptyNode(settings, args, blockElements, node);\r\n }\r\n node = node.parent;\r\n }\r\n }\r\n }, schema);\r\n var rootNode = node = new Node$2(args.context || settings.root_name, 11);\r\n parser.parse(html);\r\n if (validate && invalidChildren.length) {\r\n if (!args.context) {\r\n fixInvalidChildren(invalidChildren);\r\n } else {\r\n args.invalid = true;\r\n }\r\n }\r\n if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\r\n addRootBlocks();\r\n }\r\n if (!args.invalid) {\r\n for (name in matchedNodes) {\r\n list = nodeFilters[name];\r\n nodes = matchedNodes[name];\r\n fi = nodes.length;\r\n while (fi--) {\r\n if (!nodes[fi].parent) {\r\n nodes.splice(fi, 1);\r\n }\r\n }\r\n for (i = 0, l = list.length; i < l; i++) {\r\n list[i](nodes, name, args);\r\n }\r\n }\r\n for (i = 0, l = attributeFilters.length; i < l; i++) {\r\n list = attributeFilters[i];\r\n if (list.name in matchedAttributes) {\r\n nodes = matchedAttributes[list.name];\r\n fi = nodes.length;\r\n while (fi--) {\r\n if (!nodes[fi].parent) {\r\n nodes.splice(fi, 1);\r\n }\r\n }\r\n for (fi = 0, fl = list.callbacks.length; fi < fl; fi++) {\r\n list.callbacks[fi](nodes, list.name, args);\r\n }\r\n }\r\n }\r\n }\r\n return rootNode;\r\n };\r\n var exports = {\r\n schema: schema,\r\n addAttributeFilter: addAttributeFilter,\r\n getAttributeFilters: getAttributeFilters,\r\n addNodeFilter: addNodeFilter,\r\n getNodeFilters: getNodeFilters,\r\n filterNode: filterNode,\r\n parse: parse\r\n };\r\n register$2(exports, settings);\r\n $_2klegh6pjkmcwllk.register(exports, settings);\r\n return exports;\r\n }\r\n\r\n var addTempAttr = function (htmlParser, tempAttrs, name) {\r\n if ($_4ujg4tljkmcwkbk.inArray(tempAttrs, name) === -1) {\r\n htmlParser.addAttributeFilter(name, function (nodes, name) {\r\n var i = nodes.length;\r\n while (i--) {\r\n nodes[i].attr(name, null);\r\n }\r\n });\r\n tempAttrs.push(name);\r\n }\r\n };\r\n var postProcess$1 = function (editor, args, content) {\r\n if (!args.no_events && editor) {\r\n var outArgs = $_q3ric4tjkmcwl9q.firePostProcess(editor, merge(args, { content: content }));\r\n return outArgs.content;\r\n } else {\r\n return content;\r\n }\r\n };\r\n var getHtmlFromNode = function (dom, node, args) {\r\n var html = $_cadvcr2pjkmcwkph.trim(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\r\n return args.selection || isWsPreserveElement(Element$$1.fromDom(node)) ? html : $_4ujg4tljkmcwkbk.trim(html);\r\n };\r\n var parseHtml = function (htmlParser, html, args) {\r\n var parserArgs = args.selection ? merge({ forced_root_block: false }, args) : args;\r\n var rootNode = htmlParser.parse(html, parserArgs);\r\n $_ft0zjh6mjkmcwlkr.trimTrailingBr(rootNode);\r\n return rootNode;\r\n };\r\n var serializeNode = function (settings, schema, node) {\r\n var htmlSerializer = HtmlSerializer(settings, schema);\r\n return htmlSerializer.serialize(node);\r\n };\r\n var toHtml = function (editor, settings, schema, rootNode, args) {\r\n var content = serializeNode(settings, schema, rootNode);\r\n return postProcess$1(editor, args, content);\r\n };\r\n function DomSerializer (settings, editor) {\r\n var dom, schema, htmlParser;\r\n var tempAttrs = ['data-mce-selected'];\r\n dom = editor && editor.dom ? editor.dom : DOMUtils$1.DOM;\r\n schema = editor && editor.schema ? editor.schema : Schema(settings);\r\n settings.entity_encoding = settings.entity_encoding || 'named';\r\n settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;\r\n htmlParser = DomParser(settings, schema);\r\n $_ft0zjh6mjkmcwlkr.register(htmlParser, settings, dom);\r\n var serialize = function (node, parserArgs) {\r\n var args = merge({ format: 'html' }, parserArgs ? parserArgs : {});\r\n var targetNode = $_27apc6njkmcwll3.process(editor, node, args);\r\n var html = getHtmlFromNode(dom, targetNode, args);\r\n var rootNode = parseHtml(htmlParser, html, args);\r\n return args.format === 'tree' ? rootNode : toHtml(editor, settings, schema, rootNode, args);\r\n };\r\n return {\r\n schema: schema,\r\n addNodeFilter: htmlParser.addNodeFilter,\r\n addAttributeFilter: htmlParser.addAttributeFilter,\r\n serialize: serialize,\r\n addRules: function (rules) {\r\n schema.addValidElements(rules);\r\n },\r\n setRules: function (rules) {\r\n schema.setValidElements(rules);\r\n },\r\n addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\r\n getTempAttrs: function () {\r\n return tempAttrs;\r\n }\r\n };\r\n }\r\n\r\n function DomSerializer$1 (settings, editor) {\r\n var domSerializer = DomSerializer(settings, editor);\r\n return {\r\n schema: domSerializer.schema,\r\n addNodeFilter: domSerializer.addNodeFilter,\r\n addAttributeFilter: domSerializer.addAttributeFilter,\r\n serialize: domSerializer.serialize,\r\n addRules: domSerializer.addRules,\r\n setRules: domSerializer.setRules,\r\n addTempAttr: domSerializer.addTempAttr,\r\n getTempAttrs: domSerializer.getTempAttrs\r\n };\r\n }\r\n\r\n function BookmarkManager(selection) {\r\n return {\r\n getBookmark: curry($_e4btcc2vjkmcwkq3.getBookmark, selection),\r\n moveToBookmark: curry($_e4btcc2vjkmcwkq3.moveToBookmark, selection)\r\n };\r\n }\r\n (function (BookmarkManager) {\r\n BookmarkManager.isBookmarkNode = $_e4btcc2vjkmcwkq3.isBookmarkNode;\r\n }(BookmarkManager || (BookmarkManager = {})));\r\n var BookmarkManager$1 = BookmarkManager;\r\n\r\n var isContentEditableFalse$10 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var isContentEditableTrue$6 = $_bjermr1rjkmcwkij.isContentEditableTrue;\r\n var getContentEditableRoot$2 = function (root, node) {\r\n while (node && node !== root) {\r\n if (isContentEditableTrue$6(node) || isContentEditableFalse$10(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var ControlSelection = function (selection, editor) {\r\n var dom = editor.dom, each = $_4ujg4tljkmcwkbk.each;\r\n var selectedElm, selectedElmGhost, resizeHelper, resizeHandles, selectedHandle;\r\n var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;\r\n var width, height;\r\n var editableDoc = editor.getDoc(), rootDocument = document;\r\n var abs = Math.abs, round = Math.round, rootElement = editor.getBody();\r\n var startScrollWidth, startScrollHeight;\r\n resizeHandles = {\r\n nw: [\r\n 0,\r\n 0,\r\n -1,\r\n -1\r\n ],\r\n ne: [\r\n 1,\r\n 0,\r\n 1,\r\n -1\r\n ],\r\n se: [\r\n 1,\r\n 1,\r\n 1,\r\n 1\r\n ],\r\n sw: [\r\n 0,\r\n 1,\r\n -1,\r\n 1\r\n ]\r\n };\r\n var rootClass = '.mce-content-body';\r\n editor.contentStyles.push(rootClass + ' div.mce-resizehandle {' + 'position: absolute;' + 'border: 1px solid black;' + 'box-sizing: content-box;' + 'background: #FFF;' + 'width: 7px;' + 'height: 7px;' + 'z-index: 10000' + '}' + rootClass + ' .mce-resizehandle:hover {' + 'background: #000' + '}' + rootClass + ' img[data-mce-selected],' + rootClass + ' hr[data-mce-selected] {' + 'outline: 1px solid black;' + 'resize: none' + '}' + rootClass + ' .mce-clonedresizable {' + 'position: absolute;' + ($_cvvl9iajkmcwk25.gecko ? '' : 'outline: 1px dashed black;') + 'opacity: .5;' + 'filter: alpha(opacity=50);' + 'z-index: 10000' + '}' + rootClass + ' .mce-resize-helper {' + 'background: #555;' + 'background: rgba(0,0,0,0.75);' + 'border-radius: 3px;' + 'border: 1px;' + 'color: white;' + 'display: none;' + 'font-family: sans-serif;' + 'font-size: 12px;' + 'white-space: nowrap;' + 'line-height: 14px;' + 'margin: 5px 10px;' + 'padding: 5px;' + 'position: absolute;' + 'z-index: 10001' + '}');\r\n var isImage = function (elm) {\r\n return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image'));\r\n };\r\n var isEventOnImageOutsideRange = function (evt, range) {\r\n return isImage(evt.target) && !$_95lcbc5ujkmcwlg1.isXYWithinRange(evt.clientX, evt.clientY, range);\r\n };\r\n var contextMenuSelectImage = function (evt) {\r\n var target = evt.target;\r\n if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\r\n evt.preventDefault();\r\n editor.selection.select(target);\r\n }\r\n };\r\n var getResizeTarget = function (elm) {\r\n return editor.dom.is(elm, 'figure.image') ? elm.querySelector('img') : elm;\r\n };\r\n var isResizable = function (elm) {\r\n var selector = editor.settings.object_resizing;\r\n if (selector === false || $_cvvl9iajkmcwk25.iOS) {\r\n return false;\r\n }\r\n if (typeof selector !== 'string') {\r\n selector = 'table,img,figure.image,div';\r\n }\r\n if (elm.getAttribute('data-mce-resize') === 'false') {\r\n return false;\r\n }\r\n if (elm === editor.getBody()) {\r\n return false;\r\n }\r\n return $_4jv6d81gjkmcwkgv.is(Element$$1.fromDom(elm), selector);\r\n };\r\n var resizeGhostElement = function (e) {\r\n var deltaX, deltaY, proportional;\r\n var resizeHelperX, resizeHelperY;\r\n deltaX = e.screenX - startX;\r\n deltaY = e.screenY - startY;\r\n width = deltaX * selectedHandle[2] + startW;\r\n height = deltaY * selectedHandle[3] + startH;\r\n width = width < 5 ? 5 : width;\r\n height = height < 5 ? 5 : height;\r\n if (isImage(selectedElm) && editor.settings.resize_img_proportional !== false) {\r\n proportional = !$_6bj5795wjkmcwlg6.modifierPressed(e);\r\n } else {\r\n proportional = $_6bj5795wjkmcwlg6.modifierPressed(e) || isImage(selectedElm) && selectedHandle[2] * selectedHandle[3] !== 0;\r\n }\r\n if (proportional) {\r\n if (abs(deltaX) > abs(deltaY)) {\r\n height = round(width * ratio);\r\n width = round(height / ratio);\r\n } else {\r\n width = round(height / ratio);\r\n height = round(width * ratio);\r\n }\r\n }\r\n dom.setStyles(getResizeTarget(selectedElmGhost), {\r\n width: width,\r\n height: height\r\n });\r\n resizeHelperX = selectedHandle.startPos.x + deltaX;\r\n resizeHelperY = selectedHandle.startPos.y + deltaY;\r\n resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\r\n resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\r\n dom.setStyles(resizeHelper, {\r\n left: resizeHelperX,\r\n top: resizeHelperY,\r\n display: 'block'\r\n });\r\n resizeHelper.innerHTML = width + ' × ' + height;\r\n if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {\r\n dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));\r\n }\r\n if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {\r\n dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));\r\n }\r\n deltaX = rootElement.scrollWidth - startScrollWidth;\r\n deltaY = rootElement.scrollHeight - startScrollHeight;\r\n if (deltaX + deltaY !== 0) {\r\n dom.setStyles(resizeHelper, {\r\n left: resizeHelperX - deltaX,\r\n top: resizeHelperY - deltaY\r\n });\r\n }\r\n if (!resizeStarted) {\r\n $_q3ric4tjkmcwl9q.fireObjectResizeStart(editor, selectedElm, startW, startH);\r\n resizeStarted = true;\r\n }\r\n };\r\n var endGhostResize = function () {\r\n resizeStarted = false;\r\n var setSizeProp = function (name$$1, value) {\r\n if (value) {\r\n if (selectedElm.style[name$$1] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name$$1)) {\r\n dom.setStyle(getResizeTarget(selectedElm), name$$1, value);\r\n } else {\r\n dom.setAttrib(getResizeTarget(selectedElm), name$$1, value);\r\n }\r\n }\r\n };\r\n setSizeProp('width', width);\r\n setSizeProp('height', height);\r\n dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\r\n dom.unbind(editableDoc, 'mouseup', endGhostResize);\r\n if (rootDocument !== editableDoc) {\r\n dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\r\n dom.unbind(rootDocument, 'mouseup', endGhostResize);\r\n }\r\n dom.remove(selectedElmGhost);\r\n dom.remove(resizeHelper);\r\n showResizeRect(selectedElm);\r\n $_q3ric4tjkmcwl9q.fireObjectResized(editor, selectedElm, width, height);\r\n dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\r\n editor.nodeChanged();\r\n };\r\n var showResizeRect = function (targetElm) {\r\n var position, targetWidth, targetHeight, e, rect;\r\n hideResizeRect();\r\n unbindResizeHandleEvents();\r\n position = dom.getPos(targetElm, rootElement);\r\n selectedElmX = position.x;\r\n selectedElmY = position.y;\r\n rect = targetElm.getBoundingClientRect();\r\n targetWidth = rect.width || rect.right - rect.left;\r\n targetHeight = rect.height || rect.bottom - rect.top;\r\n if (selectedElm !== targetElm) {\r\n selectedElm = targetElm;\r\n width = height = 0;\r\n }\r\n e = editor.fire('ObjectSelected', { target: targetElm });\r\n if (isResizable(targetElm) && !e.isDefaultPrevented()) {\r\n each(resizeHandles, function (handle, name$$1) {\r\n var handleElm;\r\n var startDrag = function (e) {\r\n startX = e.screenX;\r\n startY = e.screenY;\r\n startW = getResizeTarget(selectedElm).clientWidth;\r\n startH = getResizeTarget(selectedElm).clientHeight;\r\n ratio = startH / startW;\r\n selectedHandle = handle;\r\n handle.startPos = {\r\n x: targetWidth * handle[0] + selectedElmX,\r\n y: targetHeight * handle[1] + selectedElmY\r\n };\r\n startScrollWidth = rootElement.scrollWidth;\r\n startScrollHeight = rootElement.scrollHeight;\r\n selectedElmGhost = selectedElm.cloneNode(true);\r\n dom.addClass(selectedElmGhost, 'mce-clonedresizable');\r\n dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\r\n selectedElmGhost.contentEditable = false;\r\n selectedElmGhost.unSelectabe = true;\r\n dom.setStyles(selectedElmGhost, {\r\n left: selectedElmX,\r\n top: selectedElmY,\r\n margin: 0\r\n });\r\n selectedElmGhost.removeAttribute('data-mce-selected');\r\n rootElement.appendChild(selectedElmGhost);\r\n dom.bind(editableDoc, 'mousemove', resizeGhostElement);\r\n dom.bind(editableDoc, 'mouseup', endGhostResize);\r\n if (rootDocument !== editableDoc) {\r\n dom.bind(rootDocument, 'mousemove', resizeGhostElement);\r\n dom.bind(rootDocument, 'mouseup', endGhostResize);\r\n }\r\n resizeHelper = dom.add(rootElement, 'div', {\r\n 'class': 'mce-resize-helper',\r\n 'data-mce-bogus': 'all'\r\n }, startW + ' × ' + startH);\r\n };\r\n handleElm = dom.get('mceResizeHandle' + name$$1);\r\n if (handleElm) {\r\n dom.remove(handleElm);\r\n }\r\n handleElm = dom.add(rootElement, 'div', {\r\n 'id': 'mceResizeHandle' + name$$1,\r\n 'data-mce-bogus': 'all',\r\n 'class': 'mce-resizehandle',\r\n 'unselectable': true,\r\n 'style': 'cursor:' + name$$1 + '-resize; margin:0; padding:0'\r\n });\r\n if ($_cvvl9iajkmcwk25.ie === 11) {\r\n handleElm.contentEditable = false;\r\n }\r\n dom.bind(handleElm, 'mousedown', function (e) {\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n startDrag(e);\r\n });\r\n handle.elm = handleElm;\r\n dom.setStyles(handleElm, {\r\n left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\r\n top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\r\n });\r\n });\r\n } else {\r\n hideResizeRect();\r\n }\r\n selectedElm.setAttribute('data-mce-selected', '1');\r\n };\r\n var hideResizeRect = function () {\r\n var name$$1, handleElm;\r\n unbindResizeHandleEvents();\r\n if (selectedElm) {\r\n selectedElm.removeAttribute('data-mce-selected');\r\n }\r\n for (name$$1 in resizeHandles) {\r\n handleElm = dom.get('mceResizeHandle' + name$$1);\r\n if (handleElm) {\r\n dom.unbind(handleElm);\r\n dom.remove(handleElm);\r\n }\r\n }\r\n };\r\n var updateResizeRect = function (e) {\r\n var startElm, controlElm;\r\n var isChildOrEqual = function (node, parent$$1) {\r\n if (node) {\r\n do {\r\n if (node === parent$$1) {\r\n return true;\r\n }\r\n } while (node = node.parentNode);\r\n }\r\n };\r\n if (resizeStarted || editor.removed) {\r\n return;\r\n }\r\n each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) {\r\n img.removeAttribute('data-mce-selected');\r\n });\r\n controlElm = e.type === 'mousedown' ? e.target : selection.getNode();\r\n controlElm = dom.$(controlElm).closest('table,img,figure.image,hr')[0];\r\n if (isChildOrEqual(controlElm, rootElement)) {\r\n disableGeckoResize();\r\n startElm = selection.getStart(true);\r\n if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\r\n showResizeRect(controlElm);\r\n return;\r\n }\r\n }\r\n hideResizeRect();\r\n };\r\n var isWithinContentEditableFalse = function (elm) {\r\n return isContentEditableFalse$10(getContentEditableRoot$2(editor.getBody(), elm));\r\n };\r\n var unbindResizeHandleEvents = function () {\r\n for (var name$$1 in resizeHandles) {\r\n var handle = resizeHandles[name$$1];\r\n if (handle.elm) {\r\n dom.unbind(handle.elm);\r\n delete handle.elm;\r\n }\r\n }\r\n };\r\n var disableGeckoResize = function () {\r\n try {\r\n editor.getDoc().execCommand('enableObjectResizing', false, false);\r\n } catch (ex) {\r\n }\r\n };\r\n editor.on('init', function () {\r\n disableGeckoResize();\r\n if ($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie >= 11) {\r\n editor.on('mousedown click', function (e) {\r\n var target = e.target, nodeName = target.nodeName;\r\n if (!resizeStarted && /^(TABLE|IMG|HR)$/.test(nodeName) && !isWithinContentEditableFalse(target)) {\r\n if (e.button !== 2) {\r\n editor.selection.select(target, nodeName === 'TABLE');\r\n }\r\n if (e.type === 'mousedown') {\r\n editor.nodeChanged();\r\n }\r\n }\r\n });\r\n editor.dom.bind(rootElement, 'mscontrolselect', function (e) {\r\n var delayedSelect = function (node) {\r\n $_3l01gcijkmcwk99.setEditorTimeout(editor, function () {\r\n editor.selection.select(node);\r\n });\r\n };\r\n if (isWithinContentEditableFalse(e.target)) {\r\n e.preventDefault();\r\n delayedSelect(e.target);\r\n return;\r\n }\r\n if (/^(TABLE|IMG|HR)$/.test(e.target.nodeName)) {\r\n e.preventDefault();\r\n if (e.target.tagName === 'IMG') {\r\n delayedSelect(e.target);\r\n }\r\n }\r\n });\r\n }\r\n var throttledUpdateResizeRect = $_3l01gcijkmcwk99.throttle(function (e) {\r\n if (!editor.composing) {\r\n updateResizeRect(e);\r\n }\r\n });\r\n editor.on('nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged', throttledUpdateResizeRect);\r\n editor.on('keyup compositionend', function (e) {\r\n if (selectedElm && selectedElm.nodeName === 'TABLE') {\r\n throttledUpdateResizeRect(e);\r\n }\r\n });\r\n editor.on('hide blur', hideResizeRect);\r\n editor.on('contextmenu', contextMenuSelectImage);\r\n });\r\n editor.on('remove', unbindResizeHandleEvents);\r\n var destroy = function () {\r\n selectedElm = selectedElmGhost = null;\r\n };\r\n return {\r\n isResizable: isResizable,\r\n showResizeRect: showResizeRect,\r\n hideResizeRect: hideResizeRect,\r\n updateResizeRect: updateResizeRect,\r\n destroy: destroy\r\n };\r\n };\r\n\r\n var hasCeProperty = function (node) {\r\n return $_bjermr1rjkmcwkij.isContentEditableTrue(node) || $_bjermr1rjkmcwkij.isContentEditableFalse(node);\r\n };\r\n var findParent$1 = function (node, rootNode, predicate) {\r\n while (node && node !== rootNode) {\r\n if (predicate(node)) {\r\n return node;\r\n }\r\n node = node.parentNode;\r\n }\r\n return null;\r\n };\r\n var findClosestIeRange = function (clientX, clientY, doc) {\r\n var element, rng, rects;\r\n element = doc.elementFromPoint(clientX, clientY);\r\n rng = doc.body.createTextRange();\r\n if (!element || element.tagName === 'HTML') {\r\n element = doc.body;\r\n }\r\n rng.moveToElementText(element);\r\n rects = $_4ujg4tljkmcwkbk.toArray(rng.getClientRects());\r\n rects = rects.sort(function (a, b) {\r\n a = Math.abs(Math.max(a.top - clientY, a.bottom - clientY));\r\n b = Math.abs(Math.max(b.top - clientY, b.bottom - clientY));\r\n return a - b;\r\n });\r\n if (rects.length > 0) {\r\n clientY = (rects[0].bottom + rects[0].top) / 2;\r\n try {\r\n rng.moveToPoint(clientX, clientY);\r\n rng.collapse(true);\r\n return rng;\r\n } catch (ex) {\r\n }\r\n }\r\n return null;\r\n };\r\n var moveOutOfContentEditableFalse = function (rng, rootNode) {\r\n var parentElement = rng && rng.parentElement ? rng.parentElement() : null;\r\n return $_bjermr1rjkmcwkij.isContentEditableFalse(findParent$1(parentElement, rootNode, hasCeProperty)) ? null : rng;\r\n };\r\n var fromPoint$1 = function (clientX, clientY, doc) {\r\n var rng, point;\r\n var pointDoc = doc;\r\n if (pointDoc.caretPositionFromPoint) {\r\n point = pointDoc.caretPositionFromPoint(clientX, clientY);\r\n if (point) {\r\n rng = doc.createRange();\r\n rng.setStart(point.offsetNode, point.offset);\r\n rng.collapse(true);\r\n }\r\n } else if (doc.caretRangeFromPoint) {\r\n rng = doc.caretRangeFromPoint(clientX, clientY);\r\n } else if (pointDoc.body.createTextRange) {\r\n rng = pointDoc.body.createTextRange();\r\n try {\r\n rng.moveToPoint(clientX, clientY);\r\n rng.collapse(true);\r\n } catch (ex) {\r\n rng = findClosestIeRange(clientX, clientY, doc);\r\n }\r\n return moveOutOfContentEditableFalse(rng, doc.body);\r\n }\r\n return rng;\r\n };\r\n var $_52q21w6wjkmcwlna = { fromPoint: fromPoint$1 };\r\n\r\n var processRanges = function (editor, ranges) {\r\n return map(ranges, function (range$$1) {\r\n var evt = editor.fire('GetSelectionRange', { range: range$$1 });\r\n return evt.range !== range$$1 ? evt.range : range$$1;\r\n });\r\n };\r\n var $_8161126xjkmcwlnd = { processRanges: processRanges };\r\n\r\n var fromElements = function (elements, scope) {\r\n var doc = scope || document;\r\n var fragment = doc.createDocumentFragment();\r\n each(elements, function (element) {\r\n fragment.appendChild(element.dom());\r\n });\r\n return Element$$1.fromDom(fragment);\r\n };\r\n var $_a3l7fy70jkmcwloa = { fromElements: fromElements };\r\n\r\n var tableModel = Immutable('element', 'width', 'rows');\r\n var tableRow = Immutable('element', 'cells');\r\n var cellPosition = Immutable('x', 'y');\r\n var getSpan = function (td, key) {\r\n var value = parseInt($_29helg15jkmcwkf0.get(td, key), 10);\r\n return isNaN(value) ? 1 : value;\r\n };\r\n var fillout = function (table, x, y, tr, td) {\r\n var rowspan = getSpan(td, 'rowspan');\r\n var colspan = getSpan(td, 'colspan');\r\n var rows = table.rows();\r\n for (var y2 = y; y2 < y + rowspan; y2++) {\r\n if (!rows[y2]) {\r\n rows[y2] = tableRow($_44uvy22ijkmcwko5.deep(tr), []);\r\n }\r\n for (var x2 = x; x2 < x + colspan; x2++) {\r\n var cells = rows[y2].cells();\r\n cells[x2] = y2 === y && x2 === x ? td : $_44uvy22ijkmcwko5.shallow(td);\r\n }\r\n }\r\n };\r\n var cellExists = function (table, x, y) {\r\n var rows = table.rows();\r\n var cells = rows[y] ? rows[y].cells() : [];\r\n return !!cells[x];\r\n };\r\n var skipCellsX = function (table, x, y) {\r\n while (cellExists(table, x, y)) {\r\n x++;\r\n }\r\n return x;\r\n };\r\n var getWidth = function (rows) {\r\n return foldl(rows, function (acc, row) {\r\n return row.cells().length > acc ? row.cells().length : acc;\r\n }, 0);\r\n };\r\n var findElementPos = function (table, element) {\r\n var rows = table.rows();\r\n for (var y = 0; y < rows.length; y++) {\r\n var cells = rows[y].cells();\r\n for (var x = 0; x < cells.length; x++) {\r\n if ($_e4hu6h1ejkmcwkgj.eq(cells[x], element)) {\r\n return Option.some(cellPosition(x, y));\r\n }\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var extractRows = function (table, sx, sy, ex, ey) {\r\n var newRows = [];\r\n var rows = table.rows();\r\n for (var y = sy; y <= ey; y++) {\r\n var cells = rows[y].cells();\r\n var slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\r\n newRows.push(tableRow(rows[y].element(), slice));\r\n }\r\n return newRows;\r\n };\r\n var subTable = function (table, startPos, endPos) {\r\n var sx = startPos.x(), sy = startPos.y();\r\n var ex = endPos.x(), ey = endPos.y();\r\n var newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\r\n return tableModel(table.element(), getWidth(newRows), newRows);\r\n };\r\n var createDomTable = function (table, rows) {\r\n var tableElement = $_44uvy22ijkmcwko5.shallow(table.element());\r\n var tableBody = Element$$1.fromTag('tbody');\r\n $_1ev7t1xjkmcwkky.append(tableBody, rows);\r\n $_f4qt4v1yjkmcwkl2.append(tableElement, tableBody);\r\n return tableElement;\r\n };\r\n var modelRowsToDomRows = function (table) {\r\n return map(table.rows(), function (row) {\r\n var cells = map(row.cells(), function (cell) {\r\n var td = $_44uvy22ijkmcwko5.deep(cell);\r\n $_29helg15jkmcwkf0.remove(td, 'colspan');\r\n $_29helg15jkmcwkf0.remove(td, 'rowspan');\r\n return td;\r\n });\r\n var tr = $_44uvy22ijkmcwko5.shallow(row.element());\r\n $_1ev7t1xjkmcwkky.append(tr, cells);\r\n return tr;\r\n });\r\n };\r\n var fromDom$2 = function (tableElm) {\r\n var table = tableModel($_44uvy22ijkmcwko5.shallow(tableElm), 0, []);\r\n each($_2gqm0n27jkmcwkmi.descendants(tableElm, 'tr'), function (tr, y) {\r\n each($_2gqm0n27jkmcwkmi.descendants(tr, 'td,th'), function (td, x) {\r\n fillout(table, skipCellsX(table, x, y), y, tr, td);\r\n });\r\n });\r\n return tableModel(table.element(), getWidth(table.rows()), table.rows());\r\n };\r\n var toDom = function (table) {\r\n return createDomTable(table, modelRowsToDomRows(table));\r\n };\r\n var subsection = function (table, startElement, endElement) {\r\n return findElementPos(table, startElement).bind(function (startPos) {\r\n return findElementPos(table, endElement).map(function (endPos) {\r\n return subTable(table, startPos, endPos);\r\n });\r\n });\r\n };\r\n var $_6wuzo771jkmcwlof = {\r\n fromDom: fromDom$2,\r\n toDom: toDom,\r\n subsection: subsection\r\n };\r\n\r\n var findParentListContainer = function (parents) {\r\n return find(parents, function (elm) {\r\n return $_2xwdjv11jkmcwke0.name(elm) === 'ul' || $_2xwdjv11jkmcwke0.name(elm) === 'ol';\r\n });\r\n };\r\n var getFullySelectedListWrappers = function (parents, rng) {\r\n return find(parents, function (elm) {\r\n return $_2xwdjv11jkmcwke0.name(elm) === 'li' && hasAllContentsSelected(elm, rng);\r\n }).fold(constant([]), function (li) {\r\n return findParentListContainer(parents).map(function (listCont) {\r\n return [\r\n Element$$1.fromTag('li'),\r\n Element$$1.fromTag($_2xwdjv11jkmcwke0.name(listCont))\r\n ];\r\n }).getOr([]);\r\n });\r\n };\r\n var wrap$3 = function (innerElm, elms) {\r\n var wrapped = foldl(elms, function (acc, elm) {\r\n $_f4qt4v1yjkmcwkl2.append(elm, acc);\r\n return elm;\r\n }, innerElm);\r\n return elms.length > 0 ? $_a3l7fy70jkmcwloa.fromElements([wrapped]) : wrapped;\r\n };\r\n var directListWrappers = function (commonAnchorContainer) {\r\n if (isListItem(commonAnchorContainer)) {\r\n return $_ca6pc118jkmcwkfs.parent(commonAnchorContainer).filter(isList).fold(constant([]), function (listElm) {\r\n return [\r\n commonAnchorContainer,\r\n listElm\r\n ];\r\n });\r\n } else {\r\n return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\r\n }\r\n };\r\n var getWrapElements = function (rootNode, rng) {\r\n var commonAnchorContainer = Element$$1.fromDom(rng.commonAncestorContainer);\r\n var parents = $_cir6zl3zjkmcwl2j.parentsAndSelf(commonAnchorContainer, rootNode);\r\n var wrapElements = filter(parents, function (elm) {\r\n return isInline(elm) || isHeading(elm);\r\n });\r\n var listWrappers = getFullySelectedListWrappers(parents, rng);\r\n var allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\r\n return map(allWrappers, $_44uvy22ijkmcwko5.shallow);\r\n };\r\n var emptyFragment = function () {\r\n return $_a3l7fy70jkmcwloa.fromElements([]);\r\n };\r\n var getFragmentFromRange = function (rootNode, rng) {\r\n return wrap$3(Element$$1.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng));\r\n };\r\n var getParentTable = function (rootElm, cell) {\r\n return $_4ki4d929jkmcwkmn.ancestor(cell, 'table', curry($_e4hu6h1ejkmcwkgj.eq, rootElm));\r\n };\r\n var getTableFragment = function (rootNode, selectedTableCells) {\r\n return getParentTable(rootNode, selectedTableCells[0]).bind(function (tableElm) {\r\n var firstCell = selectedTableCells[0];\r\n var lastCell = selectedTableCells[selectedTableCells.length - 1];\r\n var fullTableModel = $_6wuzo771jkmcwlof.fromDom(tableElm);\r\n return $_6wuzo771jkmcwlof.subsection(fullTableModel, firstCell, lastCell).map(function (sectionedTableModel) {\r\n return $_a3l7fy70jkmcwloa.fromElements([$_6wuzo771jkmcwlof.toDom(sectionedTableModel)]);\r\n });\r\n }).getOrThunk(emptyFragment);\r\n };\r\n var getSelectionFragment = function (rootNode, ranges) {\r\n return ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0]);\r\n };\r\n var read$4 = function (rootNode, ranges) {\r\n var selectedCells = $_7q5gk44ejkmcwl6p.getCellsFromElementOrRanges(ranges, rootNode);\r\n return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges);\r\n };\r\n var $_2bm266zjkmcwlnj = { read: read$4 };\r\n\r\n var getContent = function (editor, args) {\r\n var rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\r\n var sel = editor.selection.getSel();\r\n var fragment;\r\n var ranges = $_8161126xjkmcwlnd.processRanges(editor, $_admly54fjkmcwl6u.getRanges(sel));\r\n args = args || {};\r\n args.get = true;\r\n args.format = args.format || 'html';\r\n args.selection = true;\r\n args = editor.fire('BeforeGetContent', args);\r\n if (args.isDefaultPrevented()) {\r\n editor.fire('GetContent', args);\r\n return args.content;\r\n }\r\n if (args.format === 'text') {\r\n return editor.selection.isCollapsed() ? '' : $_cadvcr2pjkmcwkph.trim(rng.text || (sel.toString ? sel.toString() : ''));\r\n }\r\n if (rng.cloneContents) {\r\n fragment = args.contextual ? $_2bm266zjkmcwlnj.read(Element$$1.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents();\r\n if (fragment) {\r\n tmpElm.appendChild(fragment);\r\n }\r\n } else if (rng.item !== undefined || rng.htmlText !== undefined) {\r\n tmpElm.innerHTML = '
' + (rng.item ? rng.item(0).outerHTML : rng.htmlText);\r\n tmpElm.removeChild(tmpElm.firstChild);\r\n } else {\r\n tmpElm.innerHTML = rng.toString();\r\n }\r\n args.getInner = true;\r\n var content = editor.selection.serializer.serialize(tmpElm, args);\r\n if (args.format === 'tree') {\r\n return content;\r\n }\r\n args.content = editor.selection.isCollapsed() ? '' : content;\r\n editor.fire('GetContent', args);\r\n return args.content;\r\n };\r\n var $_eu7sms6yjkmcwlnf = { getContent: getContent };\r\n\r\n var setContent = function (editor, content, args) {\r\n var rng = editor.selection.getRng(), caretNode;\r\n var doc = editor.getDoc();\r\n var frag, temp;\r\n args = args || { format: 'html' };\r\n args.set = true;\r\n args.selection = true;\r\n args.content = content;\r\n if (!args.no_events) {\r\n args = editor.fire('BeforeSetContent', args);\r\n if (args.isDefaultPrevented()) {\r\n editor.fire('SetContent', args);\r\n return;\r\n }\r\n }\r\n content = args.content;\r\n if (rng.insertNode) {\r\n content += '_';\r\n if (rng.startContainer === doc && rng.endContainer === doc) {\r\n doc.body.innerHTML = content;\r\n } else {\r\n rng.deleteContents();\r\n if (doc.body.childNodes.length === 0) {\r\n doc.body.innerHTML = content;\r\n } else {\r\n if (rng.createContextualFragment) {\r\n rng.insertNode(rng.createContextualFragment(content));\r\n } else {\r\n frag = doc.createDocumentFragment();\r\n temp = doc.createElement('div');\r\n frag.appendChild(temp);\r\n temp.outerHTML = content;\r\n rng.insertNode(frag);\r\n }\r\n }\r\n }\r\n caretNode = editor.dom.get('__caret');\r\n rng = doc.createRange();\r\n rng.setStartBefore(caretNode);\r\n rng.setEndBefore(caretNode);\r\n editor.selection.setRng(rng);\r\n editor.dom.remove('__caret');\r\n try {\r\n editor.selection.setRng(rng);\r\n } catch (ex) {\r\n }\r\n } else {\r\n if (rng.item) {\r\n doc.execCommand('Delete', false, null);\r\n rng = editor.getRng();\r\n }\r\n if (/^\\s+/.test(content)) {\r\n rng.pasteHTML('_' + content);\r\n editor.dom.remove('__mce_tmp');\r\n } else {\r\n rng.pasteHTML(content);\r\n }\r\n }\r\n if (!args.no_events) {\r\n editor.fire('SetContent', args);\r\n }\r\n };\r\n var $_b7rwud72jkmcwlow = { setContent: setContent };\r\n\r\n var getEndpointElement = function (root, rng, start, real, resolve) {\r\n var container = start ? rng.startContainer : rng.endContainer;\r\n var offset = start ? rng.startOffset : rng.endOffset;\r\n return Option.from(container).map(Element$$1.fromDom).map(function (elm) {\r\n return !real || !rng.collapsed ? $_ca6pc118jkmcwkfs.child(elm, resolve(elm, offset)).getOr(elm) : elm;\r\n }).bind(function (elm) {\r\n return $_2xwdjv11jkmcwke0.isElement(elm) ? Option.some(elm) : $_ca6pc118jkmcwkfs.parent(elm);\r\n }).map(function (elm) {\r\n return elm.dom();\r\n }).getOr(root);\r\n };\r\n var getStart$2 = function (root, rng, real) {\r\n return getEndpointElement(root, rng, true, real, function (elm, offset) {\r\n return Math.min($_ca6pc118jkmcwkfs.childNodesCount(elm), offset);\r\n });\r\n };\r\n var getEnd = function (root, rng, real) {\r\n return getEndpointElement(root, rng, false, real, function (elm, offset) {\r\n return offset > 0 ? offset - 1 : offset;\r\n });\r\n };\r\n var skipEmptyTextNodes = function (node, forwards) {\r\n var orig = node;\r\n while (node && $_bjermr1rjkmcwkij.isText(node) && node.length === 0) {\r\n node = forwards ? node.nextSibling : node.previousSibling;\r\n }\r\n return node || orig;\r\n };\r\n var getNode$1 = function (root, rng) {\r\n var elm, startContainer, endContainer, startOffset, endOffset;\r\n if (!rng) {\r\n return root;\r\n }\r\n startContainer = rng.startContainer;\r\n endContainer = rng.endContainer;\r\n startOffset = rng.startOffset;\r\n endOffset = rng.endOffset;\r\n elm = rng.commonAncestorContainer;\r\n if (!rng.collapsed) {\r\n if (startContainer === endContainer) {\r\n if (endOffset - startOffset < 2) {\r\n if (startContainer.hasChildNodes()) {\r\n elm = startContainer.childNodes[startOffset];\r\n }\r\n }\r\n }\r\n if (startContainer.nodeType === 3 && endContainer.nodeType === 3) {\r\n if (startContainer.length === startOffset) {\r\n startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\r\n } else {\r\n startContainer = startContainer.parentNode;\r\n }\r\n if (endOffset === 0) {\r\n endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\r\n } else {\r\n endContainer = endContainer.parentNode;\r\n }\r\n if (startContainer && startContainer === endContainer) {\r\n return startContainer;\r\n }\r\n }\r\n }\r\n if (elm && elm.nodeType === 3) {\r\n return elm.parentNode;\r\n }\r\n return elm;\r\n };\r\n var getSelectedBlocks = function (dom, rng, startElm, endElm) {\r\n var node, root;\r\n var selectedBlocks = [];\r\n root = dom.getRoot();\r\n startElm = dom.getParent(startElm || getStart$2(root, rng, rng.collapsed), dom.isBlock);\r\n endElm = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);\r\n if (startElm && startElm !== root) {\r\n selectedBlocks.push(startElm);\r\n }\r\n if (startElm && endElm && startElm !== endElm) {\r\n node = startElm;\r\n var walker = new TreeWalker(startElm, root);\r\n while ((node = walker.next()) && node !== endElm) {\r\n if (dom.isBlock(node)) {\r\n selectedBlocks.push(node);\r\n }\r\n }\r\n }\r\n if (endElm && startElm !== endElm && endElm !== root) {\r\n selectedBlocks.push(endElm);\r\n }\r\n return selectedBlocks;\r\n };\r\n var select$1 = function (dom, node, content) {\r\n return Option.from(node).map(function (node) {\r\n var idx = dom.nodeIndex(node);\r\n var rng = dom.createRng();\r\n rng.setStart(node.parentNode, idx);\r\n rng.setEnd(node.parentNode, idx + 1);\r\n if (content) {\r\n moveEndPoint$1(dom, rng, node, true);\r\n moveEndPoint$1(dom, rng, node, false);\r\n }\r\n return rng;\r\n });\r\n };\r\n\r\n var each$19 = $_4ujg4tljkmcwkbk.each;\r\n var isNativeIeSelection = function (rng) {\r\n return !!rng.select;\r\n };\r\n var isAttachedToDom = function (node) {\r\n return !!(node && node.ownerDocument) && $_e4hu6h1ejkmcwkgj.contains(Element$$1.fromDom(node.ownerDocument), Element$$1.fromDom(node));\r\n };\r\n var isValidRange = function (rng) {\r\n if (!rng) {\r\n return false;\r\n } else if (isNativeIeSelection(rng)) {\r\n return true;\r\n } else {\r\n return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\r\n }\r\n };\r\n var Selection$1 = function (dom, win, serializer, editor) {\r\n var bookmarkManager, controlSelection;\r\n var selectedRange, explicitRange, selectorChangedData;\r\n var setCursorLocation = function (node, offset) {\r\n var rng = dom.createRng();\r\n if (!node) {\r\n moveEndPoint$1(dom, rng, editor.getBody(), true);\r\n setRng(rng);\r\n } else {\r\n rng.setStart(node, offset);\r\n rng.setEnd(node, offset);\r\n setRng(rng);\r\n collapse(false);\r\n }\r\n };\r\n var getContent = function (args) {\r\n return $_eu7sms6yjkmcwlnf.getContent(editor, args);\r\n };\r\n var setContent = function (content, args) {\r\n return $_b7rwud72jkmcwlow.setContent(editor, content, args);\r\n };\r\n var getStart = function (real) {\r\n return getStart$2(editor.getBody(), getRng(), real);\r\n };\r\n var getEnd$$1 = function (real) {\r\n return getEnd(editor.getBody(), getRng(), real);\r\n };\r\n var getBookmark = function (type, normalized) {\r\n return bookmarkManager.getBookmark(type, normalized);\r\n };\r\n var moveToBookmark = function (bookmark) {\r\n return bookmarkManager.moveToBookmark(bookmark);\r\n };\r\n var select = function (node, content) {\r\n select$1(dom, node, content).each(setRng);\r\n return node;\r\n };\r\n var isCollapsed = function () {\r\n var rng = getRng(), sel = getSel();\r\n if (!rng || rng.item) {\r\n return false;\r\n }\r\n if (rng.compareEndPoints) {\r\n return rng.compareEndPoints('StartToEnd', rng) === 0;\r\n }\r\n return !sel || rng.collapsed;\r\n };\r\n var collapse = function (toStart) {\r\n var rng = getRng();\r\n rng.collapse(!!toStart);\r\n setRng(rng);\r\n };\r\n var getSel = function () {\r\n return win.getSelection ? win.getSelection() : win.document.selection;\r\n };\r\n var getRng = function () {\r\n var selection, rng, elm, doc;\r\n var tryCompareBoundaryPoints = function (how, sourceRange, destinationRange) {\r\n try {\r\n return sourceRange.compareBoundaryPoints(how, destinationRange);\r\n } catch (ex) {\r\n return -1;\r\n }\r\n };\r\n if (!win) {\r\n return null;\r\n }\r\n doc = win.document;\r\n if (typeof doc === 'undefined' || doc === null) {\r\n return null;\r\n }\r\n if (editor.bookmark !== undefined && $_e3v8sn4vjkmcwl9y.hasFocus(editor) === false) {\r\n var bookmark = $_39c3zs4ljkmcwl86.getRng(editor);\r\n if (bookmark.isSome()) {\r\n return bookmark.map(function (r) {\r\n return $_8161126xjkmcwlnd.processRanges(editor, [r])[0];\r\n }).getOr(doc.createRange());\r\n }\r\n }\r\n try {\r\n if (selection = getSel()) {\r\n if (selection.rangeCount > 0) {\r\n rng = selection.getRangeAt(0);\r\n } else {\r\n rng = selection.createRange ? selection.createRange() : doc.createRange();\r\n }\r\n }\r\n } catch (ex) {\r\n }\r\n rng = $_8161126xjkmcwlnd.processRanges(editor, [rng])[0];\r\n if (!rng) {\r\n rng = doc.createRange ? doc.createRange() : doc.body.createTextRange();\r\n }\r\n if (rng.setStart && rng.startContainer.nodeType === 9 && rng.collapsed) {\r\n elm = dom.getRoot();\r\n rng.setStart(elm, 0);\r\n rng.setEnd(elm, 0);\r\n }\r\n if (selectedRange && explicitRange) {\r\n if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\r\n rng = explicitRange;\r\n } else {\r\n selectedRange = null;\r\n explicitRange = null;\r\n }\r\n }\r\n return rng;\r\n };\r\n var setRng = function (rng, forward) {\r\n var sel, node, evt;\r\n if (!isValidRange(rng)) {\r\n return;\r\n }\r\n var ieRange = isNativeIeSelection(rng) ? rng : null;\r\n if (ieRange) {\r\n explicitRange = null;\r\n try {\r\n ieRange.select();\r\n } catch (ex) {\r\n }\r\n return;\r\n }\r\n sel = getSel();\r\n evt = editor.fire('SetSelectionRange', {\r\n range: rng,\r\n forward: forward\r\n });\r\n rng = evt.range;\r\n if (sel) {\r\n explicitRange = rng;\r\n try {\r\n sel.removeAllRanges();\r\n sel.addRange(rng);\r\n } catch (ex) {\r\n }\r\n if (forward === false && sel.extend) {\r\n sel.collapse(rng.endContainer, rng.endOffset);\r\n sel.extend(rng.startContainer, rng.startOffset);\r\n }\r\n selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\r\n }\r\n if (!rng.collapsed && rng.startContainer === rng.endContainer && sel.setBaseAndExtent && !$_cvvl9iajkmcwk25.ie) {\r\n if (rng.endOffset - rng.startOffset < 2) {\r\n if (rng.startContainer.hasChildNodes()) {\r\n node = rng.startContainer.childNodes[rng.startOffset];\r\n if (node && node.tagName === 'IMG') {\r\n sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\r\n if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\r\n sel.setBaseAndExtent(node, 0, node, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n editor.fire('AfterSetSelectionRange', {\r\n range: rng,\r\n forward: forward\r\n });\r\n };\r\n var setNode = function (elm) {\r\n setContent(dom.getOuterHTML(elm));\r\n return elm;\r\n };\r\n var getNode = function () {\r\n return getNode$1(editor.getBody(), getRng());\r\n };\r\n var getSelectedBlocks$$1 = function (startElm, endElm) {\r\n return getSelectedBlocks(dom, getRng(), startElm, endElm);\r\n };\r\n var isForward = function () {\r\n var sel = getSel();\r\n var anchorRange, focusRange;\r\n if (!sel || !sel.anchorNode || !sel.focusNode) {\r\n return true;\r\n }\r\n anchorRange = dom.createRng();\r\n anchorRange.setStart(sel.anchorNode, sel.anchorOffset);\r\n anchorRange.collapse(true);\r\n focusRange = dom.createRng();\r\n focusRange.setStart(sel.focusNode, sel.focusOffset);\r\n focusRange.collapse(true);\r\n return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\r\n };\r\n var normalize = function () {\r\n var rng = getRng();\r\n var sel = getSel();\r\n if (!$_admly54fjkmcwl6u.hasMultipleRanges(sel) && hasAnyRanges(editor)) {\r\n var normRng = $_21c07i4jjkmcwl7w.normalize(dom, rng);\r\n normRng.each(function (normRng) {\r\n setRng(normRng, isForward());\r\n });\r\n return normRng.getOr(rng);\r\n }\r\n return rng;\r\n };\r\n var selectorChanged = function (selector, callback) {\r\n var currentSelectors;\r\n if (!selectorChangedData) {\r\n selectorChangedData = {};\r\n currentSelectors = {};\r\n editor.on('NodeChange', function (e) {\r\n var node = e.element, parents = dom.getParents(node, null, dom.getRoot()), matchedSelectors = {};\r\n each$19(selectorChangedData, function (callbacks, selector) {\r\n each$19(parents, function (node) {\r\n if (dom.is(node, selector)) {\r\n if (!currentSelectors[selector]) {\r\n each$19(callbacks, function (callback) {\r\n callback(true, {\r\n node: node,\r\n selector: selector,\r\n parents: parents\r\n });\r\n });\r\n currentSelectors[selector] = callbacks;\r\n }\r\n matchedSelectors[selector] = callbacks;\r\n return false;\r\n }\r\n });\r\n });\r\n each$19(currentSelectors, function (callbacks, selector) {\r\n if (!matchedSelectors[selector]) {\r\n delete currentSelectors[selector];\r\n each$19(callbacks, function (callback) {\r\n callback(false, {\r\n node: node,\r\n selector: selector,\r\n parents: parents\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n if (!selectorChangedData[selector]) {\r\n selectorChangedData[selector] = [];\r\n }\r\n selectorChangedData[selector].push(callback);\r\n return exports;\r\n };\r\n var getScrollContainer = function () {\r\n var scrollContainer;\r\n var node = dom.getRoot();\r\n while (node && node.nodeName !== 'BODY') {\r\n if (node.scrollHeight > node.clientHeight) {\r\n scrollContainer = node;\r\n break;\r\n }\r\n node = node.parentNode;\r\n }\r\n return scrollContainer;\r\n };\r\n var scrollIntoView = function (elm, alignToTop) {\r\n return $_a6610x37jkmcwkt5.scrollElementIntoView(editor, elm, alignToTop);\r\n };\r\n var placeCaretAt = function (clientX, clientY) {\r\n return setRng($_52q21w6wjkmcwlna.fromPoint(clientX, clientY, editor.getDoc()));\r\n };\r\n var getBoundingClientRect = function () {\r\n var rng = getRng();\r\n return rng.collapsed ? CaretPosition$1.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\r\n };\r\n var destroy = function () {\r\n win = selectedRange = explicitRange = null;\r\n controlSelection.destroy();\r\n };\r\n var exports = {\r\n bookmarkManager: null,\r\n controlSelection: null,\r\n dom: dom,\r\n win: win,\r\n serializer: serializer,\r\n editor: editor,\r\n collapse: collapse,\r\n setCursorLocation: setCursorLocation,\r\n getContent: getContent,\r\n setContent: setContent,\r\n getBookmark: getBookmark,\r\n moveToBookmark: moveToBookmark,\r\n select: select,\r\n isCollapsed: isCollapsed,\r\n isForward: isForward,\r\n setNode: setNode,\r\n getNode: getNode,\r\n getSel: getSel,\r\n setRng: setRng,\r\n getRng: getRng,\r\n getStart: getStart,\r\n getEnd: getEnd$$1,\r\n getSelectedBlocks: getSelectedBlocks$$1,\r\n normalize: normalize,\r\n selectorChanged: selectorChanged,\r\n getScrollContainer: getScrollContainer,\r\n scrollIntoView: scrollIntoView,\r\n placeCaretAt: placeCaretAt,\r\n getBoundingClientRect: getBoundingClientRect,\r\n destroy: destroy\r\n };\r\n bookmarkManager = BookmarkManager$1(exports);\r\n controlSelection = ControlSelection(exports, editor);\r\n exports.bookmarkManager = bookmarkManager;\r\n exports.controlSelection = controlSelection;\r\n return exports;\r\n };\r\n\r\n var isContentEditableFalse$11 = $_bjermr1rjkmcwkij.isContentEditableFalse;\r\n var getSelectedNode$1 = getSelectedNode;\r\n var isAfterContentEditableFalse$2 = isAfterContentEditableFalse;\r\n var isBeforeContentEditableFalse$2 = isBeforeContentEditableFalse;\r\n var getVisualCaretPosition = function (walkFn, caretPosition) {\r\n while (caretPosition = walkFn(caretPosition)) {\r\n if (caretPosition.isVisible()) {\r\n return caretPosition;\r\n }\r\n }\r\n return caretPosition;\r\n };\r\n var isMoveInsideSameBlock = function (from, to) {\r\n var inSameBlock = isInSameBlock(from, to);\r\n if (!inSameBlock && $_bjermr1rjkmcwkij.isBr(from.getNode())) {\r\n return true;\r\n }\r\n return inSameBlock;\r\n };\r\n var moveToCeFalseHorizontally = function (direction, editor, getNextPosFn, range) {\r\n var node, caretPosition, peekCaretPosition, rangeIsInContainerBlock;\r\n var forwards = direction === HDirection.Forwards;\r\n var isBeforeContentEditableFalseFn = forwards ? isBeforeContentEditableFalse$2 : isAfterContentEditableFalse$2;\r\n if (!range.collapsed) {\r\n node = getSelectedNode$1(range);\r\n if (isContentEditableFalse$11(node)) {\r\n return showCaret(direction, editor, node, direction === HDirection.Backwards, true);\r\n }\r\n }\r\n rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\r\n caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\r\n if (isBeforeContentEditableFalseFn(caretPosition)) {\r\n return selectNode(editor, caretPosition.getNode(!forwards));\r\n }\r\n caretPosition = getNextPosFn(caretPosition);\r\n if (!caretPosition) {\r\n if (rangeIsInContainerBlock) {\r\n return range;\r\n }\r\n return null;\r\n }\r\n if (isBeforeContentEditableFalseFn(caretPosition)) {\r\n return showCaret(direction, editor, caretPosition.getNode(!forwards), forwards, true);\r\n }\r\n peekCaretPosition = getNextPosFn(caretPosition);\r\n if (isBeforeContentEditableFalseFn(peekCaretPosition)) {\r\n if (isMoveInsideSameBlock(caretPosition, peekCaretPosition)) {\r\n return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, true);\r\n }\r\n }\r\n if (rangeIsInContainerBlock) {\r\n return renderRangeCaret(editor, caretPosition.toRange(), true);\r\n }\r\n return null;\r\n };\r\n var moveToCeFalseVertically = function (direction, editor, walkerFn, range) {\r\n var caretPosition, linePositions, nextLinePositions;\r\n var closestNextLineRect, caretClientRect, clientX;\r\n var dist1, dist2, contentEditableFalseNode;\r\n contentEditableFalseNode = getSelectedNode$1(range);\r\n caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\r\n linePositions = walkerFn(editor.getBody(), isAboveLine(1), caretPosition);\r\n nextLinePositions = $_9g1fibmjkmcwkbu.filter(linePositions, isLine(1));\r\n caretClientRect = $_9g1fibmjkmcwkbu.last(caretPosition.getClientRects());\r\n if (isBeforeContentEditableFalse$2(caretPosition) || isBeforeTable(caretPosition)) {\r\n contentEditableFalseNode = caretPosition.getNode();\r\n }\r\n if (isAfterContentEditableFalse$2(caretPosition) || isAfterTable(caretPosition)) {\r\n contentEditableFalseNode = caretPosition.getNode(true);\r\n }\r\n if (!caretClientRect) {\r\n return null;\r\n }\r\n clientX = caretClientRect.left;\r\n closestNextLineRect = findClosestClientRect(nextLinePositions, clientX);\r\n if (closestNextLineRect) {\r\n if (isContentEditableFalse$11(closestNextLineRect.node)) {\r\n dist1 = Math.abs(clientX - closestNextLineRect.left);\r\n dist2 = Math.abs(clientX - closestNextLineRect.right);\r\n return showCaret(direction, editor, closestNextLineRect.node, dist1 < dist2, true);\r\n }\r\n }\r\n if (contentEditableFalseNode) {\r\n var caretPositions = positionsUntil(direction, editor.getBody(), isAboveLine(1), contentEditableFalseNode);\r\n closestNextLineRect = findClosestClientRect($_9g1fibmjkmcwkbu.filter(caretPositions, isLine(1)), clientX);\r\n if (closestNextLineRect) {\r\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\r\n }\r\n closestNextLineRect = $_9g1fibmjkmcwkbu.last($_9g1fibmjkmcwkbu.filter(caretPositions, isLine(0)));\r\n if (closestNextLineRect) {\r\n return renderRangeCaret(editor, closestNextLineRect.position.toRange(), true);\r\n }\r\n }\r\n };\r\n var createTextBlock = function (editor) {\r\n var textBlock = editor.dom.create(editor.settings.forced_root_block);\r\n if (!$_cvvl9iajkmcwk25.ie || $_cvvl9iajkmcwk25.ie >= 11) {\r\n textBlock.innerHTML = '
';\r\n }\r\n return textBlock;\r\n };\r\n var exitPreBlock = function (editor, direction, range) {\r\n var pre, caretPos, newBlock;\r\n var caretWalker = CaretWalker(editor.getBody());\r\n var getNextVisualCaretPosition = $_fl2rax2ljkmcwkot.curry(getVisualCaretPosition, caretWalker.next);\r\n var getPrevVisualCaretPosition = $_fl2rax2ljkmcwkot.curry(getVisualCaretPosition, caretWalker.prev);\r\n if (range.collapsed && editor.settings.forced_root_block) {\r\n pre = editor.dom.getParent(range.startContainer, 'PRE');\r\n if (!pre) {\r\n return;\r\n }\r\n if (direction === 1) {\r\n caretPos = getNextVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\r\n } else {\r\n caretPos = getPrevVisualCaretPosition(CaretPosition$1.fromRangeStart(range));\r\n }\r\n if (!caretPos) {\r\n newBlock = createTextBlock(editor);\r\n if (direction === 1) {\r\n editor.$(pre).after(newBlock);\r\n } else {\r\n editor.$(pre).before(newBlock);\r\n }\r\n editor.selection.select(newBlock, true);\r\n editor.selection.collapse();\r\n }\r\n }\r\n };\r\n var getHorizontalRange = function (editor, forward) {\r\n var caretWalker = CaretWalker(editor.getBody());\r\n var getNextVisualCaretPosition = $_fl2rax2ljkmcwkot.curry(getVisualCaretPosition, caretWalker.next);\r\n var getPrevVisualCaretPosition = $_fl2rax2ljkmcwkot.curry(getVisualCaretPosition, caretWalker.prev);\r\n var newRange;\r\n var direction = forward ? HDirection.Forwards : HDirection.Backwards;\r\n var getNextPosFn = forward ? getNextVisualCaretPosition : getPrevVisualCaretPosition;\r\n var range = editor.selection.getRng();\r\n newRange = moveToCeFalseHorizontally(direction, editor, getNextPosFn, range);\r\n if (newRange) {\r\n return newRange;\r\n }\r\n newRange = exitPreBlock(editor, direction, range);\r\n if (newRange) {\r\n return newRange;\r\n }\r\n return null;\r\n };\r\n var getVerticalRange = function (editor, down) {\r\n var newRange;\r\n var direction = down ? 1 : -1;\r\n var walkerFn = down ? downUntil : upUntil;\r\n var range = editor.selection.getRng();\r\n newRange = moveToCeFalseVertically(direction, editor, walkerFn, range);\r\n if (newRange) {\r\n return newRange;\r\n }\r\n newRange = exitPreBlock(editor, direction, range);\r\n if (newRange) {\r\n return newRange;\r\n }\r\n return null;\r\n };\r\n var moveH$1 = function (editor, forward) {\r\n return function () {\r\n var newRng = getHorizontalRange(editor, forward);\r\n if (newRng) {\r\n editor.selection.setRng(newRng);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n };\r\n var moveV$1 = function (editor, down) {\r\n return function () {\r\n var newRng = getVerticalRange(editor, down);\r\n if (newRng) {\r\n editor.selection.setRng(newRng);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n };\r\n\r\n var defaultPatterns = function (patterns) {\r\n return map(patterns, function (pattern) {\r\n return merge({\r\n shiftKey: false,\r\n altKey: false,\r\n ctrlKey: false,\r\n metaKey: false,\r\n keyCode: 0,\r\n action: noop\r\n }, pattern);\r\n });\r\n };\r\n var matchesEvent = function (pattern, evt) {\r\n return evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\r\n };\r\n var match$1 = function (patterns, evt) {\r\n return bind(defaultPatterns(patterns), function (pattern) {\r\n return matchesEvent(pattern, evt) ? [pattern] : [];\r\n });\r\n };\r\n var action = function (f) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n return function () {\r\n return f.apply(null, args);\r\n };\r\n };\r\n var execute = function (patterns, evt) {\r\n return find(match$1(patterns, evt), function (pattern) {\r\n return pattern.action();\r\n });\r\n };\r\n var $_3olmgr77jkmcwlpj = {\r\n match: match$1,\r\n action: action,\r\n execute: execute\r\n };\r\n\r\n var executeKeydownOverride = function (editor, caret, evt) {\r\n var os = $_b1ykk4ojkmcwkcj.detect().os;\r\n $_3olmgr77jkmcwlpj.execute([\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.RIGHT,\r\n action: moveH$1(editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.LEFT,\r\n action: moveH$1(editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.UP,\r\n action: moveV$1(editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DOWN,\r\n action: moveV$1(editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.RIGHT,\r\n action: moveH(editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.LEFT,\r\n action: moveH(editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.UP,\r\n action: moveV(editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DOWN,\r\n action: moveV(editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.RIGHT,\r\n action: $_dl6t9m4ajkmcwl5b.move(editor, caret, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.LEFT,\r\n action: $_dl6t9m4ajkmcwl5b.move(editor, caret, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.RIGHT,\r\n ctrlKey: !os.isOSX(),\r\n altKey: os.isOSX(),\r\n action: $_dl6t9m4ajkmcwl5b.moveNextWord(editor, caret)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.LEFT,\r\n ctrlKey: !os.isOSX(),\r\n altKey: os.isOSX(),\r\n action: $_dl6t9m4ajkmcwl5b.movePrevWord(editor, caret)\r\n }\r\n ], evt).each(function (_) {\r\n evt.preventDefault();\r\n });\r\n };\r\n var setup$7 = function (editor, caret) {\r\n editor.on('keydown', function (evt) {\r\n if (evt.isDefaultPrevented() === false) {\r\n executeKeydownOverride(editor, caret, evt);\r\n }\r\n });\r\n };\r\n var $_emza9w75jkmcwlp9 = { setup: setup$7 };\r\n\r\n var getParentInlines = function (rootElm, startElm) {\r\n var parents = $_cir6zl3zjkmcwl2j.parentsAndSelf(startElm, rootElm);\r\n return findIndex(parents, isBlock).fold(constant(parents), function (index) {\r\n return parents.slice(0, index);\r\n });\r\n };\r\n var hasOnlyOneChild$1 = function (elm) {\r\n return $_ca6pc118jkmcwkfs.children(elm).length === 1;\r\n };\r\n var deleteLastPosition = function (forward, editor, target, parentInlines) {\r\n var isFormatElement$$1 = curry(isFormatElement, editor);\r\n var formatNodes = map(filter(parentInlines, isFormatElement$$1), function (elm) {\r\n return elm.dom();\r\n });\r\n if (formatNodes.length === 0) {\r\n $_4yq1i444jkmcwl3w.deleteElement(editor, forward, target);\r\n } else {\r\n var pos = replaceWithCaretFormat(target.dom(), formatNodes);\r\n editor.selection.setRng(pos.toRange());\r\n }\r\n };\r\n var deleteCaret$1 = function (editor, forward) {\r\n var rootElm = Element$$1.fromDom(editor.getBody());\r\n var startElm = Element$$1.fromDom(editor.selection.getStart());\r\n var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild$1);\r\n return last(parentInlines).map(function (target) {\r\n var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n if ($_8z75uj3sjkmcwkx3.willDeleteLastPositionInElement(forward, fromPos, target.dom())) {\r\n deleteLastPosition(forward, editor, target, parentInlines);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }).getOr(false);\r\n };\r\n var backspaceDelete$5 = function (editor, forward) {\r\n return editor.selection.isCollapsed() ? deleteCaret$1(editor, forward) : false;\r\n };\r\n var $_7tr96779jkmcwlpz = { backspaceDelete: backspaceDelete$5 };\r\n\r\n var executeKeydownOverride$1 = function (editor, caret, evt) {\r\n $_3olmgr77jkmcwlpj.execute([\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_1hyiiy41jkmcwl2z.backspaceDelete, editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_1hyiiy41jkmcwl2z.backspaceDelete, editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_dqvreg45jkmcwl4e.backspaceDelete, editor, caret, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_dqvreg45jkmcwl4e.backspaceDelete, editor, caret, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_5lrlvq4cjkmcwl5t.backspaceDelete, editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_5lrlvq4cjkmcwl5t.backspaceDelete, editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_egxtcx40jkmcwl2q.backspaceDelete, editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_egxtcx40jkmcwl2q.backspaceDelete, editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_1wrlyf3qjkmcwkwe.backspaceDelete, editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_1wrlyf3qjkmcwkwe.backspaceDelete, editor, true)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_7tr96779jkmcwlpz.backspaceDelete, editor, false)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_7tr96779jkmcwlpz.backspaceDelete, editor, true)\r\n }\r\n ], evt).each(function (_) {\r\n evt.preventDefault();\r\n });\r\n };\r\n var executeKeyupOverride = function (editor, evt) {\r\n $_3olmgr77jkmcwlpj.execute([\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.BACKSPACE,\r\n action: $_3olmgr77jkmcwlpj.action($_1hyiiy41jkmcwl2z.paddEmptyElement, editor)\r\n },\r\n {\r\n keyCode: $_6bj5795wjkmcwlg6.DELETE,\r\n action: $_3olmgr77jkmcwlpj.action($_1hyiiy41jkmcwl2z.paddEmptyElement, editor)\r\n }\r\n ], evt);\r\n };\r\n var setup$8 = function (editor, caret) {\r\n editor.on('keydown', function (evt) {\r\n if (evt.isDefaultPrevented() === false) {\r\n executeKeydownOverride$1(editor, caret, evt);\r\n }\r\n });\r\n editor.on('keyup', function (evt) {\r\n if (evt.isDefaultPrevented() === false) {\r\n executeKeyupOverride(editor, evt);\r\n }\r\n });\r\n };\r\n var $_4dsl7478jkmcwlpw = { setup: setup$8 };\r\n\r\n var firstNonWhiteSpaceNodeSibling = function (node) {\r\n while (node) {\r\n if (node.nodeType === 1 || node.nodeType === 3 && node.data && /[\\r\\n\\s]/.test(node.data)) {\r\n return node;\r\n }\r\n node = node.nextSibling;\r\n }\r\n };\r\n var moveToCaretPosition = function (editor, root) {\r\n var walker, node, rng, lastNode = root, tempElm;\r\n var dom = editor.dom;\r\n var moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\r\n if (!root) {\r\n return;\r\n }\r\n if (/^(LI|DT|DD)$/.test(root.nodeName)) {\r\n var firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\r\n if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\r\n root.insertBefore(dom.doc.createTextNode('\\xA0'), root.firstChild);\r\n }\r\n }\r\n rng = dom.createRng();\r\n root.normalize();\r\n if (root.hasChildNodes()) {\r\n walker = new TreeWalker(root, root);\r\n while (node = walker.current()) {\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n rng.setStart(node, 0);\r\n rng.setEnd(node, 0);\r\n break;\r\n }\r\n if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\r\n rng.setStartBefore(node);\r\n rng.setEndBefore(node);\r\n break;\r\n }\r\n lastNode = node;\r\n node = walker.next();\r\n }\r\n if (!node) {\r\n rng.setStart(lastNode, 0);\r\n rng.setEnd(lastNode, 0);\r\n }\r\n } else {\r\n if ($_bjermr1rjkmcwkij.isBr(root)) {\r\n if (root.nextSibling && dom.isBlock(root.nextSibling)) {\r\n rng.setStartBefore(root);\r\n rng.setEndBefore(root);\r\n } else {\r\n rng.setStartAfter(root);\r\n rng.setEndAfter(root);\r\n }\r\n } else {\r\n rng.setStart(root, 0);\r\n rng.setEnd(root, 0);\r\n }\r\n }\r\n editor.selection.setRng(rng);\r\n dom.remove(tempElm);\r\n editor.selection.scrollIntoView(root);\r\n };\r\n var getEditableRoot = function (dom, node) {\r\n var root = dom.getRoot();\r\n var parent, editableRoot;\r\n parent = node;\r\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\r\n if (dom.getContentEditable(parent) === 'true') {\r\n editableRoot = parent;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return parent !== root ? editableRoot : root;\r\n };\r\n var getParentBlock$2 = function (editor) {\r\n return Option.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\r\n };\r\n var getParentBlockName = function (editor) {\r\n return getParentBlock$2(editor).fold(constant(''), function (parentBlock) {\r\n return parentBlock.nodeName.toUpperCase();\r\n });\r\n };\r\n var isListItemParentBlock = function (editor) {\r\n return getParentBlock$2(editor).filter(function (elm) {\r\n return isListItem(Element$$1.fromDom(elm));\r\n }).isSome();\r\n };\r\n var $_79nvm87ejkmcwlqu = {\r\n moveToCaretPosition: moveToCaretPosition,\r\n getEditableRoot: getEditableRoot,\r\n getParentBlock: getParentBlock$2,\r\n getParentBlockName: getParentBlockName,\r\n isListItemParentBlock: isListItemParentBlock\r\n };\r\n\r\n var hasFirstChild = function (elm, name) {\r\n return elm.firstChild && elm.firstChild.nodeName === name;\r\n };\r\n var hasParent$1 = function (elm, parentName) {\r\n return elm && elm.parentNode && elm.parentNode.nodeName === parentName;\r\n };\r\n var isListBlock = function (elm) {\r\n return elm && /^(OL|UL|LI)$/.test(elm.nodeName);\r\n };\r\n var isNestedList = function (elm) {\r\n return isListBlock(elm) && isListBlock(elm.parentNode);\r\n };\r\n var getContainerBlock = function (containerBlock) {\r\n var containerBlockParent = containerBlock.parentNode;\r\n if (/^(LI|DT|DD)$/.test(containerBlockParent.nodeName)) {\r\n return containerBlockParent;\r\n }\r\n return containerBlock;\r\n };\r\n var isFirstOrLastLi = function (containerBlock, parentBlock, first) {\r\n var node = containerBlock[first ? 'firstChild' : 'lastChild'];\r\n while (node) {\r\n if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n break;\r\n }\r\n node = node[first ? 'nextSibling' : 'previousSibling'];\r\n }\r\n return node === parentBlock;\r\n };\r\n var insert$1 = function (editor, createNewBlock, containerBlock, parentBlock, newBlockName) {\r\n var dom = editor.dom;\r\n var rng = editor.selection.getRng();\r\n if (containerBlock === editor.getBody()) {\r\n return;\r\n }\r\n if (isNestedList(containerBlock)) {\r\n newBlockName = 'LI';\r\n }\r\n var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR');\r\n if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\r\n if (hasParent$1(containerBlock, 'LI')) {\r\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\r\n } else {\r\n dom.replace(newBlock, containerBlock);\r\n }\r\n } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\r\n if (hasParent$1(containerBlock, 'LI')) {\r\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\r\n newBlock.appendChild(dom.doc.createTextNode(' '));\r\n newBlock.appendChild(containerBlock);\r\n } else {\r\n containerBlock.parentNode.insertBefore(newBlock, containerBlock);\r\n }\r\n } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\r\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\r\n } else {\r\n containerBlock = getContainerBlock(containerBlock);\r\n var tmpRng = rng.cloneRange();\r\n tmpRng.setStartAfter(parentBlock);\r\n tmpRng.setEndAfter(containerBlock);\r\n var fragment = tmpRng.extractContents();\r\n if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\r\n newBlock = fragment.firstChild;\r\n dom.insertAfter(fragment, containerBlock);\r\n } else {\r\n dom.insertAfter(fragment, containerBlock);\r\n dom.insertAfter(newBlock, containerBlock);\r\n }\r\n }\r\n dom.remove(parentBlock);\r\n $_79nvm87ejkmcwlqu.moveToCaretPosition(editor, newBlock);\r\n };\r\n var $_5ckamj7djkmcwlqo = { insert: insert$1 };\r\n\r\n var isEmptyAnchor = function (elm) {\r\n return elm && elm.nodeName === 'A' && $_4ujg4tljkmcwkbk.trim($_cadvcr2pjkmcwkph.trim(elm.innerText || elm.textContent)).length === 0;\r\n };\r\n var isTableCell$5 = function (node) {\r\n return node && /^(TD|TH|CAPTION)$/.test(node.nodeName);\r\n };\r\n var emptyBlock = function (elm) {\r\n elm.innerHTML = '
';\r\n };\r\n var containerAndSiblingName = function (container, nodeName) {\r\n return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\r\n };\r\n var canSplitBlock = function (dom, node) {\r\n return node && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.getContentEditable(node) !== 'true';\r\n };\r\n var trimInlineElementsOnLeftSideOfBlock = function (dom, nonEmptyElementsMap, block) {\r\n var node = block;\r\n var firstChilds = [];\r\n var i;\r\n if (!node) {\r\n return;\r\n }\r\n while (node = node.firstChild) {\r\n if (dom.isBlock(node)) {\r\n return;\r\n }\r\n if ($_bjermr1rjkmcwkij.isElement(node) && !nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\r\n firstChilds.push(node);\r\n }\r\n }\r\n i = firstChilds.length;\r\n while (i--) {\r\n node = firstChilds[i];\r\n if (!node.hasChildNodes() || node.firstChild === node.lastChild && node.firstChild.nodeValue === '') {\r\n dom.remove(node);\r\n } else {\r\n if (isEmptyAnchor(node)) {\r\n dom.remove(node);\r\n }\r\n }\r\n }\r\n };\r\n var normalizeZwspOffset = function (start, container, offset) {\r\n if ($_bjermr1rjkmcwkij.isText(container) === false) {\r\n return offset;\r\n } else if (start) {\r\n return offset === 1 && container.data.charAt(offset - 1) === $_cadvcr2pjkmcwkph.ZWSP ? 0 : offset;\r\n } else {\r\n return offset === container.data.length - 1 && container.data.charAt(offset) === $_cadvcr2pjkmcwkph.ZWSP ? container.data.length : offset;\r\n }\r\n };\r\n var includeZwspInRange = function (rng) {\r\n var newRng = rng.cloneRange();\r\n newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\r\n newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\r\n return newRng;\r\n };\r\n var trimLeadingLineBreaks = function (node) {\r\n do {\r\n if ($_bjermr1rjkmcwkij.isText(node)) {\r\n node.nodeValue = node.nodeValue.replace(/^[\\r\\n]+/, '');\r\n }\r\n node = node.firstChild;\r\n } while (node);\r\n };\r\n var getEditableRoot$1 = function (dom, node) {\r\n var root = dom.getRoot();\r\n var parent, editableRoot;\r\n parent = node;\r\n while (parent !== root && dom.getContentEditable(parent) !== 'false') {\r\n if (dom.getContentEditable(parent) === 'true') {\r\n editableRoot = parent;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return parent !== root ? editableRoot : root;\r\n };\r\n var setForcedBlockAttrs = function (editor, node) {\r\n var forcedRootBlockName = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\r\n editor.dom.setAttribs(node, $_2ycm1438jkmcwkta.getForcedRootBlockAttrs(editor));\r\n }\r\n };\r\n var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) {\r\n var newBlock, parentBlock, startNode, node, next, rootBlockName;\r\n var blockName = newBlockName || 'P';\r\n var dom = editor.dom, editableRoot = getEditableRoot$1(dom, container);\r\n parentBlock = dom.getParent(container, dom.isBlock);\r\n if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\r\n parentBlock = parentBlock || editableRoot;\r\n if (parentBlock === editor.getBody() || isTableCell$5(parentBlock)) {\r\n rootBlockName = parentBlock.nodeName.toLowerCase();\r\n } else {\r\n rootBlockName = parentBlock.parentNode.nodeName.toLowerCase();\r\n }\r\n if (!parentBlock.hasChildNodes()) {\r\n newBlock = dom.create(blockName);\r\n setForcedBlockAttrs(editor, newBlock);\r\n parentBlock.appendChild(newBlock);\r\n rng.setStart(newBlock, 0);\r\n rng.setEnd(newBlock, 0);\r\n return newBlock;\r\n }\r\n node = container;\r\n while (node.parentNode !== parentBlock) {\r\n node = node.parentNode;\r\n }\r\n while (node && !dom.isBlock(node)) {\r\n startNode = node;\r\n node = node.previousSibling;\r\n }\r\n if (startNode && editor.schema.isValidChild(rootBlockName, blockName.toLowerCase())) {\r\n newBlock = dom.create(blockName);\r\n setForcedBlockAttrs(editor, newBlock);\r\n startNode.parentNode.insertBefore(newBlock, startNode);\r\n node = startNode;\r\n while (node && !dom.isBlock(node)) {\r\n next = node.nextSibling;\r\n newBlock.appendChild(node);\r\n node = next;\r\n }\r\n rng.setStart(container, offset);\r\n rng.setEnd(container, offset);\r\n }\r\n }\r\n return container;\r\n };\r\n var addBrToBlockIfNeeded = function (dom, block) {\r\n var lastChild;\r\n block.normalize();\r\n lastChild = block.lastChild;\r\n if (!lastChild || /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\r\n dom.add(block, 'br');\r\n }\r\n };\r\n var insert$2 = function (editor, evt) {\r\n var tmpRng, editableRoot, container, offset, parentBlock, shiftKey;\r\n var newBlock, fragment, containerBlock, parentBlockName, containerBlockName, newBlockName, isAfterLastNodeInContainer;\r\n var dom = editor.dom;\r\n var schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\r\n var rng = editor.selection.getRng();\r\n var createNewBlock = function (name) {\r\n var node = container, block, clonedNode, caretNode;\r\n var textInlineElements = schema.getTextInlineElements();\r\n if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\r\n block = dom.create(name || newBlockName);\r\n setForcedBlockAttrs(editor, block);\r\n } else {\r\n block = parentBlock.cloneNode(false);\r\n }\r\n caretNode = block;\r\n if ($_2ycm1438jkmcwkta.shouldKeepStyles(editor) === false) {\r\n dom.setAttrib(block, 'style', null);\r\n dom.setAttrib(block, 'class', null);\r\n } else {\r\n do {\r\n if (textInlineElements[node.nodeName]) {\r\n if (isCaretNode(node)) {\r\n continue;\r\n }\r\n clonedNode = node.cloneNode(false);\r\n dom.setAttrib(clonedNode, 'id', '');\r\n if (block.hasChildNodes()) {\r\n clonedNode.appendChild(block.firstChild);\r\n block.appendChild(clonedNode);\r\n } else {\r\n caretNode = clonedNode;\r\n block.appendChild(clonedNode);\r\n }\r\n }\r\n } while ((node = node.parentNode) && node !== editableRoot);\r\n }\r\n emptyBlock(caretNode);\r\n return block;\r\n };\r\n var isCaretAtStartOrEndOfBlock = function (start) {\r\n var walker, node, name, normalizedOffset;\r\n normalizedOffset = normalizeZwspOffset(start, container, offset);\r\n if ($_bjermr1rjkmcwkij.isText(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.nodeValue.length)) {\r\n return false;\r\n }\r\n if (container.parentNode === parentBlock && isAfterLastNodeInContainer && !start) {\r\n return true;\r\n }\r\n if (start && $_bjermr1rjkmcwkij.isElement(container) && container === parentBlock.firstChild) {\r\n return true;\r\n }\r\n if (containerAndSiblingName(container, 'TABLE') || containerAndSiblingName(container, 'HR')) {\r\n return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\r\n }\r\n walker = new TreeWalker(container, parentBlock);\r\n if ($_bjermr1rjkmcwkij.isText(container)) {\r\n if (start && normalizedOffset === 0) {\r\n walker.prev();\r\n } else if (!start && normalizedOffset === container.nodeValue.length) {\r\n walker.next();\r\n }\r\n }\r\n while (node = walker.current()) {\r\n if ($_bjermr1rjkmcwkij.isElement(node)) {\r\n if (!node.getAttribute('data-mce-bogus')) {\r\n name = node.nodeName.toLowerCase();\r\n if (nonEmptyElementsMap[name] && name !== 'br') {\r\n return false;\r\n }\r\n }\r\n } else if ($_bjermr1rjkmcwkij.isText(node) && !/^[ \\t\\r\\n]*$/.test(node.nodeValue)) {\r\n return false;\r\n }\r\n if (start) {\r\n walker.prev();\r\n } else {\r\n walker.next();\r\n }\r\n }\r\n return true;\r\n };\r\n var insertNewBlockAfter = function () {\r\n if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\r\n newBlock = createNewBlock(newBlockName);\r\n } else {\r\n newBlock = createNewBlock();\r\n }\r\n if ($_2ycm1438jkmcwkta.shouldEndContainerOnEmptyBlock(editor) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock)) {\r\n newBlock = dom.split(containerBlock, parentBlock);\r\n } else {\r\n dom.insertAfter(newBlock, parentBlock);\r\n }\r\n $_79nvm87ejkmcwlqu.moveToCaretPosition(editor, newBlock);\r\n };\r\n $_21c07i4jjkmcwl7w.normalize(dom, rng).each(function (normRng) {\r\n rng.setStart(normRng.startContainer, normRng.startOffset);\r\n rng.setEnd(normRng.endContainer, normRng.endOffset);\r\n });\r\n container = rng.startContainer;\r\n offset = rng.startOffset;\r\n newBlockName = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n shiftKey = evt.shiftKey;\r\n if ($_bjermr1rjkmcwkij.isElement(container) && container.hasChildNodes()) {\r\n isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\r\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\r\n if (isAfterLastNodeInContainer && $_bjermr1rjkmcwkij.isText(container)) {\r\n offset = container.nodeValue.length;\r\n } else {\r\n offset = 0;\r\n }\r\n }\r\n editableRoot = getEditableRoot$1(dom, container);\r\n if (!editableRoot) {\r\n return;\r\n }\r\n if (newBlockName && !shiftKey || !newBlockName && shiftKey) {\r\n container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\r\n }\r\n parentBlock = dom.getParent(container, dom.isBlock);\r\n containerBlock = parentBlock ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\r\n parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\r\n containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\r\n if (containerBlockName === 'LI' && !evt.ctrlKey) {\r\n parentBlock = containerBlock;\r\n containerBlock = containerBlock.parentNode;\r\n parentBlockName = containerBlockName;\r\n }\r\n if (/^(LI|DT|DD)$/.test(parentBlockName)) {\r\n if (dom.isEmpty(parentBlock)) {\r\n $_5ckamj7djkmcwlqo.insert(editor, createNewBlock, containerBlock, parentBlock, newBlockName);\r\n return;\r\n }\r\n }\r\n if (newBlockName && parentBlock === editor.getBody()) {\r\n return;\r\n }\r\n newBlockName = newBlockName || 'P';\r\n if (isCaretContainerBlock(parentBlock)) {\r\n newBlock = showCaretContainerBlock(parentBlock);\r\n if (dom.isEmpty(parentBlock)) {\r\n emptyBlock(parentBlock);\r\n }\r\n $_79nvm87ejkmcwlqu.moveToCaretPosition(editor, newBlock);\r\n } else if (isCaretAtStartOrEndOfBlock()) {\r\n insertNewBlockAfter();\r\n } else if (isCaretAtStartOrEndOfBlock(true)) {\r\n newBlock = parentBlock.parentNode.insertBefore(createNewBlock(), parentBlock);\r\n $_79nvm87ejkmcwlqu.moveToCaretPosition(editor, containerAndSiblingName(parentBlock, 'HR') ? newBlock : parentBlock);\r\n } else {\r\n tmpRng = includeZwspInRange(rng).cloneRange();\r\n tmpRng.setEndAfter(parentBlock);\r\n fragment = tmpRng.extractContents();\r\n trimLeadingLineBreaks(fragment);\r\n newBlock = fragment.firstChild;\r\n dom.insertAfter(fragment, parentBlock);\r\n trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\r\n addBrToBlockIfNeeded(dom, parentBlock);\r\n if (dom.isEmpty(parentBlock)) {\r\n emptyBlock(parentBlock);\r\n }\r\n newBlock.normalize();\r\n if (dom.isEmpty(newBlock)) {\r\n dom.remove(newBlock);\r\n insertNewBlockAfter();\r\n } else {\r\n $_79nvm87ejkmcwlqu.moveToCaretPosition(editor, newBlock);\r\n }\r\n }\r\n dom.setAttrib(newBlock, 'id', '');\r\n editor.fire('NewBlock', { newBlock: newBlock });\r\n };\r\n var $_dr0y3j7cjkmcwlqe = { insert: insert$2 };\r\n\r\n var matchesSelector = function (editor, selector) {\r\n return $_79nvm87ejkmcwlqu.getParentBlock(editor).filter(function (parentBlock) {\r\n return selector.length > 0 && $_4jv6d81gjkmcwkgv.is(Element$$1.fromDom(parentBlock), selector);\r\n }).isSome();\r\n };\r\n var shouldInsertBr = function (editor) {\r\n return matchesSelector(editor, $_2ycm1438jkmcwkta.getBrNewLineSelector(editor));\r\n };\r\n var shouldBlockNewLine = function (editor) {\r\n return matchesSelector(editor, $_2ycm1438jkmcwkta.getNoNewLineSelector(editor));\r\n };\r\n var $_g7oj6o7gjkmcwlr8 = {\r\n shouldInsertBr: shouldInsertBr,\r\n shouldBlockNewLine: shouldBlockNewLine\r\n };\r\n\r\n var newLineAction = Adt.generate([\r\n { br: [] },\r\n { block: [] },\r\n { none: [] }\r\n ]);\r\n var shouldBlockNewLine$1 = function (editor, shiftKey) {\r\n return $_g7oj6o7gjkmcwlr8.shouldBlockNewLine(editor);\r\n };\r\n var isBrMode = function (requiredState) {\r\n return function (editor, shiftKey) {\r\n var brMode = $_2ycm1438jkmcwkta.getForcedRootBlock(editor) === '';\r\n return brMode === requiredState;\r\n };\r\n };\r\n var inListBlock = function (requiredState) {\r\n return function (editor, shiftKey) {\r\n return $_79nvm87ejkmcwlqu.isListItemParentBlock(editor) === requiredState;\r\n };\r\n };\r\n var inBlock = function (blockName, requiredState) {\r\n return function (editor, shiftKey) {\r\n var state = $_79nvm87ejkmcwlqu.getParentBlockName(editor) === blockName.toUpperCase();\r\n return state === requiredState;\r\n };\r\n };\r\n var inPreBlock = function (requiredState) {\r\n return inBlock('pre', requiredState);\r\n };\r\n var inSummaryBlock = function () {\r\n return inBlock('summary', true);\r\n };\r\n var shouldPutBrInPre$1 = function (requiredState) {\r\n return function (editor, shiftKey) {\r\n return $_2ycm1438jkmcwkta.shouldPutBrInPre(editor) === requiredState;\r\n };\r\n };\r\n var inBrContext = function (editor, shiftKey) {\r\n return $_g7oj6o7gjkmcwlr8.shouldInsertBr(editor);\r\n };\r\n var hasShiftKey = function (editor, shiftKey) {\r\n return shiftKey;\r\n };\r\n var canInsertIntoEditableRoot = function (editor) {\r\n var forcedRootBlock = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n var rootEditable = $_79nvm87ejkmcwlqu.getEditableRoot(editor.dom, editor.selection.getStart());\r\n return rootEditable && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock ? forcedRootBlock : 'P');\r\n };\r\n var match$2 = function (predicates, action) {\r\n return function (editor, shiftKey) {\r\n var isMatch = foldl(predicates, function (res, p) {\r\n return res && p(editor, shiftKey);\r\n }, true);\r\n return isMatch ? Option.some(action) : Option.none();\r\n };\r\n };\r\n var getAction$1 = function (editor, evt) {\r\n return $_8hyv6o49jkmcwl58.evaluateUntil([\r\n match$2([shouldBlockNewLine$1], newLineAction.none()),\r\n match$2([inSummaryBlock()], newLineAction.br()),\r\n match$2([\r\n inPreBlock(true),\r\n shouldPutBrInPre$1(false),\r\n hasShiftKey\r\n ], newLineAction.br()),\r\n match$2([\r\n inPreBlock(true),\r\n shouldPutBrInPre$1(false)\r\n ], newLineAction.block()),\r\n match$2([\r\n inPreBlock(true),\r\n shouldPutBrInPre$1(true),\r\n hasShiftKey\r\n ], newLineAction.block()),\r\n match$2([\r\n inPreBlock(true),\r\n shouldPutBrInPre$1(true)\r\n ], newLineAction.br()),\r\n match$2([\r\n inListBlock(true),\r\n hasShiftKey\r\n ], newLineAction.br()),\r\n match$2([inListBlock(true)], newLineAction.block()),\r\n match$2([\r\n isBrMode(true),\r\n hasShiftKey,\r\n canInsertIntoEditableRoot\r\n ], newLineAction.block()),\r\n match$2([isBrMode(true)], newLineAction.br()),\r\n match$2([inBrContext], newLineAction.br()),\r\n match$2([\r\n isBrMode(false),\r\n hasShiftKey\r\n ], newLineAction.br()),\r\n match$2([canInsertIntoEditableRoot], newLineAction.block())\r\n ], [\r\n editor,\r\n evt.shiftKey\r\n ]).getOr(newLineAction.none());\r\n };\r\n var $_47r1sh7fjkmcwlr1 = { getAction: getAction$1 };\r\n\r\n var insert$3 = function (editor, evt) {\r\n $_47r1sh7fjkmcwlr1.getAction(editor, evt).fold(function () {\r\n $_dc07up4ijkmcwl7n.insert(editor, evt);\r\n }, function () {\r\n $_dr0y3j7cjkmcwlqe.insert(editor, evt);\r\n }, noop);\r\n };\r\n var $_fs2ah67bjkmcwlq8 = { insert: insert$3 };\r\n\r\n var endTypingLevel = function (undoManager) {\r\n if (undoManager.typing) {\r\n undoManager.typing = false;\r\n undoManager.add();\r\n }\r\n };\r\n var handleEnterKeyEvent = function (editor, event) {\r\n if (event.isDefaultPrevented()) {\r\n return;\r\n }\r\n event.preventDefault();\r\n endTypingLevel(editor.undoManager);\r\n editor.undoManager.transact(function () {\r\n if (editor.selection.isCollapsed() === false) {\r\n editor.execCommand('Delete');\r\n }\r\n $_fs2ah67bjkmcwlq8.insert(editor, event);\r\n });\r\n };\r\n var setup$9 = function (editor) {\r\n editor.on('keydown', function (event) {\r\n if (event.keyCode === $_6bj5795wjkmcwlg6.ENTER) {\r\n handleEnterKeyEvent(editor, event);\r\n }\r\n });\r\n };\r\n var $_ni5l67ajkmcwlq7 = { setup: setup$9 };\r\n\r\n var isValidInsertPoint = function (location, caretPosition) {\r\n return isAtStartOrEnd(location) && $_bjermr1rjkmcwkij.isText(caretPosition.container());\r\n };\r\n var insertNbspAtPosition = function (editor, caretPosition) {\r\n var container = caretPosition.container();\r\n var offset = caretPosition.offset();\r\n container.insertData(offset, '\\xA0');\r\n editor.selection.setCursorLocation(container, offset + 1);\r\n };\r\n var insertAtLocation = function (editor, caretPosition, location) {\r\n if (isValidInsertPoint(location, caretPosition)) {\r\n insertNbspAtPosition(editor, caretPosition);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var insertAtCaret$2 = function (editor) {\r\n var isInlineTarget = curry($_crqmqb3tjkmcwkxd.isInlineTarget, editor);\r\n var caretPosition = CaretPosition$1.fromRangeStart(editor.selection.getRng());\r\n var boundaryLocation = $_gau9ep48jkmcwl4x.readLocation(isInlineTarget, editor.getBody(), caretPosition);\r\n return boundaryLocation.map(curry(insertAtLocation, editor, caretPosition)).getOr(false);\r\n };\r\n var isAtStartOrEnd = function (location) {\r\n return location.fold(constant(false), constant(true), constant(true), constant(false));\r\n };\r\n var insertAtSelection = function (editor) {\r\n return editor.selection.isCollapsed() ? insertAtCaret$2(editor) : false;\r\n };\r\n var $_2cwo047ijkmcwlrj = { insertAtSelection: insertAtSelection };\r\n\r\n var executeKeydownOverride$2 = function (editor, evt) {\r\n $_3olmgr77jkmcwlpj.execute([{\r\n keyCode: $_6bj5795wjkmcwlg6.SPACEBAR,\r\n action: $_3olmgr77jkmcwlpj.action($_2cwo047ijkmcwlrj.insertAtSelection, editor)\r\n }], evt).each(function (_) {\r\n evt.preventDefault();\r\n });\r\n };\r\n var setup$10 = function (editor) {\r\n editor.on('keydown', function (evt) {\r\n if (evt.isDefaultPrevented() === false) {\r\n executeKeydownOverride$2(editor, evt);\r\n }\r\n });\r\n };\r\n var $_agfz917hjkmcwlrh = { setup: setup$10 };\r\n\r\n var findBlockCaretContainer = function (editor) {\r\n return $_4ki4d929jkmcwkmn.descendant(Element$$1.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) {\r\n return elm.dom();\r\n });\r\n };\r\n var removeIeControlRect = function (editor) {\r\n editor.selection.setRng(editor.selection.getRng());\r\n };\r\n var showBlockCaretContainer = function (editor, blockCaretContainer) {\r\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\r\n showCaretContainerBlock(blockCaretContainer);\r\n removeIeControlRect(editor);\r\n editor.selection.scrollIntoView(blockCaretContainer);\r\n }\r\n };\r\n var handleBlockContainer = function (editor, e) {\r\n var blockCaretContainer = findBlockCaretContainer(editor);\r\n if (!blockCaretContainer) {\r\n return;\r\n }\r\n if (e.type === 'compositionstart') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n showBlockCaretContainer(editor, blockCaretContainer);\r\n return;\r\n }\r\n if (hasContent(blockCaretContainer)) {\r\n showBlockCaretContainer(editor, blockCaretContainer);\r\n editor.undoManager.add();\r\n }\r\n };\r\n var setup$11 = function (editor) {\r\n editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\r\n };\r\n var $_gfp1h7jjkmcwlrn = { setup: setup$11 };\r\n\r\n var setup$12 = function (editor) {\r\n var caret = $_dl6t9m4ajkmcwl5b.setupSelectedState(editor);\r\n $_gfp1h7jjkmcwlrn.setup(editor);\r\n $_emza9w75jkmcwlp9.setup(editor, caret);\r\n $_4dsl7478jkmcwlpw.setup(editor, caret);\r\n $_ni5l67ajkmcwlq7.setup(editor);\r\n $_agfz917hjkmcwlrh.setup(editor);\r\n };\r\n var $_ejk8vk74jkmcwlp8 = { setup: setup$12 };\r\n\r\n function Quirks (editor) {\r\n var each = $_4ujg4tljkmcwkbk.each;\r\n var BACKSPACE = $_6bj5795wjkmcwlg6.BACKSPACE, DELETE = $_6bj5795wjkmcwlg6.DELETE, dom = editor.dom, selection = editor.selection, settings = editor.settings, parser = editor.parser;\r\n var isGecko = $_cvvl9iajkmcwk25.gecko, isIE = $_cvvl9iajkmcwk25.ie, isWebKit = $_cvvl9iajkmcwk25.webkit;\r\n var mceInternalUrlPrefix = 'data:text/mce-internal,';\r\n var mceInternalDataType = isIE ? 'Text' : 'URL';\r\n var setEditorCommandState = function (cmd, state) {\r\n try {\r\n editor.getDoc().execCommand(cmd, false, state);\r\n } catch (ex) {\r\n }\r\n };\r\n var isDefaultPrevented = function (e) {\r\n return e.isDefaultPrevented();\r\n };\r\n var setMceInternalContent = function (e) {\r\n var selectionHtml, internalContent;\r\n if (e.dataTransfer) {\r\n if (editor.selection.isCollapsed() && e.target.tagName === 'IMG') {\r\n selection.select(e.target);\r\n }\r\n selectionHtml = editor.selection.getContent();\r\n if (selectionHtml.length > 0) {\r\n internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml);\r\n e.dataTransfer.setData(mceInternalDataType, internalContent);\r\n }\r\n }\r\n };\r\n var getMceInternalContent = function (e) {\r\n var internalContent;\r\n if (e.dataTransfer) {\r\n internalContent = e.dataTransfer.getData(mceInternalDataType);\r\n if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) {\r\n internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(',');\r\n return {\r\n id: unescape(internalContent[0]),\r\n html: unescape(internalContent[1])\r\n };\r\n }\r\n }\r\n return null;\r\n };\r\n var insertClipboardContents = function (content, internal) {\r\n if (editor.queryCommandSupported('mceInsertClipboardContent')) {\r\n editor.execCommand('mceInsertClipboardContent', false, {\r\n content: content,\r\n internal: internal\r\n });\r\n } else {\r\n editor.execCommand('mceInsertContent', false, content);\r\n }\r\n };\r\n var emptyEditorWhenDeleting = function () {\r\n var serializeRng = function (rng) {\r\n var body = dom.create('body');\r\n var contents = rng.cloneContents();\r\n body.appendChild(contents);\r\n return selection.serializer.serialize(body, { format: 'html' });\r\n };\r\n var allContentsSelected = function (rng) {\r\n var selection = serializeRng(rng);\r\n var allRng = dom.createRng();\r\n allRng.selectNode(editor.getBody());\r\n var allSelection = serializeRng(allRng);\r\n return selection === allSelection;\r\n };\r\n editor.on('keydown', function (e) {\r\n var keyCode = e.keyCode;\r\n var isCollapsed, body;\r\n if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE)) {\r\n isCollapsed = editor.selection.isCollapsed();\r\n body = editor.getBody();\r\n if (isCollapsed && !dom.isEmpty(body)) {\r\n return;\r\n }\r\n if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\r\n return;\r\n }\r\n e.preventDefault();\r\n editor.setContent('');\r\n if (body.firstChild && dom.isBlock(body.firstChild)) {\r\n editor.selection.setCursorLocation(body.firstChild, 0);\r\n } else {\r\n editor.selection.setCursorLocation(body, 0);\r\n }\r\n editor.nodeChanged();\r\n }\r\n });\r\n };\r\n var selectAll = function () {\r\n editor.shortcuts.add('meta+a', null, 'SelectAll');\r\n };\r\n var inputMethodFocus = function () {\r\n if (!editor.settings.content_editable) {\r\n dom.bind(editor.getDoc(), 'mousedown mouseup', function (e) {\r\n var rng;\r\n if (e.target === editor.getDoc().documentElement) {\r\n rng = selection.getRng();\r\n editor.getBody().focus();\r\n if (e.type === 'mousedown') {\r\n if (isCaretContainer(rng.startContainer)) {\r\n return;\r\n }\r\n selection.placeCaretAt(e.clientX, e.clientY);\r\n } else {\r\n selection.setRng(rng);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n var removeHrOnBackspace = function () {\r\n editor.on('keydown', function (e) {\r\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\r\n if (!editor.getBody().getElementsByTagName('hr').length) {\r\n return;\r\n }\r\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\r\n var node = selection.getNode();\r\n var previousSibling = node.previousSibling;\r\n if (node.nodeName === 'HR') {\r\n dom.remove(node);\r\n e.preventDefault();\r\n return;\r\n }\r\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\r\n dom.remove(previousSibling);\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n });\r\n };\r\n var focusBody = function () {\r\n if (!Range.prototype.getClientRects) {\r\n editor.on('mousedown', function (e) {\r\n if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\r\n var body_1 = editor.getBody();\r\n body_1.blur();\r\n $_3l01gcijkmcwk99.setEditorTimeout(editor, function () {\r\n body_1.focus();\r\n });\r\n }\r\n });\r\n }\r\n };\r\n var selectControlElements = function () {\r\n editor.on('click', function (e) {\r\n var target = e.target;\r\n if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== 'false') {\r\n e.preventDefault();\r\n editor.selection.select(target);\r\n editor.nodeChanged();\r\n }\r\n if (target.nodeName === 'A' && dom.hasClass(target, 'mce-item-anchor')) {\r\n e.preventDefault();\r\n selection.select(target);\r\n }\r\n });\r\n };\r\n var removeStylesWhenDeletingAcrossBlockElements = function () {\r\n var getAttributeApplyFunction = function () {\r\n var template = dom.getAttribs(selection.getStart().cloneNode(false));\r\n return function () {\r\n var target = selection.getStart();\r\n if (target !== editor.getBody()) {\r\n dom.setAttrib(target, 'style', null);\r\n each(template, function (attr) {\r\n target.setAttributeNode(attr.cloneNode(true));\r\n });\r\n }\r\n };\r\n };\r\n var isSelectionAcrossElements = function () {\r\n return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\r\n };\r\n editor.on('keypress', function (e) {\r\n var applyAttributes;\r\n if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\r\n applyAttributes = getAttributeApplyFunction();\r\n editor.getDoc().execCommand('delete', false, null);\r\n applyAttributes();\r\n e.preventDefault();\r\n return false;\r\n }\r\n });\r\n dom.bind(editor.getDoc(), 'cut', function (e) {\r\n var applyAttributes;\r\n if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\r\n applyAttributes = getAttributeApplyFunction();\r\n $_3l01gcijkmcwk99.setEditorTimeout(editor, function () {\r\n applyAttributes();\r\n });\r\n }\r\n });\r\n };\r\n var disableBackspaceIntoATable = function () {\r\n editor.on('keydown', function (e) {\r\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\r\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\r\n var previousSibling = selection.getNode().previousSibling;\r\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n var removeBlockQuoteOnBackSpace = function () {\r\n editor.on('keydown', function (e) {\r\n var rng, container, offset, root, parent$$1;\r\n if (isDefaultPrevented(e) || e.keyCode !== $_6bj5795wjkmcwlg6.BACKSPACE) {\r\n return;\r\n }\r\n rng = selection.getRng();\r\n container = rng.startContainer;\r\n offset = rng.startOffset;\r\n root = dom.getRoot();\r\n parent$$1 = container;\r\n if (!rng.collapsed || offset !== 0) {\r\n return;\r\n }\r\n while (parent$$1 && parent$$1.parentNode && parent$$1.parentNode.firstChild === parent$$1 && parent$$1.parentNode !== root) {\r\n parent$$1 = parent$$1.parentNode;\r\n }\r\n if (parent$$1.tagName === 'BLOCKQUOTE') {\r\n editor.formatter.toggle('blockquote', null, parent$$1);\r\n rng = dom.createRng();\r\n rng.setStart(container, 0);\r\n rng.setEnd(container, 0);\r\n selection.setRng(rng);\r\n }\r\n });\r\n };\r\n var setGeckoEditingOptions = function () {\r\n var setOpts = function () {\r\n setEditorCommandState('StyleWithCSS', false);\r\n setEditorCommandState('enableInlineTableEditing', false);\r\n if (!settings.object_resizing) {\r\n setEditorCommandState('enableObjectResizing', false);\r\n }\r\n };\r\n if (!settings.readonly) {\r\n editor.on('BeforeExecCommand MouseDown', setOpts);\r\n }\r\n };\r\n var addBrAfterLastLinks = function () {\r\n var fixLinks = function () {\r\n each(dom.select('a'), function (node) {\r\n var parentNode = node.parentNode;\r\n var root = dom.getRoot();\r\n if (parentNode.lastChild === node) {\r\n while (parentNode && !dom.isBlock(parentNode)) {\r\n if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) {\r\n return;\r\n }\r\n parentNode = parentNode.parentNode;\r\n }\r\n dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\r\n }\r\n });\r\n };\r\n editor.on('SetContent ExecCommand', function (e) {\r\n if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\r\n fixLinks();\r\n }\r\n });\r\n };\r\n var setDefaultBlockType = function () {\r\n if (settings.forced_root_block) {\r\n editor.on('init', function () {\r\n setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block);\r\n });\r\n }\r\n };\r\n var normalizeSelection = function () {\r\n editor.on('keyup focusin mouseup', function (e) {\r\n if (!$_6bj5795wjkmcwlg6.modifierPressed(e)) {\r\n selection.normalize();\r\n }\r\n }, true);\r\n };\r\n var showBrokenImageIcon = function () {\r\n editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\r\n };\r\n var restoreFocusOnKeyDown = function () {\r\n if (!editor.inline) {\r\n editor.on('keydown', function () {\r\n if (document.activeElement === document.body) {\r\n editor.getWin().focus();\r\n }\r\n });\r\n }\r\n };\r\n var bodyHeight = function () {\r\n if (!editor.inline) {\r\n editor.contentStyles.push('body {min-height: 150px}');\r\n editor.on('click', function (e) {\r\n var rng;\r\n if (e.target.nodeName === 'HTML') {\r\n if ($_cvvl9iajkmcwk25.ie > 11) {\r\n editor.getBody().focus();\r\n return;\r\n }\r\n rng = editor.selection.getRng();\r\n editor.getBody().focus();\r\n editor.selection.setRng(rng);\r\n editor.selection.normalize();\r\n editor.nodeChanged();\r\n }\r\n });\r\n }\r\n };\r\n var blockCmdArrowNavigation = function () {\r\n if ($_cvvl9iajkmcwk25.mac) {\r\n editor.on('keydown', function (e) {\r\n if ($_6bj5795wjkmcwlg6.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\r\n e.preventDefault();\r\n editor.selection.getSel().modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\r\n }\r\n });\r\n }\r\n };\r\n var disableAutoUrlDetect = function () {\r\n setEditorCommandState('AutoUrlDetect', false);\r\n };\r\n var tapLinksAndImages = function () {\r\n editor.on('click', function (e) {\r\n var elm = e.target;\r\n do {\r\n if (elm.tagName === 'A') {\r\n e.preventDefault();\r\n return;\r\n }\r\n } while (elm = elm.parentNode);\r\n });\r\n editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\r\n };\r\n var blockFormSubmitInsideEditor = function () {\r\n editor.on('init', function () {\r\n editor.dom.bind(editor.getBody(), 'submit', function (e) {\r\n e.preventDefault();\r\n });\r\n });\r\n };\r\n var removeAppleInterchangeBrs = function () {\r\n parser.addNodeFilter('br', function (nodes) {\r\n var i = nodes.length;\r\n while (i--) {\r\n if (nodes[i].attr('class') === 'Apple-interchange-newline') {\r\n nodes[i].remove();\r\n }\r\n }\r\n });\r\n };\r\n var ieInternalDragAndDrop = function () {\r\n editor.on('dragstart', function (e) {\r\n setMceInternalContent(e);\r\n });\r\n editor.on('drop', function (e) {\r\n if (!isDefaultPrevented(e)) {\r\n var internalContent = getMceInternalContent(e);\r\n if (internalContent && internalContent.id !== editor.id) {\r\n e.preventDefault();\r\n var rng = $_52q21w6wjkmcwlna.fromPoint(e.x, e.y, editor.getDoc());\r\n selection.setRng(rng);\r\n insertClipboardContents(internalContent.html, true);\r\n }\r\n }\r\n });\r\n };\r\n var refreshContentEditable = function () {\r\n };\r\n var isHidden = function () {\r\n var sel;\r\n if (!isGecko || editor.removed) {\r\n return 0;\r\n }\r\n sel = editor.selection.getSel();\r\n return !sel || !sel.rangeCount || sel.rangeCount === 0;\r\n };\r\n removeBlockQuoteOnBackSpace();\r\n emptyEditorWhenDeleting();\r\n if (!$_cvvl9iajkmcwk25.windowsPhone) {\r\n normalizeSelection();\r\n }\r\n if (isWebKit) {\r\n inputMethodFocus();\r\n selectControlElements();\r\n setDefaultBlockType();\r\n blockFormSubmitInsideEditor();\r\n disableBackspaceIntoATable();\r\n removeAppleInterchangeBrs();\r\n if ($_cvvl9iajkmcwk25.iOS) {\r\n restoreFocusOnKeyDown();\r\n bodyHeight();\r\n tapLinksAndImages();\r\n } else {\r\n selectAll();\r\n }\r\n }\r\n if ($_cvvl9iajkmcwk25.ie >= 11) {\r\n bodyHeight();\r\n disableBackspaceIntoATable();\r\n }\r\n if ($_cvvl9iajkmcwk25.ie) {\r\n selectAll();\r\n disableAutoUrlDetect();\r\n ieInternalDragAndDrop();\r\n }\r\n if (isGecko) {\r\n removeHrOnBackspace();\r\n focusBody();\r\n removeStylesWhenDeletingAcrossBlockElements();\r\n setGeckoEditingOptions();\r\n addBrAfterLastLinks();\r\n showBrokenImageIcon();\r\n blockCmdArrowNavigation();\r\n disableBackspaceIntoATable();\r\n }\r\n return {\r\n refreshContentEditable: refreshContentEditable,\r\n isHidden: isHidden\r\n };\r\n }\r\n\r\n var isTextBlockNode = function (node) {\r\n return $_bjermr1rjkmcwkij.isElement(node) && isTextBlock(Element$$1.fromDom(node));\r\n };\r\n var normalizeSelection$1 = function (editor) {\r\n var rng = editor.selection.getRng();\r\n var startPos = CaretPosition.fromRangeStart(rng);\r\n var endPos = CaretPosition.fromRangeEnd(rng);\r\n if (CaretPosition.isElementPosition(startPos)) {\r\n var container = startPos.container();\r\n if (isTextBlockNode(container)) {\r\n $_1m3f3j2yjkmcwkqg.firstPositionIn(container).each(function (pos) {\r\n return rng.setStart(pos.container(), pos.offset());\r\n });\r\n }\r\n }\r\n if (CaretPosition.isElementPosition(endPos)) {\r\n var container = startPos.container();\r\n if (isTextBlockNode(container)) {\r\n $_1m3f3j2yjkmcwkqg.lastPositionIn(container).each(function (pos) {\r\n return rng.setEnd(pos.container(), pos.offset());\r\n });\r\n }\r\n }\r\n editor.selection.setRng($_bx30le3ojkmcwkw9.normalize(rng));\r\n };\r\n var setup$13 = function (editor) {\r\n editor.on('click', function (e) {\r\n if (e.detail >= 3) {\r\n normalizeSelection$1(editor);\r\n }\r\n });\r\n };\r\n\r\n var preventSummaryToggle = function (editor) {\r\n editor.on('click', function (e) {\r\n if (editor.dom.getParent(e.target, 'details')) {\r\n e.preventDefault();\r\n }\r\n });\r\n };\r\n var filterDetails = function (editor) {\r\n editor.parser.addNodeFilter('details', function (elms) {\r\n each(elms, function (details) {\r\n details.attr('data-mce-open', details.attr('open'));\r\n details.attr('open', 'open');\r\n });\r\n });\r\n editor.serializer.addNodeFilter('details', function (elms) {\r\n each(elms, function (details) {\r\n var open = details.attr('data-mce-open');\r\n details.attr('open', isString(open) ? open : null);\r\n details.attr('data-mce-open', null);\r\n });\r\n });\r\n };\r\n var setup$14 = function (editor) {\r\n preventSummaryToggle(editor);\r\n filterDetails(editor);\r\n };\r\n\r\n var DOM$2 = DOMUtils$1.DOM;\r\n var appendStyle = function (editor, text) {\r\n var head = Element$$1.fromDom(editor.getDoc().head);\r\n var tag = Element$$1.fromTag('style');\r\n $_29helg15jkmcwkf0.set(tag, 'type', 'text/css');\r\n $_f4qt4v1yjkmcwkl2.append(tag, Element$$1.fromText(text));\r\n $_f4qt4v1yjkmcwkl2.append(head, tag);\r\n };\r\n var createParser = function (editor) {\r\n var parser = DomParser(editor.settings, editor.schema);\r\n parser.addAttributeFilter('src,href,style,tabindex', function (nodes, name$$1) {\r\n var i = nodes.length, node;\r\n var dom = editor.dom;\r\n var value, internalName;\r\n while (i--) {\r\n node = nodes[i];\r\n value = node.attr(name$$1);\r\n internalName = 'data-mce-' + name$$1;\r\n if (!node.attributes.map[internalName]) {\r\n if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\r\n continue;\r\n }\r\n if (name$$1 === 'style') {\r\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\r\n if (!value.length) {\r\n value = null;\r\n }\r\n node.attr(internalName, value);\r\n node.attr(name$$1, value);\r\n } else if (name$$1 === 'tabindex') {\r\n node.attr(internalName, value);\r\n node.attr(name$$1, null);\r\n } else {\r\n node.attr(internalName, editor.convertURL(value, name$$1, node.name));\r\n }\r\n }\r\n }\r\n });\r\n parser.addNodeFilter('script', function (nodes) {\r\n var i = nodes.length, node, type;\r\n while (i--) {\r\n node = nodes[i];\r\n type = node.attr('type') || 'no/type';\r\n if (type.indexOf('mce-') !== 0) {\r\n node.attr('type', 'mce-' + type);\r\n }\r\n }\r\n });\r\n parser.addNodeFilter('#cdata', function (nodes) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n node.type = 8;\r\n node.name = '#comment';\r\n node.value = '[CDATA[' + node.value + ']]';\r\n }\r\n });\r\n parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', function (nodes) {\r\n var i = nodes.length, node;\r\n var nonEmptyElements = editor.schema.getNonEmptyElements();\r\n while (i--) {\r\n node = nodes[i];\r\n if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\r\n node.append(new Node$2('br', 1)).shortEnded = true;\r\n }\r\n }\r\n });\r\n return parser;\r\n };\r\n var autoFocus = function (editor) {\r\n if (editor.settings.auto_focus) {\r\n $_3l01gcijkmcwk99.setEditorTimeout(editor, function () {\r\n var focusEditor;\r\n if (editor.settings.auto_focus === true) {\r\n focusEditor = editor;\r\n } else {\r\n focusEditor = editor.editorManager.get(editor.settings.auto_focus);\r\n }\r\n if (!focusEditor.destroyed) {\r\n focusEditor.focus();\r\n }\r\n }, 100);\r\n }\r\n };\r\n var initEditor = function (editor) {\r\n editor.bindPendingEventDelegates();\r\n editor.initialized = true;\r\n editor.fire('init');\r\n editor.focus(true);\r\n editor.nodeChanged({ initial: true });\r\n editor.execCallback('init_instance_callback', editor);\r\n autoFocus(editor);\r\n };\r\n var getStyleSheetLoader = function (editor) {\r\n return editor.inline ? DOM$2.styleSheetLoader : editor.dom.styleSheetLoader;\r\n };\r\n var initContentBody = function (editor, skipWrite) {\r\n var settings = editor.settings;\r\n var targetElm = editor.getElement();\r\n var doc = editor.getDoc(), body, contentCssText;\r\n if (!settings.inline) {\r\n editor.getElement().style.visibility = editor.orgVisibility;\r\n }\r\n if (!skipWrite && !settings.content_editable) {\r\n doc.open();\r\n doc.write(editor.iframeHTML);\r\n doc.close();\r\n }\r\n if (settings.content_editable) {\r\n editor.on('remove', function () {\r\n var bodyEl = this.getBody();\r\n DOM$2.removeClass(bodyEl, 'mce-content-body');\r\n DOM$2.removeClass(bodyEl, 'mce-edit-focus');\r\n DOM$2.setAttrib(bodyEl, 'contentEditable', null);\r\n });\r\n DOM$2.addClass(targetElm, 'mce-content-body');\r\n editor.contentDocument = doc = settings.content_document || document;\r\n editor.contentWindow = settings.content_window || window;\r\n editor.bodyElement = targetElm;\r\n settings.content_document = settings.content_window = null;\r\n settings.root_name = targetElm.nodeName.toLowerCase();\r\n }\r\n body = editor.getBody();\r\n body.disabled = true;\r\n editor.readonly = settings.readonly;\r\n if (!editor.readonly) {\r\n if (editor.inline && DOM$2.getStyle(body, 'position', true) === 'static') {\r\n body.style.position = 'relative';\r\n }\r\n body.contentEditable = editor.getParam('content_editable_state', true);\r\n }\r\n body.disabled = false;\r\n editor.editorUpload = EditorUpload(editor);\r\n editor.schema = Schema(settings);\r\n editor.dom = DOMUtils$1(doc, {\r\n keep_values: true,\r\n url_converter: editor.convertURL,\r\n url_converter_scope: editor,\r\n hex_colors: settings.force_hex_style_colors,\r\n class_filter: settings.class_filter,\r\n update_styles: true,\r\n root_element: editor.inline ? editor.getBody() : null,\r\n collect: settings.content_editable,\r\n schema: editor.schema,\r\n onSetAttrib: function (e) {\r\n editor.fire('SetAttrib', e);\r\n }\r\n });\r\n editor.parser = createParser(editor);\r\n editor.serializer = DomSerializer$1(settings, editor);\r\n editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor);\r\n editor.annotator = Annotator(editor);\r\n editor.formatter = Formatter(editor);\r\n editor.undoManager = UndoManager(editor);\r\n editor._nodeChangeDispatcher = new NodeChange(editor);\r\n editor._selectionOverrides = SelectionOverrides(editor);\r\n setup$14(editor);\r\n setup$13(editor);\r\n $_ejk8vk74jkmcwlp8.setup(editor);\r\n $_5utnj35ljkmcwldh.setup(editor);\r\n editor.fire('PreInit');\r\n if (!settings.browser_spellcheck && !settings.gecko_spellcheck) {\r\n doc.body.spellcheck = false;\r\n DOM$2.setAttrib(body, 'spellcheck', 'false');\r\n }\r\n editor.quirks = Quirks(editor);\r\n editor.fire('PostRender');\r\n if (settings.directionality) {\r\n body.dir = settings.directionality;\r\n }\r\n if (settings.nowrap) {\r\n body.style.whiteSpace = 'nowrap';\r\n }\r\n if (settings.protect) {\r\n editor.on('BeforeSetContent', function (e) {\r\n $_4ujg4tljkmcwkbk.each(settings.protect, function (pattern) {\r\n e.content = e.content.replace(pattern, function (str) {\r\n return '';\r\n });\r\n });\r\n });\r\n }\r\n editor.on('SetContent', function () {\r\n editor.addVisual(editor.getBody());\r\n });\r\n editor.load({\r\n initial: true,\r\n format: 'html'\r\n });\r\n editor.startContent = editor.getContent({ format: 'raw' });\r\n editor.on('compositionstart compositionend', function (e) {\r\n editor.composing = e.type === 'compositionstart';\r\n });\r\n if (editor.contentStyles.length > 0) {\r\n contentCssText = '';\r\n $_4ujg4tljkmcwkbk.each(editor.contentStyles, function (style) {\r\n contentCssText += style + '\\r\\n';\r\n });\r\n editor.dom.addStyle(contentCssText);\r\n }\r\n getStyleSheetLoader(editor).loadAll(editor.contentCSS, function (_) {\r\n initEditor(editor);\r\n }, function (urls) {\r\n initEditor(editor);\r\n });\r\n if (settings.content_style) {\r\n appendStyle(editor, settings.content_style);\r\n }\r\n };\r\n var $_fssayf58jkmcwlbz = { initContentBody: initContentBody };\r\n\r\n var DOM$3 = DOMUtils$1.DOM;\r\n var relaxDomain = function (editor, ifr) {\r\n if (document.domain !== window.location.hostname && $_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 12) {\r\n var bodyUuid = $_8flfjw5jjkmcwldd.uuid('mce');\r\n editor[bodyUuid] = function () {\r\n $_fssayf58jkmcwlbz.initContentBody(editor);\r\n };\r\n var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain=\"' + document.domain + '\";' + 'var ed = window.parent.tinymce.get(\"' + editor.id + '\");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()';\r\n DOM$3.setAttrib(ifr, 'src', domainRelaxUrl);\r\n return true;\r\n }\r\n return false;\r\n };\r\n var normalizeHeight = function (height) {\r\n var normalizedHeight = typeof height === 'number' ? height + 'px' : height;\r\n return normalizedHeight ? normalizedHeight : '';\r\n };\r\n var createIframeElement = function (id, title, height, customAttrs) {\r\n var iframe = Element$$1.fromTag('iframe');\r\n $_29helg15jkmcwkf0.setAll(iframe, customAttrs);\r\n $_29helg15jkmcwkf0.setAll(iframe, {\r\n id: id + '_ifr',\r\n frameBorder: '0',\r\n allowTransparency: 'true',\r\n title: title\r\n });\r\n $_4enzit13jkmcwke5.setAll(iframe, {\r\n width: '100%',\r\n height: normalizeHeight(height),\r\n display: 'block'\r\n });\r\n return iframe;\r\n };\r\n var getIframeHtml = function (editor) {\r\n var bodyId, bodyClass, iframeHTML;\r\n iframeHTML = $_2ycm1438jkmcwkta.getDocType(editor) + '';\r\n if ($_2ycm1438jkmcwkta.getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\r\n iframeHTML += '';\r\n }\r\n iframeHTML += '';\r\n bodyId = $_2ycm1438jkmcwkta.getBodyId(editor);\r\n bodyClass = $_2ycm1438jkmcwkta.getBodyClass(editor);\r\n if ($_2ycm1438jkmcwkta.getContentSecurityPolicy(editor)) {\r\n iframeHTML += '';\r\n }\r\n iframeHTML += '
';\r\n return iframeHTML;\r\n };\r\n var createIframe = function (editor, o) {\r\n var title = editor.editorManager.translate('Rich Text Area. Press ALT-F9 for menu. ' + 'Press ALT-F10 for toolbar. Press ALT-0 for help');\r\n var ifr = createIframeElement(editor.id, title, o.height, $_2ycm1438jkmcwkta.getIframeAttrs(editor)).dom();\r\n ifr.onload = function () {\r\n ifr.onload = null;\r\n editor.fire('load');\r\n };\r\n var isDomainRelaxed = relaxDomain(editor, ifr);\r\n editor.contentAreaContainer = o.iframeContainer;\r\n editor.iframeElement = ifr;\r\n editor.iframeHTML = getIframeHtml(editor);\r\n DOM$3.add(o.iframeContainer, ifr);\r\n return isDomainRelaxed;\r\n };\r\n var init$1 = function (editor, boxInfo) {\r\n var isDomainRelaxed = createIframe(editor, boxInfo);\r\n if (boxInfo.editorContainer) {\r\n DOM$3.get(boxInfo.editorContainer).style.display = editor.orgDisplay;\r\n editor.hidden = DOM$3.isHidden(boxInfo.editorContainer);\r\n }\r\n editor.getElement().style.display = 'none';\r\n DOM$3.setAttrib(editor.id, 'aria-hidden', 'true');\r\n if (!isDomainRelaxed) {\r\n $_fssayf58jkmcwlbz.initContentBody(editor);\r\n }\r\n };\r\n var $_9jv4e17njkmcwlsj = { init: init$1 };\r\n\r\n var DOM$4 = DOMUtils$1.DOM;\r\n var initPlugin = function (editor, initializedPlugins, plugin) {\r\n var Plugin = PluginManager$1.get(plugin);\r\n var pluginUrl, pluginInstance;\r\n pluginUrl = PluginManager$1.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\r\n plugin = $_4ujg4tljkmcwkbk.trim(plugin);\r\n if (Plugin && $_4ujg4tljkmcwkbk.inArray(initializedPlugins, plugin) === -1) {\r\n $_4ujg4tljkmcwkbk.each(PluginManager$1.dependencies(plugin), function (dep) {\r\n initPlugin(editor, initializedPlugins, dep);\r\n });\r\n if (editor.plugins[plugin]) {\r\n return;\r\n }\r\n pluginInstance = new Plugin(editor, pluginUrl, editor.$);\r\n editor.plugins[plugin] = pluginInstance;\r\n if (pluginInstance.init) {\r\n pluginInstance.init(editor, pluginUrl);\r\n initializedPlugins.push(plugin);\r\n }\r\n }\r\n };\r\n var trimLegacyPrefix = function (name) {\r\n return name.replace(/^\\-/, '');\r\n };\r\n var initPlugins = function (editor) {\r\n var initializedPlugins = [];\r\n $_4ujg4tljkmcwkbk.each(editor.settings.plugins.split(/[ ,]/), function (name) {\r\n initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\r\n });\r\n };\r\n var initTheme = function (editor) {\r\n var Theme;\r\n var theme = editor.settings.theme;\r\n if (isString(theme)) {\r\n editor.settings.theme = trimLegacyPrefix(theme);\r\n Theme = ThemeManager.get(theme);\r\n editor.theme = new Theme(editor, ThemeManager.urls[theme]);\r\n if (editor.theme.init) {\r\n editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''), editor.$);\r\n }\r\n } else {\r\n editor.theme = {};\r\n }\r\n };\r\n var renderFromLoadedTheme = function (editor) {\r\n var w, h, minHeight, re, info;\r\n var settings = editor.settings;\r\n var elm = editor.getElement();\r\n w = settings.width || DOM$4.getStyle(elm, 'width') || '100%';\r\n h = settings.height || DOM$4.getStyle(elm, 'height') || elm.offsetHeight;\r\n minHeight = settings.min_height || 100;\r\n re = /^[0-9\\.]+(|px)$/i;\r\n if (re.test('' + w)) {\r\n w = Math.max(parseInt(w, 10), 100);\r\n }\r\n if (re.test('' + h)) {\r\n h = Math.max(parseInt(h, 10), minHeight);\r\n }\r\n info = editor.theme.renderUI({\r\n targetNode: elm,\r\n width: w,\r\n height: h,\r\n deltaWidth: settings.delta_width,\r\n deltaHeight: settings.delta_height\r\n });\r\n if (!settings.content_editable) {\r\n h = (info.iframeHeight || h) + (typeof h === 'number' ? info.deltaHeight || 0 : '');\r\n if (h < minHeight) {\r\n h = minHeight;\r\n }\r\n }\r\n info.height = h;\r\n return info;\r\n };\r\n var renderFromThemeFunc = function (editor) {\r\n var info;\r\n var elm = editor.getElement();\r\n info = editor.settings.theme(editor, elm);\r\n if (info.editorContainer.nodeType) {\r\n info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\r\n }\r\n if (info.iframeContainer && info.iframeContainer.nodeType) {\r\n info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\r\n }\r\n info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\r\n return info;\r\n };\r\n var createThemeFalseResult = function (element) {\r\n return {\r\n editorContainer: element,\r\n iframeContainer: element\r\n };\r\n };\r\n var renderThemeFalseIframe = function (targetElement) {\r\n var iframeContainer = DOM$4.create('div');\r\n DOM$4.insertAfter(iframeContainer, targetElement);\r\n return createThemeFalseResult(iframeContainer);\r\n };\r\n var renderThemeFalse = function (editor) {\r\n var targetElement = editor.getElement();\r\n return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\r\n };\r\n var renderThemeUi = function (editor) {\r\n var settings = editor.settings, elm = editor.getElement();\r\n editor.orgDisplay = elm.style.display;\r\n if (isString(settings.theme)) {\r\n return renderFromLoadedTheme(editor);\r\n } else if (isFunction(settings.theme)) {\r\n return renderFromThemeFunc(editor);\r\n } else {\r\n return renderThemeFalse(editor);\r\n }\r\n };\r\n var init$2 = function (editor) {\r\n var settings = editor.settings;\r\n var elm = editor.getElement();\r\n var boxInfo;\r\n editor.rtl = settings.rtl_ui || editor.editorManager.i18n.rtl;\r\n editor.editorManager.i18n.setCode(settings.language);\r\n settings.aria_label = settings.aria_label || DOM$4.getAttrib(elm, 'aria-label', editor.getLang('aria.rich_text_area'));\r\n editor.fire('ScriptsLoaded');\r\n initTheme(editor);\r\n initPlugins(editor);\r\n boxInfo = renderThemeUi(editor);\r\n editor.editorContainer = boxInfo.editorContainer ? boxInfo.editorContainer : null;\r\n if (settings.content_css) {\r\n $_4ujg4tljkmcwkbk.each($_4ujg4tljkmcwkbk.explode(settings.content_css), function (u) {\r\n editor.contentCSS.push(editor.documentBaseURI.toAbsolute(u));\r\n });\r\n }\r\n if (settings.content_editable) {\r\n return $_fssayf58jkmcwlbz.initContentBody(editor);\r\n } else {\r\n return $_9jv4e17njkmcwlsj.init(editor, boxInfo);\r\n }\r\n };\r\n var $_4z079955jkmcwlbj = { init: init$2 };\r\n\r\n var DOM$5 = DOMUtils$1.DOM;\r\n var hasSkipLoadPrefix = function (name$$1) {\r\n return name$$1.charAt(0) === '-';\r\n };\r\n var loadLanguage = function (scriptLoader, editor) {\r\n var settings = editor.settings;\r\n if (settings.language && settings.language !== 'en' && !settings.language_url) {\r\n settings.language_url = editor.editorManager.baseURL + '/langs/' + settings.language + '.js';\r\n }\r\n if (settings.language_url && !editor.editorManager.i18n.data[settings.language]) {\r\n scriptLoader.add(settings.language_url);\r\n }\r\n };\r\n var loadTheme = function (scriptLoader, editor, suffix, callback) {\r\n var settings = editor.settings, theme = settings.theme;\r\n if (isString(theme)) {\r\n if (!hasSkipLoadPrefix(theme) && !ThemeManager.urls.hasOwnProperty(theme)) {\r\n var themeUrl = settings.theme_url;\r\n if (themeUrl) {\r\n ThemeManager.load(theme, editor.documentBaseURI.toAbsolute(themeUrl));\r\n } else {\r\n ThemeManager.load(theme, 'themes/' + theme + '/theme' + suffix + '.js');\r\n }\r\n }\r\n scriptLoader.loadQueue(function () {\r\n ThemeManager.waitFor(theme, callback);\r\n });\r\n } else {\r\n callback();\r\n }\r\n };\r\n var loadPlugins = function (settings, suffix) {\r\n if ($_4ujg4tljkmcwkbk.isArray(settings.plugins)) {\r\n settings.plugins = settings.plugins.join(' ');\r\n }\r\n $_4ujg4tljkmcwkbk.each(settings.external_plugins, function (url, name$$1) {\r\n PluginManager$1.load(name$$1, url);\r\n settings.plugins += ' ' + name$$1;\r\n });\r\n $_4ujg4tljkmcwkbk.each(settings.plugins.split(/[ ,]/), function (plugin) {\r\n plugin = $_4ujg4tljkmcwkbk.trim(plugin);\r\n if (plugin && !PluginManager$1.urls[plugin]) {\r\n if (hasSkipLoadPrefix(plugin)) {\r\n plugin = plugin.substr(1, plugin.length);\r\n var dependencies = PluginManager$1.dependencies(plugin);\r\n $_4ujg4tljkmcwkbk.each(dependencies, function (dep) {\r\n var defaultSettings = {\r\n prefix: 'plugins/',\r\n resource: dep,\r\n suffix: '/plugin' + suffix + '.js'\r\n };\r\n dep = PluginManager$1.createUrl(defaultSettings, dep);\r\n PluginManager$1.load(dep.resource, dep);\r\n });\r\n } else {\r\n PluginManager$1.load(plugin, {\r\n prefix: 'plugins/',\r\n resource: plugin,\r\n suffix: '/plugin' + suffix + '.js'\r\n });\r\n }\r\n }\r\n });\r\n };\r\n var loadScripts = function (editor, suffix) {\r\n var scriptLoader = ScriptLoader.ScriptLoader;\r\n loadTheme(scriptLoader, editor, suffix, function () {\r\n loadLanguage(scriptLoader, editor);\r\n loadPlugins(editor.settings, suffix);\r\n scriptLoader.loadQueue(function () {\r\n if (!editor.removed) {\r\n $_4z079955jkmcwlbj.init(editor);\r\n }\r\n }, editor, function (urls) {\r\n $_b9je0i54jkmcwlbe.pluginLoadError(editor, urls[0]);\r\n if (!editor.removed) {\r\n $_4z079955jkmcwlbj.init(editor);\r\n }\r\n });\r\n });\r\n };\r\n var render = function (editor) {\r\n var settings = editor.settings, id = editor.id;\r\n var readyHandler = function () {\r\n DOM$5.unbind(window, 'ready', readyHandler);\r\n editor.render();\r\n };\r\n if (!EventUtils.Event.domLoaded) {\r\n DOM$5.bind(window, 'ready', readyHandler);\r\n return;\r\n }\r\n if (!editor.getElement()) {\r\n return;\r\n }\r\n if (!$_cvvl9iajkmcwk25.contentEditable) {\r\n return;\r\n }\r\n if (!settings.inline) {\r\n editor.orgVisibility = editor.getElement().style.visibility;\r\n editor.getElement().style.visibility = 'hidden';\r\n } else {\r\n editor.inline = true;\r\n }\r\n var form = editor.getElement().form || DOM$5.getParent(id, 'form');\r\n if (form) {\r\n editor.formElement = form;\r\n if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(editor.getElement().nodeName)) {\r\n DOM$5.insertAfter(DOM$5.create('input', {\r\n type: 'hidden',\r\n name: id\r\n }), id);\r\n editor.hasHiddenInput = true;\r\n }\r\n editor.formEventDelegate = function (e) {\r\n editor.fire(e.type, e);\r\n };\r\n DOM$5.bind(form, 'submit reset', editor.formEventDelegate);\r\n editor.on('reset', function () {\r\n editor.setContent(editor.startContent, { format: 'raw' });\r\n });\r\n if (settings.submit_patch && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\r\n form._mceOldSubmit = form.submit;\r\n form.submit = function () {\r\n editor.editorManager.triggerSave();\r\n editor.setDirty(false);\r\n return form._mceOldSubmit(form);\r\n };\r\n }\r\n }\r\n editor.windowManager = WindowManager(editor);\r\n editor.notificationManager = NotificationManager(editor);\r\n if (settings.encoding === 'xml') {\r\n editor.on('GetContent', function (e) {\r\n if (e.save) {\r\n e.content = DOM$5.encode(e.content);\r\n }\r\n });\r\n }\r\n if (settings.add_form_submit_trigger) {\r\n editor.on('submit', function () {\r\n if (editor.initialized) {\r\n editor.save();\r\n }\r\n });\r\n }\r\n if (settings.add_unload_trigger) {\r\n editor._beforeUnload = function () {\r\n if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\r\n editor.save({\r\n format: 'raw',\r\n no_events: true,\r\n set_dirty: false\r\n });\r\n }\r\n };\r\n editor.editorManager.on('BeforeUnload', editor._beforeUnload);\r\n }\r\n editor.editorManager.add(editor);\r\n loadScripts(editor, editor.suffix);\r\n };\r\n var $_9u29xe4yjkmcwlai = { render: render };\r\n\r\n var add$4 = function (editor, name, settings) {\r\n var sidebars = editor.sidebars ? editor.sidebars : [];\r\n sidebars.push({\r\n name: name,\r\n settings: settings\r\n });\r\n editor.sidebars = sidebars;\r\n };\r\n var $_gcw4n27ojkmcwlsr = { add: add$4 };\r\n\r\n var each$20 = $_4ujg4tljkmcwkbk.each;\r\n var trim$4 = $_4ujg4tljkmcwkbk.trim;\r\n var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' ');\r\n var DEFAULT_PORTS = {\r\n ftp: 21,\r\n http: 80,\r\n https: 443,\r\n mailto: 25\r\n };\r\n var URI = function (url, settings) {\r\n var self$$1 = this;\r\n var baseUri, baseUrl;\r\n url = trim$4(url);\r\n settings = self$$1.settings = settings || {};\r\n baseUri = settings.base_uri;\r\n if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\r\n self$$1.source = url;\r\n return;\r\n }\r\n var isProtocolRelative = url.indexOf('//') === 0;\r\n if (url.indexOf('/') === 0 && !isProtocolRelative) {\r\n url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\r\n }\r\n if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\r\n baseUrl = settings.base_uri ? settings.base_uri.path : new URI(document.location.href).directory;\r\n if (settings.base_uri.protocol == '') {\r\n url = '//mce_host' + self$$1.toAbsPath(baseUrl, url);\r\n } else {\r\n url = /([^#?]*)([#?]?.*)/.exec(url);\r\n url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self$$1.toAbsPath(baseUrl, url[1]) + url[2];\r\n }\r\n }\r\n url = url.replace(/@@/g, '(mce_at)');\r\n url = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\r\n each$20(queryParts, function (v, i) {\r\n var part = url[i];\r\n if (part) {\r\n part = part.replace(/\\(mce_at\\)/g, '@@');\r\n }\r\n self$$1[v] = part;\r\n });\r\n if (baseUri) {\r\n if (!self$$1.protocol) {\r\n self$$1.protocol = baseUri.protocol;\r\n }\r\n if (!self$$1.userInfo) {\r\n self$$1.userInfo = baseUri.userInfo;\r\n }\r\n if (!self$$1.port && self$$1.host === 'mce_host') {\r\n self$$1.port = baseUri.port;\r\n }\r\n if (!self$$1.host || self$$1.host === 'mce_host') {\r\n self$$1.host = baseUri.host;\r\n }\r\n self$$1.source = '';\r\n }\r\n if (isProtocolRelative) {\r\n self$$1.protocol = '';\r\n }\r\n };\r\n URI.prototype = {\r\n setPath: function (path) {\r\n var self$$1 = this;\r\n path = /^(.*?)\\/?(\\w+)?$/.exec(path);\r\n self$$1.path = path[0];\r\n self$$1.directory = path[1];\r\n self$$1.file = path[2];\r\n self$$1.source = '';\r\n self$$1.getURI();\r\n },\r\n toRelative: function (uri) {\r\n var self$$1 = this;\r\n var output;\r\n if (uri === './') {\r\n return uri;\r\n }\r\n uri = new URI(uri, { base_uri: self$$1 });\r\n if (uri.host !== 'mce_host' && self$$1.host !== uri.host && uri.host || self$$1.port !== uri.port || self$$1.protocol !== uri.protocol && uri.protocol !== '') {\r\n return uri.getURI();\r\n }\r\n var tu = self$$1.getURI(), uu = uri.getURI();\r\n if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\r\n return tu;\r\n }\r\n output = self$$1.toRelPath(self$$1.path, uri.path);\r\n if (uri.query) {\r\n output += '?' + uri.query;\r\n }\r\n if (uri.anchor) {\r\n output += '#' + uri.anchor;\r\n }\r\n return output;\r\n },\r\n toAbsolute: function (uri, noHost) {\r\n uri = new URI(uri, { base_uri: this });\r\n return uri.getURI(noHost && this.isSameOrigin(uri));\r\n },\r\n isSameOrigin: function (uri) {\r\n if (this.host == uri.host && this.protocol == uri.protocol) {\r\n if (this.port == uri.port) {\r\n return true;\r\n }\r\n var defaultPort = DEFAULT_PORTS[this.protocol];\r\n if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n toRelPath: function (base, path) {\r\n var items, breakPoint = 0, out = '', i, l;\r\n base = base.substring(0, base.lastIndexOf('/'));\r\n base = base.split('/');\r\n items = path.split('/');\r\n if (base.length >= items.length) {\r\n for (i = 0, l = base.length; i < l; i++) {\r\n if (i >= items.length || base[i] !== items[i]) {\r\n breakPoint = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n if (base.length < items.length) {\r\n for (i = 0, l = items.length; i < l; i++) {\r\n if (i >= base.length || base[i] !== items[i]) {\r\n breakPoint = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n if (breakPoint === 1) {\r\n return path;\r\n }\r\n for (i = 0, l = base.length - (breakPoint - 1); i < l; i++) {\r\n out += '../';\r\n }\r\n for (i = breakPoint - 1, l = items.length; i < l; i++) {\r\n if (i !== breakPoint - 1) {\r\n out += '/' + items[i];\r\n } else {\r\n out += items[i];\r\n }\r\n }\r\n return out;\r\n },\r\n toAbsPath: function (base, path) {\r\n var i, nb = 0, o = [], tr, outPath;\r\n tr = /\\/$/.test(path) ? '/' : '';\r\n base = base.split('/');\r\n path = path.split('/');\r\n each$20(base, function (k) {\r\n if (k) {\r\n o.push(k);\r\n }\r\n });\r\n base = o;\r\n for (i = path.length - 1, o = []; i >= 0; i--) {\r\n if (path[i].length === 0 || path[i] === '.') {\r\n continue;\r\n }\r\n if (path[i] === '..') {\r\n nb++;\r\n continue;\r\n }\r\n if (nb > 0) {\r\n nb--;\r\n continue;\r\n }\r\n o.push(path[i]);\r\n }\r\n i = base.length - nb;\r\n if (i <= 0) {\r\n outPath = o.reverse().join('/');\r\n } else {\r\n outPath = base.slice(0, i).join('/') + '/' + o.reverse().join('/');\r\n }\r\n if (outPath.indexOf('/') !== 0) {\r\n outPath = '/' + outPath;\r\n }\r\n if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\r\n outPath += tr;\r\n }\r\n return outPath;\r\n },\r\n getURI: function (noProtoHost) {\r\n var s;\r\n var self$$1 = this;\r\n if (!self$$1.source || noProtoHost) {\r\n s = '';\r\n if (!noProtoHost) {\r\n if (self$$1.protocol) {\r\n s += self$$1.protocol + '://';\r\n } else {\r\n s += '//';\r\n }\r\n if (self$$1.userInfo) {\r\n s += self$$1.userInfo + '@';\r\n }\r\n if (self$$1.host) {\r\n s += self$$1.host;\r\n }\r\n if (self$$1.port) {\r\n s += ':' + self$$1.port;\r\n }\r\n }\r\n if (self$$1.path) {\r\n s += self$$1.path;\r\n }\r\n if (self$$1.query) {\r\n s += '?' + self$$1.query;\r\n }\r\n if (self$$1.anchor) {\r\n s += '#' + self$$1.anchor;\r\n }\r\n self$$1.source = s;\r\n }\r\n return self$$1.source;\r\n }\r\n };\r\n URI.parseDataUri = function (uri) {\r\n var type, matches;\r\n uri = decodeURIComponent(uri).split(',');\r\n matches = /data:([^;]+)/.exec(uri[0]);\r\n if (matches) {\r\n type = matches[1];\r\n }\r\n return {\r\n type: type,\r\n data: uri[1]\r\n };\r\n };\r\n URI.getDocumentBaseUrl = function (loc) {\r\n var baseUrl;\r\n if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\r\n baseUrl = loc.href;\r\n } else {\r\n baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\r\n }\r\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\r\n baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\r\n if (!/[\\/\\\\]$/.test(baseUrl)) {\r\n baseUrl += '/';\r\n }\r\n }\r\n return baseUrl;\r\n };\r\n\r\n var defaultFormat = 'html';\r\n var trimEmptyContents = function (editor, html) {\r\n var blockName = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n var emptyRegExp = new RegExp('^(<' + blockName + '[^>]*>( | |\\\\s|\\xA0|
|)<\\\\/' + blockName + '>[\\r\\n]*|
[\\r\\n]*)$');\r\n return html.replace(emptyRegExp, '');\r\n };\r\n var getContentFromBody = function (editor, args, body) {\r\n var content;\r\n args.format = args.format ? args.format : defaultFormat;\r\n args.get = true;\r\n args.getInner = true;\r\n if (!args.no_events) {\r\n editor.fire('BeforeGetContent', args);\r\n }\r\n if (args.format === 'raw') {\r\n content = $_4ujg4tljkmcwkbk.trim($_2varuf5zjkmcwlgq.trimExternal(editor.serializer, body.innerHTML));\r\n } else if (args.format === 'text') {\r\n content = $_cadvcr2pjkmcwkph.trim(body.innerText || body.textContent);\r\n } else if (args.format === 'tree') {\r\n return editor.serializer.serialize(body, args);\r\n } else {\r\n content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\r\n }\r\n if (args.format !== 'text' && !isWsPreserveElement(Element$$1.fromDom(body))) {\r\n args.content = $_4ujg4tljkmcwkbk.trim(content);\r\n } else {\r\n args.content = content;\r\n }\r\n if (!args.no_events) {\r\n editor.fire('GetContent', args);\r\n }\r\n return args.content;\r\n };\r\n var getContent$1 = function (editor, args) {\r\n if (args === void 0) {\r\n args = {};\r\n }\r\n return Option.from(editor.getBody()).fold(constant(args.format === 'tree' ? new Node$2('body', 11) : ''), function (body) {\r\n return getContentFromBody(editor, args, body);\r\n });\r\n };\r\n\r\n var traverse = function (node, fn) {\r\n fn(node);\r\n if (node.firstChild) {\r\n traverse(node.firstChild, fn);\r\n }\r\n if (node.next) {\r\n traverse(node.next, fn);\r\n }\r\n };\r\n var findMatchingNodes = function (nodeFilters, attributeFilters, node) {\r\n var nodeMatches = {};\r\n var attrMatches = {};\r\n var matches = [];\r\n if (node.firstChild) {\r\n traverse(node.firstChild, function (node) {\r\n each(nodeFilters, function (filter$$1) {\r\n if (filter$$1.name === node.name) {\r\n if (nodeMatches[filter$$1.name]) {\r\n nodeMatches[filter$$1.name].nodes.push(node);\r\n } else {\r\n nodeMatches[filter$$1.name] = {\r\n filter: filter$$1,\r\n nodes: [node]\r\n };\r\n }\r\n }\r\n });\r\n each(attributeFilters, function (filter$$1) {\r\n if (typeof node.attr(filter$$1.name) === 'string') {\r\n if (attrMatches[filter$$1.name]) {\r\n attrMatches[filter$$1.name].nodes.push(node);\r\n } else {\r\n attrMatches[filter$$1.name] = {\r\n filter: filter$$1,\r\n nodes: [node]\r\n };\r\n }\r\n }\r\n });\r\n });\r\n }\r\n for (var name in nodeMatches) {\r\n if (nodeMatches.hasOwnProperty(name)) {\r\n matches.push(nodeMatches[name]);\r\n }\r\n }\r\n for (var name in attrMatches) {\r\n if (attrMatches.hasOwnProperty(name)) {\r\n matches.push(attrMatches[name]);\r\n }\r\n }\r\n return matches;\r\n };\r\n var filter$3 = function (nodeFilters, attributeFilters, node) {\r\n var matches = findMatchingNodes(nodeFilters, attributeFilters, node);\r\n each(matches, function (match) {\r\n each(match.filter.callbacks, function (callback) {\r\n callback(match.nodes, match.filter.name, {});\r\n });\r\n });\r\n };\r\n\r\n var defaultFormat$1 = 'html';\r\n var isTreeNode = function (content) {\r\n return content instanceof Node$2;\r\n };\r\n var moveSelection = function (editor) {\r\n if ($_e3v8sn4vjkmcwl9y.hasFocus(editor)) {\r\n $_1m3f3j2yjkmcwkqg.firstPositionIn(editor.getBody()).each(function (pos) {\r\n var node = pos.getNode();\r\n var caretPos = $_bjermr1rjkmcwkij.isTable(node) ? $_1m3f3j2yjkmcwkqg.firstPositionIn(node).getOr(pos) : pos;\r\n editor.selection.setRng(caretPos.toRange());\r\n });\r\n }\r\n };\r\n var setEditorHtml = function (editor, html) {\r\n editor.dom.setHTML(editor.getBody(), html);\r\n moveSelection(editor);\r\n };\r\n var setContentString = function (editor, body, content, args) {\r\n var forcedRootBlockName, padd;\r\n if (content.length === 0 || /^\\s+$/.test(content)) {\r\n padd = '
';\r\n if (body.nodeName === 'TABLE') {\r\n content = '' + padd + '';\r\n } else if (/^(UL|OL)$/.test(body.nodeName)) {\r\n content = '
  • ' + padd + '
  • ';\r\n }\r\n forcedRootBlockName = $_2ycm1438jkmcwkta.getForcedRootBlock(editor);\r\n if (forcedRootBlockName && editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\r\n content = padd;\r\n content = editor.dom.createHTML(forcedRootBlockName, editor.settings.forced_root_block_attrs, content);\r\n } else if (!content) {\r\n content = '
    ';\r\n }\r\n setEditorHtml(editor, content);\r\n editor.fire('SetContent', args);\r\n } else {\r\n if (args.format !== 'raw') {\r\n content = HtmlSerializer({ validate: editor.validate }, editor.schema).serialize(editor.parser.parse(content, {\r\n isRootContent: true,\r\n insert: true\r\n }));\r\n }\r\n args.content = isWsPreserveElement(Element$$1.fromDom(body)) ? content : $_4ujg4tljkmcwkbk.trim(content);\r\n setEditorHtml(editor, args.content);\r\n if (!args.no_events) {\r\n editor.fire('SetContent', args);\r\n }\r\n }\r\n return args.content;\r\n };\r\n var setContentTree = function (editor, body, content, args) {\r\n filter$3(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\r\n var html = HtmlSerializer({ validate: editor.validate }, editor.schema).serialize(content);\r\n args.content = isWsPreserveElement(Element$$1.fromDom(body)) ? html : $_4ujg4tljkmcwkbk.trim(html);\r\n setEditorHtml(editor, args.content);\r\n if (!args.no_events) {\r\n editor.fire('SetContent', args);\r\n }\r\n return content;\r\n };\r\n var setContent$1 = function (editor, content, args) {\r\n if (args === void 0) {\r\n args = {};\r\n }\r\n args.format = args.format ? args.format : defaultFormat$1;\r\n args.set = true;\r\n args.content = isTreeNode(content) ? '' : content;\r\n if (!isTreeNode(content) && !args.no_events) {\r\n editor.fire('BeforeSetContent', args);\r\n content = args.content;\r\n }\r\n return Option.from(editor.getBody()).fold(constant(content), function (body) {\r\n return isTreeNode(content) ? setContentTree(editor, body, content, args) : setContentString(editor, body, content, args);\r\n });\r\n };\r\n\r\n var DOM$6 = DOMUtils$1.DOM;\r\n var restoreOriginalStyles = function (editor) {\r\n DOM$6.setStyle(editor.id, 'display', editor.orgDisplay);\r\n };\r\n var safeDestroy = function (x) {\r\n return Option.from(x).each(function (x) {\r\n return x.destroy();\r\n });\r\n };\r\n var clearDomReferences = function (editor) {\r\n editor.contentAreaContainer = editor.formElement = editor.container = editor.editorContainer = null;\r\n editor.bodyElement = editor.contentDocument = editor.contentWindow = null;\r\n editor.iframeElement = editor.targetElm = null;\r\n if (editor.selection) {\r\n editor.selection = editor.selection.win = editor.selection.dom = editor.selection.dom.doc = null;\r\n }\r\n };\r\n var restoreForm = function (editor) {\r\n var form = editor.formElement;\r\n if (form) {\r\n if (form._mceOldSubmit) {\r\n form.submit = form._mceOldSubmit;\r\n form._mceOldSubmit = null;\r\n }\r\n DOM$6.unbind(form, 'submit reset', editor.formEventDelegate);\r\n }\r\n };\r\n var remove$9 = function (editor) {\r\n if (!editor.removed) {\r\n var _selectionOverrides = editor._selectionOverrides, editorUpload = editor.editorUpload;\r\n var body = editor.getBody();\r\n var element = editor.getElement();\r\n if (body) {\r\n editor.save({ is_removing: true });\r\n }\r\n editor.removed = true;\r\n editor.unbindAllNativeEvents();\r\n if (editor.hasHiddenInput && element) {\r\n DOM$6.remove(element.nextSibling);\r\n }\r\n if (!editor.inline && body) {\r\n restoreOriginalStyles(editor);\r\n }\r\n $_q3ric4tjkmcwl9q.fireRemove(editor);\r\n editor.editorManager.remove(editor);\r\n DOM$6.remove(editor.getContainer());\r\n safeDestroy(_selectionOverrides);\r\n safeDestroy(editorUpload);\r\n editor.destroy();\r\n }\r\n };\r\n var destroy = function (editor, automatic) {\r\n var selection = editor.selection, dom = editor.dom;\r\n if (editor.destroyed) {\r\n return;\r\n }\r\n if (!automatic && !editor.removed) {\r\n editor.remove();\r\n return;\r\n }\r\n if (!automatic) {\r\n editor.editorManager.off('beforeunload', editor._beforeUnload);\r\n if (editor.theme && editor.theme.destroy) {\r\n editor.theme.destroy();\r\n }\r\n safeDestroy(selection);\r\n safeDestroy(dom);\r\n }\r\n restoreForm(editor);\r\n clearDomReferences(editor);\r\n editor.destroyed = true;\r\n };\r\n\r\n var DOM$7 = DOMUtils$1.DOM;\r\n var extend$4 = $_4ujg4tljkmcwkbk.extend;\r\n var each$21 = $_4ujg4tljkmcwkbk.each;\r\n var resolve$4 = $_4ujg4tljkmcwkbk.resolve;\r\n var ie$2 = $_cvvl9iajkmcwk25.ie;\r\n var Editor = function (id, settings, editorManager) {\r\n var self = this;\r\n var documentBaseUrl = self.documentBaseUrl = editorManager.documentBaseURL;\r\n var baseUri = editorManager.baseURI;\r\n settings = getEditorSettings(self, id, documentBaseUrl, editorManager.defaultSettings, settings);\r\n self.settings = settings;\r\n AddOnManager.language = settings.language || 'en';\r\n AddOnManager.languageLoad = settings.language_load;\r\n AddOnManager.baseURL = editorManager.baseURL;\r\n self.id = id;\r\n self.setDirty(false);\r\n self.plugins = {};\r\n self.documentBaseURI = new URI(settings.document_base_url, { base_uri: baseUri });\r\n self.baseURI = baseUri;\r\n self.contentCSS = [];\r\n self.contentStyles = [];\r\n self.shortcuts = new Shortcuts(self);\r\n self.loadedCSS = {};\r\n self.editorCommands = new EditorCommands(self);\r\n self.suffix = editorManager.suffix;\r\n self.editorManager = editorManager;\r\n self.inline = settings.inline;\r\n self.buttons = {};\r\n self.menuItems = {};\r\n if (settings.cache_suffix) {\r\n $_cvvl9iajkmcwk25.cacheSuffix = settings.cache_suffix.replace(/^[\\?\\&]+/, '');\r\n }\r\n if (settings.override_viewport === false) {\r\n $_cvvl9iajkmcwk25.overrideViewPort = false;\r\n }\r\n editorManager.fire('SetupEditor', { editor: self });\r\n self.execCallback('setup', self);\r\n self.$ = DomQuery.overrideDefaults(function () {\r\n return {\r\n context: self.inline ? self.getBody() : self.getDoc(),\r\n element: self.getBody()\r\n };\r\n });\r\n };\r\n Editor.prototype = {\r\n render: function () {\r\n $_9u29xe4yjkmcwlai.render(this);\r\n },\r\n focus: function (skipFocus) {\r\n $_e3v8sn4vjkmcwl9y.focus(this, skipFocus);\r\n },\r\n hasFocus: function () {\r\n return $_e3v8sn4vjkmcwl9y.hasFocus(this);\r\n },\r\n execCallback: function (name) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var self = this;\r\n var callback = self.settings[name], scope;\r\n if (!callback) {\r\n return;\r\n }\r\n if (self.callbackLookup && (scope = self.callbackLookup[name])) {\r\n callback = scope.func;\r\n scope = scope.scope;\r\n }\r\n if (typeof callback === 'string') {\r\n scope = callback.replace(/\\.\\w+$/, '');\r\n scope = scope ? resolve$4(scope) : 0;\r\n callback = resolve$4(callback);\r\n self.callbackLookup = self.callbackLookup || {};\r\n self.callbackLookup[name] = {\r\n func: callback,\r\n scope: scope\r\n };\r\n }\r\n return callback.apply(scope || self, Array.prototype.slice.call(arguments, 1));\r\n },\r\n translate: function (text) {\r\n if (text && $_4ujg4tljkmcwkbk.is(text, 'string')) {\r\n var lang_1 = this.settings.language || 'en', i18n_1 = this.editorManager.i18n;\r\n text = i18n_1.data[lang_1 + '.' + text] || text.replace(/\\{\\#([^\\}]+)\\}/g, function (a, b) {\r\n return i18n_1.data[lang_1 + '.' + b] || '{#' + b + '}';\r\n });\r\n }\r\n return this.editorManager.translate(text);\r\n },\r\n getLang: function (name, defaultVal) {\r\n return this.editorManager.i18n.data[(this.settings.language || 'en') + '.' + name] || (defaultVal !== undefined ? defaultVal : '{#' + name + '}');\r\n },\r\n getParam: function (name, defaultVal, type) {\r\n return getParam(this, name, defaultVal, type);\r\n },\r\n nodeChanged: function (args) {\r\n this._nodeChangeDispatcher.nodeChanged(args);\r\n },\r\n addButton: function (name, settings) {\r\n var self = this;\r\n if (settings.cmd) {\r\n settings.onclick = function () {\r\n self.execCommand(settings.cmd);\r\n };\r\n }\r\n if (settings.stateSelector && typeof settings.active === 'undefined') {\r\n settings.active = false;\r\n }\r\n if (!settings.text && !settings.icon) {\r\n settings.icon = name;\r\n }\r\n self.buttons = self.buttons;\r\n settings.tooltip = settings.tooltip || settings.title;\r\n self.buttons[name] = settings;\r\n },\r\n addSidebar: function (name, settings) {\r\n return $_gcw4n27ojkmcwlsr.add(this, name, settings);\r\n },\r\n addMenuItem: function (name, settings) {\r\n var self = this;\r\n if (settings.cmd) {\r\n settings.onclick = function () {\r\n self.execCommand(settings.cmd);\r\n };\r\n }\r\n self.menuItems = self.menuItems;\r\n self.menuItems[name] = settings;\r\n },\r\n addContextToolbar: function (predicate, items) {\r\n var self = this;\r\n var selector;\r\n self.contextToolbars = self.contextToolbars || [];\r\n if (typeof predicate === 'string') {\r\n selector = predicate;\r\n predicate = function (elm) {\r\n return self.dom.is(elm, selector);\r\n };\r\n }\r\n self.contextToolbars.push({\r\n id: $_8flfjw5jjkmcwldd.uuid('mcet'),\r\n predicate: predicate,\r\n items: items\r\n });\r\n },\r\n addCommand: function (name, callback, scope) {\r\n this.editorCommands.addCommand(name, callback, scope);\r\n },\r\n addQueryStateHandler: function (name, callback, scope) {\r\n this.editorCommands.addQueryStateHandler(name, callback, scope);\r\n },\r\n addQueryValueHandler: function (name, callback, scope) {\r\n this.editorCommands.addQueryValueHandler(name, callback, scope);\r\n },\r\n addShortcut: function (pattern, desc, cmdFunc, scope) {\r\n this.shortcuts.add(pattern, desc, cmdFunc, scope);\r\n },\r\n execCommand: function (cmd, ui, value, args) {\r\n return this.editorCommands.execCommand(cmd, ui, value, args);\r\n },\r\n queryCommandState: function (cmd) {\r\n return this.editorCommands.queryCommandState(cmd);\r\n },\r\n queryCommandValue: function (cmd) {\r\n return this.editorCommands.queryCommandValue(cmd);\r\n },\r\n queryCommandSupported: function (cmd) {\r\n return this.editorCommands.queryCommandSupported(cmd);\r\n },\r\n show: function () {\r\n var self = this;\r\n if (self.hidden) {\r\n self.hidden = false;\r\n if (self.inline) {\r\n self.getBody().contentEditable = true;\r\n } else {\r\n DOM$7.show(self.getContainer());\r\n DOM$7.hide(self.id);\r\n }\r\n self.load();\r\n self.fire('show');\r\n }\r\n },\r\n hide: function () {\r\n var self = this, doc = self.getDoc();\r\n if (!self.hidden) {\r\n if (ie$2 && doc && !self.inline) {\r\n doc.execCommand('SelectAll');\r\n }\r\n self.save();\r\n if (self.inline) {\r\n self.getBody().contentEditable = false;\r\n if (self === self.editorManager.focusedEditor) {\r\n self.editorManager.focusedEditor = null;\r\n }\r\n } else {\r\n DOM$7.hide(self.getContainer());\r\n DOM$7.setStyle(self.id, 'display', self.orgDisplay);\r\n }\r\n self.hidden = true;\r\n self.fire('hide');\r\n }\r\n },\r\n isHidden: function () {\r\n return !!this.hidden;\r\n },\r\n setProgressState: function (state, time) {\r\n this.fire('ProgressState', {\r\n state: state,\r\n time: time\r\n });\r\n },\r\n load: function (args) {\r\n var self = this;\r\n var elm = self.getElement(), html;\r\n if (self.removed) {\r\n return '';\r\n }\r\n if (elm) {\r\n args = args || {};\r\n args.load = true;\r\n html = self.setContent(elm.value !== undefined ? elm.value : elm.innerHTML, args);\r\n args.element = elm;\r\n if (!args.no_events) {\r\n self.fire('LoadContent', args);\r\n }\r\n args.element = elm = null;\r\n return html;\r\n }\r\n },\r\n save: function (args) {\r\n var self = this;\r\n var elm = self.getElement(), html, form;\r\n if (!elm || !self.initialized || self.removed) {\r\n return;\r\n }\r\n args = args || {};\r\n args.save = true;\r\n args.element = elm;\r\n html = args.content = self.getContent(args);\r\n if (!args.no_events) {\r\n self.fire('SaveContent', args);\r\n }\r\n if (args.format === 'raw') {\r\n self.fire('RawSaveContent', args);\r\n }\r\n html = args.content;\r\n if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) {\r\n if (args.is_removing || !self.inline) {\r\n elm.innerHTML = html;\r\n }\r\n if (form = DOM$7.getParent(self.id, 'form')) {\r\n each$21(form.elements, function (elm) {\r\n if (elm.name === self.id) {\r\n elm.value = html;\r\n return false;\r\n }\r\n });\r\n }\r\n } else {\r\n elm.value = html;\r\n }\r\n args.element = elm = null;\r\n if (args.set_dirty !== false) {\r\n self.setDirty(false);\r\n }\r\n return html;\r\n },\r\n setContent: function (content, args) {\r\n return setContent$1(this, content, args);\r\n },\r\n getContent: function (args) {\r\n return getContent$1(this, args);\r\n },\r\n insertContent: function (content, args) {\r\n if (args) {\r\n content = extend$4({ content: content }, args);\r\n }\r\n this.execCommand('mceInsertContent', false, content);\r\n },\r\n isDirty: function () {\r\n return !this.isNotDirty;\r\n },\r\n setDirty: function (state) {\r\n var oldState = !this.isNotDirty;\r\n this.isNotDirty = !state;\r\n if (state && state !== oldState) {\r\n this.fire('dirty');\r\n }\r\n },\r\n setMode: function (mode) {\r\n setMode(this, mode);\r\n },\r\n getContainer: function () {\r\n var self = this;\r\n if (!self.container) {\r\n self.container = DOM$7.get(self.editorContainer || self.id + '_parent');\r\n }\r\n return self.container;\r\n },\r\n getContentAreaContainer: function () {\r\n return this.contentAreaContainer;\r\n },\r\n getElement: function () {\r\n if (!this.targetElm) {\r\n this.targetElm = DOM$7.get(this.id);\r\n }\r\n return this.targetElm;\r\n },\r\n getWin: function () {\r\n var self = this;\r\n var elm;\r\n if (!self.contentWindow) {\r\n elm = self.iframeElement;\r\n if (elm) {\r\n self.contentWindow = elm.contentWindow;\r\n }\r\n }\r\n return self.contentWindow;\r\n },\r\n getDoc: function () {\r\n var self = this;\r\n var win;\r\n if (!self.contentDocument) {\r\n win = self.getWin();\r\n if (win) {\r\n self.contentDocument = win.document;\r\n }\r\n }\r\n return self.contentDocument;\r\n },\r\n getBody: function () {\r\n var doc = this.getDoc();\r\n return this.bodyElement || (doc ? doc.body : null);\r\n },\r\n convertURL: function (url, name, elm) {\r\n var self = this, settings = self.settings;\r\n if (settings.urlconverter_callback) {\r\n return self.execCallback('urlconverter_callback', url, elm, true, name);\r\n }\r\n if (!settings.convert_urls || elm && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\r\n return url;\r\n }\r\n if (settings.relative_urls) {\r\n return self.documentBaseURI.toRelative(url);\r\n }\r\n url = self.documentBaseURI.toAbsolute(url, settings.remove_script_host);\r\n return url;\r\n },\r\n addVisual: function (elm) {\r\n var self = this;\r\n var settings = self.settings;\r\n var dom = self.dom;\r\n var cls;\r\n elm = elm || self.getBody();\r\n if (self.hasVisual === undefined) {\r\n self.hasVisual = settings.visual;\r\n }\r\n each$21(dom.select('table,a', elm), function (elm) {\r\n var value;\r\n switch (elm.nodeName) {\r\n case 'TABLE':\r\n cls = settings.visual_table_class || 'mce-item-table';\r\n value = dom.getAttrib(elm, 'border');\r\n if ((!value || value === '0') && self.hasVisual) {\r\n dom.addClass(elm, cls);\r\n } else {\r\n dom.removeClass(elm, cls);\r\n }\r\n return;\r\n case 'A':\r\n if (!dom.getAttrib(elm, 'href')) {\r\n value = dom.getAttrib(elm, 'name') || elm.id;\r\n cls = settings.visual_anchor_class || 'mce-item-anchor';\r\n if (value && self.hasVisual) {\r\n dom.addClass(elm, cls);\r\n } else {\r\n dom.removeClass(elm, cls);\r\n }\r\n }\r\n return;\r\n }\r\n });\r\n self.fire('VisualAid', {\r\n element: elm,\r\n hasVisual: self.hasVisual\r\n });\r\n },\r\n remove: function () {\r\n remove$9(this);\r\n },\r\n destroy: function (automatic) {\r\n destroy(this, automatic);\r\n },\r\n uploadImages: function (callback) {\r\n return this.editorUpload.uploadImages(callback);\r\n },\r\n _scanForImages: function () {\r\n return this.editorUpload.scanForImages();\r\n }\r\n };\r\n extend$4(Editor.prototype, EditorObservable$1);\r\n\r\n var isEditorUIElement = function (elm) {\r\n return elm.className.toString().indexOf('mce-') !== -1;\r\n };\r\n var $_48zpgt7xjkmcwlum = { isEditorUIElement: isEditorUIElement };\r\n\r\n var isManualNodeChange = function (e) {\r\n return e.type === 'nodechange' && e.selectionChange;\r\n };\r\n var registerPageMouseUp = function (editor, throttledStore) {\r\n var mouseUpPage = function () {\r\n throttledStore.throttle();\r\n };\r\n DOMUtils$1.DOM.bind(document, 'mouseup', mouseUpPage);\r\n editor.on('remove', function () {\r\n DOMUtils$1.DOM.unbind(document, 'mouseup', mouseUpPage);\r\n });\r\n };\r\n var registerFocusOut = function (editor) {\r\n editor.on('focusout', function () {\r\n $_39c3zs4ljkmcwl86.store(editor);\r\n });\r\n };\r\n var registerMouseUp = function (editor, throttledStore) {\r\n editor.on('mouseup touchend', function (e) {\r\n throttledStore.throttle();\r\n });\r\n };\r\n var registerEditorEvents = function (editor, throttledStore) {\r\n var browser = $_b1ykk4ojkmcwkcj.detect().browser;\r\n if (browser.isIE()) {\r\n registerFocusOut(editor);\r\n } else {\r\n registerMouseUp(editor, throttledStore);\r\n }\r\n editor.on('keyup nodechange', function (e) {\r\n if (!isManualNodeChange(e)) {\r\n $_39c3zs4ljkmcwl86.store(editor);\r\n }\r\n });\r\n };\r\n var register$3 = function (editor) {\r\n var throttledStore = first$1(function () {\r\n $_39c3zs4ljkmcwl86.store(editor);\r\n }, 0);\r\n if (editor.inline) {\r\n registerPageMouseUp(editor, throttledStore);\r\n }\r\n editor.on('init', function () {\r\n registerEditorEvents(editor, throttledStore);\r\n });\r\n editor.on('remove', function () {\r\n throttledStore.cancel();\r\n });\r\n };\r\n var $_d657g07yjkmcwlun = { register: register$3 };\r\n\r\n var documentFocusInHandler;\r\n var DOM$8 = DOMUtils$1.DOM;\r\n var isEditorUIElement$1 = function (elm) {\r\n return $_48zpgt7xjkmcwlum.isEditorUIElement(elm);\r\n };\r\n var isUIElement = function (editor, elm) {\r\n var customSelector = editor ? editor.settings.custom_ui_selector : '';\r\n var parent$$1 = DOM$8.getParent(elm, function (elm) {\r\n return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\r\n });\r\n return parent$$1 !== null;\r\n };\r\n var getActiveElement = function () {\r\n try {\r\n return document.activeElement;\r\n } catch (ex) {\r\n return document.body;\r\n }\r\n };\r\n var registerEvents = function (editorManager, e) {\r\n var editor = e.editor;\r\n $_d657g07yjkmcwlun.register(editor);\r\n editor.on('focusin', function () {\r\n var self$$1 = this;\r\n var focusedEditor = editorManager.focusedEditor;\r\n if (focusedEditor !== self$$1) {\r\n if (focusedEditor) {\r\n focusedEditor.fire('blur', { focusedEditor: self$$1 });\r\n }\r\n editorManager.setActive(self$$1);\r\n editorManager.focusedEditor = self$$1;\r\n self$$1.fire('focus', { blurredEditor: focusedEditor });\r\n self$$1.focus(true);\r\n }\r\n });\r\n editor.on('focusout', function () {\r\n var self$$1 = this;\r\n $_3l01gcijkmcwk99.setEditorTimeout(self$$1, function () {\r\n var focusedEditor = editorManager.focusedEditor;\r\n if (!isUIElement(self$$1, getActiveElement()) && focusedEditor === self$$1) {\r\n self$$1.fire('blur', { focusedEditor: null });\r\n editorManager.focusedEditor = null;\r\n }\r\n });\r\n });\r\n if (!documentFocusInHandler) {\r\n documentFocusInHandler = function (e) {\r\n var activeEditor = editorManager.activeEditor;\r\n var target;\r\n target = e.target;\r\n if (activeEditor && target.ownerDocument === document) {\r\n if (target !== document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) {\r\n activeEditor.fire('blur', { focusedEditor: null });\r\n editorManager.focusedEditor = null;\r\n }\r\n }\r\n };\r\n DOM$8.bind(document, 'focusin', documentFocusInHandler);\r\n }\r\n };\r\n var unregisterDocumentEvents = function (editorManager, e) {\r\n if (editorManager.focusedEditor === e.editor) {\r\n editorManager.focusedEditor = null;\r\n }\r\n if (!editorManager.activeEditor) {\r\n DOM$8.unbind(document, 'focusin', documentFocusInHandler);\r\n documentFocusInHandler = null;\r\n }\r\n };\r\n var setup$15 = function (editorManager) {\r\n editorManager.on('AddEditor', curry(registerEvents, editorManager));\r\n editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\r\n };\r\n var $_6zk6867wjkmcwluj = {\r\n setup: setup$15,\r\n isEditorUIElement: isEditorUIElement$1,\r\n isUIElement: isUIElement\r\n };\r\n\r\n var data = {};\r\n var code = 'en';\r\n var $_9pp0ut7zjkmcwlut = {\r\n setCode: function (newCode) {\r\n if (newCode) {\r\n code = newCode;\r\n this.rtl = this.data[newCode] ? this.data[newCode]._dir === 'rtl' : false;\r\n }\r\n },\r\n getCode: function () {\r\n return code;\r\n },\r\n rtl: false,\r\n add: function (code, items) {\r\n var langData = data[code];\r\n if (!langData) {\r\n data[code] = langData = {};\r\n }\r\n for (var name in items) {\r\n langData[name] = items[name];\r\n }\r\n this.setCode(code);\r\n },\r\n translate: function (text) {\r\n var langData = data[code] || {};\r\n var toString = function (obj) {\r\n if ($_4ujg4tljkmcwkbk.is(obj, 'function')) {\r\n return Object.prototype.toString.call(obj);\r\n }\r\n return !isEmpty(obj) ? '' + obj : '';\r\n };\r\n var isEmpty = function (text) {\r\n return text === '' || text === null || $_4ujg4tljkmcwkbk.is(text, 'undefined');\r\n };\r\n var getLangData = function (text) {\r\n text = toString(text);\r\n return $_4ujg4tljkmcwkbk.hasOwn(langData, text) ? toString(langData[text]) : text;\r\n };\r\n if (isEmpty(text)) {\r\n return '';\r\n }\r\n if ($_4ujg4tljkmcwkbk.is(text, 'object') && $_4ujg4tljkmcwkbk.hasOwn(text, 'raw')) {\r\n return toString(text.raw);\r\n }\r\n if ($_4ujg4tljkmcwkbk.is(text, 'array')) {\r\n var values_1 = text.slice(1);\r\n text = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, function ($1, $2) {\r\n return $_4ujg4tljkmcwkbk.hasOwn(values_1, $2) ? toString(values_1[$2]) : $1;\r\n });\r\n }\r\n return getLangData(text).replace(/{context:\\w+}$/, '');\r\n },\r\n data: data\r\n };\r\n\r\n var DOM$9 = DOMUtils$1.DOM;\r\n var explode$4 = $_4ujg4tljkmcwkbk.explode;\r\n var each$22 = $_4ujg4tljkmcwkbk.each;\r\n var extend$5 = $_4ujg4tljkmcwkbk.extend;\r\n var instanceCounter = 0;\r\n var beforeUnloadDelegate;\r\n var EditorManager;\r\n var boundGlobalEvents = false;\r\n var legacyEditors = [];\r\n var editors = [];\r\n var isValidLegacyKey = function (id) {\r\n return id !== 'length';\r\n };\r\n var globalEventDelegate = function (e) {\r\n each$22(EditorManager.get(), function (editor) {\r\n if (e.type === 'scroll') {\r\n editor.fire('ScrollWindow', e);\r\n } else {\r\n editor.fire('ResizeWindow', e);\r\n }\r\n });\r\n };\r\n var toggleGlobalEvents = function (state) {\r\n if (state !== boundGlobalEvents) {\r\n if (state) {\r\n DomQuery(window).on('resize scroll', globalEventDelegate);\r\n } else {\r\n DomQuery(window).off('resize scroll', globalEventDelegate);\r\n }\r\n boundGlobalEvents = state;\r\n }\r\n };\r\n var removeEditorFromList = function (targetEditor) {\r\n var oldEditors = editors;\r\n delete legacyEditors[targetEditor.id];\r\n for (var i = 0; i < legacyEditors.length; i++) {\r\n if (legacyEditors[i] === targetEditor) {\r\n legacyEditors.splice(i, 1);\r\n break;\r\n }\r\n }\r\n editors = filter(editors, function (editor) {\r\n return targetEditor !== editor;\r\n });\r\n if (EditorManager.activeEditor === targetEditor) {\r\n EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\r\n }\r\n if (EditorManager.focusedEditor === targetEditor) {\r\n EditorManager.focusedEditor = null;\r\n }\r\n return oldEditors.length !== editors.length;\r\n };\r\n var purgeDestroyedEditor = function (editor) {\r\n if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\r\n removeEditorFromList(editor);\r\n editor.unbindAllNativeEvents();\r\n editor.destroy(true);\r\n editor.removed = true;\r\n editor = null;\r\n }\r\n return editor;\r\n };\r\n EditorManager = {\r\n defaultSettings: {},\r\n $: DomQuery,\r\n majorVersion: '4',\r\n minorVersion: '8.2',\r\n releaseDate: '2018-08-09',\r\n editors: legacyEditors,\r\n i18n: $_9pp0ut7zjkmcwlut,\r\n activeEditor: null,\r\n settings: {},\r\n setup: function () {\r\n var self$$1 = this;\r\n var baseURL, documentBaseURL, suffix = '', preInit, src;\r\n documentBaseURL = URI.getDocumentBaseUrl(document.location);\r\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\r\n documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\r\n if (!/[\\/\\\\]$/.test(documentBaseURL)) {\r\n documentBaseURL += '/';\r\n }\r\n }\r\n preInit = window.tinymce || window.tinyMCEPreInit;\r\n if (preInit) {\r\n baseURL = preInit.base || preInit.baseURL;\r\n suffix = preInit.suffix;\r\n } else {\r\n var scripts = document.getElementsByTagName('script');\r\n for (var i = 0; i < scripts.length; i++) {\r\n src = scripts[i].src;\r\n var srcScript = src.substring(src.lastIndexOf('/'));\r\n if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\r\n if (srcScript.indexOf('.min') !== -1) {\r\n suffix = '.min';\r\n }\r\n baseURL = src.substring(0, src.lastIndexOf('/'));\r\n break;\r\n }\r\n }\r\n if (!baseURL && document.currentScript) {\r\n src = document.currentScript.src;\r\n if (src.indexOf('.min') !== -1) {\r\n suffix = '.min';\r\n }\r\n baseURL = src.substring(0, src.lastIndexOf('/'));\r\n }\r\n }\r\n self$$1.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\r\n self$$1.documentBaseURL = documentBaseURL;\r\n self$$1.baseURI = new URI(self$$1.baseURL);\r\n self$$1.suffix = suffix;\r\n $_6zk6867wjkmcwluj.setup(self$$1);\r\n },\r\n overrideDefaults: function (defaultSettings) {\r\n var baseUrl, suffix;\r\n baseUrl = defaultSettings.base_url;\r\n if (baseUrl) {\r\n this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\r\n this.baseURI = new URI(this.baseURL);\r\n }\r\n suffix = defaultSettings.suffix;\r\n if (defaultSettings.suffix) {\r\n this.suffix = suffix;\r\n }\r\n this.defaultSettings = defaultSettings;\r\n var pluginBaseUrls = defaultSettings.plugin_base_urls;\r\n for (var name$$1 in pluginBaseUrls) {\r\n AddOnManager.PluginManager.urls[name$$1] = pluginBaseUrls[name$$1];\r\n }\r\n },\r\n init: function (settings) {\r\n var self$$1 = this;\r\n var result, invalidInlineTargets;\r\n invalidInlineTargets = $_4ujg4tljkmcwkbk.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu', ' ');\r\n var isInvalidInlineTarget = function (settings, elm) {\r\n return settings.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\r\n };\r\n var createId = function (elm) {\r\n var id = elm.id;\r\n if (!id) {\r\n id = elm.name;\r\n if (id && !DOM$9.get(id)) {\r\n id = elm.name;\r\n } else {\r\n id = DOM$9.uniqueId();\r\n }\r\n elm.setAttribute('id', id);\r\n }\r\n return id;\r\n };\r\n var execCallback = function (name$$1) {\r\n var callback = settings[name$$1];\r\n if (!callback) {\r\n return;\r\n }\r\n return callback.apply(self$$1, Array.prototype.slice.call(arguments, 2));\r\n };\r\n var hasClass = function (elm, className) {\r\n return className.constructor === RegExp ? className.test(elm.className) : DOM$9.hasClass(elm, className);\r\n };\r\n var findTargets = function (settings) {\r\n var l, targets = [];\r\n if ($_cvvl9iajkmcwk25.ie && $_cvvl9iajkmcwk25.ie < 11) {\r\n $_b9je0i54jkmcwlbe.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');\r\n return [];\r\n }\r\n if (settings.types) {\r\n each$22(settings.types, function (type) {\r\n targets = targets.concat(DOM$9.select(type.selector));\r\n });\r\n return targets;\r\n } else if (settings.selector) {\r\n return DOM$9.select(settings.selector);\r\n } else if (settings.target) {\r\n return [settings.target];\r\n }\r\n switch (settings.mode) {\r\n case 'exact':\r\n l = settings.elements || '';\r\n if (l.length > 0) {\r\n each$22(explode$4(l), function (id) {\r\n var elm;\r\n if (elm = DOM$9.get(id)) {\r\n targets.push(elm);\r\n } else {\r\n each$22(document.forms, function (f) {\r\n each$22(f.elements, function (e) {\r\n if (e.name === id) {\r\n id = 'mce_editor_' + instanceCounter++;\r\n DOM$9.setAttrib(e, 'id', id);\r\n targets.push(e);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n break;\r\n case 'textareas':\r\n case 'specific_textareas':\r\n each$22(DOM$9.select('textarea'), function (elm) {\r\n if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {\r\n return;\r\n }\r\n if (!settings.editor_selector || hasClass(elm, settings.editor_selector)) {\r\n targets.push(elm);\r\n }\r\n });\r\n break;\r\n }\r\n return targets;\r\n };\r\n var provideResults = function (editors) {\r\n result = editors;\r\n };\r\n var initEditors = function () {\r\n var initCount = 0;\r\n var editors = [];\r\n var targets;\r\n var createEditor = function (id, settings, targetElm) {\r\n var editor = new Editor(id, settings, self$$1);\r\n editors.push(editor);\r\n editor.on('init', function () {\r\n if (++initCount === targets.length) {\r\n provideResults(editors);\r\n }\r\n });\r\n editor.targetElm = editor.targetElm || targetElm;\r\n editor.render();\r\n };\r\n DOM$9.unbind(window, 'ready', initEditors);\r\n execCallback('onpageload');\r\n targets = DomQuery.unique(findTargets(settings));\r\n if (settings.types) {\r\n each$22(settings.types, function (type) {\r\n $_4ujg4tljkmcwkbk.each(targets, function (elm) {\r\n if (DOM$9.is(elm, type.selector)) {\r\n createEditor(createId(elm), extend$5({}, settings, type), elm);\r\n return false;\r\n }\r\n return true;\r\n });\r\n });\r\n return;\r\n }\r\n $_4ujg4tljkmcwkbk.each(targets, function (elm) {\r\n purgeDestroyedEditor(self$$1.get(elm.id));\r\n });\r\n targets = $_4ujg4tljkmcwkbk.grep(targets, function (elm) {\r\n return !self$$1.get(elm.id);\r\n });\r\n if (targets.length === 0) {\r\n provideResults([]);\r\n } else {\r\n each$22(targets, function (elm) {\r\n if (isInvalidInlineTarget(settings, elm)) {\r\n $_b9je0i54jkmcwlbe.initError('Could not initialize inline editor on invalid inline target element', elm);\r\n } else {\r\n createEditor(createId(elm), settings, elm);\r\n }\r\n });\r\n }\r\n };\r\n self$$1.settings = settings;\r\n DOM$9.bind(window, 'ready', initEditors);\r\n return new promiseObj(function (resolve) {\r\n if (result) {\r\n resolve(result);\r\n } else {\r\n provideResults = function (editors) {\r\n resolve(editors);\r\n };\r\n }\r\n });\r\n },\r\n get: function (id) {\r\n if (arguments.length === 0) {\r\n return editors.slice(0);\r\n } else if (isString(id)) {\r\n return find(editors, function (editor) {\r\n return editor.id === id;\r\n }).getOr(null);\r\n } else if (isNumber(id)) {\r\n return editors[id] ? editors[id] : null;\r\n } else {\r\n return null;\r\n }\r\n },\r\n add: function (editor) {\r\n var self$$1 = this;\r\n var existingEditor;\r\n existingEditor = legacyEditors[editor.id];\r\n if (existingEditor === editor) {\r\n return editor;\r\n }\r\n if (self$$1.get(editor.id) === null) {\r\n if (isValidLegacyKey(editor.id)) {\r\n legacyEditors[editor.id] = editor;\r\n }\r\n legacyEditors.push(editor);\r\n editors.push(editor);\r\n }\r\n toggleGlobalEvents(true);\r\n self$$1.activeEditor = editor;\r\n self$$1.fire('AddEditor', { editor: editor });\r\n if (!beforeUnloadDelegate) {\r\n beforeUnloadDelegate = function () {\r\n self$$1.fire('BeforeUnload');\r\n };\r\n DOM$9.bind(window, 'beforeunload', beforeUnloadDelegate);\r\n }\r\n return editor;\r\n },\r\n createEditor: function (id, settings) {\r\n return this.add(new Editor(id, settings, this));\r\n },\r\n remove: function (selector) {\r\n var self$$1 = this;\r\n var i, editor;\r\n if (!selector) {\r\n for (i = editors.length - 1; i >= 0; i--) {\r\n self$$1.remove(editors[i]);\r\n }\r\n return;\r\n }\r\n if (isString(selector)) {\r\n each$22(DOM$9.select(selector), function (elm) {\r\n editor = self$$1.get(elm.id);\r\n if (editor) {\r\n self$$1.remove(editor);\r\n }\r\n });\r\n return;\r\n }\r\n editor = selector;\r\n if (isNull(self$$1.get(editor.id))) {\r\n return null;\r\n }\r\n if (removeEditorFromList(editor)) {\r\n self$$1.fire('RemoveEditor', { editor: editor });\r\n }\r\n if (editors.length === 0) {\r\n DOM$9.unbind(window, 'beforeunload', beforeUnloadDelegate);\r\n }\r\n editor.remove();\r\n toggleGlobalEvents(editors.length > 0);\r\n return editor;\r\n },\r\n execCommand: function (cmd, ui, value) {\r\n var self$$1 = this, editor = self$$1.get(value);\r\n switch (cmd) {\r\n case 'mceAddEditor':\r\n if (!self$$1.get(value)) {\r\n new Editor(value, self$$1.settings, self$$1).render();\r\n }\r\n return true;\r\n case 'mceRemoveEditor':\r\n if (editor) {\r\n editor.remove();\r\n }\r\n return true;\r\n case 'mceToggleEditor':\r\n if (!editor) {\r\n self$$1.execCommand('mceAddEditor', 0, value);\r\n return true;\r\n }\r\n if (editor.isHidden()) {\r\n editor.show();\r\n } else {\r\n editor.hide();\r\n }\r\n return true;\r\n }\r\n if (self$$1.activeEditor) {\r\n return self$$1.activeEditor.execCommand(cmd, ui, value);\r\n }\r\n return false;\r\n },\r\n triggerSave: function () {\r\n each$22(editors, function (editor) {\r\n editor.save();\r\n });\r\n },\r\n addI18n: function (code, items) {\r\n $_9pp0ut7zjkmcwlut.add(code, items);\r\n },\r\n translate: function (text) {\r\n return $_9pp0ut7zjkmcwlut.translate(text);\r\n },\r\n setActive: function (editor) {\r\n var activeEditor = this.activeEditor;\r\n if (this.activeEditor !== editor) {\r\n if (activeEditor) {\r\n activeEditor.fire('deactivate', { relatedTarget: editor });\r\n }\r\n editor.fire('activate', { relatedTarget: activeEditor });\r\n }\r\n this.activeEditor = editor;\r\n }\r\n };\r\n extend$5(EditorManager, $_ed2ug44qjkmcwl97);\r\n EditorManager.setup();\r\n var EditorManager$1 = EditorManager;\r\n\r\n function RangeUtils(dom) {\r\n var walk = function (rng, callback) {\r\n return $_cuckrv3bjkmcwktk.walk(dom, rng, callback);\r\n };\r\n var split = $_bnmynr69jkmcwlir.split;\r\n var normalize = function (rng) {\r\n return $_21c07i4jjkmcwl7w.normalize(dom, rng).fold(constant(false), function (normalizedRng) {\r\n rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\r\n rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\r\n return true;\r\n });\r\n };\r\n return {\r\n walk: walk,\r\n split: split,\r\n normalize: normalize\r\n };\r\n }\r\n (function (RangeUtils) {\r\n RangeUtils.compareRanges = $_axtxv74kjkmcwl84.isEq;\r\n RangeUtils.getCaretRangeFromPoint = $_52q21w6wjkmcwlna.fromPoint;\r\n RangeUtils.getSelectedNode = getSelectedNode;\r\n RangeUtils.getNode = getNode;\r\n }(RangeUtils || (RangeUtils = {})));\r\n var RangeUtils$1 = RangeUtils;\r\n\r\n var min = Math.min;\r\n var max = Math.max;\r\n var round$2 = Math.round;\r\n var relativePosition = function (rect, targetRect, rel) {\r\n var x, y, w, h, targetW, targetH;\r\n x = targetRect.x;\r\n y = targetRect.y;\r\n w = rect.w;\r\n h = rect.h;\r\n targetW = targetRect.w;\r\n targetH = targetRect.h;\r\n rel = (rel || '').split('');\r\n if (rel[0] === 'b') {\r\n y += targetH;\r\n }\r\n if (rel[1] === 'r') {\r\n x += targetW;\r\n }\r\n if (rel[0] === 'c') {\r\n y += round$2(targetH / 2);\r\n }\r\n if (rel[1] === 'c') {\r\n x += round$2(targetW / 2);\r\n }\r\n if (rel[3] === 'b') {\r\n y -= h;\r\n }\r\n if (rel[4] === 'r') {\r\n x -= w;\r\n }\r\n if (rel[3] === 'c') {\r\n y -= round$2(h / 2);\r\n }\r\n if (rel[4] === 'c') {\r\n x -= round$2(w / 2);\r\n }\r\n return create$3(x, y, w, h);\r\n };\r\n var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) {\r\n var pos, i;\r\n for (i = 0; i < rels.length; i++) {\r\n pos = relativePosition(rect, targetRect, rels[i]);\r\n if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\r\n return rels[i];\r\n }\r\n }\r\n return null;\r\n };\r\n var inflate = function (rect, w, h) {\r\n return create$3(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\r\n };\r\n var intersect = function (rect, cropRect) {\r\n var x1, y1, x2, y2;\r\n x1 = max(rect.x, cropRect.x);\r\n y1 = max(rect.y, cropRect.y);\r\n x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\r\n y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\r\n if (x2 - x1 < 0 || y2 - y1 < 0) {\r\n return null;\r\n }\r\n return create$3(x1, y1, x2 - x1, y2 - y1);\r\n };\r\n var clamp$1 = function (rect, clampRect, fixedSize) {\r\n var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2;\r\n x1 = rect.x;\r\n y1 = rect.y;\r\n x2 = rect.x + rect.w;\r\n y2 = rect.y + rect.h;\r\n cx2 = clampRect.x + clampRect.w;\r\n cy2 = clampRect.y + clampRect.h;\r\n underflowX1 = max(0, clampRect.x - x1);\r\n underflowY1 = max(0, clampRect.y - y1);\r\n overflowX2 = max(0, x2 - cx2);\r\n overflowY2 = max(0, y2 - cy2);\r\n x1 += underflowX1;\r\n y1 += underflowY1;\r\n if (fixedSize) {\r\n x2 += underflowX1;\r\n y2 += underflowY1;\r\n x1 -= overflowX2;\r\n y1 -= overflowY2;\r\n }\r\n x2 -= overflowX2;\r\n y2 -= overflowY2;\r\n return create$3(x1, y1, x2 - x1, y2 - y1);\r\n };\r\n var create$3 = function (x, y, w, h) {\r\n return {\r\n x: x,\r\n y: y,\r\n w: w,\r\n h: h\r\n };\r\n };\r\n var fromClientRect = function (clientRect) {\r\n return create$3(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\r\n };\r\n var $_es7eh281jkmcwlv1 = {\r\n inflate: inflate,\r\n relativePosition: relativePosition,\r\n findBestRelativePosition: findBestRelativePosition,\r\n intersect: intersect,\r\n clamp: clamp$1,\r\n create: create$3,\r\n fromClientRect: fromClientRect\r\n };\r\n\r\n var types = {};\r\n var $_e5pe6n82jkmcwlv8 = {\r\n add: function (type, typeClass) {\r\n types[type.toLowerCase()] = typeClass;\r\n },\r\n has: function (type) {\r\n return !!types[type.toLowerCase()];\r\n },\r\n get: function (type) {\r\n var lctype = type.toLowerCase();\r\n var controlType = types.hasOwnProperty(lctype) ? types[lctype] : null;\r\n if (controlType === null) {\r\n throw new Error('Could not find module for type: ' + type);\r\n }\r\n return controlType;\r\n },\r\n create: function (type, settings) {\r\n var ControlType;\r\n if (typeof type === 'string') {\r\n settings = settings || {};\r\n settings.type = type;\r\n } else {\r\n settings = type;\r\n type = settings.type;\r\n }\r\n type = type.toLowerCase();\r\n ControlType = types[type];\r\n if (!ControlType) {\r\n throw new Error('Could not find control by type: ' + type);\r\n }\r\n ControlType = new ControlType(settings);\r\n ControlType.type = type;\r\n return ControlType;\r\n }\r\n };\r\n\r\n var each$23 = $_4ujg4tljkmcwkbk.each;\r\n var extend$6 = $_4ujg4tljkmcwkbk.extend;\r\n var extendClass;\r\n var initializing;\r\n var Class$1 = function () {\r\n };\r\n Class$1.extend = extendClass = function (prop) {\r\n var self = this;\r\n var _super = self.prototype;\r\n var prototype, name, member;\r\n var Class = function () {\r\n var i, mixins, mixin;\r\n var self = this;\r\n if (!initializing) {\r\n if (self.init) {\r\n self.init.apply(self, arguments);\r\n }\r\n mixins = self.Mixins;\r\n if (mixins) {\r\n i = mixins.length;\r\n while (i--) {\r\n mixin = mixins[i];\r\n if (mixin.init) {\r\n mixin.init.apply(self, arguments);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var dummy = function () {\r\n return this;\r\n };\r\n var createMethod = function (name, fn) {\r\n return function () {\r\n var self = this;\r\n var tmp = self._super;\r\n var ret;\r\n self._super = _super[name];\r\n ret = fn.apply(self, arguments);\r\n self._super = tmp;\r\n return ret;\r\n };\r\n };\r\n initializing = true;\r\n prototype = new self();\r\n initializing = false;\r\n if (prop.Mixins) {\r\n each$23(prop.Mixins, function (mixin) {\r\n for (var name_1 in mixin) {\r\n if (name_1 !== 'init') {\r\n prop[name_1] = mixin[name_1];\r\n }\r\n }\r\n });\r\n if (_super.Mixins) {\r\n prop.Mixins = _super.Mixins.concat(prop.Mixins);\r\n }\r\n }\r\n if (prop.Methods) {\r\n each$23(prop.Methods.split(','), function (name) {\r\n prop[name] = dummy;\r\n });\r\n }\r\n if (prop.Properties) {\r\n each$23(prop.Properties.split(','), function (name) {\r\n var fieldName = '_' + name;\r\n prop[name] = function (value) {\r\n var self = this;\r\n if (value !== undefined) {\r\n self[fieldName] = value;\r\n return self;\r\n }\r\n return self[fieldName];\r\n };\r\n });\r\n }\r\n if (prop.Statics) {\r\n each$23(prop.Statics, function (func, name) {\r\n Class[name] = func;\r\n });\r\n }\r\n if (prop.Defaults && _super.Defaults) {\r\n prop.Defaults = extend$6({}, _super.Defaults, prop.Defaults);\r\n }\r\n for (name in prop) {\r\n member = prop[name];\r\n if (typeof member === 'function' && _super[name]) {\r\n prototype[name] = createMethod(name, member);\r\n } else {\r\n prototype[name] = member;\r\n }\r\n }\r\n Class.prototype = prototype;\r\n Class.constructor = Class;\r\n Class.extend = extendClass;\r\n return Class;\r\n };\r\n\r\n var min$1 = Math.min;\r\n var max$1 = Math.max;\r\n var round$3 = Math.round;\r\n var Color = function (value) {\r\n var self = {};\r\n var r = 0, g = 0, b = 0;\r\n var rgb2hsv = function (r, g, b) {\r\n var h, s, v, d, minRGB, maxRGB;\r\n h = 0;\r\n s = 0;\r\n v = 0;\r\n r = r / 255;\r\n g = g / 255;\r\n b = b / 255;\r\n minRGB = min$1(r, min$1(g, b));\r\n maxRGB = max$1(r, max$1(g, b));\r\n if (minRGB === maxRGB) {\r\n v = minRGB;\r\n return {\r\n h: 0,\r\n s: 0,\r\n v: v * 100\r\n };\r\n }\r\n d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\r\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\r\n h = 60 * (h - d / (maxRGB - minRGB));\r\n s = (maxRGB - minRGB) / maxRGB;\r\n v = maxRGB;\r\n return {\r\n h: round$3(h),\r\n s: round$3(s * 100),\r\n v: round$3(v * 100)\r\n };\r\n };\r\n var hsvToRgb = function (hue, saturation, brightness) {\r\n var side, chroma, x, match;\r\n hue = (parseInt(hue, 10) || 0) % 360;\r\n saturation = parseInt(saturation, 10) / 100;\r\n brightness = parseInt(brightness, 10) / 100;\r\n saturation = max$1(0, min$1(saturation, 1));\r\n brightness = max$1(0, min$1(brightness, 1));\r\n if (saturation === 0) {\r\n r = g = b = round$3(255 * brightness);\r\n return;\r\n }\r\n side = hue / 60;\r\n chroma = brightness * saturation;\r\n x = chroma * (1 - Math.abs(side % 2 - 1));\r\n match = brightness - chroma;\r\n switch (Math.floor(side)) {\r\n case 0:\r\n r = chroma;\r\n g = x;\r\n b = 0;\r\n break;\r\n case 1:\r\n r = x;\r\n g = chroma;\r\n b = 0;\r\n break;\r\n case 2:\r\n r = 0;\r\n g = chroma;\r\n b = x;\r\n break;\r\n case 3:\r\n r = 0;\r\n g = x;\r\n b = chroma;\r\n break;\r\n case 4:\r\n r = x;\r\n g = 0;\r\n b = chroma;\r\n break;\r\n case 5:\r\n r = chroma;\r\n g = 0;\r\n b = x;\r\n break;\r\n default:\r\n r = g = b = 0;\r\n }\r\n r = round$3(255 * (r + match));\r\n g = round$3(255 * (g + match));\r\n b = round$3(255 * (b + match));\r\n };\r\n var toHex = function () {\r\n var hex = function (val) {\r\n val = parseInt(val, 10).toString(16);\r\n return val.length > 1 ? val : '0' + val;\r\n };\r\n return '#' + hex(r) + hex(g) + hex(b);\r\n };\r\n var toRgb = function () {\r\n return {\r\n r: r,\r\n g: g,\r\n b: b\r\n };\r\n };\r\n var toHsv = function () {\r\n return rgb2hsv(r, g, b);\r\n };\r\n var parse = function (value) {\r\n var matches;\r\n if (typeof value === 'object') {\r\n if ('r' in value) {\r\n r = value.r;\r\n g = value.g;\r\n b = value.b;\r\n } else if ('v' in value) {\r\n hsvToRgb(value.h, value.s, value.v);\r\n }\r\n } else {\r\n if (matches = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)[^\\)]*\\)/gi.exec(value)) {\r\n r = parseInt(matches[1], 10);\r\n g = parseInt(matches[2], 10);\r\n b = parseInt(matches[3], 10);\r\n } else if (matches = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value)) {\r\n r = parseInt(matches[1], 16);\r\n g = parseInt(matches[2], 16);\r\n b = parseInt(matches[3], 16);\r\n } else if (matches = /#([0-F])([0-F])([0-F])/gi.exec(value)) {\r\n r = parseInt(matches[1] + matches[1], 16);\r\n g = parseInt(matches[2] + matches[2], 16);\r\n b = parseInt(matches[3] + matches[3], 16);\r\n }\r\n }\r\n r = r < 0 ? 0 : r > 255 ? 255 : r;\r\n g = g < 0 ? 0 : g > 255 ? 255 : g;\r\n b = b < 0 ? 0 : b > 255 ? 255 : b;\r\n return self;\r\n };\r\n if (value) {\r\n parse(value);\r\n }\r\n self.toRgb = toRgb;\r\n self.toHsv = toHsv;\r\n self.toHex = toHex;\r\n self.parse = parse;\r\n return self;\r\n };\r\n\r\n var serialize = function (o, quote) {\r\n var i, v, t, name;\r\n quote = quote || '\"';\r\n if (o === null) {\r\n return 'null';\r\n }\r\n t = typeof o;\r\n if (t === 'string') {\r\n v = '\\bb\\tt\\nn\\ff\\rr\"\"\\'\\'\\\\\\\\';\r\n return quote + o.replace(/([\\u0080-\\uFFFF\\x00-\\x1f\\\"\\'\\\\])/g, function (a, b) {\r\n if (quote === '\"' && a === '\\'') {\r\n return a;\r\n }\r\n i = v.indexOf(b);\r\n if (i + 1) {\r\n return '\\\\' + v.charAt(i + 1);\r\n }\r\n a = b.charCodeAt().toString(16);\r\n return '\\\\u' + '0000'.substring(a.length) + a;\r\n }) + quote;\r\n }\r\n if (t === 'object') {\r\n if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') {\r\n for (i = 0, v = '['; i < o.length; i++) {\r\n v += (i > 0 ? ',' : '') + serialize(o[i], quote);\r\n }\r\n return v + ']';\r\n }\r\n v = '{';\r\n for (name in o) {\r\n if (o.hasOwnProperty(name)) {\r\n v += typeof o[name] !== 'function' ? (v.length > 1 ? ',' + quote : quote) + name + quote + ':' + serialize(o[name], quote) : '';\r\n }\r\n }\r\n return v + '}';\r\n }\r\n return '' + o;\r\n };\r\n var $_6nxmdo85jkmcwlvi = {\r\n serialize: serialize,\r\n parse: function (text) {\r\n try {\r\n return JSON.parse(text);\r\n } catch (ex) {\r\n }\r\n }\r\n };\r\n\r\n var $_cygb5686jkmcwlvk = {\r\n callbacks: {},\r\n count: 0,\r\n send: function (settings) {\r\n var self = this, dom = DOMUtils$1.DOM, count = settings.count !== undefined ? settings.count : self.count;\r\n var id = 'tinymce_jsonp_' + count;\r\n self.callbacks[count] = function (json) {\r\n dom.remove(id);\r\n delete self.callbacks[count];\r\n settings.callback(json);\r\n };\r\n dom.add(dom.doc.body, 'script', {\r\n id: id,\r\n src: settings.url,\r\n type: 'text/javascript'\r\n });\r\n self.count++;\r\n }\r\n };\r\n\r\n var XHR = {\r\n send: function (settings) {\r\n var xhr, count = 0;\r\n var ready = function () {\r\n if (!settings.async || xhr.readyState === 4 || count++ > 10000) {\r\n if (settings.success && count < 10000 && xhr.status === 200) {\r\n settings.success.call(settings.success_scope, '' + xhr.responseText, xhr, settings);\r\n } else if (settings.error) {\r\n settings.error.call(settings.error_scope, count > 10000 ? 'TIMED_OUT' : 'GENERAL', xhr, settings);\r\n }\r\n xhr = null;\r\n } else {\r\n setTimeout(ready, 10);\r\n }\r\n };\r\n settings.scope = settings.scope || this;\r\n settings.success_scope = settings.success_scope || settings.scope;\r\n settings.error_scope = settings.error_scope || settings.scope;\r\n settings.async = settings.async === false ? false : true;\r\n settings.data = settings.data || '';\r\n XHR.fire('beforeInitialize', { settings: settings });\r\n xhr = new XMLHttpRequest();\r\n if (xhr) {\r\n if (xhr.overrideMimeType) {\r\n xhr.overrideMimeType(settings.content_type);\r\n }\r\n xhr.open(settings.type || (settings.data ? 'POST' : 'GET'), settings.url, settings.async);\r\n if (settings.crossDomain) {\r\n xhr.withCredentials = true;\r\n }\r\n if (settings.content_type) {\r\n xhr.setRequestHeader('Content-Type', settings.content_type);\r\n }\r\n if (settings.requestheaders) {\r\n $_4ujg4tljkmcwkbk.each(settings.requestheaders, function (header) {\r\n xhr.setRequestHeader(header.key, header.value);\r\n });\r\n }\r\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\r\n xhr = XHR.fire('beforeSend', {\r\n xhr: xhr,\r\n settings: settings\r\n }).xhr;\r\n xhr.send(settings.data);\r\n if (!settings.async) {\r\n return ready();\r\n }\r\n setTimeout(ready, 10);\r\n }\r\n }\r\n };\r\n $_4ujg4tljkmcwkbk.extend(XHR, $_ed2ug44qjkmcwl97);\r\n\r\n var extend$7 = $_4ujg4tljkmcwkbk.extend;\r\n var JSONRequest = function (settings) {\r\n this.settings = extend$7({}, settings);\r\n this.count = 0;\r\n };\r\n JSONRequest.sendRPC = function (o) {\r\n return new JSONRequest().send(o);\r\n };\r\n JSONRequest.prototype = {\r\n send: function (args) {\r\n var ecb = args.error, scb = args.success;\r\n args = extend$7(this.settings, args);\r\n args.success = function (c, x) {\r\n c = $_6nxmdo85jkmcwlvi.parse(c);\r\n if (typeof c === 'undefined') {\r\n c = { error: 'JSON Parse error.' };\r\n }\r\n if (c.error) {\r\n ecb.call(args.error_scope || args.scope, c.error, x);\r\n } else {\r\n scb.call(args.success_scope || args.scope, c.result);\r\n }\r\n };\r\n args.error = function (ty, x) {\r\n if (ecb) {\r\n ecb.call(args.error_scope || args.scope, ty, x);\r\n }\r\n };\r\n args.data = $_6nxmdo85jkmcwlvi.serialize({\r\n id: args.id || 'c' + this.count++,\r\n method: args.method,\r\n params: args.params\r\n });\r\n args.content_type = 'application/json';\r\n XHR.send(args);\r\n }\r\n };\r\n\r\n var create$4 = function () {\r\n return function () {\r\n var data = {};\r\n var keys = [];\r\n var storage = {\r\n getItem: function (key) {\r\n var item = data[key];\r\n return item ? item : null;\r\n },\r\n setItem: function (key, value) {\r\n keys.push(key);\r\n data[key] = String(value);\r\n },\r\n key: function (index) {\r\n return keys[index];\r\n },\r\n removeItem: function (key) {\r\n keys = keys.filter(function (k) {\r\n return k === key;\r\n });\r\n delete data[key];\r\n },\r\n clear: function () {\r\n keys = [];\r\n data = {};\r\n },\r\n length: 0\r\n };\r\n Object.defineProperty(storage, 'length', {\r\n get: function () {\r\n return keys.length;\r\n },\r\n configurable: false,\r\n enumerable: false\r\n });\r\n return storage;\r\n }();\r\n };\r\n\r\n var localStorage$$1;\r\n try {\r\n localStorage$$1 = window.localStorage;\r\n } catch (e) {\r\n localStorage$$1 = create$4();\r\n }\r\n var LocalStorage = localStorage$$1;\r\n\r\n var tinymce = EditorManager$1;\r\n var publicApi = {\r\n geom: { Rect: $_es7eh281jkmcwlv1 },\r\n util: {\r\n Promise: promiseObj,\r\n Delay: $_3l01gcijkmcwk99,\r\n Tools: $_4ujg4tljkmcwkbk,\r\n VK: $_6bj5795wjkmcwlg6,\r\n URI: URI,\r\n Class: Class$1,\r\n EventDispatcher: Dispatcher,\r\n Observable: $_ed2ug44qjkmcwl97,\r\n I18n: $_9pp0ut7zjkmcwlut,\r\n XHR: XHR,\r\n JSON: $_6nxmdo85jkmcwlvi,\r\n JSONRequest: JSONRequest,\r\n JSONP: $_cygb5686jkmcwlvk,\r\n LocalStorage: LocalStorage,\r\n Color: Color\r\n },\r\n dom: {\r\n EventUtils: EventUtils,\r\n Sizzle: Sizzle,\r\n DomQuery: DomQuery,\r\n TreeWalker: TreeWalker,\r\n DOMUtils: DOMUtils$1,\r\n ScriptLoader: ScriptLoader,\r\n RangeUtils: RangeUtils$1,\r\n Serializer: DomSerializer$1,\r\n ControlSelection: ControlSelection,\r\n BookmarkManager: BookmarkManager$1,\r\n Selection: Selection$1,\r\n Event: EventUtils.Event\r\n },\r\n html: {\r\n Styles: Styles,\r\n Entities: $_33qwr1sjkmcwkip,\r\n Node: Node$2,\r\n Schema: Schema,\r\n SaxParser: SaxParser$1,\r\n DomParser: DomParser,\r\n Writer: Writer,\r\n Serializer: HtmlSerializer\r\n },\r\n ui: { Factory: $_e5pe6n82jkmcwlv8 },\r\n Env: $_cvvl9iajkmcwk25,\r\n AddOnManager: AddOnManager,\r\n Annotator: Annotator,\r\n Formatter: Formatter,\r\n UndoManager: UndoManager,\r\n EditorCommands: EditorCommands,\r\n WindowManager: WindowManager,\r\n NotificationManager: NotificationManager,\r\n EditorObservable: EditorObservable$1,\r\n Shortcuts: Shortcuts,\r\n Editor: Editor,\r\n FocusManager: $_48zpgt7xjkmcwlum,\r\n EditorManager: EditorManager$1,\r\n DOM: DOMUtils$1.DOM,\r\n ScriptLoader: ScriptLoader.ScriptLoader,\r\n PluginManager: AddOnManager.PluginManager,\r\n ThemeManager: AddOnManager.ThemeManager,\r\n trim: $_4ujg4tljkmcwkbk.trim,\r\n isArray: $_4ujg4tljkmcwkbk.isArray,\r\n is: $_4ujg4tljkmcwkbk.is,\r\n toArray: $_4ujg4tljkmcwkbk.toArray,\r\n makeMap: $_4ujg4tljkmcwkbk.makeMap,\r\n each: $_4ujg4tljkmcwkbk.each,\r\n map: $_4ujg4tljkmcwkbk.map,\r\n grep: $_4ujg4tljkmcwkbk.grep,\r\n inArray: $_4ujg4tljkmcwkbk.inArray,\r\n extend: $_4ujg4tljkmcwkbk.extend,\r\n create: $_4ujg4tljkmcwkbk.create,\r\n walk: $_4ujg4tljkmcwkbk.walk,\r\n createNS: $_4ujg4tljkmcwkbk.createNS,\r\n resolve: $_4ujg4tljkmcwkbk.resolve,\r\n explode: $_4ujg4tljkmcwkbk.explode,\r\n _addCacheSuffix: $_4ujg4tljkmcwkbk._addCacheSuffix,\r\n isOpera: $_cvvl9iajkmcwk25.opera,\r\n isWebKit: $_cvvl9iajkmcwk25.webkit,\r\n isIE: $_cvvl9iajkmcwk25.ie,\r\n isGecko: $_cvvl9iajkmcwk25.gecko,\r\n isMac: $_cvvl9iajkmcwk25.mac\r\n };\r\n tinymce = $_4ujg4tljkmcwkbk.extend(tinymce, publicApi);\r\n var Tinymce = tinymce;\r\n\r\n var exportToModuleLoaders = function (tinymce) {\r\n if (typeof module === 'object') {\r\n try {\r\n module.exports = tinymce;\r\n } catch (_) {\r\n }\r\n }\r\n };\r\n var exportToWindowGlobal = function (tinymce) {\r\n window.tinymce = tinymce;\r\n window.tinyMCE = tinymce;\r\n };\r\n exportToWindowGlobal(Tinymce);\r\n exportToModuleLoaders(Tinymce);\r\n\r\n}());\r\n})();\r\n","(function () {\r\nvar code = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var getMinWidth = function (editor) {\r\n return editor.getParam('code_dialog_width', 600);\r\n };\r\n var getMinHeight = function (editor) {\r\n return editor.getParam('code_dialog_height', Math.min(global$1.DOM.getViewPort().h - 200, 500));\r\n };\r\n var $_2agnwba2jkmcwo8k = {\r\n getMinWidth: getMinWidth,\r\n getMinHeight: getMinHeight\r\n };\r\n\r\n var setContent = function (editor, html) {\r\n editor.focus();\r\n editor.undoManager.transact(function () {\r\n editor.setContent(html);\r\n });\r\n editor.selection.setCursorLocation();\r\n editor.nodeChanged();\r\n };\r\n var getContent = function (editor) {\r\n return editor.getContent({ source_view: true });\r\n };\r\n var $_gf01w3a4jkmcwo8n = {\r\n setContent: setContent,\r\n getContent: getContent\r\n };\r\n\r\n var open = function (editor) {\r\n var minWidth = $_2agnwba2jkmcwo8k.getMinWidth(editor);\r\n var minHeight = $_2agnwba2jkmcwo8k.getMinHeight(editor);\r\n var win = editor.windowManager.open({\r\n title: 'Source code',\r\n body: {\r\n type: 'textbox',\r\n name: 'code',\r\n multiline: true,\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n spellcheck: false,\r\n style: 'direction: ltr; text-align: left'\r\n },\r\n onSubmit: function (e) {\r\n $_gf01w3a4jkmcwo8n.setContent(editor, e.data.code);\r\n }\r\n });\r\n win.find('#code').value($_gf01w3a4jkmcwo8n.getContent(editor));\r\n };\r\n var $_4xs1xna1jkmcwo8j = { open: open };\r\n\r\n var register = function (editor) {\r\n editor.addCommand('mceCodeEditor', function () {\r\n $_4xs1xna1jkmcwo8j.open(editor);\r\n });\r\n };\r\n var $_atmzsea0jkmcwo8i = { register: register };\r\n\r\n var register$1 = function (editor) {\r\n editor.addButton('code', {\r\n icon: 'code',\r\n tooltip: 'Source code',\r\n onclick: function () {\r\n $_4xs1xna1jkmcwo8j.open(editor);\r\n }\r\n });\r\n editor.addMenuItem('code', {\r\n icon: 'code',\r\n text: 'Source code',\r\n onclick: function () {\r\n $_4xs1xna1jkmcwo8j.open(editor);\r\n }\r\n });\r\n };\r\n var $_f9f308a5jkmcwo8o = { register: register$1 };\r\n\r\n global.add('code', function (editor) {\r\n $_atmzsea0jkmcwo8i.register(editor);\r\n $_f9f308a5jkmcwo8o.register(editor);\r\n return {};\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=style&index=0&lang=css&\"","function _get(key) {\r\n return window.sessionStorage.getItem(key);\r\n};\r\n\r\nfunction _add(key, data) {\r\n window.sessionStorage.setItem(key, data);\r\n};\r\n\r\nfunction _update(key, data) {\r\n window.sessionStorage.setItem(key, data);\r\n};\r\n\r\nfunction _remove(key) {\r\n window.sessionStorage.removeItem(key);\r\n};\r\n\r\nfunction _reset() {\r\n window.sessionStorage.clear();\r\n};\r\n\r\nexport default {\r\n get: _get,\r\n add: _add,\r\n update: _update,\r\n remove: _remove,\r\n reset: _reset,\r\n}\r\n","import Vue from 'vue'\r\nimport Pikaday from 'pikaday'\r\nimport 'pikaday/scss/pikaday.scss'\r\n\r\nVue.directive('datepicker', {\r\n twoWay: true,\r\n bind: (el, binding, vnode) => {\r\n var picker = new Pikaday({\r\n field: el,\r\n format: 'DD/MM/YYYY',\r\n onSelect: () => {\r\n setVModelValue(picker.toString(), vnode)\r\n },\r\n i18n: {\r\n previousMonth: 'Mês Anterior',\r\n nextMonth: 'Mês Seguinte',\r\n months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],\r\n weekdays: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],\r\n weekdaysShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']\r\n }\r\n });\r\n \r\n function findVModelName(vnode) {\r\n return vnode.data.directives.find(function (o) {\r\n return o.name === 'model';\r\n }).expression;\r\n }\r\n\r\n function setVModelValue(value, vnode) {\r\n var prop = findVModelName(vnode)\r\n eval('vnode.context.' + prop + ' = ' + '\"' + value + '\"')\r\n }\r\n },\r\n\r\n})","module.exports = \"data:image/png;base64,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\"","(function () {\r\nvar link = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');\r\n\r\n var assumeExternalTargets = function (editorSettings) {\r\n return typeof editorSettings.link_assume_external_targets === 'boolean' ? editorSettings.link_assume_external_targets : false;\r\n };\r\n var hasContextToolbar = function (editorSettings) {\r\n return typeof editorSettings.link_context_toolbar === 'boolean' ? editorSettings.link_context_toolbar : false;\r\n };\r\n var getLinkList = function (editorSettings) {\r\n return editorSettings.link_list;\r\n };\r\n var hasDefaultLinkTarget = function (editorSettings) {\r\n return typeof editorSettings.default_link_target === 'string';\r\n };\r\n var getDefaultLinkTarget = function (editorSettings) {\r\n return editorSettings.default_link_target;\r\n };\r\n var getTargetList = function (editorSettings) {\r\n return editorSettings.target_list;\r\n };\r\n var setTargetList = function (editor, list) {\r\n editor.settings.target_list = list;\r\n };\r\n var shouldShowTargetList = function (editorSettings) {\r\n return getTargetList(editorSettings) !== false;\r\n };\r\n var getRelList = function (editorSettings) {\r\n return editorSettings.rel_list;\r\n };\r\n var hasRelList = function (editorSettings) {\r\n return getRelList(editorSettings) !== undefined;\r\n };\r\n var getLinkClassList = function (editorSettings) {\r\n return editorSettings.link_class_list;\r\n };\r\n var hasLinkClassList = function (editorSettings) {\r\n return getLinkClassList(editorSettings) !== undefined;\r\n };\r\n var shouldShowLinkTitle = function (editorSettings) {\r\n return editorSettings.link_title !== false;\r\n };\r\n var allowUnsafeLinkTarget = function (editorSettings) {\r\n return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false;\r\n };\r\n var $_7h5h1kfvjkmcwp8j = {\r\n assumeExternalTargets: assumeExternalTargets,\r\n hasContextToolbar: hasContextToolbar,\r\n getLinkList: getLinkList,\r\n hasDefaultLinkTarget: hasDefaultLinkTarget,\r\n getDefaultLinkTarget: getDefaultLinkTarget,\r\n getTargetList: getTargetList,\r\n setTargetList: setTargetList,\r\n shouldShowTargetList: shouldShowTargetList,\r\n getRelList: getRelList,\r\n hasRelList: hasRelList,\r\n getLinkClassList: getLinkClassList,\r\n hasLinkClassList: hasLinkClassList,\r\n shouldShowLinkTitle: shouldShowLinkTitle,\r\n allowUnsafeLinkTarget: allowUnsafeLinkTarget\r\n };\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var appendClickRemove = function (link, evt) {\r\n document.body.appendChild(link);\r\n link.dispatchEvent(evt);\r\n document.body.removeChild(link);\r\n };\r\n var open$$1 = function (url) {\r\n if (!global$3.ie || global$3.ie > 10) {\r\n var link = document.createElement('a');\r\n link.target = '_blank';\r\n link.href = url;\r\n link.rel = 'noreferrer noopener';\r\n var evt = document.createEvent('MouseEvents');\r\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n appendClickRemove(link, evt);\r\n } else {\r\n var win = window.open('', '_blank');\r\n if (win) {\r\n win.opener = null;\r\n var doc = win.document;\r\n doc.open();\r\n doc.write('');\r\n doc.close();\r\n }\r\n }\r\n };\r\n var $_50rjczfwjkmcwp8l = { open: open$$1 };\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var toggleTargetRules = function (rel, isUnsafe) {\r\n var rules = ['noopener'];\r\n var newRel = rel ? rel.split(/\\s+/) : [];\r\n var toString = function (rel) {\r\n return global$4.trim(rel.sort().join(' '));\r\n };\r\n var addTargetRules = function (rel) {\r\n rel = removeTargetRules(rel);\r\n return rel.length ? rel.concat(rules) : rules;\r\n };\r\n var removeTargetRules = function (rel) {\r\n return rel.filter(function (val) {\r\n return global$4.inArray(rules, val) === -1;\r\n });\r\n };\r\n newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel);\r\n return newRel.length ? toString(newRel) : null;\r\n };\r\n var trimCaretContainers = function (text) {\r\n return text.replace(/\\uFEFF/g, '');\r\n };\r\n var getAnchorElement = function (editor, selectedElm) {\r\n selectedElm = selectedElm || editor.selection.getNode();\r\n if (isImageFigure(selectedElm)) {\r\n return editor.dom.select('a[href]', selectedElm)[0];\r\n } else {\r\n return editor.dom.getParent(selectedElm, 'a[href]');\r\n }\r\n };\r\n var getAnchorText = function (selection, anchorElm) {\r\n var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' });\r\n return trimCaretContainers(text);\r\n };\r\n var isLink = function (elm) {\r\n return elm && elm.nodeName === 'A' && elm.href;\r\n };\r\n var hasLinks = function (elements) {\r\n return global$4.grep(elements, isLink).length > 0;\r\n };\r\n var isOnlyTextSelected = function (html) {\r\n if (/]+>[^<]+<\\/a>$/.test(html) || html.indexOf('href=') === -1)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isImageFigure = function (node) {\r\n return node && node.nodeName === 'FIGURE' && /\\bimage\\b/i.test(node.className);\r\n };\r\n var link = function (editor, attachState) {\r\n return function (data) {\r\n editor.undoManager.transact(function () {\r\n var selectedElm = editor.selection.getNode();\r\n var anchorElm = getAnchorElement(editor, selectedElm);\r\n var linkAttrs = {\r\n href: data.href,\r\n target: data.target ? data.target : null,\r\n rel: data.rel ? data.rel : null,\r\n class: data.class ? data.class : null,\r\n title: data.title ? data.title : null\r\n };\r\n if (!$_7h5h1kfvjkmcwp8j.hasRelList(editor.settings) && $_7h5h1kfvjkmcwp8j.allowUnsafeLinkTarget(editor.settings) === false) {\r\n linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank');\r\n }\r\n if (data.href === attachState.href) {\r\n attachState.attach();\r\n attachState = {};\r\n }\r\n if (anchorElm) {\r\n editor.focus();\r\n if (data.hasOwnProperty('text')) {\r\n if ('innerText' in anchorElm) {\r\n anchorElm.innerText = data.text;\r\n } else {\r\n anchorElm.textContent = data.text;\r\n }\r\n }\r\n editor.dom.setAttribs(anchorElm, linkAttrs);\r\n editor.selection.select(anchorElm);\r\n editor.undoManager.add();\r\n } else {\r\n if (isImageFigure(selectedElm)) {\r\n linkImageFigure(editor, selectedElm, linkAttrs);\r\n } else if (data.hasOwnProperty('text')) {\r\n editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(data.text)));\r\n } else {\r\n editor.execCommand('mceInsertLink', false, linkAttrs);\r\n }\r\n }\r\n });\r\n };\r\n };\r\n var unlink = function (editor) {\r\n return function () {\r\n editor.undoManager.transact(function () {\r\n var node = editor.selection.getNode();\r\n if (isImageFigure(node)) {\r\n unlinkImageFigure(editor, node);\r\n } else {\r\n editor.execCommand('unlink');\r\n }\r\n });\r\n };\r\n };\r\n var unlinkImageFigure = function (editor, fig) {\r\n var a, img;\r\n img = editor.dom.select('img', fig)[0];\r\n if (img) {\r\n a = editor.dom.getParents(img, 'a[href]', fig)[0];\r\n if (a) {\r\n a.parentNode.insertBefore(img, a);\r\n editor.dom.remove(a);\r\n }\r\n }\r\n };\r\n var linkImageFigure = function (editor, fig, attrs) {\r\n var a, img;\r\n img = editor.dom.select('img', fig)[0];\r\n if (img) {\r\n a = editor.dom.create('a', attrs);\r\n img.parentNode.insertBefore(a, img);\r\n a.appendChild(img);\r\n }\r\n };\r\n var $_f96xu2g0jkmcwp91 = {\r\n link: link,\r\n unlink: unlink,\r\n isLink: isLink,\r\n hasLinks: hasLinks,\r\n isOnlyTextSelected: isOnlyTextSelected,\r\n getAnchorElement: getAnchorElement,\r\n getAnchorText: getAnchorText,\r\n toggleTargetRules: toggleTargetRules\r\n };\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Delay');\r\n\r\n var global$6 = tinymce.util.Tools.resolve('tinymce.util.XHR');\r\n\r\n var attachState = {};\r\n var createLinkList = function (editor, callback) {\r\n var linkList = $_7h5h1kfvjkmcwp8j.getLinkList(editor.settings);\r\n if (typeof linkList === 'string') {\r\n global$6.send({\r\n url: linkList,\r\n success: function (text) {\r\n callback(editor, JSON.parse(text));\r\n }\r\n });\r\n } else if (typeof linkList === 'function') {\r\n linkList(function (list) {\r\n callback(editor, list);\r\n });\r\n } else {\r\n callback(editor, linkList);\r\n }\r\n };\r\n var buildListItems = function (inputList, itemCallback, startItems) {\r\n var appendItems = function (values, output) {\r\n output = output || [];\r\n global$4.each(values, function (item) {\r\n var menuItem = { text: item.text || item.title };\r\n if (item.menu) {\r\n menuItem.menu = appendItems(item.menu);\r\n } else {\r\n menuItem.value = item.value;\r\n if (itemCallback) {\r\n itemCallback(menuItem);\r\n }\r\n }\r\n output.push(menuItem);\r\n });\r\n return output;\r\n };\r\n return appendItems(inputList, startItems || []);\r\n };\r\n var delayedConfirm = function (editor, message, callback) {\r\n var rng = editor.selection.getRng();\r\n global$5.setEditorTimeout(editor, function () {\r\n editor.windowManager.confirm(message, function (state) {\r\n editor.selection.setRng(rng);\r\n callback(state);\r\n });\r\n });\r\n };\r\n var showDialog = function (editor, linkList) {\r\n var data = {};\r\n var selection = editor.selection;\r\n var dom = editor.dom;\r\n var anchorElm, initialText;\r\n var win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value;\r\n var linkListChangeHandler = function (e) {\r\n var textCtrl = win.find('#text');\r\n if (!textCtrl.value() || e.lastControl && textCtrl.value() === e.lastControl.text()) {\r\n textCtrl.value(e.control.text());\r\n }\r\n win.find('#href').value(e.control.value());\r\n };\r\n var buildAnchorListControl = function (url) {\r\n var anchorList = [];\r\n global$4.each(editor.dom.select('a:not([href])'), function (anchor) {\r\n var id = anchor.name || anchor.id;\r\n if (id) {\r\n anchorList.push({\r\n text: id,\r\n value: '#' + id,\r\n selected: url.indexOf('#' + id) !== -1\r\n });\r\n }\r\n });\r\n if (anchorList.length) {\r\n anchorList.unshift({\r\n text: 'None',\r\n value: ''\r\n });\r\n return {\r\n name: 'anchor',\r\n type: 'listbox',\r\n label: 'Anchors',\r\n values: anchorList,\r\n onselect: linkListChangeHandler\r\n };\r\n }\r\n };\r\n var updateText = function () {\r\n if (!initialText && onlyText && !data.text) {\r\n this.parent().parent().find('#text')[0].value(this.value());\r\n }\r\n };\r\n var urlChange = function (e) {\r\n var meta = e.meta || {};\r\n if (linkListCtrl) {\r\n linkListCtrl.value(editor.convertURL(this.value(), 'href'));\r\n }\r\n global$4.each(e.meta, function (value, key) {\r\n var inp = win.find('#' + key);\r\n if (key === 'text') {\r\n if (initialText.length === 0) {\r\n inp.value(value);\r\n data.text = value;\r\n }\r\n } else {\r\n inp.value(value);\r\n }\r\n });\r\n if (meta.attach) {\r\n attachState = {\r\n href: this.value(),\r\n attach: meta.attach\r\n };\r\n }\r\n if (!meta.text) {\r\n updateText.call(this);\r\n }\r\n };\r\n var onBeforeCall = function (e) {\r\n e.meta = win.toJSON();\r\n };\r\n onlyText = $_f96xu2g0jkmcwp91.isOnlyTextSelected(selection.getContent());\r\n anchorElm = $_f96xu2g0jkmcwp91.getAnchorElement(editor);\r\n data.text = initialText = $_f96xu2g0jkmcwp91.getAnchorText(editor.selection, anchorElm);\r\n data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : '';\r\n if (anchorElm) {\r\n data.target = dom.getAttrib(anchorElm, 'target');\r\n } else if ($_7h5h1kfvjkmcwp8j.hasDefaultLinkTarget(editor.settings)) {\r\n data.target = $_7h5h1kfvjkmcwp8j.getDefaultLinkTarget(editor.settings);\r\n }\r\n if (value = dom.getAttrib(anchorElm, 'rel')) {\r\n data.rel = value;\r\n }\r\n if (value = dom.getAttrib(anchorElm, 'class')) {\r\n data.class = value;\r\n }\r\n if (value = dom.getAttrib(anchorElm, 'title')) {\r\n data.title = value;\r\n }\r\n if (onlyText) {\r\n textListCtrl = {\r\n name: 'text',\r\n type: 'textbox',\r\n size: 40,\r\n label: 'Text to display',\r\n onchange: function () {\r\n data.text = this.value();\r\n }\r\n };\r\n }\r\n if (linkList) {\r\n linkListCtrl = {\r\n type: 'listbox',\r\n label: 'Link list',\r\n values: buildListItems(linkList, function (item) {\r\n item.value = editor.convertURL(item.value || item.url, 'href');\r\n }, [{\r\n text: 'None',\r\n value: ''\r\n }]),\r\n onselect: linkListChangeHandler,\r\n value: editor.convertURL(data.href, 'href'),\r\n onPostRender: function () {\r\n linkListCtrl = this;\r\n }\r\n };\r\n }\r\n if ($_7h5h1kfvjkmcwp8j.shouldShowTargetList(editor.settings)) {\r\n if ($_7h5h1kfvjkmcwp8j.getTargetList(editor.settings) === undefined) {\r\n $_7h5h1kfvjkmcwp8j.setTargetList(editor, [\r\n {\r\n text: 'None',\r\n value: ''\r\n },\r\n {\r\n text: 'New window',\r\n value: '_blank'\r\n }\r\n ]);\r\n }\r\n targetListCtrl = {\r\n name: 'target',\r\n type: 'listbox',\r\n label: 'Target',\r\n values: buildListItems($_7h5h1kfvjkmcwp8j.getTargetList(editor.settings))\r\n };\r\n }\r\n if ($_7h5h1kfvjkmcwp8j.hasRelList(editor.settings)) {\r\n relListCtrl = {\r\n name: 'rel',\r\n type: 'listbox',\r\n label: 'Rel',\r\n values: buildListItems($_7h5h1kfvjkmcwp8j.getRelList(editor.settings), function (item) {\r\n if ($_7h5h1kfvjkmcwp8j.allowUnsafeLinkTarget(editor.settings) === false) {\r\n item.value = $_f96xu2g0jkmcwp91.toggleTargetRules(item.value, data.target === '_blank');\r\n }\r\n })\r\n };\r\n }\r\n if ($_7h5h1kfvjkmcwp8j.hasLinkClassList(editor.settings)) {\r\n classListCtrl = {\r\n name: 'class',\r\n type: 'listbox',\r\n label: 'Class',\r\n values: buildListItems($_7h5h1kfvjkmcwp8j.getLinkClassList(editor.settings), function (item) {\r\n if (item.value) {\r\n item.textStyle = function () {\r\n return editor.formatter.getCssText({\r\n inline: 'a',\r\n classes: [item.value]\r\n });\r\n };\r\n }\r\n })\r\n };\r\n }\r\n if ($_7h5h1kfvjkmcwp8j.shouldShowLinkTitle(editor.settings)) {\r\n linkTitleCtrl = {\r\n name: 'title',\r\n type: 'textbox',\r\n label: 'Title',\r\n value: data.title\r\n };\r\n }\r\n win = editor.windowManager.open({\r\n title: 'Insert link',\r\n data: data,\r\n body: [\r\n {\r\n name: 'href',\r\n type: 'filepicker',\r\n filetype: 'file',\r\n size: 40,\r\n autofocus: true,\r\n label: 'Url',\r\n onchange: urlChange,\r\n onkeyup: updateText,\r\n onpaste: updateText,\r\n onbeforecall: onBeforeCall\r\n },\r\n textListCtrl,\r\n linkTitleCtrl,\r\n buildAnchorListControl(data.href),\r\n linkListCtrl,\r\n relListCtrl,\r\n targetListCtrl,\r\n classListCtrl\r\n ],\r\n onSubmit: function (e) {\r\n var assumeExternalTargets = $_7h5h1kfvjkmcwp8j.assumeExternalTargets(editor.settings);\r\n var insertLink = $_f96xu2g0jkmcwp91.link(editor, attachState);\r\n var removeLink = $_f96xu2g0jkmcwp91.unlink(editor);\r\n var resultData = global$4.extend({}, data, e.data);\r\n var href = resultData.href;\r\n if (!href) {\r\n removeLink();\r\n return;\r\n }\r\n if (!onlyText || resultData.text === initialText) {\r\n delete resultData.text;\r\n }\r\n if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf('mailto:') === -1) {\r\n delayedConfirm(editor, 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', function (state) {\r\n if (state) {\r\n resultData.href = 'mailto:' + href;\r\n }\r\n insertLink(resultData);\r\n });\r\n return;\r\n }\r\n if (assumeExternalTargets === true && !/^\\w+:/i.test(href) || assumeExternalTargets === false && /^\\s*www[\\.|\\d\\.]/i.test(href)) {\r\n delayedConfirm(editor, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (state) {\r\n if (state) {\r\n resultData.href = 'http://' + href;\r\n }\r\n insertLink(resultData);\r\n });\r\n return;\r\n }\r\n insertLink(resultData);\r\n }\r\n });\r\n };\r\n var open$1 = function (editor) {\r\n createLinkList(editor, showDialog);\r\n };\r\n var $_1hdbnpg2jkmcwp96 = { open: open$1 };\r\n\r\n var getLink = function (editor, elm) {\r\n return editor.dom.getParent(elm, 'a[href]');\r\n };\r\n var getSelectedLink = function (editor) {\r\n return getLink(editor, editor.selection.getStart());\r\n };\r\n var getHref = function (elm) {\r\n var href = elm.getAttribute('data-mce-href');\r\n return href ? href : elm.getAttribute('href');\r\n };\r\n var isContextMenuVisible = function (editor) {\r\n var contextmenu = editor.plugins.contextmenu;\r\n return contextmenu ? contextmenu.isContextMenuVisible() : false;\r\n };\r\n var hasOnlyAltModifier = function (e) {\r\n return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false;\r\n };\r\n var gotoLink = function (editor, a) {\r\n if (a) {\r\n var href = getHref(a);\r\n if (/^#/.test(href)) {\r\n var targetEl = editor.$(href);\r\n if (targetEl.length) {\r\n editor.selection.scrollIntoView(targetEl[0], true);\r\n }\r\n } else {\r\n $_50rjczfwjkmcwp8l.open(a.href);\r\n }\r\n }\r\n };\r\n var openDialog = function (editor) {\r\n return function () {\r\n $_1hdbnpg2jkmcwp96.open(editor);\r\n };\r\n };\r\n var gotoSelectedLink = function (editor) {\r\n return function () {\r\n gotoLink(editor, getSelectedLink(editor));\r\n };\r\n };\r\n var leftClickedOnAHref = function (editor) {\r\n return function (elm) {\r\n var sel, rng, node;\r\n if ($_7h5h1kfvjkmcwp8j.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_f96xu2g0jkmcwp91.isLink(elm)) {\r\n sel = editor.selection;\r\n rng = sel.getRng();\r\n node = rng.startContainer;\r\n if (node.nodeType === 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var setupGotoLinks = function (editor) {\r\n editor.on('click', function (e) {\r\n var link = getLink(editor, e.target);\r\n if (link && global$1.metaKeyPressed(e)) {\r\n e.preventDefault();\r\n gotoLink(editor, link);\r\n }\r\n });\r\n editor.on('keydown', function (e) {\r\n var link = getSelectedLink(editor);\r\n if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) {\r\n e.preventDefault();\r\n gotoLink(editor, link);\r\n }\r\n });\r\n };\r\n var toggleActiveState = function (editor) {\r\n return function () {\r\n var self = this;\r\n editor.on('nodechange', function (e) {\r\n self.active(!editor.readonly && !!$_f96xu2g0jkmcwp91.getAnchorElement(editor, e.element));\r\n });\r\n };\r\n };\r\n var toggleViewLinkState = function (editor) {\r\n return function () {\r\n var self = this;\r\n var toggleVisibility = function (e) {\r\n if ($_f96xu2g0jkmcwp91.hasLinks(e.parents)) {\r\n self.show();\r\n } else {\r\n self.hide();\r\n }\r\n };\r\n if (!$_f96xu2g0jkmcwp91.hasLinks(editor.dom.getParents(editor.selection.getStart()))) {\r\n self.hide();\r\n }\r\n editor.on('nodechange', toggleVisibility);\r\n self.on('remove', function () {\r\n editor.off('nodechange', toggleVisibility);\r\n });\r\n };\r\n };\r\n var $_dlew49ftjkmcwp8f = {\r\n openDialog: openDialog,\r\n gotoSelectedLink: gotoSelectedLink,\r\n leftClickedOnAHref: leftClickedOnAHref,\r\n setupGotoLinks: setupGotoLinks,\r\n toggleActiveState: toggleActiveState,\r\n toggleViewLinkState: toggleViewLinkState\r\n };\r\n\r\n var register = function (editor) {\r\n editor.addCommand('mceLink', $_dlew49ftjkmcwp8f.openDialog(editor));\r\n };\r\n var $_3nvo42fsjkmcwp8b = { register: register };\r\n\r\n var setup = function (editor) {\r\n editor.addShortcut('Meta+K', '', $_dlew49ftjkmcwp8f.openDialog(editor));\r\n };\r\n var $_aoohpyg5jkmcwp9f = { setup: setup };\r\n\r\n var setupButtons = function (editor) {\r\n editor.addButton('link', {\r\n active: false,\r\n icon: 'link',\r\n tooltip: 'Insert/edit link',\r\n onclick: $_dlew49ftjkmcwp8f.openDialog(editor),\r\n onpostrender: $_dlew49ftjkmcwp8f.toggleActiveState(editor)\r\n });\r\n editor.addButton('unlink', {\r\n active: false,\r\n icon: 'unlink',\r\n tooltip: 'Remove link',\r\n onclick: $_f96xu2g0jkmcwp91.unlink(editor),\r\n onpostrender: $_dlew49ftjkmcwp8f.toggleActiveState(editor)\r\n });\r\n if (editor.addContextToolbar) {\r\n editor.addButton('openlink', {\r\n icon: 'newtab',\r\n tooltip: 'Open link',\r\n onclick: $_dlew49ftjkmcwp8f.gotoSelectedLink(editor)\r\n });\r\n }\r\n };\r\n var setupMenuItems = function (editor) {\r\n editor.addMenuItem('openlink', {\r\n text: 'Open link',\r\n icon: 'newtab',\r\n onclick: $_dlew49ftjkmcwp8f.gotoSelectedLink(editor),\r\n onPostRender: $_dlew49ftjkmcwp8f.toggleViewLinkState(editor),\r\n prependToContext: true\r\n });\r\n editor.addMenuItem('link', {\r\n icon: 'link',\r\n text: 'Link',\r\n shortcut: 'Meta+K',\r\n onclick: $_dlew49ftjkmcwp8f.openDialog(editor),\r\n stateSelector: 'a[href]',\r\n context: 'insert',\r\n prependToContext: true\r\n });\r\n editor.addMenuItem('unlink', {\r\n icon: 'unlink',\r\n text: 'Remove link',\r\n onclick: $_f96xu2g0jkmcwp91.unlink(editor),\r\n stateSelector: 'a[href]'\r\n });\r\n };\r\n var setupContextToolbars = function (editor) {\r\n if (editor.addContextToolbar) {\r\n editor.addContextToolbar($_dlew49ftjkmcwp8f.leftClickedOnAHref(editor), 'openlink | link unlink');\r\n }\r\n };\r\n var $_3wxsofg6jkmcwp9g = {\r\n setupButtons: setupButtons,\r\n setupMenuItems: setupMenuItems,\r\n setupContextToolbars: setupContextToolbars\r\n };\r\n\r\n global.add('link', function (editor) {\r\n $_3wxsofg6jkmcwp9g.setupButtons(editor);\r\n $_3wxsofg6jkmcwp9g.setupMenuItems(editor);\r\n $_3wxsofg6jkmcwp9g.setupContextToolbars(editor);\r\n $_dlew49ftjkmcwp8f.setupGotoLinks(editor);\r\n $_3nvo42fsjkmcwp8b.register(editor);\r\n $_aoohpyg5jkmcwp9f.setup(editor);\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","(function () {\r\nvar paste = (function () {\r\n 'use strict';\r\n\r\n var Cell = function (initial) {\r\n var value = initial;\r\n var get = function () {\r\n return value;\r\n };\r\n var set = function (v) {\r\n value = v;\r\n };\r\n var clone = function () {\r\n return Cell(get());\r\n };\r\n return {\r\n get: get,\r\n set: set,\r\n clone: clone\r\n };\r\n };\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var hasProPlugin = function (editor) {\r\n if (/(^|[ ,])powerpaste([, ]|$)/.test(editor.settings.plugins) && global.get('powerpaste')) {\r\n if (typeof window.console !== 'undefined' && window.console.log) {\r\n window.console.log('PowerPaste is incompatible with Paste plugin! Remove \\'paste\\' from the \\'plugins\\' option.');\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var $_ee0gktiejkmcwpkb = { hasProPlugin: hasProPlugin };\r\n\r\n var get = function (clipboard, quirks) {\r\n return {\r\n clipboard: clipboard,\r\n quirks: quirks\r\n };\r\n };\r\n var $_6khw6eigjkmcwpkp = { get: get };\r\n\r\n var firePastePreProcess = function (editor, html, internal, isWordHtml) {\r\n return editor.fire('PastePreProcess', {\r\n content: html,\r\n internal: internal,\r\n wordContent: isWordHtml\r\n });\r\n };\r\n var firePastePostProcess = function (editor, node, internal, isWordHtml) {\r\n return editor.fire('PastePostProcess', {\r\n node: node,\r\n internal: internal,\r\n wordContent: isWordHtml\r\n });\r\n };\r\n var firePastePlainTextToggle = function (editor, state) {\r\n return editor.fire('PastePlainTextToggle', { state: state });\r\n };\r\n var firePaste = function (editor, ieFake) {\r\n return editor.fire('paste', { ieFake: ieFake });\r\n };\r\n var $_d8ovv8ijjkmcwpku = {\r\n firePastePreProcess: firePastePreProcess,\r\n firePastePostProcess: firePastePostProcess,\r\n firePastePlainTextToggle: firePastePlainTextToggle,\r\n firePaste: firePaste\r\n };\r\n\r\n var shouldPlainTextInform = function (editor) {\r\n return editor.getParam('paste_plaintext_inform', true);\r\n };\r\n var shouldBlockDrop = function (editor) {\r\n return editor.getParam('paste_block_drop', false);\r\n };\r\n var shouldPasteDataImages = function (editor) {\r\n return editor.getParam('paste_data_images', false);\r\n };\r\n var shouldFilterDrop = function (editor) {\r\n return editor.getParam('paste_filter_drop', true);\r\n };\r\n var getPreProcess = function (editor) {\r\n return editor.getParam('paste_preprocess');\r\n };\r\n var getPostProcess = function (editor) {\r\n return editor.getParam('paste_postprocess');\r\n };\r\n var getWebkitStyles = function (editor) {\r\n return editor.getParam('paste_webkit_styles');\r\n };\r\n var shouldRemoveWebKitStyles = function (editor) {\r\n return editor.getParam('paste_remove_styles_if_webkit', true);\r\n };\r\n var shouldMergeFormats = function (editor) {\r\n return editor.getParam('paste_merge_formats', true);\r\n };\r\n var isSmartPasteEnabled = function (editor) {\r\n return editor.getParam('smart_paste', true);\r\n };\r\n var isPasteAsTextEnabled = function (editor) {\r\n return editor.getParam('paste_as_text', false);\r\n };\r\n var getRetainStyleProps = function (editor) {\r\n return editor.getParam('paste_retain_style_properties');\r\n };\r\n var getWordValidElements = function (editor) {\r\n var defaultValidElements = '-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + '-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,' + 'td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody';\r\n return editor.getParam('paste_word_valid_elements', defaultValidElements);\r\n };\r\n var shouldConvertWordFakeLists = function (editor) {\r\n return editor.getParam('paste_convert_word_fake_lists', true);\r\n };\r\n var shouldUseDefaultFilters = function (editor) {\r\n return editor.getParam('paste_enable_default_filters', true);\r\n };\r\n var $_5peev0ikjkmcwpkv = {\r\n shouldPlainTextInform: shouldPlainTextInform,\r\n shouldBlockDrop: shouldBlockDrop,\r\n shouldPasteDataImages: shouldPasteDataImages,\r\n shouldFilterDrop: shouldFilterDrop,\r\n getPreProcess: getPreProcess,\r\n getPostProcess: getPostProcess,\r\n getWebkitStyles: getWebkitStyles,\r\n shouldRemoveWebKitStyles: shouldRemoveWebKitStyles,\r\n shouldMergeFormats: shouldMergeFormats,\r\n isSmartPasteEnabled: isSmartPasteEnabled,\r\n isPasteAsTextEnabled: isPasteAsTextEnabled,\r\n getRetainStyleProps: getRetainStyleProps,\r\n getWordValidElements: getWordValidElements,\r\n shouldConvertWordFakeLists: shouldConvertWordFakeLists,\r\n shouldUseDefaultFilters: shouldUseDefaultFilters\r\n };\r\n\r\n var shouldInformUserAboutPlainText = function (editor, userIsInformedState) {\r\n return userIsInformedState.get() === false && $_5peev0ikjkmcwpkv.shouldPlainTextInform(editor);\r\n };\r\n var displayNotification = function (editor, message) {\r\n editor.notificationManager.open({\r\n text: editor.translate(message),\r\n type: 'info'\r\n });\r\n };\r\n var togglePlainTextPaste = function (editor, clipboard, userIsInformedState) {\r\n if (clipboard.pasteFormat.get() === 'text') {\r\n clipboard.pasteFormat.set('html');\r\n $_d8ovv8ijjkmcwpku.firePastePlainTextToggle(editor, false);\r\n } else {\r\n clipboard.pasteFormat.set('text');\r\n $_d8ovv8ijjkmcwpku.firePastePlainTextToggle(editor, true);\r\n if (shouldInformUserAboutPlainText(editor, userIsInformedState)) {\r\n displayNotification(editor, 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.');\r\n userIsInformedState.set(true);\r\n }\r\n }\r\n editor.focus();\r\n };\r\n var $_7rw4pkiijkmcwpks = { togglePlainTextPaste: togglePlainTextPaste };\r\n\r\n var register = function (editor, clipboard, userIsInformedState) {\r\n editor.addCommand('mceTogglePlainTextPaste', function () {\r\n $_7rw4pkiijkmcwpks.togglePlainTextPaste(editor, clipboard, userIsInformedState);\r\n });\r\n editor.addCommand('mceInsertClipboardContent', function (ui, value) {\r\n if (value.content) {\r\n clipboard.pasteHtml(value.content, value.internal);\r\n }\r\n if (value.text) {\r\n clipboard.pasteText(value.text);\r\n }\r\n });\r\n };\r\n var $_gh26txihjkmcwpkr = { register: register };\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');\r\n\r\n var internalMimeType = 'x-tinymce/html';\r\n var internalMark = '';\r\n var mark = function (html) {\r\n return internalMark + html;\r\n };\r\n var unmark = function (html) {\r\n return html.replace(internalMark, '');\r\n };\r\n var isMarked = function (html) {\r\n return html.indexOf(internalMark) !== -1;\r\n };\r\n var $_93gcj3irjkmcwpld = {\r\n mark: mark,\r\n unmark: unmark,\r\n isMarked: isMarked,\r\n internalHtmlMime: function () {\r\n return internalMimeType;\r\n }\r\n };\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.html.Entities');\r\n\r\n var isPlainText = function (text) {\r\n return !/<(?:\\/?(?!(?:div|p|br|span)>)\\w+|(?:(?!(?:span style=\"white-space:\\s?pre;?\">)|br\\s?\\/>))\\w+\\s[^>]+)>/i.test(text);\r\n };\r\n var toBRs = function (text) {\r\n return text.replace(/\\r?\\n/g, '
    ');\r\n };\r\n var openContainer = function (rootTag, rootAttrs) {\r\n var key;\r\n var attrs = [];\r\n var tag = '<' + rootTag;\r\n if (typeof rootAttrs === 'object') {\r\n for (key in rootAttrs) {\r\n if (rootAttrs.hasOwnProperty(key)) {\r\n attrs.push(key + '=\"' + global$5.encodeAllRaw(rootAttrs[key]) + '\"');\r\n }\r\n }\r\n if (attrs.length) {\r\n tag += ' ' + attrs.join(' ');\r\n }\r\n }\r\n return tag + '>';\r\n };\r\n var toBlockElements = function (text, rootTag, rootAttrs) {\r\n var blocks = text.split(/\\n\\n/);\r\n var tagOpen = openContainer(rootTag, rootAttrs);\r\n var tagClose = '';\r\n var paragraphs = global$3.map(blocks, function (p) {\r\n return p.split(/\\n/).join('
    ');\r\n });\r\n var stitch = function (p) {\r\n return tagOpen + p + tagClose;\r\n };\r\n return paragraphs.length === 1 ? paragraphs[0] : global$3.map(paragraphs, stitch).join('');\r\n };\r\n var convert = function (text, rootTag, rootAttrs) {\r\n return rootTag ? toBlockElements(text, rootTag, rootAttrs) : toBRs(text);\r\n };\r\n var $_3nag2qisjkmcwple = {\r\n isPlainText: isPlainText,\r\n convert: convert,\r\n toBRs: toBRs,\r\n toBlockElements: toBlockElements\r\n };\r\n\r\n var global$6 = tinymce.util.Tools.resolve('tinymce.html.DomParser');\r\n\r\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node');\r\n\r\n var global$8 = tinymce.util.Tools.resolve('tinymce.html.Schema');\r\n\r\n var global$9 = tinymce.util.Tools.resolve('tinymce.html.Serializer');\r\n\r\n function filter(content, items) {\r\n global$3.each(items, function (v) {\r\n if (v.constructor === RegExp) {\r\n content = content.replace(v, '');\r\n } else {\r\n content = content.replace(v[0], v[1]);\r\n }\r\n });\r\n return content;\r\n }\r\n function innerText(html) {\r\n var schema = global$8();\r\n var domParser = global$6({}, schema);\r\n var text = '';\r\n var shortEndedElements = schema.getShortEndedElements();\r\n var ignoreElements = global$3.makeMap('script noscript style textarea video audio iframe object', ' ');\r\n var blockElements = schema.getBlockElements();\r\n function walk(node) {\r\n var name$$1 = node.name, currentNode = node;\r\n if (name$$1 === 'br') {\r\n text += '\\n';\r\n return;\r\n }\r\n if (shortEndedElements[name$$1]) {\r\n text += ' ';\r\n }\r\n if (ignoreElements[name$$1]) {\r\n text += ' ';\r\n return;\r\n }\r\n if (node.type === 3) {\r\n text += node.value;\r\n }\r\n if (!node.shortEnded) {\r\n if (node = node.firstChild) {\r\n do {\r\n walk(node);\r\n } while (node = node.next);\r\n }\r\n }\r\n if (blockElements[name$$1] && currentNode.next) {\r\n text += '\\n';\r\n if (name$$1 === 'p') {\r\n text += '\\n';\r\n }\r\n }\r\n }\r\n html = filter(html, [//g]);\r\n walk(domParser.parse(html));\r\n return text;\r\n }\r\n function trimHtml(html) {\r\n function trimSpaces(all, s1, s2) {\r\n if (!s1 && !s2) {\r\n return ' ';\r\n }\r\n return '\\xA0';\r\n }\r\n html = filter(html, [\r\n /^[\\s\\S]*]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig,\r\n /|/g,\r\n [\r\n /( ?)\\u00a0<\\/span>( ?)/g,\r\n trimSpaces\r\n ],\r\n /
    /g,\r\n /
    $/i\r\n ]);\r\n return html;\r\n }\r\n function createIdGenerator(prefix) {\r\n var count = 0;\r\n return function () {\r\n return prefix + count++;\r\n };\r\n }\r\n var isMsEdge = function () {\r\n return navigator.userAgent.indexOf(' Edge/') !== -1;\r\n };\r\n var $_2u5gcyj0jkmcwplv = {\r\n filter: filter,\r\n innerText: innerText,\r\n trimHtml: trimHtml,\r\n createIdGenerator: createIdGenerator,\r\n isMsEdge: isMsEdge\r\n };\r\n\r\n function isWordContent(content) {\r\n return / 1) {\r\n currentListNode.attr('start', '' + start);\r\n }\r\n paragraphNode.wrap(currentListNode);\r\n } else {\r\n currentListNode.append(paragraphNode);\r\n }\r\n paragraphNode.name = 'li';\r\n if (level > lastLevel && prevListNode) {\r\n prevListNode.lastChild.append(currentListNode);\r\n }\r\n lastLevel = level;\r\n removeIgnoredNodes(paragraphNode);\r\n trimListStart(paragraphNode, /^\\u00a0+/);\r\n trimListStart(paragraphNode, /^\\s*([\\u2022\\u00b7\\u00a7\\u25CF]|\\w+\\.)/);\r\n trimListStart(paragraphNode, /^\\u00a0+/);\r\n }\r\n var elements = [];\r\n var child = node.firstChild;\r\n while (typeof child !== 'undefined' && child !== null) {\r\n elements.push(child);\r\n child = child.walk();\r\n if (child !== null) {\r\n while (typeof child !== 'undefined' && child.parent !== node) {\r\n child = child.walk();\r\n }\r\n }\r\n }\r\n for (var i = 0; i < elements.length; i++) {\r\n node = elements[i];\r\n if (node.name === 'p' && node.firstChild) {\r\n var nodeText = getText(node);\r\n if (isBulletList(nodeText)) {\r\n convertParagraphToLi(node, 'ul');\r\n continue;\r\n }\r\n if (isNumericList(nodeText)) {\r\n var matches = /([0-9]+)\\./.exec(nodeText);\r\n var start = 1;\r\n if (matches) {\r\n start = parseInt(matches[1], 10);\r\n }\r\n convertParagraphToLi(node, 'ol', start);\r\n continue;\r\n }\r\n if (node._listLevel) {\r\n convertParagraphToLi(node, 'ul', 1);\r\n continue;\r\n }\r\n currentListNode = null;\r\n } else {\r\n prevListNode = currentListNode;\r\n currentListNode = null;\r\n }\r\n }\r\n }\r\n function filterStyles(editor, validStyles, node, styleValue) {\r\n var outputStyles = {}, matches;\r\n var styles = editor.dom.parseStyle(styleValue);\r\n global$3.each(styles, function (value, name) {\r\n switch (name) {\r\n case 'mso-list':\r\n matches = /\\w+ \\w+([0-9]+)/i.exec(styleValue);\r\n if (matches) {\r\n node._listLevel = parseInt(matches[1], 10);\r\n }\r\n if (/Ignore/i.test(value) && node.firstChild) {\r\n node._listIgnore = true;\r\n node.firstChild._listIgnore = true;\r\n }\r\n break;\r\n case 'horiz-align':\r\n name = 'text-align';\r\n break;\r\n case 'vert-align':\r\n name = 'vertical-align';\r\n break;\r\n case 'font-color':\r\n case 'mso-foreground':\r\n name = 'color';\r\n break;\r\n case 'mso-background':\r\n case 'mso-highlight':\r\n name = 'background';\r\n break;\r\n case 'font-weight':\r\n case 'font-style':\r\n if (value !== 'normal') {\r\n outputStyles[name] = value;\r\n }\r\n return;\r\n case 'mso-element':\r\n if (/^(comment|comment-list)$/i.test(value)) {\r\n node.remove();\r\n return;\r\n }\r\n break;\r\n }\r\n if (name.indexOf('mso-comment') === 0) {\r\n node.remove();\r\n return;\r\n }\r\n if (name.indexOf('mso-') === 0) {\r\n return;\r\n }\r\n if ($_5peev0ikjkmcwpkv.getRetainStyleProps(editor) === 'all' || validStyles && validStyles[name]) {\r\n outputStyles[name] = value;\r\n }\r\n });\r\n if (/(bold)/i.test(outputStyles['font-weight'])) {\r\n delete outputStyles['font-weight'];\r\n node.wrap(new global$7('b', 1));\r\n }\r\n if (/(italic)/i.test(outputStyles['font-style'])) {\r\n delete outputStyles['font-style'];\r\n node.wrap(new global$7('i', 1));\r\n }\r\n outputStyles = editor.dom.serializeStyle(outputStyles, node.name);\r\n if (outputStyles) {\r\n return outputStyles;\r\n }\r\n return null;\r\n }\r\n var filterWordContent = function (editor, content) {\r\n var retainStyleProperties, validStyles;\r\n retainStyleProperties = $_5peev0ikjkmcwpkv.getRetainStyleProps(editor);\r\n if (retainStyleProperties) {\r\n validStyles = global$3.makeMap(retainStyleProperties.split(/[, ]/));\r\n }\r\n content = $_2u5gcyj0jkmcwplv.filter(content, [\r\n /
    /gi,\r\n /]+id=\"?docs-internal-[^>]*>/gi,\r\n //gi,\r\n /<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|img|meta|link|style|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\r\n [\r\n /<(\\/?)s>/gi,\r\n '<$1strike>'\r\n ],\r\n [\r\n / /gi,\r\n '\\xA0'\r\n ],\r\n [\r\n /([\\s\\u00a0]*)<\\/span>/gi,\r\n function (str, spaces) {\r\n return spaces.length > 0 ? spaces.replace(/./, ' ').slice(Math.floor(spaces.length / 2)).split('').join('\\xA0') : '';\r\n }\r\n ]\r\n ]);\r\n var validElements = $_5peev0ikjkmcwpkv.getWordValidElements(editor);\r\n var schema = global$8({\r\n valid_elements: validElements,\r\n valid_children: '-li[p]'\r\n });\r\n global$3.each(schema.elements, function (rule) {\r\n if (!rule.attributes.class) {\r\n rule.attributes.class = {};\r\n rule.attributesOrder.push('class');\r\n }\r\n if (!rule.attributes.style) {\r\n rule.attributes.style = {};\r\n rule.attributesOrder.push('style');\r\n }\r\n });\r\n var domParser = global$6({}, schema);\r\n domParser.addAttributeFilter('style', function (nodes) {\r\n var i = nodes.length, node;\r\n while (i--) {\r\n node = nodes[i];\r\n node.attr('style', filterStyles(editor, validStyles, node, node.attr('style')));\r\n if (node.name === 'span' && node.parent && !node.attributes.length) {\r\n node.unwrap();\r\n }\r\n }\r\n });\r\n domParser.addAttributeFilter('class', function (nodes) {\r\n var i = nodes.length, node, className;\r\n while (i--) {\r\n node = nodes[i];\r\n className = node.attr('class');\r\n if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) {\r\n node.remove();\r\n }\r\n node.attr('class', null);\r\n }\r\n });\r\n domParser.addNodeFilter('del', function (nodes) {\r\n var i = nodes.length;\r\n while (i--) {\r\n nodes[i].remove();\r\n }\r\n });\r\n domParser.addNodeFilter('a', function (nodes) {\r\n var i = nodes.length, node, href, name;\r\n while (i--) {\r\n node = nodes[i];\r\n href = node.attr('href');\r\n name = node.attr('name');\r\n if (href && href.indexOf('#_msocom_') !== -1) {\r\n node.remove();\r\n continue;\r\n }\r\n if (href && href.indexOf('file://') === 0) {\r\n href = href.split('#')[1];\r\n if (href) {\r\n href = '#' + href;\r\n }\r\n }\r\n if (!href && !name) {\r\n node.unwrap();\r\n } else {\r\n if (name && !/^_?(?:toc|edn|ftn)/i.test(name)) {\r\n node.unwrap();\r\n continue;\r\n }\r\n node.attr({\r\n href: href,\r\n name: name\r\n });\r\n }\r\n }\r\n });\r\n var rootNode = domParser.parse(content);\r\n if ($_5peev0ikjkmcwpkv.shouldConvertWordFakeLists(editor)) {\r\n convertFakeListsToProperLists(rootNode);\r\n }\r\n content = global$9({ validate: editor.settings.validate }, schema).serialize(rootNode);\r\n return content;\r\n };\r\n var preProcess = function (editor, content) {\r\n return $_5peev0ikjkmcwpkv.shouldUseDefaultFilters(editor) ? filterWordContent(editor, content) : content;\r\n };\r\n var $_759xt5ivjkmcwplk = {\r\n preProcess: preProcess,\r\n isWordContent: isWordContent\r\n };\r\n\r\n var processResult = function (content, cancelled) {\r\n return {\r\n content: content,\r\n cancelled: cancelled\r\n };\r\n };\r\n var postProcessFilter = function (editor, html, internal, isWordHtml) {\r\n var tempBody = editor.dom.create('div', { style: 'display:none' }, html);\r\n var postProcessArgs = $_d8ovv8ijjkmcwpku.firePastePostProcess(editor, tempBody, internal, isWordHtml);\r\n return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());\r\n };\r\n var filterContent = function (editor, content, internal, isWordHtml) {\r\n var preProcessArgs = $_d8ovv8ijjkmcwpku.firePastePreProcess(editor, content, internal, isWordHtml);\r\n if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {\r\n return postProcessFilter(editor, preProcessArgs.content, internal, isWordHtml);\r\n } else {\r\n return processResult(preProcessArgs.content, preProcessArgs.isDefaultPrevented());\r\n }\r\n };\r\n var process = function (editor, html, internal) {\r\n var isWordHtml = $_759xt5ivjkmcwplk.isWordContent(html);\r\n var content = isWordHtml ? $_759xt5ivjkmcwplk.preProcess(editor, html) : html;\r\n return filterContent(editor, content, internal, isWordHtml);\r\n };\r\n var $_7a37nniujkmcwplh = { process: process };\r\n\r\n var pasteHtml = function (editor, html) {\r\n editor.insertContent(html, {\r\n merge: $_5peev0ikjkmcwpkv.shouldMergeFormats(editor),\r\n paste: true\r\n });\r\n return true;\r\n };\r\n var isAbsoluteUrl = function (url) {\r\n return /^https?:\\/\\/[\\w\\?\\-\\/+=.&%@~#]+$/i.test(url);\r\n };\r\n var isImageUrl = function (url) {\r\n return isAbsoluteUrl(url) && /.(gif|jpe?g|png)$/.test(url);\r\n };\r\n var createImage = function (editor, url, pasteHtmlFn) {\r\n editor.undoManager.extra(function () {\r\n pasteHtmlFn(editor, url);\r\n }, function () {\r\n editor.insertContent('');\r\n });\r\n return true;\r\n };\r\n var createLink = function (editor, url, pasteHtmlFn) {\r\n editor.undoManager.extra(function () {\r\n pasteHtmlFn(editor, url);\r\n }, function () {\r\n editor.execCommand('mceInsertLink', false, url);\r\n });\r\n return true;\r\n };\r\n var linkSelection = function (editor, html, pasteHtmlFn) {\r\n return editor.selection.isCollapsed() === false && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false;\r\n };\r\n var insertImage = function (editor, html, pasteHtmlFn) {\r\n return isImageUrl(html) ? createImage(editor, html, pasteHtmlFn) : false;\r\n };\r\n var smartInsertContent = function (editor, html) {\r\n global$3.each([\r\n linkSelection,\r\n insertImage,\r\n pasteHtml\r\n ], function (action) {\r\n return action(editor, html, pasteHtml) !== true;\r\n });\r\n };\r\n var insertContent = function (editor, html) {\r\n if ($_5peev0ikjkmcwpkv.isSmartPasteEnabled(editor) === false) {\r\n pasteHtml(editor, html);\r\n } else {\r\n smartInsertContent(editor, html);\r\n }\r\n };\r\n var $_3wqigwj1jkmcwplz = {\r\n isImageUrl: isImageUrl,\r\n isAbsoluteUrl: isAbsoluteUrl,\r\n insertContent: insertContent\r\n };\r\n\r\n var pasteHtml$1 = function (editor, html, internalFlag) {\r\n var internal = internalFlag ? internalFlag : $_93gcj3irjkmcwpld.isMarked(html);\r\n var args = $_7a37nniujkmcwplh.process(editor, $_93gcj3irjkmcwpld.unmark(html), internal);\r\n if (args.cancelled === false) {\r\n $_3wqigwj1jkmcwplz.insertContent(editor, args.content);\r\n }\r\n };\r\n var pasteText = function (editor, text) {\r\n text = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\r\n text = $_3nag2qisjkmcwple.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs);\r\n pasteHtml$1(editor, text, false);\r\n };\r\n var getDataTransferItems = function (dataTransfer) {\r\n var items = {};\r\n var mceInternalUrlPrefix = 'data:text/mce-internal,';\r\n if (dataTransfer) {\r\n if (dataTransfer.getData) {\r\n var legacyText = dataTransfer.getData('Text');\r\n if (legacyText && legacyText.length > 0) {\r\n if (legacyText.indexOf(mceInternalUrlPrefix) === -1) {\r\n items['text/plain'] = legacyText;\r\n }\r\n }\r\n }\r\n if (dataTransfer.types) {\r\n for (var i = 0; i < dataTransfer.types.length; i++) {\r\n var contentType = dataTransfer.types[i];\r\n try {\r\n items[contentType] = dataTransfer.getData(contentType);\r\n } catch (ex) {\r\n items[contentType] = '';\r\n }\r\n }\r\n }\r\n }\r\n return items;\r\n };\r\n var getClipboardContent = function (editor, clipboardEvent) {\r\n var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer);\r\n return $_2u5gcyj0jkmcwplv.isMsEdge() ? global$3.extend(content, { 'text/html': '' }) : content;\r\n };\r\n var hasContentType = function (clipboardContent, mimeType) {\r\n return mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\r\n };\r\n var hasHtmlOrText = function (content) {\r\n return hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\r\n };\r\n var getBase64FromUri = function (uri) {\r\n var idx;\r\n idx = uri.indexOf(',');\r\n if (idx !== -1) {\r\n return uri.substr(idx + 1);\r\n }\r\n return null;\r\n };\r\n var isValidDataUriImage = function (settings, imgElm) {\r\n return settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true;\r\n };\r\n var extractFilename = function (editor, str) {\r\n var m = str.match(/([\\s\\S]+?)\\.(?:jpeg|jpg|png|gif)$/i);\r\n return m ? editor.dom.encode(m[1]) : null;\r\n };\r\n var uniqueId = $_2u5gcyj0jkmcwplv.createIdGenerator('mceclip');\r\n var pasteImage = function (editor, rng, reader, blob) {\r\n if (rng) {\r\n editor.selection.setRng(rng);\r\n rng = null;\r\n }\r\n var dataUri = reader.result;\r\n var base64 = getBase64FromUri(dataUri);\r\n var id = uniqueId();\r\n var name$$1 = editor.settings.images_reuse_filename && blob.name ? extractFilename(editor, blob.name) : id;\r\n var img = new Image();\r\n img.src = dataUri;\r\n if (isValidDataUriImage(editor.settings, img)) {\r\n var blobCache = editor.editorUpload.blobCache;\r\n var blobInfo = void 0, existingBlobInfo = void 0;\r\n existingBlobInfo = blobCache.findFirst(function (cachedBlobInfo) {\r\n return cachedBlobInfo.base64() === base64;\r\n });\r\n if (!existingBlobInfo) {\r\n blobInfo = blobCache.create(id, blob, base64, name$$1);\r\n blobCache.add(blobInfo);\r\n } else {\r\n blobInfo = existingBlobInfo;\r\n }\r\n pasteHtml$1(editor, '', false);\r\n } else {\r\n pasteHtml$1(editor, '', false);\r\n }\r\n };\r\n var isClipboardEvent = function (event$$1) {\r\n return event$$1.type === 'paste';\r\n };\r\n var pasteImageData = function (editor, e, rng) {\r\n var dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;\r\n function processItems(items) {\r\n var i, item, reader, hadImage = false;\r\n if (items) {\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (/^image\\/(jpeg|png|gif|bmp)$/.test(item.type)) {\r\n var blob = item.getAsFile ? item.getAsFile() : item;\r\n reader = new window.FileReader();\r\n reader.onload = pasteImage.bind(null, editor, rng, reader, blob);\r\n reader.readAsDataURL(blob);\r\n e.preventDefault();\r\n hadImage = true;\r\n }\r\n }\r\n }\r\n return hadImage;\r\n }\r\n if (editor.settings.paste_data_images && dataTransfer) {\r\n return processItems(dataTransfer.items) || processItems(dataTransfer.files);\r\n }\r\n };\r\n var isBrokenAndroidClipboardEvent = function (e) {\r\n var clipboardData = e.clipboardData;\r\n return navigator.userAgent.indexOf('Android') !== -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;\r\n };\r\n var isKeyboardPasteEvent = function (e) {\r\n return global$4.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;\r\n };\r\n var registerEventHandlers = function (editor, pasteBin, pasteFormat) {\r\n var keyboardPasteTimeStamp = 0;\r\n var keyboardPastePlainTextState;\r\n editor.on('keydown', function (e) {\r\n function removePasteBinOnKeyUp(e) {\r\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\r\n pasteBin.remove();\r\n }\r\n }\r\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\r\n keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;\r\n if (keyboardPastePlainTextState && global$1.webkit && navigator.userAgent.indexOf('Version/') !== -1) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n keyboardPasteTimeStamp = new Date().getTime();\r\n if (global$1.ie && keyboardPastePlainTextState) {\r\n e.preventDefault();\r\n $_d8ovv8ijjkmcwpku.firePaste(editor, true);\r\n return;\r\n }\r\n pasteBin.remove();\r\n pasteBin.create();\r\n editor.once('keyup', removePasteBinOnKeyUp);\r\n editor.once('paste', function () {\r\n editor.off('keyup', removePasteBinOnKeyUp);\r\n });\r\n }\r\n });\r\n function insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal) {\r\n var content, isPlainTextHtml;\r\n if (hasContentType(clipboardContent, 'text/html')) {\r\n content = clipboardContent['text/html'];\r\n } else {\r\n content = pasteBin.getHtml();\r\n internal = internal ? internal : $_93gcj3irjkmcwpld.isMarked(content);\r\n if (pasteBin.isDefaultContent(content)) {\r\n plainTextMode = true;\r\n }\r\n }\r\n content = $_2u5gcyj0jkmcwplv.trimHtml(content);\r\n pasteBin.remove();\r\n isPlainTextHtml = internal === false && $_3nag2qisjkmcwple.isPlainText(content);\r\n if (!content.length || isPlainTextHtml) {\r\n plainTextMode = true;\r\n }\r\n if (plainTextMode) {\r\n if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {\r\n content = clipboardContent['text/plain'];\r\n } else {\r\n content = $_2u5gcyj0jkmcwplv.innerText(content);\r\n }\r\n }\r\n if (pasteBin.isDefaultContent(content)) {\r\n if (!isKeyBoardPaste) {\r\n editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.');\r\n }\r\n return;\r\n }\r\n if (plainTextMode) {\r\n pasteText(editor, content);\r\n } else {\r\n pasteHtml$1(editor, content, internal);\r\n }\r\n }\r\n var getLastRng = function () {\r\n return pasteBin.getLastRng() || editor.selection.getRng();\r\n };\r\n editor.on('paste', function (e) {\r\n var clipboardTimer = new Date().getTime();\r\n var clipboardContent = getClipboardContent(editor, e);\r\n var clipboardDelay = new Date().getTime() - clipboardTimer;\r\n var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay < 1000;\r\n var plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;\r\n var internal = hasContentType(clipboardContent, $_93gcj3irjkmcwpld.internalHtmlMime());\r\n keyboardPastePlainTextState = false;\r\n if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\r\n pasteBin.remove();\r\n return;\r\n }\r\n if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) {\r\n pasteBin.remove();\r\n return;\r\n }\r\n if (!isKeyBoardPaste) {\r\n e.preventDefault();\r\n }\r\n if (global$1.ie && (!isKeyBoardPaste || e.ieFake) && !hasContentType(clipboardContent, 'text/html')) {\r\n pasteBin.create();\r\n editor.dom.bind(pasteBin.getEl(), 'paste', function (e) {\r\n e.stopPropagation();\r\n });\r\n editor.getDoc().execCommand('Paste', false, null);\r\n clipboardContent['text/html'] = pasteBin.getHtml();\r\n }\r\n if (hasContentType(clipboardContent, 'text/html')) {\r\n e.preventDefault();\r\n if (!internal) {\r\n internal = $_93gcj3irjkmcwpld.isMarked(clipboardContent['text/html']);\r\n }\r\n insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal);\r\n } else {\r\n global$2.setEditorTimeout(editor, function () {\r\n insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal);\r\n }, 0);\r\n }\r\n });\r\n };\r\n var registerEventsAndFilters = function (editor, pasteBin, pasteFormat) {\r\n registerEventHandlers(editor, pasteBin, pasteFormat);\r\n var src;\r\n editor.parser.addNodeFilter('img', function (nodes, name$$1, args) {\r\n var isPasteInsert = function (args) {\r\n return args.data && args.data.paste === true;\r\n };\r\n var remove = function (node) {\r\n if (!node.attr('data-mce-object') && src !== global$1.transparentSrc) {\r\n node.remove();\r\n }\r\n };\r\n var isWebKitFakeUrl = function (src) {\r\n return src.indexOf('webkit-fake-url') === 0;\r\n };\r\n var isDataUri = function (src) {\r\n return src.indexOf('data:') === 0;\r\n };\r\n if (!editor.settings.paste_data_images && isPasteInsert(args)) {\r\n var i = nodes.length;\r\n while (i--) {\r\n src = nodes[i].attributes.map.src;\r\n if (!src) {\r\n continue;\r\n }\r\n if (isWebKitFakeUrl(src)) {\r\n remove(nodes[i]);\r\n } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) {\r\n remove(nodes[i]);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var getPasteBinParent = function (editor) {\r\n return global$1.ie && editor.inline ? document.body : editor.getBody();\r\n };\r\n var isExternalPasteBin = function (editor) {\r\n return getPasteBinParent(editor) !== editor.getBody();\r\n };\r\n var delegatePasteEvents = function (editor, pasteBinElm, pasteBinDefaultContent) {\r\n if (isExternalPasteBin(editor)) {\r\n editor.dom.bind(pasteBinElm, 'paste keyup', function (e) {\r\n if (!isDefault(editor, pasteBinDefaultContent)) {\r\n editor.fire('paste');\r\n }\r\n });\r\n }\r\n };\r\n var create = function (editor, lastRngCell, pasteBinDefaultContent) {\r\n var dom = editor.dom, body = editor.getBody();\r\n var pasteBinElm;\r\n lastRngCell.set(editor.selection.getRng());\r\n pasteBinElm = editor.dom.add(getPasteBinParent(editor), 'div', {\r\n 'id': 'mcepastebin',\r\n 'class': 'mce-pastebin',\r\n 'contentEditable': true,\r\n 'data-mce-bogus': 'all',\r\n 'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'\r\n }, pasteBinDefaultContent);\r\n if (global$1.ie || global$1.gecko) {\r\n dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);\r\n }\r\n dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function (e) {\r\n e.stopPropagation();\r\n });\r\n delegatePasteEvents(editor, pasteBinElm, pasteBinDefaultContent);\r\n pasteBinElm.focus();\r\n editor.selection.select(pasteBinElm, true);\r\n };\r\n var remove = function (editor, lastRngCell) {\r\n if (getEl(editor)) {\r\n var pasteBinClone = void 0;\r\n var lastRng = lastRngCell.get();\r\n while (pasteBinClone = editor.dom.get('mcepastebin')) {\r\n editor.dom.remove(pasteBinClone);\r\n editor.dom.unbind(pasteBinClone);\r\n }\r\n if (lastRng) {\r\n editor.selection.setRng(lastRng);\r\n }\r\n }\r\n lastRngCell.set(null);\r\n };\r\n var getEl = function (editor) {\r\n return editor.dom.get('mcepastebin');\r\n };\r\n var getHtml = function (editor) {\r\n var pasteBinElm, pasteBinClones, i, dirtyWrappers, cleanWrapper;\r\n var copyAndRemove = function (toElm, fromElm) {\r\n toElm.appendChild(fromElm);\r\n editor.dom.remove(fromElm, true);\r\n };\r\n pasteBinClones = global$3.grep(getPasteBinParent(editor).childNodes, function (elm) {\r\n return elm.id === 'mcepastebin';\r\n });\r\n pasteBinElm = pasteBinClones.shift();\r\n global$3.each(pasteBinClones, function (pasteBinClone) {\r\n copyAndRemove(pasteBinElm, pasteBinClone);\r\n });\r\n dirtyWrappers = editor.dom.select('div[id=mcepastebin]', pasteBinElm);\r\n for (i = dirtyWrappers.length - 1; i >= 0; i--) {\r\n cleanWrapper = editor.dom.create('div');\r\n pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]);\r\n copyAndRemove(cleanWrapper, dirtyWrappers[i]);\r\n }\r\n return pasteBinElm ? pasteBinElm.innerHTML : '';\r\n };\r\n var getLastRng = function (lastRng) {\r\n return lastRng.get();\r\n };\r\n var isDefaultContent = function (pasteBinDefaultContent, content) {\r\n return content === pasteBinDefaultContent;\r\n };\r\n var isPasteBin = function (elm) {\r\n return elm && elm.id === 'mcepastebin';\r\n };\r\n var isDefault = function (editor, pasteBinDefaultContent) {\r\n var pasteBinElm = getEl(editor);\r\n return isPasteBin(pasteBinElm) && isDefaultContent(pasteBinDefaultContent, pasteBinElm.innerHTML);\r\n };\r\n var PasteBin = function (editor) {\r\n var lastRng = Cell(null);\r\n var pasteBinDefaultContent = '%MCEPASTEBIN%';\r\n return {\r\n create: function () {\r\n return create(editor, lastRng, pasteBinDefaultContent);\r\n },\r\n remove: function () {\r\n return remove(editor, lastRng);\r\n },\r\n getEl: function () {\r\n return getEl(editor);\r\n },\r\n getHtml: function () {\r\n return getHtml(editor);\r\n },\r\n getLastRng: function () {\r\n return getLastRng(lastRng);\r\n },\r\n isDefault: function () {\r\n return isDefault(editor, pasteBinDefaultContent);\r\n },\r\n isDefaultContent: function (content) {\r\n return isDefaultContent(pasteBinDefaultContent, content);\r\n }\r\n };\r\n };\r\n\r\n var Clipboard = function (editor, pasteFormat) {\r\n var pasteBin = PasteBin(editor);\r\n editor.on('preInit', function () {\r\n return registerEventsAndFilters(editor, pasteBin, pasteFormat);\r\n });\r\n return {\r\n pasteFormat: pasteFormat,\r\n pasteHtml: function (html, internalFlag) {\r\n return pasteHtml$1(editor, html, internalFlag);\r\n },\r\n pasteText: function (text) {\r\n return pasteText(editor, text);\r\n },\r\n pasteImageData: function (e, rng) {\r\n return pasteImageData(editor, e, rng);\r\n },\r\n getDataTransferItems: getDataTransferItems,\r\n hasHtmlOrText: hasHtmlOrText,\r\n hasContentType: hasContentType\r\n };\r\n };\r\n\r\n var noop = function () {\r\n };\r\n var hasWorkingClipboardApi = function (clipboardData) {\r\n return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && $_2u5gcyj0jkmcwplv.isMsEdge() !== true;\r\n };\r\n var setHtml5Clipboard = function (clipboardData, html, text) {\r\n if (hasWorkingClipboardApi(clipboardData)) {\r\n try {\r\n clipboardData.clearData();\r\n clipboardData.setData('text/html', html);\r\n clipboardData.setData('text/plain', text);\r\n clipboardData.setData($_93gcj3irjkmcwpld.internalHtmlMime(), html);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n var setClipboardData = function (evt, data, fallback, done) {\r\n if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) {\r\n evt.preventDefault();\r\n done();\r\n } else {\r\n fallback(data.html, done);\r\n }\r\n };\r\n var fallback = function (editor) {\r\n return function (html, done) {\r\n var markedHtml = $_93gcj3irjkmcwpld.mark(html);\r\n var outer = editor.dom.create('div', {\r\n 'contenteditable': 'false',\r\n 'data-mce-bogus': 'all'\r\n });\r\n var inner = editor.dom.create('div', { contenteditable: 'true' }, markedHtml);\r\n editor.dom.setStyles(outer, {\r\n position: 'fixed',\r\n top: '0',\r\n left: '-3000px',\r\n width: '1000px',\r\n overflow: 'hidden'\r\n });\r\n outer.appendChild(inner);\r\n editor.dom.add(editor.getBody(), outer);\r\n var range = editor.selection.getRng();\r\n inner.focus();\r\n var offscreenRange = editor.dom.createRng();\r\n offscreenRange.selectNodeContents(inner);\r\n editor.selection.setRng(offscreenRange);\r\n setTimeout(function () {\r\n editor.selection.setRng(range);\r\n outer.parentNode.removeChild(outer);\r\n done();\r\n }, 0);\r\n };\r\n };\r\n var getData = function (editor) {\r\n return {\r\n html: editor.selection.getContent({ contextual: true }),\r\n text: editor.selection.getContent({ format: 'text' })\r\n };\r\n };\r\n var cut = function (editor) {\r\n return function (evt) {\r\n if (editor.selection.isCollapsed() === false) {\r\n setClipboardData(evt, getData(editor), fallback(editor), function () {\r\n setTimeout(function () {\r\n editor.execCommand('Delete');\r\n }, 0);\r\n });\r\n }\r\n };\r\n };\r\n var copy = function (editor) {\r\n return function (evt) {\r\n if (editor.selection.isCollapsed() === false) {\r\n setClipboardData(evt, getData(editor), fallback(editor), noop);\r\n }\r\n };\r\n };\r\n var register$1 = function (editor) {\r\n editor.on('cut', cut(editor));\r\n editor.on('copy', copy(editor));\r\n };\r\n var $_5k6lg4j3jkmcwpmg = { register: register$1 };\r\n\r\n var global$10 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\r\n\r\n var getCaretRangeFromEvent = function (editor, e) {\r\n return global$10.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc());\r\n };\r\n var isPlainTextFileUrl = function (content) {\r\n var plainTextContent = content['text/plain'];\r\n return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\r\n };\r\n var setFocusedRange = function (editor, rng) {\r\n editor.focus();\r\n editor.selection.setRng(rng);\r\n };\r\n var setup = function (editor, clipboard, draggingInternallyState) {\r\n if ($_5peev0ikjkmcwpkv.shouldBlockDrop(editor)) {\r\n editor.on('dragend dragover draggesture dragdrop drop drag', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n }\r\n if (!$_5peev0ikjkmcwpkv.shouldPasteDataImages(editor)) {\r\n editor.on('drop', function (e) {\r\n var dataTransfer = e.dataTransfer;\r\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n editor.on('drop', function (e) {\r\n var dropContent, rng;\r\n rng = getCaretRangeFromEvent(editor, e);\r\n if (e.isDefaultPrevented() || draggingInternallyState.get()) {\r\n return;\r\n }\r\n dropContent = clipboard.getDataTransferItems(e.dataTransfer);\r\n var internal = clipboard.hasContentType(dropContent, $_93gcj3irjkmcwpld.internalHtmlMime());\r\n if ((!clipboard.hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && clipboard.pasteImageData(e, rng)) {\r\n return;\r\n }\r\n if (rng && $_5peev0ikjkmcwpkv.shouldFilterDrop(editor)) {\r\n var content_1 = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];\r\n if (content_1) {\r\n e.preventDefault();\r\n global$2.setEditorTimeout(editor, function () {\r\n editor.undoManager.transact(function () {\r\n if (dropContent['mce-internal']) {\r\n editor.execCommand('Delete');\r\n }\r\n setFocusedRange(editor, rng);\r\n content_1 = $_2u5gcyj0jkmcwplv.trimHtml(content_1);\r\n if (!dropContent['text/html']) {\r\n clipboard.pasteText(content_1);\r\n } else {\r\n clipboard.pasteHtml(content_1, internal);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n editor.on('dragstart', function (e) {\r\n draggingInternallyState.set(true);\r\n });\r\n editor.on('dragover dragend', function (e) {\r\n if ($_5peev0ikjkmcwpkv.shouldPasteDataImages(editor) && draggingInternallyState.get() === false) {\r\n e.preventDefault();\r\n setFocusedRange(editor, getCaretRangeFromEvent(editor, e));\r\n }\r\n if (e.type === 'dragend') {\r\n draggingInternallyState.set(false);\r\n }\r\n });\r\n };\r\n var $_eiqz0aj4jkmcwpmj = { setup: setup };\r\n\r\n var setup$1 = function (editor) {\r\n var plugin = editor.plugins.paste;\r\n var preProcess = $_5peev0ikjkmcwpkv.getPreProcess(editor);\r\n if (preProcess) {\r\n editor.on('PastePreProcess', function (e) {\r\n preProcess.call(plugin, plugin, e);\r\n });\r\n }\r\n var postProcess = $_5peev0ikjkmcwpkv.getPostProcess(editor);\r\n if (postProcess) {\r\n editor.on('PastePostProcess', function (e) {\r\n postProcess.call(plugin, plugin, e);\r\n });\r\n }\r\n };\r\n var $_9alamfj6jkmcwpmm = { setup: setup$1 };\r\n\r\n function addPreProcessFilter(editor, filterFunc) {\r\n editor.on('PastePreProcess', function (e) {\r\n e.content = filterFunc(editor, e.content, e.internal, e.wordContent);\r\n });\r\n }\r\n function addPostProcessFilter(editor, filterFunc) {\r\n editor.on('PastePostProcess', function (e) {\r\n filterFunc(editor, e.node);\r\n });\r\n }\r\n function removeExplorerBrElementsAfterBlocks(editor, html) {\r\n if (!$_759xt5ivjkmcwplk.isWordContent(html)) {\r\n return html;\r\n }\r\n var blockElements = [];\r\n global$3.each(editor.schema.getBlockElements(), function (block, blockName) {\r\n blockElements.push(blockName);\r\n });\r\n var explorerBlocksRegExp = new RegExp('(?:
     [\\\\s\\\\r\\\\n]+|
    )*(<\\\\/?(' + blockElements.join('|') + ')[^>]*>)(?:
     [\\\\s\\\\r\\\\n]+|
    )*', 'g');\r\n html = $_2u5gcyj0jkmcwplv.filter(html, [[\r\n explorerBlocksRegExp,\r\n '$1'\r\n ]]);\r\n html = $_2u5gcyj0jkmcwplv.filter(html, [\r\n [\r\n /

    /g,\r\n '

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

    /g,\r\n '
    '\r\n ]\r\n ]);\r\n return html;\r\n }\r\n function removeWebKitStyles(editor, content, internal, isWordHtml) {\r\n if (isWordHtml || internal) {\r\n return content;\r\n }\r\n var webKitStylesSetting = $_5peev0ikjkmcwpkv.getWebkitStyles(editor);\r\n var webKitStyles;\r\n if ($_5peev0ikjkmcwpkv.shouldRemoveWebKitStyles(editor) === false || webKitStylesSetting === 'all') {\r\n return content;\r\n }\r\n if (webKitStylesSetting) {\r\n webKitStyles = webKitStylesSetting.split(/[, ]/);\r\n }\r\n if (webKitStyles) {\r\n var dom_1 = editor.dom, node_1 = editor.selection.getNode();\r\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, function (all, before, value, after) {\r\n var inputStyles = dom_1.parseStyle(dom_1.decode(value));\r\n var outputStyles = {};\r\n if (webKitStyles === 'none') {\r\n return before + after;\r\n }\r\n for (var i = 0; i < webKitStyles.length; i++) {\r\n var inputValue = inputStyles[webKitStyles[i]], currentValue = dom_1.getStyle(node_1, webKitStyles[i], true);\r\n if (/color/.test(webKitStyles[i])) {\r\n inputValue = dom_1.toHex(inputValue);\r\n currentValue = dom_1.toHex(currentValue);\r\n }\r\n if (currentValue !== inputValue) {\r\n outputStyles[webKitStyles[i]] = inputValue;\r\n }\r\n }\r\n outputStyles = dom_1.serializeStyle(outputStyles, 'span');\r\n if (outputStyles) {\r\n return before + ' style=\"' + outputStyles + '\"' + after;\r\n }\r\n return before + after;\r\n });\r\n } else {\r\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\r\n }\r\n content = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, function (all, before, value, after) {\r\n return before + ' style=\"' + value + '\"' + after;\r\n });\r\n return content;\r\n }\r\n function removeUnderlineAndFontInAnchor(editor, root) {\r\n editor.$('a', root).find('font,u').each(function (i, node) {\r\n editor.dom.remove(node, true);\r\n });\r\n }\r\n var setup$2 = function (editor) {\r\n if (global$1.webkit) {\r\n addPreProcessFilter(editor, removeWebKitStyles);\r\n }\r\n if (global$1.ie) {\r\n addPreProcessFilter(editor, removeExplorerBrElementsAfterBlocks);\r\n addPostProcessFilter(editor, removeUnderlineAndFontInAnchor);\r\n }\r\n };\r\n var $_ca6muwj7jkmcwpmo = { setup: setup$2 };\r\n\r\n var curry = function (f) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = new Array(arguments.length - 1);\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var newArgs = new Array(arguments.length);\r\n for (var j = 0; j < newArgs.length; j++)\r\n newArgs[j] = arguments[j];\r\n var all = args.concat(newArgs);\r\n return f.apply(null, all);\r\n };\r\n };\r\n\r\n var stateChange = function (editor, clipboard, e) {\r\n var ctrl = e.control;\r\n ctrl.active(clipboard.pasteFormat.get() === 'text');\r\n editor.on('PastePlainTextToggle', function (e) {\r\n ctrl.active(e.state);\r\n });\r\n };\r\n var register$2 = function (editor, clipboard) {\r\n var postRender = curry(stateChange, editor, clipboard);\r\n editor.addButton('pastetext', {\r\n active: false,\r\n icon: 'pastetext',\r\n tooltip: 'Paste as text',\r\n cmd: 'mceTogglePlainTextPaste',\r\n onPostRender: postRender\r\n });\r\n editor.addMenuItem('pastetext', {\r\n text: 'Paste as text',\r\n selectable: true,\r\n active: clipboard.pasteFormat,\r\n cmd: 'mceTogglePlainTextPaste',\r\n onPostRender: postRender\r\n });\r\n };\r\n var $_98erksj8jkmcwpmr = { register: register$2 };\r\n\r\n global.add('paste', function (editor) {\r\n if ($_ee0gktiejkmcwpkb.hasProPlugin(editor) === false) {\r\n var userIsInformedState = Cell(false);\r\n var draggingInternallyState = Cell(false);\r\n var pasteFormat = Cell($_5peev0ikjkmcwpkv.isPasteAsTextEnabled(editor) ? 'text' : 'html');\r\n var clipboard = Clipboard(editor, pasteFormat);\r\n var quirks = $_ca6muwj7jkmcwpmo.setup(editor);\r\n $_98erksj8jkmcwpmr.register(editor, clipboard);\r\n $_gh26txihjkmcwpkr.register(editor, clipboard, userIsInformedState);\r\n $_9alamfj6jkmcwpmm.setup(editor);\r\n $_5k6lg4j3jkmcwpmg.register(editor);\r\n $_eiqz0aj4jkmcwpmj.setup(editor, clipboard, draggingInternallyState);\r\n return $_6khw6eigjkmcwpkp.get(clipboard, quirks);\r\n }\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","import Vue from 'vue'\r\nimport axios from 'axios'\r\nimport VueAxios from 'vue-axios'\r\nimport Cache from './cache.js'\r\nimport Global from './global.js'\r\nimport Auth from './auth.js'\r\n\r\nVue.use(VueAxios, axios)\r\n\r\nexport function Api(resource, endpoint) {\r\n\r\n this.Resourse = resource;\r\n this.EndPoint = endpoint;\r\n\r\n this.defaultFilter = {\r\n pageSize: 20,\r\n pageIndex: 0,\r\n isPaginate: true,\r\n };\r\n\r\n this.byCache = false;\r\n this.hasDefaultFilters = true;\r\n this.lastAction = \"none\";\r\n this.url = \"\";\r\n\r\n this.get = _get;\r\n this.post = _post;\r\n this.put = _put;\r\n this.delete = _delete;\r\n this.dataItem = _dataItem;\r\n this.export = _export;\r\n this.upload = _upload;\r\n\r\n var self = this;\r\n\r\n function _upload(file, folder) {\r\n\r\n self.lastAction = \"upload\";\r\n self.url = makeUri();\r\n\r\n let formData = new FormData();\r\n formData.append('files', file, file.name);\r\n formData.append('folder', folder);\r\n\r\n return axios\r\n .post(self.url, formData)\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _post(model) {\r\n\r\n self.lastAction = \"post\";\r\n self.url = makeUri();\r\n\r\n return axios\r\n .post(self.url, model)\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _put(model) {\r\n\r\n self.lastAction = \"put\";\r\n self.url = makeUri();\r\n\r\n return axios\r\n .put(self.url, model)\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _delete(model) {\r\n\r\n self.lastAction = \"delete\";\r\n self.url = makeUri()\r\n\r\n return axios\r\n .delete(self.url, { params: model })\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _get(filters) {\r\n\r\n self.lastAction = \"get\";\r\n self.url = makeUri()\r\n\r\n var _filters = Object.assign(this.defaultFilter, filters);\r\n if (_filters.id)\r\n self.url = String.format(\"{0}/{1}\", self.url, _filters.id);\r\n\r\n return axios\r\n .get(self.url, { params: _filters })\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _export(filters) {\r\n\r\n self.lastAction = \"export\";\r\n self.url = makeUri()\r\n\r\n var _filters = Object.assign(this.defaultFilter, filters);\r\n if (_filters.id)\r\n self.url = String.format(\"{0}/{1}\", self.url, _filters.id);\r\n\r\n return axios\r\n .get(self.url, { params: _filters, responseType: \"blob\" })\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function _dataItem(filters) {\r\n\r\n self.lastAction = \"get\";\r\n self.url = makeUri()\r\n\r\n var _filters = Object.assign(this.defaultFilter, filters);\r\n if (_filters.id)\r\n self.url = String.format(\"{0}/{1}\", self.url, _filters.id);\r\n\r\n return axios\r\n .get(self.url, { params: _filters })\r\n .then(res => { handleSuccess(res.data); return res.data; })\r\n .catch(err => { handleError(err.response); throw err.response; })\r\n }\r\n\r\n function makeUri() {\r\n\r\n var endpoint = self.EndPoint;\r\n\r\n if (!self.EndPoint)\r\n endpoint = Global.END_POINT_DEFAULT;\r\n\r\n configHeaders();\r\n\r\n return String.format(\"{0}/{1}\", endpoint, self.Resourse)\r\n }\r\n\r\n function configHeaders() {\r\n var accesstoken = Cache.get(Global.ACCESS_TOKEN);\r\n if (accesstoken)\r\n axios.defaults.headers.common['Authorization'] = \"Bearer \" + Cache.get(Global.ACCESS_TOKEN);\r\n\r\n axios.defaults.headers.common['Accept-Language'] = \"pt-BR\";\r\n }\r\n\r\n function handleSuccess(response) {\r\n addCache(response.data);\r\n }\r\n\r\n function handleError(err) {\r\n if (err && err.status == 401)\r\n Auth.login(true);\r\n }\r\n\r\n function addCache(data) {\r\n\r\n if (!self.byCache)\r\n return;\r\n\r\n if (self.url == \"\")\r\n return;\r\n\r\n if (self.lastAction == \"get\") {\r\n if (data.Data != null || (data.DataList != null && data.DataList.length > 0)) {\r\n data = JSON.stringify(data);\r\n Cache.Add(self.url, data)\r\n }\r\n }\r\n }\r\n\r\n //function loadFromCache() {\r\n\r\n // if (!self.byCache)\r\n // return;\r\n\r\n // var data = Cache.Get(self.url);\r\n // data = JSON.parse(data);\r\n\r\n // return new Promise(function (resolve, reject) {\r\n // if (data != null)\r\n // resolve(data);\r\n // else\r\n // reject(\"Nada encontrado\")\r\n // })\r\n //}\r\n\r\n //function isOffline() {\r\n // if (navigator.network != null) {\r\n // var isOffline = !navigator.onLine;\r\n // return isOffline;\r\n // }\r\n // return false;\r\n //}\r\n\r\n String.format = function () {\r\n var theString = arguments[0];\r\n for (var i = 1; i < arguments.length; i++) {\r\n var regEx = new RegExp(\"\\\\{\" + (i - 1) + \"\\\\}\", \"gm\");\r\n theString = theString.replace(regEx, arguments[i]);\r\n }\r\n return theString;\r\n }\r\n\r\n Object.$httpParamSerializer = function () {\r\n var obj = arguments[0];\r\n return Object.entries(obj).map(([key, val]) => `${key}=${val}`).join('&')\r\n }\r\n\r\n}\r\n","(function () {\r\nvar media = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var getScripts = function (editor) {\r\n return editor.getParam('media_scripts');\r\n };\r\n var getAudioTemplateCallback = function (editor) {\r\n return editor.getParam('audio_template_callback');\r\n };\r\n var getVideoTemplateCallback = function (editor) {\r\n return editor.getParam('video_template_callback');\r\n };\r\n var hasLiveEmbeds = function (editor) {\r\n return editor.getParam('media_live_embeds', true);\r\n };\r\n var shouldFilterHtml = function (editor) {\r\n return editor.getParam('media_filter_html', true);\r\n };\r\n var getUrlResolver = function (editor) {\r\n return editor.getParam('media_url_resolver');\r\n };\r\n var hasAltSource = function (editor) {\r\n return editor.getParam('media_alt_source', true);\r\n };\r\n var hasPoster = function (editor) {\r\n return editor.getParam('media_poster', true);\r\n };\r\n var hasDimensions = function (editor) {\r\n return editor.getParam('media_dimensions', true);\r\n };\r\n var $_6qt1nth3jkmcwpf2 = {\r\n getScripts: getScripts,\r\n getAudioTemplateCallback: getAudioTemplateCallback,\r\n getVideoTemplateCallback: getVideoTemplateCallback,\r\n hasLiveEmbeds: hasLiveEmbeds,\r\n shouldFilterHtml: shouldFilterHtml,\r\n getUrlResolver: getUrlResolver,\r\n hasAltSource: hasAltSource,\r\n hasPoster: hasPoster,\r\n hasDimensions: hasDimensions\r\n };\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.html.SaxParser');\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var getVideoScriptMatch = function (prefixes, src) {\r\n if (prefixes) {\r\n for (var i = 0; i < prefixes.length; i++) {\r\n if (src.indexOf(prefixes[i].filter) !== -1) {\r\n return prefixes[i];\r\n }\r\n }\r\n }\r\n };\r\n var $_5qpz66h7jkmcwpf7 = { getVideoScriptMatch: getVideoScriptMatch };\r\n\r\n var trimPx = function (value) {\r\n return value.replace(/px$/, '');\r\n };\r\n var addPx = function (value) {\r\n return /^[0-9.]+$/.test(value) ? value + 'px' : value;\r\n };\r\n var getSize = function (name) {\r\n return function (elm) {\r\n return elm ? trimPx(elm.style[name]) : '';\r\n };\r\n };\r\n var setSize = function (name) {\r\n return function (elm, value) {\r\n if (elm) {\r\n elm.style[name] = addPx(value);\r\n }\r\n };\r\n };\r\n var $_1gasfuh8jkmcwpf8 = {\r\n getMaxWidth: getSize('maxWidth'),\r\n getMaxHeight: getSize('maxHeight'),\r\n setMaxWidth: setSize('maxWidth'),\r\n setMaxHeight: setSize('maxHeight')\r\n };\r\n\r\n var DOM = global$4.DOM;\r\n var getEphoxEmbedIri = function (elm) {\r\n return DOM.getAttrib(elm, 'data-ephox-embed-iri');\r\n };\r\n var isEphoxEmbed = function (html) {\r\n var fragment = DOM.createFragment(html);\r\n return getEphoxEmbedIri(fragment.firstChild) !== '';\r\n };\r\n var htmlToDataSax = function (prefixes, html) {\r\n var data = {};\r\n global$3({\r\n validate: false,\r\n allow_conditional_comments: true,\r\n special: 'script,noscript',\r\n start: function (name, attrs) {\r\n if (!data.source1 && name === 'param') {\r\n data.source1 = attrs.map.movie;\r\n }\r\n if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {\r\n if (!data.type) {\r\n data.type = name;\r\n }\r\n data = global$2.extend(attrs.map, data);\r\n }\r\n if (name === 'script') {\r\n var videoScript = $_5qpz66h7jkmcwpf7.getVideoScriptMatch(prefixes, attrs.map.src);\r\n if (!videoScript) {\r\n return;\r\n }\r\n data = {\r\n type: 'script',\r\n source1: attrs.map.src,\r\n width: videoScript.width,\r\n height: videoScript.height\r\n };\r\n }\r\n if (name === 'source') {\r\n if (!data.source1) {\r\n data.source1 = attrs.map.src;\r\n } else if (!data.source2) {\r\n data.source2 = attrs.map.src;\r\n }\r\n }\r\n if (name === 'img' && !data.poster) {\r\n data.poster = attrs.map.src;\r\n }\r\n }\r\n }).parse(html);\r\n data.source1 = data.source1 || data.src || data.data;\r\n data.source2 = data.source2 || '';\r\n data.poster = data.poster || '';\r\n return data;\r\n };\r\n var ephoxEmbedHtmlToData = function (html) {\r\n var fragment = DOM.createFragment(html);\r\n var div = fragment.firstChild;\r\n return {\r\n type: 'ephox-embed-iri',\r\n source1: getEphoxEmbedIri(div),\r\n source2: '',\r\n poster: '',\r\n width: $_1gasfuh8jkmcwpf8.getMaxWidth(div),\r\n height: $_1gasfuh8jkmcwpf8.getMaxHeight(div)\r\n };\r\n };\r\n var htmlToData = function (prefixes, html) {\r\n return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html);\r\n };\r\n var $_1f89fyh4jkmcwpf3 = { htmlToData: htmlToData };\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Promise');\r\n\r\n var guess = function (url) {\r\n var mimes = {\r\n mp3: 'audio/mpeg',\r\n wav: 'audio/wav',\r\n mp4: 'video/mp4',\r\n webm: 'video/webm',\r\n ogg: 'video/ogg',\r\n swf: 'application/x-shockwave-flash'\r\n };\r\n var fileEnd = url.toLowerCase().split('.').pop();\r\n var mime = mimes[fileEnd];\r\n return mime ? mime : '';\r\n };\r\n var $_e86s3ihcjkmcwpfk = { guess: guess };\r\n\r\n var global$6 = tinymce.util.Tools.resolve('tinymce.html.Writer');\r\n\r\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Schema');\r\n\r\n var DOM$1 = global$4.DOM;\r\n var setAttributes = function (attrs, updatedAttrs) {\r\n var name;\r\n var i;\r\n var value;\r\n var attr;\r\n for (name in updatedAttrs) {\r\n value = '' + updatedAttrs[name];\r\n if (attrs.map[name]) {\r\n i = attrs.length;\r\n while (i--) {\r\n attr = attrs[i];\r\n if (attr.name === name) {\r\n if (value) {\r\n attrs.map[name] = value;\r\n attr.value = value;\r\n } else {\r\n delete attrs.map[name];\r\n attrs.splice(i, 1);\r\n }\r\n }\r\n }\r\n } else if (value) {\r\n attrs.push({\r\n name: name,\r\n value: value\r\n });\r\n attrs.map[name] = value;\r\n }\r\n }\r\n };\r\n var normalizeHtml = function (html) {\r\n var writer = global$6();\r\n var parser = global$3(writer);\r\n parser.parse(html);\r\n return writer.getContent();\r\n };\r\n var updateHtmlSax = function (html, data, updateAll) {\r\n var writer = global$6();\r\n var sourceCount = 0;\r\n var hasImage;\r\n global$3({\r\n validate: false,\r\n allow_conditional_comments: true,\r\n special: 'script,noscript',\r\n comment: function (text) {\r\n writer.comment(text);\r\n },\r\n cdata: function (text) {\r\n writer.cdata(text);\r\n },\r\n text: function (text, raw) {\r\n writer.text(text, raw);\r\n },\r\n start: function (name, attrs, empty) {\r\n switch (name) {\r\n case 'video':\r\n case 'object':\r\n case 'embed':\r\n case 'img':\r\n case 'iframe':\r\n if (data.height !== undefined && data.width !== undefined) {\r\n setAttributes(attrs, {\r\n width: data.width,\r\n height: data.height\r\n });\r\n }\r\n break;\r\n }\r\n if (updateAll) {\r\n switch (name) {\r\n case 'video':\r\n setAttributes(attrs, {\r\n poster: data.poster,\r\n src: ''\r\n });\r\n if (data.source2) {\r\n setAttributes(attrs, { src: '' });\r\n }\r\n break;\r\n case 'iframe':\r\n setAttributes(attrs, { src: data.source1 });\r\n break;\r\n case 'source':\r\n sourceCount++;\r\n if (sourceCount <= 2) {\r\n setAttributes(attrs, {\r\n src: data['source' + sourceCount],\r\n type: data['source' + sourceCount + 'mime']\r\n });\r\n if (!data['source' + sourceCount]) {\r\n return;\r\n }\r\n }\r\n break;\r\n case 'img':\r\n if (!data.poster) {\r\n return;\r\n }\r\n hasImage = true;\r\n break;\r\n }\r\n }\r\n writer.start(name, attrs, empty);\r\n },\r\n end: function (name) {\r\n if (name === 'video' && updateAll) {\r\n for (var index = 1; index <= 2; index++) {\r\n if (data['source' + index]) {\r\n var attrs = [];\r\n attrs.map = {};\r\n if (sourceCount < index) {\r\n setAttributes(attrs, {\r\n src: data['source' + index],\r\n type: data['source' + index + 'mime']\r\n });\r\n writer.start('source', attrs, true);\r\n }\r\n }\r\n }\r\n }\r\n if (data.poster && name === 'object' && updateAll && !hasImage) {\r\n var imgAttrs = [];\r\n imgAttrs.map = {};\r\n setAttributes(imgAttrs, {\r\n src: data.poster,\r\n width: data.width,\r\n height: data.height\r\n });\r\n writer.start('img', imgAttrs, true);\r\n }\r\n writer.end(name);\r\n }\r\n }, global$7({})).parse(html);\r\n return writer.getContent();\r\n };\r\n var isEphoxEmbed$1 = function (html) {\r\n var fragment = DOM$1.createFragment(html);\r\n return DOM$1.getAttrib(fragment.firstChild, 'data-ephox-embed-iri') !== '';\r\n };\r\n var updateEphoxEmbed = function (html, data) {\r\n var fragment = DOM$1.createFragment(html);\r\n var div = fragment.firstChild;\r\n $_1gasfuh8jkmcwpf8.setMaxWidth(div, data.width);\r\n $_1gasfuh8jkmcwpf8.setMaxHeight(div, data.height);\r\n return normalizeHtml(div.outerHTML);\r\n };\r\n var updateHtml = function (html, data, updateAll) {\r\n return isEphoxEmbed$1(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll);\r\n };\r\n var $_6s992lhdjkmcwpfn = { updateHtml: updateHtml };\r\n\r\n var urlPatterns = [\r\n {\r\n regex: /youtu\\.be\\/([\\w\\-_\\?&=.]+)/i,\r\n type: 'iframe',\r\n w: 560,\r\n h: 314,\r\n url: '//www.youtube.com/embed/$1',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /youtube\\.com(.+)v=([^&]+)(&([a-z0-9&=\\-_]+))?/i,\r\n type: 'iframe',\r\n w: 560,\r\n h: 314,\r\n url: '//www.youtube.com/embed/$2?$4',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /youtube.com\\/embed\\/([a-z0-9\\?&=\\-_]+)/i,\r\n type: 'iframe',\r\n w: 560,\r\n h: 314,\r\n url: '//www.youtube.com/embed/$1',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /vimeo\\.com\\/([0-9]+)/,\r\n type: 'iframe',\r\n w: 425,\r\n h: 350,\r\n url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /vimeo\\.com\\/(.*)\\/([0-9]+)/,\r\n type: 'iframe',\r\n w: 425,\r\n h: 350,\r\n url: '//player.vimeo.com/video/$2?title=0&byline=0',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /maps\\.google\\.([a-z]{2,3})\\/maps\\/(.+)msid=(.+)/,\r\n type: 'iframe',\r\n w: 425,\r\n h: 350,\r\n url: '//maps.google.com/maps/ms?msid=$2&output=embed\"',\r\n allowFullscreen: false\r\n },\r\n {\r\n regex: /dailymotion\\.com\\/video\\/([^_]+)/,\r\n type: 'iframe',\r\n w: 480,\r\n h: 270,\r\n url: '//www.dailymotion.com/embed/video/$1',\r\n allowFullscreen: true\r\n },\r\n {\r\n regex: /dai\\.ly\\/([^_]+)/,\r\n type: 'iframe',\r\n w: 480,\r\n h: 270,\r\n url: '//www.dailymotion.com/embed/video/$1',\r\n allowFullscreen: true\r\n }\r\n ];\r\n var getUrl = function (pattern, url) {\r\n var match = pattern.regex.exec(url);\r\n var newUrl = pattern.url;\r\n var _loop_1 = function (i) {\r\n newUrl = newUrl.replace('$' + i, function () {\r\n return match[i] ? match[i] : '';\r\n });\r\n };\r\n for (var i = 0; i < match.length; i++) {\r\n _loop_1(i);\r\n }\r\n return newUrl.replace(/\\?$/, '');\r\n };\r\n var matchPattern = function (url) {\r\n var pattern = urlPatterns.filter(function (pattern) {\r\n return pattern.regex.test(url);\r\n });\r\n if (pattern.length > 0) {\r\n return global$2.extend({}, pattern[0], { url: getUrl(pattern[0], url) });\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n var getIframeHtml = function (data) {\r\n var allowFullscreen = data.allowFullscreen ? ' allowFullscreen=\"1\"' : '';\r\n return '';\r\n };\r\n var getFlashHtml = function (data) {\r\n var html = '';\r\n if (data.poster) {\r\n html += '';\r\n }\r\n html += '';\r\n return html;\r\n };\r\n var getAudioHtml = function (data, audioTemplateCallback) {\r\n if (audioTemplateCallback) {\r\n return audioTemplateCallback(data);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getVideoHtml = function (data, videoTemplateCallback) {\r\n if (videoTemplateCallback) {\r\n return videoTemplateCallback(data);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getScriptHtml = function (data) {\r\n return '';\r\n };\r\n var dataToHtml = function (editor, dataIn) {\r\n var data = global$2.extend({}, dataIn);\r\n if (!data.source1) {\r\n global$2.extend(data, $_1f89fyh4jkmcwpf3.htmlToData($_6qt1nth3jkmcwpf2.getScripts(editor), data.embed));\r\n if (!data.source1) {\r\n return '';\r\n }\r\n }\r\n if (!data.source2) {\r\n data.source2 = '';\r\n }\r\n if (!data.poster) {\r\n data.poster = '';\r\n }\r\n data.source1 = editor.convertURL(data.source1, 'source');\r\n data.source2 = editor.convertURL(data.source2, 'source');\r\n data.source1mime = $_e86s3ihcjkmcwpfk.guess(data.source1);\r\n data.source2mime = $_e86s3ihcjkmcwpfk.guess(data.source2);\r\n data.poster = editor.convertURL(data.poster, 'poster');\r\n var pattern = matchPattern(data.source1);\r\n if (pattern) {\r\n data.source1 = pattern.url;\r\n data.type = pattern.type;\r\n data.allowFullscreen = pattern.allowFullscreen;\r\n data.width = data.width || pattern.w;\r\n data.height = data.height || pattern.h;\r\n }\r\n if (data.embed) {\r\n return $_6s992lhdjkmcwpfn.updateHtml(data.embed, data, true);\r\n } else {\r\n var videoScript = $_5qpz66h7jkmcwpf7.getVideoScriptMatch($_6qt1nth3jkmcwpf2.getScripts(editor), data.source1);\r\n if (videoScript) {\r\n data.type = 'script';\r\n data.width = videoScript.width;\r\n data.height = videoScript.height;\r\n }\r\n var audioTemplateCallback = $_6qt1nth3jkmcwpf2.getAudioTemplateCallback(editor);\r\n var videoTemplateCallback = $_6qt1nth3jkmcwpf2.getVideoTemplateCallback(editor);\r\n data.width = data.width || 300;\r\n data.height = data.height || 150;\r\n global$2.each(data, function (value, key) {\r\n data[key] = editor.dom.encode(value);\r\n });\r\n if (data.type === 'iframe') {\r\n return getIframeHtml(data);\r\n } else if (data.source1mime === 'application/x-shockwave-flash') {\r\n return getFlashHtml(data);\r\n } else if (data.source1mime.indexOf('audio') !== -1) {\r\n return getAudioHtml(data, audioTemplateCallback);\r\n } else if (data.type === 'script') {\r\n return getScriptHtml(data);\r\n } else {\r\n return getVideoHtml(data, videoTemplateCallback);\r\n }\r\n }\r\n };\r\n var $_65qpjdhbjkmcwpfc = { dataToHtml: dataToHtml };\r\n\r\n var cache = {};\r\n var embedPromise = function (data, dataToHtml, handler) {\r\n return new global$5(function (res, rej) {\r\n var wrappedResolve = function (response) {\r\n if (response.html) {\r\n cache[data.source1] = response;\r\n }\r\n return res({\r\n url: data.source1,\r\n html: response.html ? response.html : dataToHtml(data)\r\n });\r\n };\r\n if (cache[data.source1]) {\r\n wrappedResolve(cache[data.source1]);\r\n } else {\r\n handler({ url: data.source1 }, wrappedResolve, rej);\r\n }\r\n });\r\n };\r\n var defaultPromise = function (data, dataToHtml) {\r\n return new global$5(function (res) {\r\n res({\r\n html: dataToHtml(data),\r\n url: data.source1\r\n });\r\n });\r\n };\r\n var loadedData = function (editor) {\r\n return function (data) {\r\n return $_65qpjdhbjkmcwpfc.dataToHtml(editor, data);\r\n };\r\n };\r\n var getEmbedHtml = function (editor, data) {\r\n var embedHandler = $_6qt1nth3jkmcwpf2.getUrlResolver(editor);\r\n return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));\r\n };\r\n var isCached = function (url) {\r\n return cache.hasOwnProperty(url);\r\n };\r\n var $_74pv8fh9jkmcwpf9 = {\r\n getEmbedHtml: getEmbedHtml,\r\n isCached: isCached\r\n };\r\n\r\n var doSyncSize = function (widthCtrl, heightCtrl) {\r\n widthCtrl.state.set('oldVal', widthCtrl.value());\r\n heightCtrl.state.set('oldVal', heightCtrl.value());\r\n };\r\n var doSizeControls = function (win, f) {\r\n var widthCtrl = win.find('#width')[0];\r\n var heightCtrl = win.find('#height')[0];\r\n var constrained = win.find('#constrain')[0];\r\n if (widthCtrl && heightCtrl && constrained) {\r\n f(widthCtrl, heightCtrl, constrained.checked());\r\n }\r\n };\r\n var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) {\r\n var oldWidth = widthCtrl.state.get('oldVal');\r\n var oldHeight = heightCtrl.state.get('oldVal');\r\n var newWidth = widthCtrl.value();\r\n var newHeight = heightCtrl.value();\r\n if (isContrained && oldWidth && oldHeight && newWidth && newHeight) {\r\n if (newWidth !== oldWidth) {\r\n newHeight = Math.round(newWidth / oldWidth * newHeight);\r\n if (!isNaN(newHeight)) {\r\n heightCtrl.value(newHeight);\r\n }\r\n } else {\r\n newWidth = Math.round(newHeight / oldHeight * newWidth);\r\n if (!isNaN(newWidth)) {\r\n widthCtrl.value(newWidth);\r\n }\r\n }\r\n }\r\n doSyncSize(widthCtrl, heightCtrl);\r\n };\r\n var syncSize = function (win) {\r\n doSizeControls(win, doSyncSize);\r\n };\r\n var updateSize = function (win) {\r\n doSizeControls(win, doUpdateSize);\r\n };\r\n var createUi = function (onChange) {\r\n var recalcSize = function () {\r\n onChange(function (win) {\r\n updateSize(win);\r\n });\r\n };\r\n return {\r\n type: 'container',\r\n label: 'Dimensions',\r\n layout: 'flex',\r\n align: 'center',\r\n spacing: 5,\r\n items: [\r\n {\r\n name: 'width',\r\n type: 'textbox',\r\n maxLength: 5,\r\n size: 5,\r\n onchange: recalcSize,\r\n ariaLabel: 'Width'\r\n },\r\n {\r\n type: 'label',\r\n text: 'x'\r\n },\r\n {\r\n name: 'height',\r\n type: 'textbox',\r\n maxLength: 5,\r\n size: 5,\r\n onchange: recalcSize,\r\n ariaLabel: 'Height'\r\n },\r\n {\r\n name: 'constrain',\r\n type: 'checkbox',\r\n checked: true,\r\n text: 'Constrain proportions'\r\n }\r\n ]\r\n };\r\n };\r\n var $_gd8vqohhjkmcwpg2 = {\r\n createUi: createUi,\r\n syncSize: syncSize,\r\n updateSize: updateSize\r\n };\r\n\r\n var embedChange = global$1.ie && global$1.ie <= 8 ? 'onChange' : 'onInput';\r\n var handleError = function (editor) {\r\n return function (error) {\r\n var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';\r\n editor.notificationManager.open({\r\n type: 'error',\r\n text: errorMessage\r\n });\r\n };\r\n };\r\n var getData = function (editor) {\r\n var element = editor.selection.getNode();\r\n var dataEmbed = element.getAttribute('data-ephox-embed-iri');\r\n if (dataEmbed) {\r\n return {\r\n 'source1': dataEmbed,\r\n 'data-ephox-embed-iri': dataEmbed,\r\n 'width': $_1gasfuh8jkmcwpf8.getMaxWidth(element),\r\n 'height': $_1gasfuh8jkmcwpf8.getMaxHeight(element)\r\n };\r\n }\r\n return element.getAttribute('data-mce-object') ? $_1f89fyh4jkmcwpf3.htmlToData($_6qt1nth3jkmcwpf2.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {};\r\n };\r\n var getSource = function (editor) {\r\n var elm = editor.selection.getNode();\r\n if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) {\r\n return editor.selection.getContent();\r\n }\r\n };\r\n var addEmbedHtml = function (win, editor) {\r\n return function (response) {\r\n var html = response.html;\r\n var embed = win.find('#embed')[0];\r\n var data = global$2.extend($_1f89fyh4jkmcwpf3.htmlToData($_6qt1nth3jkmcwpf2.getScripts(editor), html), { source1: response.url });\r\n win.fromJSON(data);\r\n if (embed) {\r\n embed.value(html);\r\n $_gd8vqohhjkmcwpg2.updateSize(win);\r\n }\r\n };\r\n };\r\n var selectPlaceholder = function (editor, beforeObjects) {\r\n var i;\r\n var y;\r\n var afterObjects = editor.dom.select('img[data-mce-object]');\r\n for (i = 0; i < beforeObjects.length; i++) {\r\n for (y = afterObjects.length - 1; y >= 0; y--) {\r\n if (beforeObjects[i] === afterObjects[y]) {\r\n afterObjects.splice(y, 1);\r\n }\r\n }\r\n }\r\n editor.selection.select(afterObjects[0]);\r\n };\r\n var handleInsert = function (editor, html) {\r\n var beforeObjects = editor.dom.select('img[data-mce-object]');\r\n editor.insertContent(html);\r\n selectPlaceholder(editor, beforeObjects);\r\n editor.nodeChanged();\r\n };\r\n var submitForm = function (win, editor) {\r\n var data = win.toJSON();\r\n data.embed = $_6s992lhdjkmcwpfn.updateHtml(data.embed, data);\r\n if (data.embed && $_74pv8fh9jkmcwpf9.isCached(data.source1)) {\r\n handleInsert(editor, data.embed);\r\n } else {\r\n $_74pv8fh9jkmcwpf9.getEmbedHtml(editor, data).then(function (response) {\r\n handleInsert(editor, response.html);\r\n }).catch(handleError(editor));\r\n }\r\n };\r\n var populateMeta = function (win, meta) {\r\n global$2.each(meta, function (value, key) {\r\n win.find('#' + key).value(value);\r\n });\r\n };\r\n var showDialog = function (editor) {\r\n var win;\r\n var data;\r\n var generalFormItems = [{\r\n name: 'source1',\r\n type: 'filepicker',\r\n filetype: 'media',\r\n size: 40,\r\n autofocus: true,\r\n label: 'Source',\r\n onpaste: function () {\r\n setTimeout(function () {\r\n $_74pv8fh9jkmcwpf9.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));\r\n }, 1);\r\n },\r\n onchange: function (e) {\r\n $_74pv8fh9jkmcwpf9.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor));\r\n populateMeta(win, e.meta);\r\n },\r\n onbeforecall: function (e) {\r\n e.meta = win.toJSON();\r\n }\r\n }];\r\n var advancedFormItems = [];\r\n var reserialise = function (update) {\r\n update(win);\r\n data = win.toJSON();\r\n win.find('#embed').value($_6s992lhdjkmcwpfn.updateHtml(data.embed, data));\r\n };\r\n if ($_6qt1nth3jkmcwpf2.hasAltSource(editor)) {\r\n advancedFormItems.push({\r\n name: 'source2',\r\n type: 'filepicker',\r\n filetype: 'media',\r\n size: 40,\r\n label: 'Alternative source'\r\n });\r\n }\r\n if ($_6qt1nth3jkmcwpf2.hasPoster(editor)) {\r\n advancedFormItems.push({\r\n name: 'poster',\r\n type: 'filepicker',\r\n filetype: 'image',\r\n size: 40,\r\n label: 'Poster'\r\n });\r\n }\r\n if ($_6qt1nth3jkmcwpf2.hasDimensions(editor)) {\r\n var control = $_gd8vqohhjkmcwpg2.createUi(reserialise);\r\n generalFormItems.push(control);\r\n }\r\n data = getData(editor);\r\n var embedTextBox = {\r\n id: 'mcemediasource',\r\n type: 'textbox',\r\n flex: 1,\r\n name: 'embed',\r\n value: getSource(editor),\r\n multiline: true,\r\n rows: 5,\r\n label: 'Source'\r\n };\r\n var updateValueOnChange = function () {\r\n data = global$2.extend({}, $_1f89fyh4jkmcwpf3.htmlToData($_6qt1nth3jkmcwpf2.getScripts(editor), this.value()));\r\n this.parent().parent().fromJSON(data);\r\n };\r\n embedTextBox[embedChange] = updateValueOnChange;\r\n var body = [\r\n {\r\n title: 'General',\r\n type: 'form',\r\n items: generalFormItems\r\n },\r\n {\r\n title: 'Embed',\r\n type: 'container',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n padding: 10,\r\n spacing: 10,\r\n items: [\r\n {\r\n type: 'label',\r\n text: 'Paste your embed code below:',\r\n forId: 'mcemediasource'\r\n },\r\n embedTextBox\r\n ]\r\n }\r\n ];\r\n if (advancedFormItems.length > 0) {\r\n body.push({\r\n title: 'Advanced',\r\n type: 'form',\r\n items: advancedFormItems\r\n });\r\n }\r\n win = editor.windowManager.open({\r\n title: 'Insert/edit media',\r\n data: data,\r\n bodyType: 'tabpanel',\r\n body: body,\r\n onSubmit: function () {\r\n $_gd8vqohhjkmcwpg2.updateSize(win);\r\n submitForm(win, editor);\r\n }\r\n });\r\n $_gd8vqohhjkmcwpg2.syncSize(win);\r\n };\r\n var $_3njyjoh0jkmcwpew = { showDialog: showDialog };\r\n\r\n var get = function (editor) {\r\n var showDialog = function () {\r\n $_3njyjoh0jkmcwpew.showDialog(editor);\r\n };\r\n return { showDialog: showDialog };\r\n };\r\n var $_eg0prjgzjkmcwpeu = { get: get };\r\n\r\n var register = function (editor) {\r\n var showDialog = function () {\r\n $_3njyjoh0jkmcwpew.showDialog(editor);\r\n };\r\n editor.addCommand('mceMedia', showDialog);\r\n };\r\n var $_8o48izhijkmcwpg5 = { register: register };\r\n\r\n var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node');\r\n\r\n var sanitize = function (editor, html) {\r\n if ($_6qt1nth3jkmcwpf2.shouldFilterHtml(editor) === false) {\r\n return html;\r\n }\r\n var writer = global$6();\r\n var blocked;\r\n global$3({\r\n validate: false,\r\n allow_conditional_comments: false,\r\n special: 'script,noscript',\r\n comment: function (text) {\r\n writer.comment(text);\r\n },\r\n cdata: function (text) {\r\n writer.cdata(text);\r\n },\r\n text: function (text, raw) {\r\n writer.text(text, raw);\r\n },\r\n start: function (name, attrs, empty) {\r\n blocked = true;\r\n if (name === 'script' || name === 'noscript') {\r\n return;\r\n }\r\n for (var i = 0; i < attrs.length; i++) {\r\n if (attrs[i].name.indexOf('on') === 0) {\r\n return;\r\n }\r\n if (attrs[i].name === 'style') {\r\n attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name);\r\n }\r\n }\r\n writer.start(name, attrs, empty);\r\n blocked = false;\r\n },\r\n end: function (name) {\r\n if (blocked) {\r\n return;\r\n }\r\n writer.end(name);\r\n }\r\n }, global$7({})).parse(html);\r\n return writer.getContent();\r\n };\r\n var $_f1oicehmjkmcwpge = { sanitize: sanitize };\r\n\r\n var createPlaceholderNode = function (editor, node) {\r\n var placeHolder;\r\n var name = node.name;\r\n placeHolder = new global$8('img', 1);\r\n placeHolder.shortEnded = true;\r\n retainAttributesAndInnerHtml(editor, node, placeHolder);\r\n placeHolder.attr({\r\n 'width': node.attr('width') || '300',\r\n 'height': node.attr('height') || (name === 'audio' ? '30' : '150'),\r\n 'style': node.attr('style'),\r\n 'src': global$1.transparentSrc,\r\n 'data-mce-object': name,\r\n 'class': 'mce-object mce-object-' + name\r\n });\r\n return placeHolder;\r\n };\r\n var createPreviewIframeNode = function (editor, node) {\r\n var previewWrapper;\r\n var previewNode;\r\n var shimNode;\r\n var name = node.name;\r\n previewWrapper = new global$8('span', 1);\r\n previewWrapper.attr({\r\n 'contentEditable': 'false',\r\n 'style': node.attr('style'),\r\n 'data-mce-object': name,\r\n 'class': 'mce-preview-object mce-object-' + name\r\n });\r\n retainAttributesAndInnerHtml(editor, node, previewWrapper);\r\n previewNode = new global$8(name, 1);\r\n previewNode.attr({\r\n src: node.attr('src'),\r\n allowfullscreen: node.attr('allowfullscreen'),\r\n style: node.attr('style'),\r\n class: node.attr('class'),\r\n width: node.attr('width'),\r\n height: node.attr('height'),\r\n frameborder: '0'\r\n });\r\n shimNode = new global$8('span', 1);\r\n shimNode.attr('class', 'mce-shim');\r\n previewWrapper.append(previewNode);\r\n previewWrapper.append(shimNode);\r\n return previewWrapper;\r\n };\r\n var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) {\r\n var attrName;\r\n var attrValue;\r\n var attribs;\r\n var ai;\r\n var innerHtml;\r\n attribs = sourceNode.attributes;\r\n ai = attribs.length;\r\n while (ai--) {\r\n attrName = attribs[ai].name;\r\n attrValue = attribs[ai].value;\r\n if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') {\r\n if (attrName === 'data' || attrName === 'src') {\r\n attrValue = editor.convertURL(attrValue, attrName);\r\n }\r\n targetNode.attr('data-mce-p-' + attrName, attrValue);\r\n }\r\n }\r\n innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;\r\n if (innerHtml) {\r\n targetNode.attr('data-mce-html', escape($_f1oicehmjkmcwpge.sanitize(editor, innerHtml)));\r\n targetNode.firstChild = null;\r\n }\r\n };\r\n var isWithinEphoxEmbed = function (node) {\r\n while (node = node.parent) {\r\n if (node.attr('data-ephox-embed-iri')) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var placeHolderConverter = function (editor) {\r\n return function (nodes) {\r\n var i = nodes.length;\r\n var node;\r\n var videoScript;\r\n while (i--) {\r\n node = nodes[i];\r\n if (!node.parent) {\r\n continue;\r\n }\r\n if (node.parent.attr('data-mce-object')) {\r\n continue;\r\n }\r\n if (node.name === 'script') {\r\n videoScript = $_5qpz66h7jkmcwpf7.getVideoScriptMatch($_6qt1nth3jkmcwpf2.getScripts(editor), node.attr('src'));\r\n if (!videoScript) {\r\n continue;\r\n }\r\n }\r\n if (videoScript) {\r\n if (videoScript.width) {\r\n node.attr('width', videoScript.width.toString());\r\n }\r\n if (videoScript.height) {\r\n node.attr('height', videoScript.height.toString());\r\n }\r\n }\r\n if (node.name === 'iframe' && $_6qt1nth3jkmcwpf2.hasLiveEmbeds(editor) && global$1.ceFalse) {\r\n if (!isWithinEphoxEmbed(node)) {\r\n node.replace(createPreviewIframeNode(editor, node));\r\n }\r\n } else {\r\n if (!isWithinEphoxEmbed(node)) {\r\n node.replace(createPlaceholderNode(editor, node));\r\n }\r\n }\r\n }\r\n };\r\n };\r\n var $_f6hjinhljkmcwpga = {\r\n createPreviewIframeNode: createPreviewIframeNode,\r\n createPlaceholderNode: createPlaceholderNode,\r\n placeHolderConverter: placeHolderConverter\r\n };\r\n\r\n var setup = function (editor) {\r\n editor.on('preInit', function () {\r\n var specialElements = editor.schema.getSpecialElements();\r\n global$2.each('video audio iframe object'.split(' '), function (name) {\r\n specialElements[name] = new RegExp(']*>', 'gi');\r\n });\r\n var boolAttrs = editor.schema.getBoolAttrs();\r\n global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {\r\n boolAttrs[name] = {};\r\n });\r\n editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', $_f6hjinhljkmcwpga.placeHolderConverter(editor));\r\n editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {\r\n var i = nodes.length;\r\n var node;\r\n var realElm;\r\n var ai;\r\n var attribs;\r\n var innerHtml;\r\n var innerNode;\r\n var realElmName;\r\n var className;\r\n while (i--) {\r\n node = nodes[i];\r\n if (!node.parent) {\r\n continue;\r\n }\r\n realElmName = node.attr(name);\r\n realElm = new global$8(realElmName, 1);\r\n if (realElmName !== 'audio' && realElmName !== 'script') {\r\n className = node.attr('class');\r\n if (className && className.indexOf('mce-preview-object') !== -1) {\r\n realElm.attr({\r\n width: node.firstChild.attr('width'),\r\n height: node.firstChild.attr('height')\r\n });\r\n } else {\r\n realElm.attr({\r\n width: node.attr('width'),\r\n height: node.attr('height')\r\n });\r\n }\r\n }\r\n realElm.attr({ style: node.attr('style') });\r\n attribs = node.attributes;\r\n ai = attribs.length;\r\n while (ai--) {\r\n var attrName = attribs[ai].name;\r\n if (attrName.indexOf('data-mce-p-') === 0) {\r\n realElm.attr(attrName.substr(11), attribs[ai].value);\r\n }\r\n }\r\n if (realElmName === 'script') {\r\n realElm.attr('type', 'text/javascript');\r\n }\r\n innerHtml = node.attr('data-mce-html');\r\n if (innerHtml) {\r\n innerNode = new global$8('#text', 3);\r\n innerNode.raw = true;\r\n innerNode.value = $_f1oicehmjkmcwpge.sanitize(editor, unescape(innerHtml));\r\n realElm.append(innerNode);\r\n }\r\n node.replace(realElm);\r\n }\r\n });\r\n });\r\n editor.on('setContent', function () {\r\n editor.$('span.mce-preview-object').each(function (index, elm) {\r\n var $elm = editor.$(elm);\r\n if ($elm.find('span.mce-shim', elm).length === 0) {\r\n $elm.append('');\r\n }\r\n });\r\n });\r\n };\r\n var $_b6ycdhhjjkmcwpg6 = { setup: setup };\r\n\r\n var setup$1 = function (editor) {\r\n editor.on('ResolveName', function (e) {\r\n var name;\r\n if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {\r\n e.name = name;\r\n }\r\n });\r\n };\r\n var $_c1o1r8hnjkmcwpgg = { setup: setup$1 };\r\n\r\n var setup$2 = function (editor) {\r\n editor.on('click keyup', function () {\r\n var selectedNode = editor.selection.getNode();\r\n if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {\r\n if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {\r\n selectedNode.setAttribute('data-mce-selected', '2');\r\n }\r\n }\r\n });\r\n editor.on('ObjectSelected', function (e) {\r\n var objectType = e.target.getAttribute('data-mce-object');\r\n if (objectType === 'audio' || objectType === 'script') {\r\n e.preventDefault();\r\n }\r\n });\r\n editor.on('objectResized', function (e) {\r\n var target = e.target;\r\n var html;\r\n if (target.getAttribute('data-mce-object')) {\r\n html = target.getAttribute('data-mce-html');\r\n if (html) {\r\n html = unescape(html);\r\n target.setAttribute('data-mce-html', escape($_6s992lhdjkmcwpfn.updateHtml(html, {\r\n width: e.width,\r\n height: e.height\r\n })));\r\n }\r\n }\r\n });\r\n };\r\n var $_8yods0hojkmcwpgh = { setup: setup$2 };\r\n\r\n var register$1 = function (editor) {\r\n editor.addButton('media', {\r\n tooltip: 'Insert/edit media',\r\n cmd: 'mceMedia',\r\n stateSelector: [\r\n 'img[data-mce-object]',\r\n 'span[data-mce-object]',\r\n 'div[data-ephox-embed-iri]'\r\n ]\r\n });\r\n editor.addMenuItem('media', {\r\n icon: 'media',\r\n text: 'Media',\r\n cmd: 'mceMedia',\r\n context: 'insert',\r\n prependToContext: true\r\n });\r\n };\r\n var $_ew8gthhpjkmcwpgk = { register: register$1 };\r\n\r\n global.add('media', function (editor) {\r\n $_8o48izhijkmcwpg5.register(editor);\r\n $_ew8gthhpjkmcwpgk.register(editor);\r\n $_c1o1r8hnjkmcwpgg.setup(editor);\r\n $_b6ycdhhjjkmcwpg6.setup(editor);\r\n $_8yods0hojkmcwpgh.setup(editor);\r\n return $_eg0prjgzjkmcwpeu.get(editor);\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","(function () {\r\nvar advlist = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var applyListFormat = function (editor, listName, styleValue) {\r\n var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';\r\n editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });\r\n };\r\n var $_55fky08fjkmcwo2a = { applyListFormat: applyListFormat };\r\n\r\n var register = function (editor) {\r\n editor.addCommand('ApplyUnorderedListStyle', function (ui, value) {\r\n $_55fky08fjkmcwo2a.applyListFormat(editor, 'UL', value['list-style-type']);\r\n });\r\n editor.addCommand('ApplyOrderedListStyle', function (ui, value) {\r\n $_55fky08fjkmcwo2a.applyListFormat(editor, 'OL', value['list-style-type']);\r\n });\r\n };\r\n var $_cjqqqe8ejkmcwo28 = { register: register };\r\n\r\n var getNumberStyles = function (editor) {\r\n var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman');\r\n return styles ? styles.split(/[ ,]/) : [];\r\n };\r\n var getBulletStyles = function (editor) {\r\n var styles = editor.getParam('advlist_bullet_styles', 'default,circle,disc,square');\r\n return styles ? styles.split(/[ ,]/) : [];\r\n };\r\n var $_2zo4iv8hjkmcwo2f = {\r\n getNumberStyles: getNumberStyles,\r\n getBulletStyles: getBulletStyles\r\n };\r\n\r\n var isChildOfBody = function (editor, elm) {\r\n return editor.$.contains(editor.getBody(), elm);\r\n };\r\n var isTableCellNode = function (node) {\r\n return node && /^(TH|TD)$/.test(node.nodeName);\r\n };\r\n var isListNode = function (editor) {\r\n return function (node) {\r\n return node && /^(OL|UL|DL)$/.test(node.nodeName) && isChildOfBody(editor, node);\r\n };\r\n };\r\n var getSelectedStyleType = function (editor) {\r\n var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');\r\n return editor.dom.getStyle(listElm, 'listStyleType') || '';\r\n };\r\n var $_djj0lo8ijkmcwo2g = {\r\n isTableCellNode: isTableCellNode,\r\n isListNode: isListNode,\r\n getSelectedStyleType: getSelectedStyleType\r\n };\r\n\r\n var styleValueToText = function (styleValue) {\r\n return styleValue.replace(/\\-/g, ' ').replace(/\\b\\w/g, function (chr) {\r\n return chr.toUpperCase();\r\n });\r\n };\r\n var toMenuItems = function (styles) {\r\n return global$1.map(styles, function (styleValue) {\r\n var text = styleValueToText(styleValue);\r\n var data = styleValue === 'default' ? '' : styleValue;\r\n return {\r\n text: text,\r\n data: data\r\n };\r\n });\r\n };\r\n var $_cbyrf58jjkmcwo2h = { toMenuItems: toMenuItems };\r\n\r\n var findIndex = function (list, predicate) {\r\n for (var index = 0; index < list.length; index++) {\r\n var element = list[index];\r\n if (predicate(element)) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n };\r\n var listState = function (editor, listName) {\r\n return function (e) {\r\n var ctrl = e.control;\r\n editor.on('NodeChange', function (e) {\r\n var tableCellIndex = findIndex(e.parents, $_djj0lo8ijkmcwo2g.isTableCellNode);\r\n var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;\r\n var lists = global$1.grep(parents, $_djj0lo8ijkmcwo2g.isListNode(editor));\r\n ctrl.active(lists.length > 0 && lists[0].nodeName === listName);\r\n });\r\n };\r\n };\r\n var updateSelection = function (editor) {\r\n return function (e) {\r\n var listStyleType = $_djj0lo8ijkmcwo2g.getSelectedStyleType(editor);\r\n e.control.items().each(function (ctrl) {\r\n ctrl.active(ctrl.settings.data === listStyleType);\r\n });\r\n };\r\n };\r\n var addSplitButton = function (editor, id, tooltip, cmd, nodeName, styles) {\r\n editor.addButton(id, {\r\n active: false,\r\n type: 'splitbutton',\r\n tooltip: tooltip,\r\n menu: $_cbyrf58jjkmcwo2h.toMenuItems(styles),\r\n onPostRender: listState(editor, nodeName),\r\n onshow: updateSelection(editor),\r\n onselect: function (e) {\r\n $_55fky08fjkmcwo2a.applyListFormat(editor, nodeName, e.control.settings.data);\r\n },\r\n onclick: function () {\r\n editor.execCommand(cmd);\r\n }\r\n });\r\n };\r\n var addButton = function (editor, id, tooltip, cmd, nodeName, styles) {\r\n editor.addButton(id, {\r\n active: false,\r\n type: 'button',\r\n tooltip: tooltip,\r\n onPostRender: listState(editor, nodeName),\r\n onclick: function () {\r\n editor.execCommand(cmd);\r\n }\r\n });\r\n };\r\n var addControl = function (editor, id, tooltip, cmd, nodeName, styles) {\r\n if (styles.length > 0) {\r\n addSplitButton(editor, id, tooltip, cmd, nodeName, styles);\r\n } else {\r\n addButton(editor, id, tooltip, cmd, nodeName, styles);\r\n }\r\n };\r\n var register$1 = function (editor) {\r\n addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', $_2zo4iv8hjkmcwo2f.getNumberStyles(editor));\r\n addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', $_2zo4iv8hjkmcwo2f.getBulletStyles(editor));\r\n };\r\n var $_d74fz58gjkmcwo2b = { register: register$1 };\r\n\r\n global.add('advlist', function (editor) {\r\n var hasPlugin = function (editor, plugin) {\r\n var plugins = editor.settings.plugins ? editor.settings.plugins : '';\r\n return global$1.inArray(plugins.split(/[ ,]/), plugin) !== -1;\r\n };\r\n if (hasPlugin(editor, 'lists')) {\r\n $_d74fz58gjkmcwo2b.register(editor);\r\n $_cjqqqe8ejkmcwo28.register(editor);\r\n }\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","(function () {\r\nvar preview = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var getPreviewDialogWidth = function (editor) {\r\n return parseInt(editor.getParam('plugin_preview_width', '650'), 10);\r\n };\r\n var getPreviewDialogHeight = function (editor) {\r\n return parseInt(editor.getParam('plugin_preview_height', '500'), 10);\r\n };\r\n var getContentStyle = function (editor) {\r\n return editor.getParam('content_style', '');\r\n };\r\n var $_6hy26xjfjkmcwppy = {\r\n getPreviewDialogWidth: getPreviewDialogWidth,\r\n getPreviewDialogHeight: getPreviewDialogHeight,\r\n getContentStyle: getContentStyle\r\n };\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var getPreviewHtml = function (editor) {\r\n var previewHtml;\r\n var headHtml = '';\r\n var encode = editor.dom.encode;\r\n var contentStyle = $_6hy26xjfjkmcwppy.getContentStyle(editor);\r\n headHtml += '';\r\n if (contentStyle) {\r\n headHtml += '';\r\n }\r\n global$2.each(editor.contentCSS, function (url) {\r\n headHtml += '';\r\n });\r\n var bodyId = editor.settings.body_id || 'tinymce';\r\n if (bodyId.indexOf('=') !== -1) {\r\n bodyId = editor.getParam('body_id', '', 'hash');\r\n bodyId = bodyId[editor.id] || bodyId;\r\n }\r\n var bodyClass = editor.settings.body_class || '';\r\n if (bodyClass.indexOf('=') !== -1) {\r\n bodyClass = editor.getParam('body_class', '', 'hash');\r\n bodyClass = bodyClass[editor.id] || '';\r\n }\r\n var preventClicksOnLinksScript = ' ';\r\n var dirAttr = editor.settings.directionality ? ' dir=\"' + editor.settings.directionality + '\"' : '';\r\n previewHtml = '' + '' + '' + headHtml + '' + '' + editor.getContent() + preventClicksOnLinksScript + '' + '';\r\n return previewHtml;\r\n };\r\n var injectIframeContent = function (editor, iframe, sandbox) {\r\n var previewHtml = getPreviewHtml(editor);\r\n if (!sandbox) {\r\n var doc = iframe.contentWindow.document;\r\n doc.open();\r\n doc.write(previewHtml);\r\n doc.close();\r\n } else {\r\n iframe.src = 'data:text/html;charset=utf-8,' + encodeURIComponent(previewHtml);\r\n }\r\n };\r\n var $_5s7etcjgjkmcwppz = {\r\n getPreviewHtml: getPreviewHtml,\r\n injectIframeContent: injectIframeContent\r\n };\r\n\r\n var open = function (editor) {\r\n var sandbox = !global$1.ie;\r\n var dialogHtml = '';\r\n var dialogWidth = $_6hy26xjfjkmcwppy.getPreviewDialogWidth(editor);\r\n var dialogHeight = $_6hy26xjfjkmcwppy.getPreviewDialogHeight(editor);\r\n editor.windowManager.open({\r\n title: 'Preview',\r\n width: dialogWidth,\r\n height: dialogHeight,\r\n html: dialogHtml,\r\n buttons: {\r\n text: 'Close',\r\n onclick: function (e) {\r\n e.control.parent().parent().close();\r\n }\r\n },\r\n onPostRender: function (e) {\r\n var iframeElm = e.control.getEl('body').firstChild;\r\n $_5s7etcjgjkmcwppz.injectIframeContent(editor, iframeElm, sandbox);\r\n }\r\n });\r\n };\r\n var $_4mmnpbjdjkmcwppw = { open: open };\r\n\r\n var register = function (editor) {\r\n editor.addCommand('mcePreview', function () {\r\n $_4mmnpbjdjkmcwppw.open(editor);\r\n });\r\n };\r\n var $_c197icjcjkmcwppv = { register: register };\r\n\r\n var register$1 = function (editor) {\r\n editor.addButton('preview', {\r\n title: 'Preview',\r\n cmd: 'mcePreview'\r\n });\r\n editor.addMenuItem('preview', {\r\n text: 'Preview',\r\n cmd: 'mcePreview',\r\n context: 'view'\r\n });\r\n };\r\n var $_eluyd4jijkmcwpq6 = { register: register$1 };\r\n\r\n global.add('preview', function (editor) {\r\n $_c197icjcjkmcwppv.register(editor);\r\n $_eluyd4jijkmcwpq6.register(editor);\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=45772c13&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('loading'),_c('notifications'),_c('header-cna'),_c('router-view'),_c('footer-cna')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',[_vm._m(0),_c('div',{staticClass:\"row\"},[_vm._m(1),(_vm.changelog)?_c('div',{staticClass:\"content-960 clearfix\"},[_c('button',{staticClass:\"btn btn-link\",staticStyle:{\"padding\":\"0\",\"color\":\"#272727\",\"font-size\":\"11px\"},on:{\"click\":function($event){_vm.dialogChangeLog = true}}},[_vm._v(\"\\n Versão \"+_vm._s(_vm.changelog.versao)+\"\\n \")])]):_vm._e()]),(_vm.changelog)?_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":'Versão de ' + _vm.changelog.data},model:{value:(_vm.dialogChangeLog),callback:function ($$v) {_vm.dialogChangeLog=$$v},expression:\"dialogChangeLog\"}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.changelog.detalhes)}})]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row-black\"},[_c('div',{staticClass:\"content-960 clearfix\"},[_c('ul',{staticClass:\"list-icons\"},[_c('li',[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://pt-br.facebook.com/CNAoficial/\",\"title\":\"Facebook\"}},[_c('div',{staticClass:\"fa fa-facebook\"})])]),_c('li',[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/cnaoficial\",\"title\":\"Twitter\"}},[_c('div',{staticClass:\"fa fa-twitter\"})])]),_c('li',[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.instagram.com/cnaoficial\",\"title\":\"Instagram\"}},[_c('div',{staticClass:\"fa fa-instagram\"})])]),_c('li',[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://br.linkedin.com/company/cna-ensino-de-linguas\",\"title\":\"Linkedin\"}},[_c('div',{staticClass:\"fa fa-linkedin\"})])]),_c('li',[_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.youtube.com/user/cnaoficial\",\"title\":\"Youtube\"}},[_c('div',{staticClass:\"fa fa-youtube\"})])])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960 clearfix\"},[_c('a',{attrs:{\"href\":\"#\",\"title\":\"Copyright © CNA.com.br - Todos os direitos reservados.\"}},[_vm._v(\"Copyright © CNA.com.br - Todos os direitos reservados.\")]),_c('a',{attrs:{\"href\":\"#\",\"title\":\"Política de Privacidade\"}},[_vm._v(\"Política de uso\")])])}]\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=b9be3010&\"\nimport script from \"./footer.vue?vue&type=script&lang=js&\"\nexport * from \"./footer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',[_c('div',{staticClass:\"row-black no-padding-bottom clearfix\"},[_c('div',{staticClass:\"content-960\"},[_c('div',{staticClass:\"menu pull-left bt-mobile\"},[_c('div',{staticClass:\"dropdown menu-mobile\"},[_c('b-dropdown',{staticClass:\"text-white\",attrs:{\"variant\":\"link\",\"no-caret\":\"\"}},[_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/escolabox'),expression:\"'/escolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/escolabox\"}},[_vm._v(\"Escolas\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/extratoescolabox'),expression:\"'/extratoescolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/extratoescolabox\"}},[_vm._v(\"Extrato de uso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/colaboradorlogacesso'),expression:\"'/colaboradorlogacesso'\"}]},[_c('router-link',{attrs:{\"to\":\"/colaboradorlogacesso\"}},[_vm._v(\"Log de Acesso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/planoservico'),expression:\"'/planoservico'\"}]},[_c('router-link',{attrs:{\"to\":\"/planoservico\"}},[_vm._v(\"Pacotes\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/estoqueitem'),expression:\"'/estoqueitem'\"}]},[_c('router-link',{attrs:{\"to\":\"/estoqueitem\"}},[_vm._v(\"Estoque\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/idioma'),expression:\"'/idioma'\"}]},[_c('router-link',{attrs:{\"to\":\"/idioma\"}},[_vm._v(\"Idioma\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/curso'),expression:\"'/curso'\"}]},[_c('router-link',{attrs:{\"to\":\"/curso\"}},[_vm._v(\"Curso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/nivel'),expression:\"'/nivel'\"}]},[_c('router-link',{attrs:{\"to\":\"/nivel\"}},[_vm._v(\"Nível\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/estagio'),expression:\"'/estagio'\"}]},[_c('router-link',{attrs:{\"to\":\"/estagio\"}},[_vm._v(\"Estágio\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/tipoAvaliacao'),expression:\"'/tipoAvaliacao'\"}]},[_c('router-link',{attrs:{\"to\":\"/tipoAvaliacao\"}},[_vm._v(\"Tipo de Avaliação\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/midia'),expression:\"'/midia'\"}]},[_c('router-link',{attrs:{\"to\":\"/midia\"}},[_vm._v(\"Mídia\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/campanha'),expression:\"'/campanha'\"}]},[_c('router-link',{attrs:{\"to\":\"/campanha\"}},[_vm._v(\"Campanha\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/contacorrentecarteira'),expression:\"'/contacorrentecarteira'\"}]},[_c('router-link',{attrs:{\"to\":\"/contacorrentecarteira\"}},[_vm._v(\"Contas Correntes\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/banco'),expression:\"'/banco'\"}]},[_c('router-link',{attrs:{\"to\":\"/banco\"}},[_vm._v(\"banco\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/bandeiracartao'),expression:\"'/bandeiracartao'\"}]},[_c('router-link',{attrs:{\"to\":\"/bandeiracartao\"}},[_vm._v(\"Bandeira de Cartão\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/empresaparceira'),expression:\"'/empresaparceira'\"}]},[_c('router-link',{attrs:{\"to\":\"/empresaparceira\"}},[_vm._v(\"Empresa Parceira\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/categoriaempresaParceira'),expression:\"'/categoriaempresaParceira'\"}]},[_c('router-link',{attrs:{\"to\":\"/categoriaempresaParceira\"}},[_vm._v(\"Categoria de Empresa Parceira\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/categoriaatendimento'),expression:\"'/categoriaatendimento'\"}]},[_c('router-link',{attrs:{\"to\":\"/categoriaatendimento\"}},[_vm._v(\"Categoria de Atendimento\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/aliquotasimplesnacional'),expression:\"'/aliquotasimplesnacional'\"}]},[_c('router-link',{attrs:{\"to\":\"/aliquotasimplesnacional\"}},[_vm._v(\"Alíquota Simples Nacional\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/aliquotasimplesnacional'),expression:\"'/aliquotasimplesnacional'\"}]},[_c('router-link',{attrs:{\"to\":\"/aliquotasimplesnacional\"}},[_vm._v(\"Parâmetros\")])],1)],1)],1)]),_vm._m(0),_c('div',{staticClass:\"user\"},[_c('div',{staticClass:\"click-menu click-animate\"},[_c('div',{staticClass:\"img-user\"},[_c('img',{attrs:{\"src\":_vm.urlFoto,\"alt\":\"Imagem do Usuário\",\"title\":_vm.user.name}})]),_c('h2',[_vm._v(\"Olá, \"),_c('span',{attrs:{\"title\":_vm.user.name}},[_vm._v(_vm._s(_vm.user.name))])]),_c('div',{staticClass:\"cna-local\"},[_c('span',{attrs:{\"title\":_vm.escolaNome}},[_vm._v(_vm._s(_vm.escolaNome))]),_c('a',{staticClass:\"icons-arrows\",attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.irParaPortalCorporativo()}}},[_vm._m(1)]),_c('router-link',{staticClass:\"icons-arrows\",attrs:{\"to\":\"/trocarescola\"}},[_c('span',[_c('br'),_vm._v(\"Trocar escola\")])]),_c('a',{staticClass:\"float-right\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.logout()}}},[_vm._v(\"\\n Sair\\n \")])],1),_c('br')]),_c('div',{staticClass:\"wrap-conteudo\"},[_c('div',{staticClass:\"dados-user-mobile\"},[_c('h2',[_vm._v(\"Olá, \"),_c('span',[_vm._v(_vm._s(_vm.user.name))])]),_c('div',{staticClass:\"cna-local\"},[_vm._v(\"\\n \"+_vm._s(_vm.escolaNome)+\"\\n \")])])])]),_c('div',{staticClass:\"menu-desktop\"},[_c('ul',{staticClass:\"style-hover\"},[_c('li',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/home'),expression:\"'/home'\"}]},[_c('router-link',{attrs:{\"to\":\"/home\"}},[_vm._v(\"Home\")])],1),_c('b-nav-item-dropdown',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/certificacoes'),expression:\"'/certificacoes'\"}],staticClass:\"menu-color\",attrs:{\"text\":\"Certificações Internacionais\",\"left\":\"\"}},[_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/certificacoespoliticapreco'),expression:\"'/certificacoespoliticapreco'\"}]},[_c('router-link',{attrs:{\"to\":\"/certificacoespoliticapreco\"}},[_vm._v(\"POLÍTICA DE PREÇO\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/certificacoesregrasisencao'),expression:\"'/certificacoesregrasisencao'\"}]},[_c('router-link',{attrs:{\"to\":\"/certificacoesregrasisencao\"}},[_vm._v(\"REGRAS PARA ISENÇÃO\")])],1)],1),_c('b-nav-item-dropdown',{staticClass:\"menu-color\",attrs:{\"text\":\"CNA NA ESCOLA\",\"left\":\"\"}},[_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/escolabox'),expression:\"'/escolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/instituicaoensino\"}},[_vm._v(\"INSTITUIÇÕES DE ENSINO\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/escolabox'),expression:\"'/escolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/instituicaoensinousuario\"}},[_vm._v(\"Gestão de Usuários\")])],1)],1),_c('b-nav-item-dropdown',{staticClass:\"menu-color\",attrs:{\"text\":\"MEU CNA\",\"left\":\"\"}},[_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/ajudaperguntameucna'),expression:\"'/ajudaperguntameucna'\"}]},[_c('router-link',{attrs:{\"to\":\"/ajudaperguntameucna\"}},[_vm._v(\"Perguntas e Respostas\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/ajudachamadomeucna'),expression:\"'/ajudachamadomeucna'\"}]},[_c('router-link',{attrs:{\"to\":\"/ajudachamadomeucna\"}},[_vm._v(\"Gestão de Chamados\")])],1)],1),_c('b-nav-item-dropdown',{staticClass:\"menu-color\",attrs:{\"text\":\"CNA BOX\",\"left\":\"\"}},[_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/escolabox'),expression:\"'/escolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/escolabox\"}},[_vm._v(\"Escolas\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/extratoescolabox'),expression:\"'/extratoescolabox'\"}]},[_c('router-link',{attrs:{\"to\":\"/extratoescolabox\"}},[_vm._v(\"Extrato de uso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/colaboradorlogacesso'),expression:\"'/colaboradorlogacesso'\"}]},[_c('router-link',{attrs:{\"to\":\"/colaboradorlogacesso\"}},[_vm._v(\"Log de Acesso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/planoservico'),expression:\"'/planoservico'\"}]},[_c('router-link',{attrs:{\"to\":\"/planoservico\"}},[_vm._v(\"Pacotes\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/estoqueitem'),expression:\"'/estoqueitem'\"}]},[_c('router-link',{attrs:{\"to\":\"/estoqueitem\"}},[_vm._v(\"Estoque\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/idioma'),expression:\"'/idioma'\"}]},[_c('router-link',{attrs:{\"to\":\"/idioma\"}},[_vm._v(\"Idioma\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/curso'),expression:\"'/curso'\"}]},[_c('router-link',{attrs:{\"to\":\"/curso\"}},[_vm._v(\"Curso\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/nivel'),expression:\"'/nivel'\"}]},[_c('router-link',{attrs:{\"to\":\"/nivel\"}},[_vm._v(\"Nível\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/estagio'),expression:\"'/estagio'\"}]},[_c('router-link',{attrs:{\"to\":\"/estagio\"}},[_vm._v(\"Estágio\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/tipoAvaliacao'),expression:\"'/tipoAvaliacao'\"}]},[_c('router-link',{attrs:{\"to\":\"/tipoAvaliacao\"}},[_vm._v(\"Tipo de Avaliação\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/midia'),expression:\"'/midia'\"}]},[_c('router-link',{attrs:{\"to\":\"/midia\"}},[_vm._v(\"Mídia\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/campanha'),expression:\"'/campanha'\"}]},[_c('router-link',{attrs:{\"to\":\"/campanha\"}},[_vm._v(\"Campanha\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/contacorrentecarteira'),expression:\"'/contacorrentecarteira'\"}]},[_c('router-link',{attrs:{\"to\":\"/contacorrentecarteira\"}},[_vm._v(\"Contas Correntes\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/banco'),expression:\"'/banco'\"}]},[_c('router-link',{attrs:{\"to\":\"/banco\"}},[_vm._v(\"banco\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/bandeiracartao'),expression:\"'/bandeiracartao'\"}]},[_c('router-link',{attrs:{\"to\":\"/bandeiracartao\"}},[_vm._v(\"Bandeira de Cartão\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/empresaparceira'),expression:\"'/empresaparceira'\"}]},[_c('router-link',{attrs:{\"to\":\"/empresaparceira\"}},[_vm._v(\"Empresa Parceira\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/categoriaempresaParceira'),expression:\"'/categoriaempresaParceira'\"}]},[_c('router-link',{attrs:{\"to\":\"/categoriaempresaParceira\"}},[_vm._v(\"Categoria de Empresa Parceira\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/categoriaatendimento'),expression:\"'/categoriaatendimento'\"}]},[_c('router-link',{attrs:{\"to\":\"/categoriaatendimento\"}},[_vm._v(\"Categoria de Atendimento\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/aliquotasimplesnacional'),expression:\"'/aliquotasimplesnacional'\"}]},[_c('router-link',{attrs:{\"to\":\"/aliquotasimplesnacional\"}},[_vm._v(\"Alíquota Simples Nacional\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/parametro'),expression:\"'/parametro'\"}]},[_c('router-link',{attrs:{\"to\":\"/parametro\"}},[_vm._v(\"Parâmetros\")])],1),_c('b-dropdown-divider'),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/tutorialvideofuncionalidade'),expression:\"'/tutorialvideofuncionalidade'\"}]},[_c('router-link',{attrs:{\"to\":\"/tutorialvideofuncionalidade\"}},[_vm._v(\"Funcionalidades dos Vídeos\")])],1),_c('b-dropdown-item',{directives:[{name:\"canaccess\",rawName:\"v-canaccess\",value:('/tutorialvideo'),expression:\"'/tutorialvideo'\"}]},[_c('router-link',{attrs:{\"to\":\"/tutorialvideo\"}},[_vm._v(\"Novo Vídeo\")])],1)],1)],1)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"logo-header\",attrs:{\"href\":\"/home\",\"title\":\"Logo CNA Portal Corporativo\"}},[_c('img',{staticClass:\"logo-desktop\",attrs:{\"src\":require(\"../assets/imagens/logos/logo-CNA-big.png\"),\"alt\":\"Imagem Logo CNA\",\"title\":\"CNA Jobs\"}}),_c('img',{staticClass:\"logo-mobile margin-ajust\",attrs:{\"src\":require(\"../assets/imagens/logos/logo-CNA-mobile.png\"),\"alt\":\"Imagem Logo CNA\",\"title\":\"CNA Jobs\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('br'),_vm._v(\"Ir para Portal Corporativo\")])}]\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=4e760726&\"\nimport script from \"./header.vue?vue&type=script&lang=js&\"\nexport * from \"./header.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isloading),expression:\"isloading\"}],staticClass:\"loader\"},[_c('img',{attrs:{\"src\":require(\"../../assets/loader.png\"),\"alt\":\"Carregando...\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=6e980aa2&\"\nimport script from \"./loading.vue?vue&type=script&lang=js&\"\nexport * from \"./loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./loading.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=22d4223e&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{staticClass:\"opacity-introjs\"},[_c('section',[_vm._m(0),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_c('div',{staticClass:\"row\"},_vm._l((_vm.result.Totalizador),function(item){return _c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"card text-center\"},[_c('div',{staticClass:\"card-header\"},[_vm._v(\"\\n \"+_vm._s(item.nomeTotalizador)+\"\\n \")]),_c('div',{staticClass:\"card-body\"},[_c('h5',{staticClass:\"card-title\"},[_vm._v(_vm._s(item.valor))])])]),_c('br')])}),0)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960\"},[_c('ul',{staticClass:\"breadcrumb\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Api } from '@/common/api'\r\nimport Global from '@/common/global'\r\nimport { $, jQuery } from 'jquery';\r\nimport \"intro.js/introjs.css\"\r\nimport \"intro.js/themes/introjs-modern.css\"\r\n\r\nvar introJs = require(\"intro.js/intro.js\")\r\n\r\nexport default {\r\n\r\n steps: [],\r\n\r\n start(url) {\r\n setTimeout(() => {\r\n\r\n var _intro = introJs()\r\n\r\n _intro.setOption(\"showProgress\", true);\r\n _intro.setOption(\"showBullets\", false);\r\n _intro.setOption(\"showStepNumbers\", false);\r\n _intro.setOption(\"nextLabel\", \"Próximo\");\r\n _intro.setOption(\"prevLabel\", \"Anterior\");\r\n _intro.setOption(\"doneLabel\", \"Concluir\");\r\n _intro.setOption(\"skipLabel\", \"Sair\");\r\n _intro.setOption(\"exitOnEsc\", false);\r\n _intro.setOption(\"exitOnOverlayClick\", false);\r\n _intro.setOption(\"disableInteraction\", true);\r\n\r\n _intro.oncomplete(() => {\r\n for (var item of this.steps) {\r\n new Api('ColaboradorTutorialPasso', Global.END_POINT_PORTAL_CORPORATIVO).post({ \r\n tutorialPassoId: item.tutorialPassoId\r\n }).then(data => { })\r\n }\r\n });\r\n\r\n new Api('tutorialpasso/more', Global.END_POINT_PORTAL_CORPORATIVO).get({\r\n chaveIdentificacaoSistema: Global.CHAVE_IDENTIFICACAO_SISTEMA,\r\n url: url,\r\n filterBehavior: \"GetDataListCustom\"\r\n }).then(result => {\r\n this.steps = result.dataList;\r\n for (var item of this.steps) {\r\n var _element = item.element;\r\n \r\n if (_element) {\r\n _intro.addStep({\r\n element: _element,\r\n intro: item.intro\r\n })\r\n }\r\n }\r\n _intro.start();\r\n });\r\n }, 500)\r\n }\r\n}","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7ceed714&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960 mobile-row\",staticStyle:{\"margin-top\":\"40px\",\"max-width\":\"470px\",\"text-align\":\"center\"}},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_c('div',{staticClass:\"titles\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Aguarde, estamos concluindo seu acesso.\")]),_c('br')])]),_c('br'),_c('div',{staticClass:\"titles icon-animated\"},[_c('i',{staticClass:\"fa fa-6x fa-check-circle\",staticStyle:{\"font-size\":\"90px\",\"color\":\"green\"}})])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=53e262d2&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960 mobile-row\",staticStyle:{\"margin-top\":\"40px\",\"max-width\":\"470px\",\"text-align\":\"center\"}},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(0),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-sm-12 col-lg-12 col-sm-12\"},[_c('label',{staticClass:\"title title--news mb-2 cna-login__title\"},[_vm._v(\"Selecione sua escola\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.escola_escolhida),expression:\"escola_escolhida\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.escola_escolhida=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"0\"}},[_vm._v(\"Selecione\")]),_vm._l((_vm.escolas),function(escola){return _c('option',{key:escola.escolaId,domProps:{\"value\":escola.escolaId}},[_vm._v(_vm._s(escola.nomeEscola))])})],2)])]),_c('br'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-sm-12 col-lg-12 col-sm-12\"},[_c('div',{staticClass:\"form-group cna-login__group\"},[_c('button',{staticClass:\"btn btn-sm btn-success p-2\",attrs:{\"type\":\"button\",\"disabled\":_vm.escola_escolhida == 0},on:{\"click\":function($event){return _vm.trocarEscola()}}},[_vm._v(\"Escolher Escola\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Trocar escola\")]),_c('br')])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b33b332c&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{attrs:{\"role\":\"main\"}},[_c('div',{staticClass:\"content-960 mobile-row\",staticStyle:{\"margin-top\":\"40px\",\"max-width\":\"470px\",\"text-align\":\"center\"}},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_c('div',{staticClass:\"titles\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Acesso negado\")])])]),_c('br'),_c('div',{staticClass:\"titles\"},[_c('i',{staticClass:\"fa fa-6x fa-exclamation-triangle\",staticStyle:{\"font-size\":\"90px\",\"color\":\"#cc2213\"}}),_c('br'),_c('em',[_vm._v(\"Você não tem permissão para acessar esta tela! Favor entrar em contato com o Administrador do Sistema.\")])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-sm-12 col-lg-12 col-sm-12\",staticStyle:{\"text-align\":\"center\"}},[_c('div',{staticClass:\"form-group cna-login__group\"},[_c('a',{staticClass:\"btn btn-sm btn-default btn-default-app p-2\",attrs:{\"href\":\"/home\"}},[_vm._v(\"Ir para home\")])])]),_c('div',{staticClass:\"col-12 col-sm-12 col-lg-12 col-sm-12\",staticStyle:{\"text-align\":\"center\"}},[_c('div',{staticClass:\"form-group cna-login__group\"},[_c('a',{staticClass:\"btn btn-sm btn-default btn-default-app p-2\",attrs:{\"href\":\"/trocarescola\"}},[_vm._v(\"Trocar escola\")])])])])])])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2f3651ca&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_vm._m(0),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(1),(_vm.estagioCarregado)?_c('b-tabs',[_c('b-tab',{attrs:{\"title\":\"Conteúdos do estágio\"}},[_c('br'),_c('estagio-conteudo',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Avaliações\"}},[_c('br'),_c('estagio-avaliacao',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Valores por escola\"}},[_c('br'),_c('escola-estagio',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Modalidades\"}},[_c('br'),_c('estagio-modalidade',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Durações\"}},[_c('br'),_c('estagio-duracao-minima',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Sequências\"}},[_c('br'),_c('estagio-sequencia',{attrs:{\"estagio-id\":_vm.estagioId}})],1),_c('b-tab',{attrs:{\"title\":\"Material Didático\"}},[_c('br'),_c('estoque-item-estagio',{attrs:{\"estagio-id\":_vm.estagioId}})],1)],1):_vm._e()],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960\"},[_c('div',{staticClass:\"row\"},[_c('section',{staticClass:\"col-sm-6\"},[_c('ul',{staticClass:\"breadcrumb\"},[_c('li',[_c('a',{attrs:{\"href\":\"#\",\"title\":\"Home\"}},[_vm._v(\"CNA Box\")])]),_c('li',[_c('a',{attrs:{\"href\":\"#\",\"title\":\"Pages\"}},[_vm._v(\"Gerencial\")])]),_c('li',[_vm._v(\"Estágio\")])])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Configurar Estágio\")])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_vm._m(0),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(1),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.executeFilter(_vm.filter)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"conteudo\"}},[_vm._v(\"Conteúdo\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.conteudo),expression:\"filter.conteudo\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"conteudo\",\"placeholder\":\"Conteúdo\"},domProps:{\"value\":(_vm.filter.conteudo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.filter, \"conteudo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',[_vm._v(\"Avaliação\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ehAvaliacao),expression:\"filter.ehAvaliacao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ehAvaliacao\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.ehAvaliacao,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ehAvaliacao\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ehAvaliacao),expression:\"filter.ehAvaliacao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ehAvaliacao\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.ehAvaliacao,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ehAvaliacao\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ehAvaliacao),expression:\"filter.ehAvaliacao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ehAvaliacao\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.ehAvaliacao,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ehAvaliacao\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',[_vm._v(\"Conteúdo Adicional\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.eAdicional),expression:\"filter.eAdicional\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"eAdicional\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.eAdicional,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"eAdicional\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.eAdicional),expression:\"filter.eAdicional\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"eAdicional\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.eAdicional,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"eAdicional\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.eAdicional),expression:\"filter.eAdicional\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"eAdicional\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.eAdicional,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"eAdicional\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])])]),_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-red uppercase\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeFilter(_vm.filter)}}},[_vm._v(\"Buscar\")]),_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")])])])]),_vm._m(2),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Ordem \"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Ordem')}}})]),_c('th',[_vm._v(\"Conteúdo \"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Conteudo')}}})]),_c('th',[_vm._v(\"Tempo \"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Tempo')}}})]),_c('th',[_vm._v(\"Avaliação \"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('EhAvaliacao')}}})]),_c('th',[_vm._v(\"Adicional \"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('EAdicional')}}})]),_vm._m(3)])]),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.ordem))]),_c('td',[_vm._v(_vm._s(item.conteudo))]),_c('td',[_vm._v(_vm._s(item.tempo))]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.ehAvaliacao, 'badge-danger': !item.ehAvaliacao }},[_vm._v(_vm._s(item.ehAvaliacao ? 'Sim' : 'Não'))])]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.eAdicional, 'badge-danger': !item.eAdicional }},[_vm._v(_vm._s(item.eAdicional ? 'Sim' : 'Não'))])]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openEdit({ estagioConteudoId: item.estagioConteudoId })}}},[_c('i',{staticClass:\"fa fa-pencil\"})]),_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estagioConteudoId: item.estagioConteudoId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estagioConteudoId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960\"},[_c('div',{staticClass:\"row\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Conteúdos do Estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"alert col col-12 alert-block alert-info\"},[_c('p',[_c('i',{staticClass:\"fa fa-info-circle\"}),_c('b',[_vm._v(\" CADASTRANDO CONTEÚDOS ADICIONAIS (AULA INAUGURAL, REUNIÃO DE PAIS, ETC.) *\")])]),_c('p',{staticStyle:{\"text-transform\":\"none\"}},[_vm._v(\"\\n Se deseja cadastrar conteúdos adicionais para o estágio selecionado, por favor, siga as instruções definidas abaixo:\"),_c('br'),_c('strong',[_vm._v(\"Aula inaugural:\")]),_vm._v(\" cadastre aplicando o tempo de uma aula e a ordem 0 (zero). Isso garantirá que ela seja posicionada na primeira aula do plano de aulas.\"),_c('br'),_c('strong',[_vm._v(\"Demais conteúdos:\")]),_vm._v(\" é preciso saber em que momento do plano de aulas o conteúdo deverá ser inserido. Se, por exemplo, queremos cadastrar uma sessão de feedback duas aulas após as provas de meio de semestre,\\n é necessário contabilizarmos os tempos dos conteúdos após esse evento, de modo que a soma totalize a duração necessária para estas duas aulas. Logo após o último conteúdo necessário, adicionamos a sessão de feedback com mesma ordem.\"),_c('br'),_vm._v(\"\\n Exemplo: se o último conteúdo aplicado nas duas aulas após as provas de meio de semestre é o UNIT 5 - Act. 10 (do BASIC 1), com ordem 98, \"),_c('strong',[_vm._v(\"a sessão de feedback deverá ser cadastrada logo na sequência, utilizando a mesma ordem (98).\")]),_c('br'),_c('br'),_c('strong',[_vm._v(\"* Tais conteúdos serão aplicados somente em turmas CNA Conecta cadastradas na Digital School.\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioconteudo-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"conteudo\"}},[_vm._v(\"Conteúdo\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.conteudo),expression:\"model.conteudo\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"maxlength\":\"255\",\"name\":\"conteudo\",\"placeholder\":\"Conteúdo\",\"required\":\"\"},domProps:{\"value\":(_vm.model.conteudo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"conteudo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',{attrs:{\"for\":\"tempo\"}},[_vm._v(\"Tempo\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.tempo),expression:\"model.tempo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"tempo\",\"placeholder\":\"Tempo\",\"required\":\"\"},domProps:{\"value\":(_vm.model.tempo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"tempo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',{attrs:{\"for\":\"ordem\"}},[_vm._v(\"Ordem\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ordem),expression:\"model.ordem\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"ordem\",\"placeholder\":\"Ordem\",\"required\":\"\"},domProps:{\"value\":(_vm.model.ordem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"ordem\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ehAvaliacao),expression:\"model.ehAvaliacao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ehAvaliacao\"},domProps:{\"checked\":Array.isArray(_vm.model.ehAvaliacao)?_vm._i(_vm.model.ehAvaliacao,null)>-1:(_vm.model.ehAvaliacao)},on:{\"change\":function($event){var $$a=_vm.model.ehAvaliacao,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ehAvaliacao\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ehAvaliacao\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ehAvaliacao\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Avaliação?\")])]),(_vm.autoAjudaVisivel())?_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ehAssincrona),expression:\"model.ehAssincrona\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ehAssincrona\"},domProps:{\"checked\":Array.isArray(_vm.model.ehAssincrona)?_vm._i(_vm.model.ehAssincrona,null)>-1:(_vm.model.ehAssincrona)},on:{\"change\":function($event){var $$a=_vm.model.ehAssincrona,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ehAssincrona\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ehAssincrona\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ehAssincrona\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Aula de autoestudo?\")])]):_vm._e(),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.eAdicional),expression:\"model.eAdicional\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"eAdicional\"},domProps:{\"checked\":Array.isArray(_vm.model.eAdicional)?_vm._i(_vm.model.eAdicional,null)>-1:(_vm.model.eAdicional)},on:{\"change\":function($event){var $$a=_vm.model.eAdicional,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"eAdicional\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"eAdicional\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"eAdicional\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Conteúdo adicional?\")]),_vm._v(\" \\n \"),_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":\"Os conteúdos marcados como adicionais serão aplicados somente nos planos de aulas de turmas CNA Conecta, cadastradas na Digital School.\"}},[_c('i',{staticClass:\"fa fa-info-circle\"})])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=81a9662c&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioconteudo-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"conteudo\"}},[_vm._v(\"Conteúdo\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.conteudo),expression:\"model.conteudo\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"maxlength\":\"255\",\"name\":\"conteudo\",\"placeholder\":\"Conteúdo\",\"required\":\"\"},domProps:{\"value\":(_vm.model.conteudo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"conteudo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',{attrs:{\"for\":\"tempo\"}},[_vm._v(\"Tempo\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.tempo),expression:\"model.tempo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"tempo\",\"placeholder\":\"Tempo\",\"required\":\"\"},domProps:{\"value\":(_vm.model.tempo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"tempo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-3\"},[_c('label',{attrs:{\"for\":\"ordem\"}},[_vm._v(\"Ordem\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ordem),expression:\"model.ordem\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"ordem\",\"placeholder\":\"Ordem\",\"required\":\"\"},domProps:{\"value\":(_vm.model.ordem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"ordem\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ehAvaliacao),expression:\"model.ehAvaliacao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ehAvaliacao\"},domProps:{\"checked\":Array.isArray(_vm.model.ehAvaliacao)?_vm._i(_vm.model.ehAvaliacao,null)>-1:(_vm.model.ehAvaliacao)},on:{\"change\":function($event){var $$a=_vm.model.ehAvaliacao,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ehAvaliacao\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ehAvaliacao\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ehAvaliacao\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Avaliação?\")])]),(this.autoAjudaVisivel)?_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ehAssincrona),expression:\"model.ehAssincrona\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ehAssincrona\"},domProps:{\"checked\":Array.isArray(_vm.model.ehAssincrona)?_vm._i(_vm.model.ehAssincrona,null)>-1:(_vm.model.ehAssincrona)},on:{\"change\":function($event){var $$a=_vm.model.ehAssincrona,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ehAssincrona\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ehAssincrona\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ehAssincrona\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Aula de Auto Estudo?\")])]):_vm._e(),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.eAdicional),expression:\"model.eAdicional\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"eAdicional\"},domProps:{\"checked\":Array.isArray(_vm.model.eAdicional)?_vm._i(_vm.model.eAdicional,null)>-1:(_vm.model.eAdicional)},on:{\"change\":function($event){var $$a=_vm.model.eAdicional,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"eAdicional\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"eAdicional\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"eAdicional\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" É conteúdo adicional?\")]),_vm._v(\" \\n \"),_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":\"Os conteúdos marcados como adicionais serão aplicados somente nos planos de aulas de turmas CNA Conecta, cadastradas na Digital School.\"}},[_c('i',{staticClass:\"fa fa-info-circle\"})])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=88ea5760&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d6c74e86&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_vm._m(0),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(1),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.executeFilter(_vm.filter)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"nome\"}},[_vm._v(\"Nome\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.nome),expression:\"filter.nome\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"nome\",\"placeholder\":\"Nome\"},domProps:{\"value\":(_vm.filter.nome)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.filter, \"nome\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"nomeTraduzido\"}},[_vm._v(\"Nome Traduzido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.nomeTraduzido),expression:\"filter.nomeTraduzido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"nomeTraduzido\",\"placeholder\":\"Nome Traduzido\"},domProps:{\"value\":(_vm.filter.nomeTraduzido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.filter, \"nomeTraduzido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"unidade\"}},[_vm._v(\"Unidade\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.unidade),expression:\"filter.unidade\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"unidade\",\"placeholder\":\"Unidade\"},domProps:{\"value\":(_vm.filter.unidade)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.filter, \"unidade\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"tipoAvaliacaoId\"}},[_vm._v(\"Tipo da Avaliação\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'TipoAvaliacao', default: 'Selecione' }),expression:\"{ dataitem: 'TipoAvaliacao', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.filter.tipoAvaliacaoId),expression:\"filter.tipoAvaliacaoId\"}],staticClass:\"form-control\",attrs:{\"name\":\"tipoAvaliacaoId\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filter, \"tipoAvaliacaoId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',[_vm._v(\"Lança nota de 0 a 10\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ignoraPontuacaoPadrao),expression:\"filter.ignoraPontuacaoPadrao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ignoraPontuacaoPadrao\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.ignoraPontuacaoPadrao,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ignoraPontuacaoPadrao\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ignoraPontuacaoPadrao),expression:\"filter.ignoraPontuacaoPadrao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ignoraPontuacaoPadrao\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.ignoraPontuacaoPadrao,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ignoraPontuacaoPadrao\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.ignoraPontuacaoPadrao),expression:\"filter.ignoraPontuacaoPadrao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"ignoraPontuacaoPadrao\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.ignoraPontuacaoPadrao,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"ignoraPontuacaoPadrao\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',[_vm._v(\"Meio de Curso\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.meioCurso),expression:\"filter.meioCurso\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"meioCurso\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.meioCurso,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"meioCurso\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.meioCurso),expression:\"filter.meioCurso\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"meioCurso\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.meioCurso,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"meioCurso\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.meioCurso),expression:\"filter.meioCurso\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"meioCurso\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.meioCurso,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"meioCurso\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',[_vm._v(\"Excluído\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.excluido),expression:\"filter.excluido\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"excluido\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.excluido,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"excluido\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.excluido),expression:\"filter.excluido\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"excluido\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.excluido,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"excluido\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.excluido),expression:\"filter.excluido\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"excluido\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.excluido,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"excluido\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])])]),_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-red uppercase\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeFilter(_vm.filter)}}},[_vm._v(\"Buscar\")]),_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")])])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Ordem\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('ordem')}}})]),_c('th',[_vm._v(\"Nome\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('nome')}}})]),_c('th',[_vm._v(\"Nome Traduzido\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('nomeTraduzido')}}})]),_c('th',[_vm._v(\"Unidade\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('unidade')}}})]),_c('th',[_vm._v(\"Pontuação\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('pontuacao')}}})]),_c('th',[_vm._v(\"Meio de Curso\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('meiocurso')}}})]),_c('th',[_vm._v(\"Excluído\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('excluido')}}})]),_vm._m(2)])]),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.ordem))]),_c('td',[_vm._v(_vm._s(item.nome))]),_c('td',[_vm._v(_vm._s(item.nomeTraduzido))]),_c('td',[_vm._v(_vm._s(item.unidade))]),_c('td',[_vm._v(_vm._s(item.pontuacao))]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.meioCurso, 'badge-danger': !item.meioCurso }},[_vm._v(_vm._s(item.meioCurso ? 'Sim' : 'Não'))])]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.excluido, 'badge-danger': !item.excluido }},[_vm._v(_vm._s(item.excluido ? 'Sim' : 'Não'))])]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openEdit({ estagioAvaliacaoId: item.estagioAvaliacaoId })}}},[_c('i',{staticClass:\"fa fa-pencil\"})]),_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estagioAvaliacaoId: item.estagioAvaliacaoId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"size\":\"lg\",\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"size\":\"lg\",\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estagioAvaliacaoId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960\"},[_c('div',{staticClass:\"row\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Avaliações do estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioavaliacao-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-8\"},[_c('label',{attrs:{\"for\":\"nome\"}},[_vm._v(\"Nome\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.nome),expression:\"model.nome\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"maxlength\":\"100\",\"name\":\"nome\",\"placeholder\":\"Nome\",\"required\":\"\"},domProps:{\"value\":(_vm.model.nome)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"nome\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"unidade\"}},[_vm._v(\"Unidade\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.unidade),expression:\"model.unidade\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"unidade\",\"maxlength\":\"20\",\"placeholder\":\"Unidade\"},domProps:{\"value\":(_vm.model.unidade)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"unidade\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"nomeTraduzido\"}},[_vm._v(\"Nome Traduzido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.nomeTraduzido),expression:\"model.nomeTraduzido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"maxlength\":\"150\",\"name\":\"nome\",\"placeholder\":\"Nome Traduzido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.nomeTraduzido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"nomeTraduzido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"tipoAvaliacaoId\"}},[_vm._v(\"Tipo de Avaliação\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'TipoAvaliacao', default: 'Selecione' }),expression:\"{ dataitem: 'TipoAvaliacao', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.tipoAvaliacaoId),expression:\"model.tipoAvaliacaoId\"}],staticClass:\"form-control\",attrs:{\"name\":\"tipoAvaliacaoId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"tipoAvaliacaoId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"ordem\"}},[_vm._v(\"Ordem\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ordem),expression:\"model.ordem\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"ordem\",\"placeholder\":\"Ordem\",\"required\":\"\"},domProps:{\"value\":(_vm.model.ordem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"ordem\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"pontuacao\"}},[_vm._v(\"Pontuação\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.pontuacao),expression:\"model.pontuacao\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"pontuacao\",\"placeholder\":\"Pontuação\",\"required\":\"\"},domProps:{\"value\":(_vm.model.pontuacao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"pontuacao\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"pontuacao\"}},[_vm._v(\"External ID\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.externalId),expression:\"model.externalId\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"name\":\"externalId\",\"placeholder\":\"External ID\",\"required\":\"\"},domProps:{\"value\":(_vm.model.externalId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"externalId\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ignoraPontuacaoPadrao),expression:\"model.ignoraPontuacaoPadrao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ignoraPontuacaoPadrao\"},domProps:{\"checked\":Array.isArray(_vm.model.ignoraPontuacaoPadrao)?_vm._i(_vm.model.ignoraPontuacaoPadrao,null)>-1:(_vm.model.ignoraPontuacaoPadrao)},on:{\"change\":function($event){var $$a=_vm.model.ignoraPontuacaoPadrao,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Lança nota de 0 a 10?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.meioCurso),expression:\"model.meioCurso\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"meioCurso\"},domProps:{\"checked\":Array.isArray(_vm.model.meioCurso)?_vm._i(_vm.model.meioCurso,null)>-1:(_vm.model.meioCurso)},on:{\"change\":function($event){var $$a=_vm.model.meioCurso,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"meioCurso\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"meioCurso\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"meioCurso\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Meio de Curso?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.salaAula),expression:\"model.salaAula\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"salaAula\"},domProps:{\"checked\":Array.isArray(_vm.model.salaAula)?_vm._i(_vm.model.salaAula,null)>-1:(_vm.model.salaAula)},on:{\"change\":function($event){var $$a=_vm.model.salaAula,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"salaAula\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"salaAula\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"salaAula\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Sala de Aula?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.excluido),expression:\"model.excluido\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"excluido\"},domProps:{\"checked\":Array.isArray(_vm.model.excluido)?_vm._i(_vm.model.excluido,null)>-1:(_vm.model.excluido)},on:{\"change\":function($event){var $$a=_vm.model.excluido,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"excluido\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"excluido\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"excluido\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Excluído?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=a0d86934&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioavaliacao-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-8\"},[_c('label',{attrs:{\"for\":\"nome\"}},[_vm._v(\"Nome\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.nome),expression:\"model.nome\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"nome\",\"maxlength\":\"100\",\"placeholder\":\"Nome\",\"required\":\"\"},domProps:{\"value\":(_vm.model.nome)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"nome\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"unidade\"}},[_vm._v(\"Unidade\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.unidade),expression:\"model.unidade\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"unidade\",\"maxlength\":\"20\",\"placeholder\":\"Unidade\"},domProps:{\"value\":(_vm.model.unidade)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"unidade\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"nomeTraduzido\"}},[_vm._v(\"Nome Traduzido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.nomeTraduzido),expression:\"model.nomeTraduzido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"maxlength\":\"150\",\"name\":\"nome\",\"placeholder\":\"Nome Traduzido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.nomeTraduzido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"nomeTraduzido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"tipoAvaliacaoId\"}},[_vm._v(\"Tipo de Avaliação\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'TipoAvaliacao', default: 'Selecione' }),expression:\"{ dataitem: 'TipoAvaliacao', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.tipoAvaliacaoId),expression:\"model.tipoAvaliacaoId\"}],staticClass:\"form-control\",attrs:{\"name\":\"tipoAvaliacaoId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"tipoAvaliacaoId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"ordem\"}},[_vm._v(\"Ordem\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ordem),expression:\"model.ordem\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"ordem\",\"placeholder\":\"Ordem\",\"required\":\"\"},domProps:{\"value\":(_vm.model.ordem)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"ordem\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"pontuacao\"}},[_vm._v(\"Pontuação\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.pontuacao),expression:\"model.pontuacao\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"pontuacao\",\"placeholder\":\"Pontuacao\",\"required\":\"\"},domProps:{\"value\":(_vm.model.pontuacao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"pontuacao\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"pontuacao\"}},[_vm._v(\"External ID\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.externalId),expression:\"model.externalId\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"name\":\"externalId\",\"placeholder\":\"External ID\",\"required\":\"\"},domProps:{\"value\":(_vm.model.externalId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"externalId\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.ignoraPontuacaoPadrao),expression:\"model.ignoraPontuacaoPadrao\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"ignoraPontuacaoPadrao\"},domProps:{\"checked\":Array.isArray(_vm.model.ignoraPontuacaoPadrao)?_vm._i(_vm.model.ignoraPontuacaoPadrao,null)>-1:(_vm.model.ignoraPontuacaoPadrao)},on:{\"change\":function($event){var $$a=_vm.model.ignoraPontuacaoPadrao,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"ignoraPontuacaoPadrao\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Lança nota de 0 a 10?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.meioCurso),expression:\"model.meioCurso\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"meioCurso\"},domProps:{\"checked\":Array.isArray(_vm.model.meioCurso)?_vm._i(_vm.model.meioCurso,null)>-1:(_vm.model.meioCurso)},on:{\"change\":function($event){var $$a=_vm.model.meioCurso,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"meioCurso\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"meioCurso\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"meioCurso\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Meio de Curso?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.salaAula),expression:\"model.salaAula\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"salaAula\"},domProps:{\"checked\":Array.isArray(_vm.model.salaAula)?_vm._i(_vm.model.salaAula,null)>-1:(_vm.model.salaAula)},on:{\"change\":function($event){var $$a=_vm.model.salaAula,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"salaAula\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"salaAula\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"salaAula\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Sala de Aula?\")])])]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.excluido),expression:\"model.excluido\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"excluido\"},domProps:{\"checked\":Array.isArray(_vm.model.excluido)?_vm._i(_vm.model.excluido,null)>-1:(_vm.model.excluido)},on:{\"change\":function($event){var $$a=_vm.model.excluido,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"excluido\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"excluido\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"excluido\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Excluído?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=ffb644dc&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ce01a44e&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_vm._m(0),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(1),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.executeFilter(_vm.filter)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"escolaId\"}},[_vm._v(\"Escola\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Escola', default: 'Selecione', filters:{AttributeBehavior:'EscolaMaisSituacao'}}),expression:\"{ dataitem: 'Escola', default: 'Selecione', filters:{AttributeBehavior:'EscolaMaisSituacao'}}\"},{name:\"model\",rawName:\"v-model\",value:(_vm.filter.escolaId),expression:\"filter.escolaId\"}],staticClass:\"form-control\",attrs:{\"name\":\"escolaId\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filter, \"escolaId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',[_vm._v(\"Venda Liberada\")]),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.vendaLiberada),expression:\"filter.vendaLiberada\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"vendaLiberada\",\"value\":\"undefined\"},domProps:{\"checked\":_vm._q(_vm.filter.vendaLiberada,\"undefined\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"vendaLiberada\", \"undefined\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Todos\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.vendaLiberada),expression:\"filter.vendaLiberada\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"vendaLiberada\",\"value\":\"true\"},domProps:{\"checked\":_vm._q(_vm.filter.vendaLiberada,\"true\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"vendaLiberada\", \"true\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Sim\")])]),_c('label',{staticClass:\"custom-control custom-radio custom-control-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.vendaLiberada),expression:\"filter.vendaLiberada\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"radio\",\"name\":\"vendaLiberada\",\"value\":\"false\"},domProps:{\"checked\":_vm._q(_vm.filter.vendaLiberada,\"false\")},on:{\"change\":function($event){return _vm.$set(_vm.filter, \"vendaLiberada\", \"false\")}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\"Não\")])])])])]),_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-red uppercase\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeFilter(_vm.filter)}}},[_vm._v(\"Buscar\")])])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selecionarTodos),expression:\"selecionarTodos\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.selecionarTodos)?_vm._i(_vm.selecionarTodos,null)>-1:(_vm.selecionarTodos)},on:{\"click\":function($event){return _vm.selecionaTodos()},\"change\":function($event){var $$a=_vm.selecionarTodos,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.selecionarTodos=$$a.concat([$$v]))}else{$$i>-1&&(_vm.selecionarTodos=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.selecionarTodos=$$c}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"})])]),_c('th',[_vm._v(\"Escola\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('escola.nomeEscola')}}})]),_c('th',[_vm._v(\"Estágio Utilizado\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('ValorEstagio')}}})]),_c('th',[_vm._v(\"Estágio Sugerido\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('ValorEstagioSugerido')}}})]),_c('th',[_vm._v(\"M.D Utilizado\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('ValorMaterialDidatico')}}})]),_c('th',[_vm._v(\"M.D Sugerido\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('ValorMaterialDidaticoSugerido')}}})]),_c('th',[_vm._v(\"VendaLiberada\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('VendaLiberada')}}})]),_vm._m(2)])]),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selecionados),expression:\"selecionados\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":item.escolaEstagioId,\"checked\":Array.isArray(_vm.selecionados)?_vm._i(_vm.selecionados,item.escolaEstagioId)>-1:(_vm.selecionados)},on:{\"change\":function($event){var $$a=_vm.selecionados,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=item.escolaEstagioId,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.selecionados=$$a.concat([$$v]))}else{$$i>-1&&(_vm.selecionados=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.selecionados=$$c}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"})])]),_c('td',[_vm._v(_vm._s(item.escola.nomeEscola))]),_c('td',[_vm._v(_vm._s(item.valorEstagio))]),_c('td',[_vm._v(_vm._s(item.valorEstagioSugerido))]),_c('td',[_vm._v(_vm._s(item.valorMaterialDidatico))]),_c('td',[_vm._v(_vm._s(item.valorMaterialDidaticoSugerido))]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.vendaLiberada, 'badge-danger': !item.vendaLiberada }},[_vm._v(_vm._s(item.vendaLiberada ? 'Sim' : 'Não'))])]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openEdit({ escolaEstagioId: item.escolaEstagioId })}}},[_c('i',{staticClass:\"fa fa-pencil\"})]),_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ escolaEstagioId: item.escolaEstagioId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1),_c('div',[_c('b-dropdown',{staticClass:\"m-2\",attrs:{\"id\":\"dropdown\",\"text\":\"Alterar liberação de venda\",\"variant\":\"primary\"}},[_c('b-dropdown-item',{staticClass:\"btn-outline-success\",on:{\"click\":function($event){return _vm.AlteraLiberacaoVenda(true)}}},[_vm._v(\"Ativar todos selecionados\")]),_c('b-dropdown-item',{staticClass:\"btn-outline-danger\",on:{\"click\":function($event){return _vm.AlteraLiberacaoVenda(false)}}},[_vm._v(\"Inativar todos selecionados\")])],1)],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"size\":\"lg\",\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.escolaEstagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content-960\"},[_c('div',{staticClass:\"row\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Configuração de valores por escola (R$)\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"escolaestagio-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"escolaId\"}},[_vm._v(\"EscolaBox\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'EscolaBox', default: 'Selecione' }),expression:\"{ dataitem: 'EscolaBox', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.escolaId),expression:\"model.escolaId\"}],staticClass:\"form-control\",attrs:{\"name\":\"escolaId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"escolaId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Estagio\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Estagio', default: 'Selecione' }),expression:\"{ dataitem: 'Estagio', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estagioId),expression:\"model.estagioId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estagioId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estagioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidaticoSugerido\"}},[_vm._v(\"ValorMaterialDidaticoSugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidaticoSugerido),expression:\"model.valorMaterialDidaticoSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidaticoSugerido\",\"placeholder\":\"ValorMaterialDidaticoSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidaticoSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidaticoSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorEstagioSugerido\"}},[_vm._v(\"ValorEstagioSugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagioSugerido),expression:\"model.valorEstagioSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagioSugerido\",\"placeholder\":\"ValorEstagioSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagioSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagioSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorHoraSugerido\"}},[_vm._v(\"ValorHoraSugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorHoraSugerido),expression:\"model.valorHoraSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorHoraSugerido\",\"placeholder\":\"ValorHoraSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorHoraSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorHoraSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidatico\"}},[_vm._v(\"ValorMaterialDidatico\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidatico),expression:\"model.valorMaterialDidatico\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidatico\",\"placeholder\":\"ValorMaterialDidatico\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidatico)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidatico\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorEstagio\"}},[_vm._v(\"ValorEstagio\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagio),expression:\"model.valorEstagio\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagio\",\"placeholder\":\"ValorEstagio\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagio\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorHora\"}},[_vm._v(\"ValorHora\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorHora),expression:\"model.valorHora\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorHora\",\"placeholder\":\"ValorHora\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorHora)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorHora\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.vendaLiberada),expression:\"model.vendaLiberada\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"vendaLiberada\"},domProps:{\"checked\":Array.isArray(_vm.model.vendaLiberada)?_vm._i(_vm.model.vendaLiberada,null)>-1:(_vm.model.vendaLiberada)},on:{\"change\":function($event){var $$a=_vm.model.vendaLiberada,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"vendaLiberada\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"vendaLiberada\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"vendaLiberada\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" VendaLiberada?\")])])]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorEstagioRematricula\"}},[_vm._v(\"ValorEstagioRematricula\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagioRematricula),expression:\"model.valorEstagioRematricula\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagioRematricula\",\"placeholder\":\"ValorEstagioRematricula\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagioRematricula)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagioRematricula\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidaticoRematricula\"}},[_vm._v(\"ValorMaterialDidaticoRematricula\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidaticoRematricula),expression:\"model.valorMaterialDidaticoRematricula\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidaticoRematricula\",\"placeholder\":\"ValorMaterialDidaticoRematricula\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidaticoRematricula)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidaticoRematricula\", $event.target.value)}}})])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=780e6d0d&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"escolaestagio-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidaticoSugerido\"}},[_vm._v(\"Valor Material Didático Sugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidaticoSugerido),expression:\"model.valorMaterialDidaticoSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidaticoSugerido\",\"placeholder\":\"ValorMaterialDidaticoSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidaticoSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidaticoSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorEstagioSugerido\"}},[_vm._v(\"Valor Estágio Sugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagioSugerido),expression:\"model.valorEstagioSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagioSugerido\",\"placeholder\":\"ValorEstagioSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagioSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagioSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorHoraSugerido\"}},[_vm._v(\"Valor Hora Sugerido\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorHoraSugerido),expression:\"model.valorHoraSugerido\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorHoraSugerido\",\"placeholder\":\"ValorHoraSugerido\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorHoraSugerido)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorHoraSugerido\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidatico\"}},[_vm._v(\"Valor Material Didático\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidatico),expression:\"model.valorMaterialDidatico\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidatico\",\"placeholder\":\"ValorMaterialDidatico\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidatico)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidatico\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorEstagio\"}},[_vm._v(\"Valor Estágio\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagio),expression:\"model.valorEstagio\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagio\",\"placeholder\":\"ValorEstagio\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagio\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"valorHora\"}},[_vm._v(\"Valor Hora\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorHora),expression:\"model.valorHora\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorHora\",\"placeholder\":\"ValorHora\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorHora)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorHora\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"valorEstagioRematricula\"}},[_vm._v(\"Valor Estágio Rematricula\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorEstagioRematricula),expression:\"model.valorEstagioRematricula\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorEstagioRematricula\",\"placeholder\":\"ValorEstagioRematricula\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorEstagioRematricula)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorEstagioRematricula\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('label',{attrs:{\"for\":\"valorMaterialDidaticoRematricula\"}},[_vm._v(\"Valor M.D Rematrícula\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.valorMaterialDidaticoRematricula),expression:\"model.valorMaterialDidaticoRematricula\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"valorMaterialDidaticoRematricula\",\"placeholder\":\"ValorMaterialDidaticoRematricula\",\"required\":\"\"},domProps:{\"value\":(_vm.model.valorMaterialDidaticoRematricula)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"valorMaterialDidaticoRematricula\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-4\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.vendaLiberada),expression:\"model.vendaLiberada\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"vendaLiberada\"},domProps:{\"checked\":Array.isArray(_vm.model.vendaLiberada)?_vm._i(_vm.model.vendaLiberada,null)>-1:(_vm.model.vendaLiberada)},on:{\"change\":function($event){var $$a=_vm.model.vendaLiberada,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"vendaLiberada\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"vendaLiberada\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"vendaLiberada\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Venda Liberada?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=f3d7d6a6&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=456f66aa&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_c('div',{staticClass:\"content-960\"}),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(0),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',[_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")]),_c('br'),_c('br')])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_vm._m(1),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.modalidade.nome))]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estagioId: item.estagioId, modalidadeId: item.modalidadeId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Modalidades do estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Modalidade\")]),_c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagiomodalidade-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Modalidade\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Modalidade', default: 'Selecione' }),expression:\"{ dataitem: 'Modalidade', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.modalidadeId),expression:\"model.modalidadeId\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalidadeId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"modalidadeId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=07c9b3be&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagiomodalidade-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Estagio\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Estagio', default: 'Selecione' }),expression:\"{ dataitem: 'Estagio', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estagioId),expression:\"model.estagioId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estagioId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estagioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=7b3fee74&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=32e61f74&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_c('div',{staticClass:\"content-960\"}),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(0),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',[_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")]),_c('br'),_c('br')])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_vm._m(1),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.numeroMinimo))]),_c('td',[_vm._v(_vm._s(item.numeroMaximo))]),_c('td',[_vm._v(_vm._s(item.duracao))]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openEdit({ estagioDuracaoMinimaId: item.estagioDuracaoMinimaId })}}},[_c('i',{staticClass:\"fa fa-pencil\"})]),_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estagioDuracaoMinimaId: item.estagioDuracaoMinimaId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estagioDuracaoMinimaId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Durações do estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Quantidade Mínima de Alunos\")]),_c('th',[_vm._v(\"Quantidade Máxima de Alunos\")]),_c('th',[_vm._v(\"Duração (min)\")]),_c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioduracaominima-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"numeroMinimo\"}},[_vm._v(\"Quantidade Mínima de Alunos\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.numeroMinimo),expression:\"model.numeroMinimo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"numeroMinimo\",\"placeholder\":\"Quantidade Mínima de Alunos\",\"required\":\"\"},domProps:{\"value\":(_vm.model.numeroMinimo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"numeroMinimo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"numeroMaximo\"}},[_vm._v(\"Quantidade Máxima de Alunos\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.numeroMaximo),expression:\"model.numeroMaximo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"numeroMaximo\",\"placeholder\":\"Quantidade Máxima de Alunos\",\"required\":\"\"},domProps:{\"value\":(_vm.model.numeroMaximo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"numeroMaximo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"duracao\"}},[_vm._v(\"Duração\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.duracao),expression:\"model.duracao\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"duracao\",\"placeholder\":\"Duração\",\"required\":\"\"},domProps:{\"value\":(_vm.model.duracao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"duracao\", $event.target.value)}}})])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=53e28170&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagioduracaominima-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"numeroMinimo\"}},[_vm._v(\"Quantidade Mínima de Alunos\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.numeroMinimo),expression:\"model.numeroMinimo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"numeroMinimo\",\"placeholder\":\"Quantidade Mínima de Alunos\",\"required\":\"\"},domProps:{\"value\":(_vm.model.numeroMinimo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"numeroMinimo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"numeroMaximo\"}},[_vm._v(\"Quantidade Máxima de Alunos\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.numeroMaximo),expression:\"model.numeroMaximo\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"numeroMaximo\",\"placeholder\":\"Quantidade Máxima de Alunos\",\"required\":\"\"},domProps:{\"value\":(_vm.model.numeroMaximo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"numeroMaximo\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"duracao\"}},[_vm._v(\"Duração\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.duracao),expression:\"model.duracao\"}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"name\":\"duracao\",\"placeholder\":\"Duração\",\"required\":\"\"},domProps:{\"value\":(_vm.model.duracao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"duracao\", $event.target.value)}}})])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=2d5d7f54&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5cf85ab8&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_c('div',{staticClass:\"content-960\"}),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(0),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',[_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")]),_c('br'),_c('br')])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Próximo Estágio\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('proximoEstagio.nome')}}})]),_c('th',[_vm._v(\"Gera Turma\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('GeraNovaTurma')}}})]),_c('th',[_vm._v(\"Ativo\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('proximoEstagio.ativo')}}})]),_vm._m(1)])]),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.proximoEstagio.nome))]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.geraNovaTurma, 'badge-danger': !item.geraNovaTurma }},[_vm._v(_vm._s(item.geraNovaTurma ? 'Sim' : 'Não'))])]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.proximoEstagio.ativo, 'badge-danger': !item.proximoEstagio.ativo }},[_vm._v(_vm._s(item.proximoEstagio.ativo ? 'Sim' : 'Não'))])]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estagioId: item.estagioId, proximoEstagioId: item.proximoEstagioId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})])])])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Sequências do estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagiosequencia-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Próximo estágio\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Estagio', default: 'Selecione', filters: { attributeBehavior: 'ProximoEstagio' } }),expression:\"{ dataitem: 'Estagio', default: 'Selecione', filters: { attributeBehavior: 'ProximoEstagio' } }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.proximoEstagioId),expression:\"model.proximoEstagioId\"}],staticClass:\"form-control\",attrs:{\"name\":\"proximoEstagioId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"proximoEstagioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.geraNovaTurma),expression:\"model.geraNovaTurma\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"geraNovaTurma\"},domProps:{\"checked\":Array.isArray(_vm.model.geraNovaTurma)?_vm._i(_vm.model.geraNovaTurma,null)>-1:(_vm.model.geraNovaTurma)},on:{\"change\":function($event){var $$a=_vm.model.geraNovaTurma,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"geraNovaTurma\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"geraNovaTurma\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"geraNovaTurma\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Gera Turma?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=3b301e64&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estagiosequencia-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Estagio\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Estagio', default: 'Selecione' }),expression:\"{ dataitem: 'Estagio', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estagioId),expression:\"model.estagioId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estagioId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estagioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.geraNovaTurma),expression:\"model.geraNovaTurma\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"geraNovaTurma\"},domProps:{\"checked\":Array.isArray(_vm.model.geraNovaTurma)?_vm._i(_vm.model.geraNovaTurma,null)>-1:(_vm.model.geraNovaTurma)},on:{\"change\":function($event){var $$a=_vm.model.geraNovaTurma,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"geraNovaTurma\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"geraNovaTurma\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"geraNovaTurma\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" GeraNovaTurma?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=1a16145a&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=05453c8a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('section',[_c('div',{staticClass:\"content-960\"}),_c('div',{staticClass:\"content-960 mobile-row\"},[_c('div',{staticClass:\"wrapper-960 clearfix\"},[_vm._m(0),_c('div',{staticClass:\"mold-txt-center\"},[_c('form',[_c('section',{staticClass:\"col-sm-12\"},[_c('button',{staticClass:\"btn-large-40 btn-success uppercase pull-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openCreate()}}},[_vm._v(\"\\n Criar\\n \")]),_c('br'),_c('br')])])]),_c('div',{staticClass:\"table-responsive standard-table header-cinza\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Ref. CNA Store\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Obrigatorio')}}})]),_c('th',[_vm._v(\"Nome\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Obrigatorio')}}})]),_c('th',[_vm._v(\"Obrigatorio\"),_c('i',{staticClass:\"fa fa-sort\",on:{\"click\":function($event){return _vm.executeOrderBy('Obrigatorio')}}})]),_vm._m(1)])]),_c('tbody',_vm._l((_vm.result.items),function(item){return _c('tr',{key:item.tagJobsId,staticClass:\"animated fadeIn\"},[_c('td',[_vm._v(_vm._s(item.estoqueItem.referenciaCNAStore))]),_c('td',[_vm._v(_vm._s(item.estoqueItem.nome))]),_c('td',[_c('span',{staticClass:\"badge badge-pill\",class:{ 'badge-success': item.obrigatorio, 'badge-danger': !item.obrigatorio }},[_vm._v(_vm._s(item.obrigatorio ? 'Sim' : 'Não'))])]),_c('td',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.openRemove({ estoqueItemId: item.estoqueItemId, estagioId: item.estagioId })}}},[_c('i',{staticClass:\"fa fa-trash-o\"})]),(item.obrigatorio === true)?[_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],staticClass:\"btn btn-sm btn-success\",attrs:{\"id\":\"btnAtualizaMD\",\"type\":\"button\",\"title\":\"Atualizar\"},on:{\"click\":function($event){return _vm.openRefresh({nomeEstagio:item.estagio.nome,estoqueItemId: item.estoqueItemId, estagioId: item.estagioId })}}},[_c('i',{staticClass:\"fa fa-refresh\"})])]:_vm._e()],2)])}),0)])]),_c('div',{staticClass:\"card-block no-padding\"},[_c('pagination',{attrs:{\"total\":_vm.result.total,\"page-size\":_vm.filter.pageSize,\"callback\":_vm.executePageChanged}})],1)])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Criar\"},model:{value:(_vm.dialogCreate),callback:function ($$v) {_vm.dialogCreate=$$v},expression:\"dialogCreate\"}},[(_vm.dialogCreate)?_c('form-create',{attrs:{\"estagio-id\":_vm.estagioId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"hide-footer\":true,\"title\":\"Editar\"},model:{value:(_vm.dialogEdit),callback:function ($$v) {_vm.dialogEdit=$$v},expression:\"dialogEdit\"}},[(_vm.dialogEdit)?_c('form-edit',{attrs:{\"id\":_vm.estoqueItemId},on:{\"on-saved\":function($event){return _vm.onSaved()},\"on-back\":function($event){return _vm.hideAll()}}}):_vm._e()],1),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"no-close-on-esc\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRemove),callback:function ($$v) {_vm.dialogRemove=$$v},expression:\"dialogRemove\"}},[_c('p',[_vm._v(\"Tem certeza que deseja remover este item?\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return _vm.executeRemove()}}},[_vm._v(\"\\n Remover\\n \")])])]),_c('b-modal',{attrs:{\"no-close-on-backdrop\":true,\"centered\":\"\",\"title\":\"Confirmação\"},model:{value:(_vm.dialogRefresh),callback:function ($$v) {_vm.dialogRefresh=$$v},expression:\"dialogRefresh\"}},[_c('p',[_vm._v(\"Ao clicar em \\\"CONFIRMAR\\\", todos os contratos VIGENTES que possuírem o estágio \"+_vm._s(_vm.nomeEstagio)+\" com a situação \\\"PRÓXIMO\\\"\\n e que cuja situação da entrega do material didático seja \\\"PENDENTE\\\", sofrerão atualização do material didático contratado.\")]),_c('p',[_vm._v(\"Tem certeza de que quer realizar esta ação?\")]),_c('p',[_c('strong',[_vm._v(\"IMPORTANTE!\")]),_vm._v(\" A atualização só acontecerá no instante que clicar no botão de CONFIRMAR.\")]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-sm\",on:{\"click\":function($event){return _vm.hideAll()}}},[_vm._v(\"\\n Cancelar\\n \")]),_c('button',{staticClass:\"btn btn-sm btn-success\",on:{\"click\":function($event){_vm.executeAtualizacaoMDLog({userId: _vm.user.sub, estagioId:_vm.estagioId, estoqueItemId:_vm.estoqueItemId, dataAtualizacao:new Date(), ativo: true})}}},[_vm._v(\"\\n Confirmar\\n \")])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"titles icons icon-news-middle\"},[_c('h2',{staticClass:\"uppercase\"},[_c('b',[_vm._v(\"Material Didático do estágio\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('th',{staticClass:\"text-center\",attrs:{\"width\":\"150\"}},[_c('i',{staticClass:\"fa fa-cog\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estoqueitemestagio-form-create\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeCreate(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estoqueItemId\"}},[_vm._v(\"Estoque\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'EstoqueItem', default: 'Selecione', filters: { attributeBehavior: 'somenteMaterialDidatico' } }),expression:\"{ dataitem: 'EstoqueItem', default: 'Selecione', filters: { attributeBehavior: 'somenteMaterialDidatico' } }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estoqueItemId),expression:\"model.estoqueItemId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estoqueItemId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estoqueItemId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.obrigatorio),expression:\"model.obrigatorio\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"obrigatorio\"},domProps:{\"checked\":Array.isArray(_vm.model.obrigatorio)?_vm._i(_vm.model.obrigatorio,null)>-1:(_vm.model.obrigatorio)},on:{\"change\":function($event){var $$a=_vm.model.obrigatorio,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"obrigatorio\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"obrigatorio\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"obrigatorio\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Obrigatório?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeCreate(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-create.vue?vue&type=template&id=347ef450&\"\nimport script from \"./form-create.vue?vue&type=script&lang=js&\"\nexport * from \"./form-create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{ref:\"estoqueitemestagio-form-edit\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.executeEdit(_vm.model)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estoqueItemId\"}},[_vm._v(\"EstoqueItem\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'EstoqueItem', default: 'Selecione' }),expression:\"{ dataitem: 'EstoqueItem', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estoqueItemId),expression:\"model.estoqueItemId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estoqueItemId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estoqueItemId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('label',{attrs:{\"for\":\"estagioId\"}},[_vm._v(\"Estagio\")]),_c('select',{directives:[{name:\"select\",rawName:\"v-select\",value:({ dataitem: 'Estagio', default: 'Selecione' }),expression:\"{ dataitem: 'Estagio', default: 'Selecione' }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.model.estagioId),expression:\"model.estagioId\"}],staticClass:\"form-control\",attrs:{\"name\":\"estagioId\",\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.model, \"estagioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}})]),_c('div',{staticClass:\"form-group col-md-12\"},[_c('div',{staticClass:\"clearfix\"},[_vm._v(\" \")]),_c('label',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.obrigatorio),expression:\"model.obrigatorio\"}],staticClass:\"custom-control-input\",attrs:{\"type\":\"checkbox\",\"name\":\"obrigatorio\"},domProps:{\"checked\":Array.isArray(_vm.model.obrigatorio)?_vm._i(_vm.model.obrigatorio,null)>-1:(_vm.model.obrigatorio)},on:{\"change\":function($event){var $$a=_vm.model.obrigatorio,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"obrigatorio\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"obrigatorio\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"obrigatorio\", $$c)}}}}),_c('span',{staticClass:\"custom-control-indicator\"}),_c('span',{staticClass:\"custom-control-description\"},[_vm._v(\" Obrigatorio?\")])])])]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onBack()}}},[_c('span',[_vm._v(\"Voltar\")])]),_c('button',{staticClass:\"btn btn-success float-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.executeEdit(_vm.model)}}},[_c('span',[_vm._v(\"Salvar\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./form-edit.vue?vue&type=template&id=c4ff421c&\"\nimport script from \"./form-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./form-edit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1d32d6fe&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./configuracao.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./configuracao.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./configuracao.vue?vue&type=template&id=862dd6d6&\"\nimport script from \"./configuracao.vue?vue&type=script&lang=js&\"\nexport * from \"./configuracao.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nconst routers = [\r\n { path: 'categoriaatendimento', name: 'Categoria de Atendimento', component: function (resolve) { require(['@/views/categoriaatendimento'], resolve) } },\r\n { path: 'categoriaatendimento/create', name: 'Novo Categoria de Atendimento', component: function (resolve) { require(['@/views/categoriaatendimento/create'], resolve) } },\r\n { path: 'categoriaatendimento/edit/:id', name: 'Editar Categoria de Atendimento', component: function (resolve) { require(['@/views/categoriaatendimento/edit'], resolve) } },\r\n { path: 'tipoalvoatendimento', name: 'Tipo Alvo do Atendimento', component: function (resolve) { require(['@/views/tipoalvoatendimento'], resolve) } },\r\n { path: 'tipoalvoatendimento/create', name: 'Novo Tipo Alvo do Atendimento', component: function (resolve) { require(['@/views/tipoalvoatendimento/create'], resolve) } },\r\n { path: 'tipoalvoatendimento/edit/:id', name: 'Editar Tipo Alvo do Atendimento', component: function (resolve) { require(['@/views/tipoalvoatendimento/edit'], resolve) } },\r\n { path: 'idioma', name: 'Idioma', component: function (resolve) { require(['@/views/idioma'], resolve) } },\r\n { path: 'idioma/create', name: 'Novo Idioma', component: function (resolve) { require(['@/views/idioma/create'], resolve) } },\r\n { path: 'idioma/edit/:id', name: 'Editar Idioma', component: function (resolve) { require(['@/views/idioma/edit'], resolve) } },\r\n { path: 'curso', name: 'Curso', component: function (resolve) { require(['@/views/curso'], resolve) } },\r\n { path: 'curso/create', name: 'Novo Curso', component: function (resolve) { require(['@/views/curso/create'], resolve) } },\r\n { path: 'curso/edit/:id', name: 'Editar Curso', component: function (resolve) { require(['@/views/curso/edit'], resolve) } },\r\n { path: 'nivel', name: 'Nível', component: function (resolve) { require(['@/views/nivel'], resolve) } },\r\n { path: 'nivel/create', name: 'Novo Nível', component: function (resolve) { require(['@/views/nivel/create'], resolve) } },\r\n { path: 'nivel/edit/:id', name: 'Editar Nível', component: function (resolve) { require(['@/views/nivel/edit'], resolve) } },\r\n { path: 'estagio', name: 'Estagio', component: function (resolve) { require(['@/views/estagio'], resolve) } },\r\n { path: 'estagio/create', name: 'Novo Estagio', component: function (resolve) { require(['@/views/estagio/create'], resolve) } },\r\n { path: 'estagio/edit/:id', name: 'Editar Estagio', component: function (resolve) { require(['@/views/estagio/edit'], resolve) } },\r\n { path: 'tipoavaliacao', name: 'Tipo de Avaliação', component: function (resolve) { require(['@/views/tipoavaliacao'], resolve) } },\r\n { path: 'tipoavaliacao/create', name: 'Novo Tipo de Avaliação', component: function (resolve) { require(['@/views/tipoavaliacao/create'], resolve) } },\r\n { path: 'tipoavaliacao/edit/:id', name: 'Editar Tipo de Avaliação', component: function (resolve) { require(['@/views/tipoavaliacao/edit'], resolve) } },\r\n { path: 'midia', name: 'Mídia', component: function (resolve) { require(['@/views/midia'], resolve) } },\r\n { path: 'midia/create', name: 'Novo Mídia', component: function (resolve) { require(['@/views/midia/create'], resolve) } },\r\n { path: 'midia/edit/:id', name: 'Editar Mídia', component: function (resolve) { require(['@/views/midia/edit'], resolve) } },\r\n { path: 'campanha', name: 'Campanha', component: function (resolve) { require(['@/views/campanha'], resolve) } },\r\n { path: 'campanha/create', name: 'Novo Campanha', component: function (resolve) { require(['@/views/campanha/create'], resolve) } },\r\n { path: 'campanha/edit/:id', name: 'Editar Campanha', component: function (resolve) { require(['@/views/campanha/edit'], resolve) } },\r\n { path: 'banco', name: 'Banco', component: function (resolve) { require(['@/views/banco'], resolve) } },\r\n { path: 'banco/create', name: 'Novo Banco', component: function (resolve) { require(['@/views/banco/create'], resolve) } },\r\n { path: 'banco/edit/:id', name: 'Editar Banco', component: function (resolve) { require(['@/views/banco/edit'], resolve) } },\r\n { path: 'bandeiracartao', name: 'Bandeira Cartão', component: function (resolve) { require(['@/views/bandeiracartao'], resolve) } },\r\n { path: 'bandeiracartao/create', name: 'Novo Bandeira Cartão', component: function (resolve) { require(['@/views/bandeiracartao/create'], resolve) } },\r\n { path: 'bandeiracartao/edit/:id', name: 'Editar Bandeira Cartão', component: function (resolve) { require(['@/views/bandeiracartao/edit'], resolve) } },\r\n { path: 'categoriaempresaparceira', name: 'Categoria de Empresa Parceira', component: function (resolve) { require(['@/views/categoriaempresaparceira'], resolve) } },\r\n { path: 'categoriaempresaparceira/create', name: 'Novo Categoria de Empresa Parceira', component: function (resolve) { require(['@/views/categoriaempresaparceira/create'], resolve) } },\r\n { path: 'categoriaempresaparceira/edit/:id', name: 'Editar Categoria de Empresa Parceira', component: function (resolve) { require(['@/views/categoriaempresaparceira/edit'], resolve) } },\r\n { path: 'escolabox', name: 'Escolas', component: function (resolve) { require(['@/views/escolabox'], resolve) } },\r\n { path: 'escolabox/create', name: 'Novo Escolas', component: function (resolve) { require(['@/views/escolabox/create'], resolve) } },\r\n { path: 'escolabox/edit/:id', name: 'Editar Escolas', component: function (resolve) { require(['@/views/escolabox/edit'], resolve) } },\r\n { path: 'extratoescolabox', name: 'Extrato de Uso das Escolas', component: function (resolve) { require(['@/views/extratoescolabox'], resolve) } },\r\n { path: 'extratoescolabox/create', name: 'Novo Extrato de Uso das Escolas', component: function (resolve) { require(['@/views/extratoescolabox/create'], resolve) } },\r\n { path: 'extratoescolabox/edit/:id', name: 'Editar Extrato de Uso das Escolas', component: function (resolve) { require(['@/views/extratoescolabox/edit'], resolve) } },\r\n { path: 'planoservico', name: 'Pacotes CNA Box', component: function (resolve) { require(['@/views/planoservico'], resolve) } },\r\n { path: 'planoservico/create', name: 'Novo Pacotes CNA Box', component: function (resolve) { require(['@/views/planoservico/create'], resolve) } },\r\n { path: 'planoservico/edit/:id', name: 'Editar Pacotes CNA Box', component: function (resolve) { require(['@/views/planoservico/edit'], resolve) } },\r\n { path: 'estoqueitem', name: 'Estoque', component: function (resolve) { require(['@/views/estoqueitem'], resolve) } },\r\n { path: 'estoqueitem/create', name: 'Novo Estoque', component: function (resolve) { require(['@/views/estoqueitem/create'], resolve) } },\r\n { path: 'estoqueitem/edit/:id', name: 'Editar Estoque', component: function (resolve) { require(['@/views/estoqueitem/edit'], resolve) } },\r\n { path: 'empresaparceira', name: 'Empresa Parceira', component: function (resolve) { require(['@/views/empresaparceira'], resolve) } },\r\n { path: 'empresaparceira/create', name: 'Novo Empresa Parceira', component: function (resolve) { require(['@/views/empresaparceira/create'], resolve) } },\r\n { path: 'empresaparceira/edit/:id', name: 'Editar Empresa Parceira', component: function (resolve) { require(['@/views/empresaparceira/edit'], resolve) } },\r\n { path: 'contacorrentecarteira', name: 'Contas Correntes', component: function (resolve) { require(['@/views/contacorrentecarteira'], resolve) } },\r\n { path: 'contacorrentecarteira/create', name: 'Novo Contas Correntes', component: function (resolve) { require(['@/views/contacorrentecarteira/create'], resolve) } },\r\n { path: 'contacorrentecarteira/edit/:id', name: 'Editar Contas Correntes', component: function (resolve) { require(['@/views/contacorrentecarteira/edit'], resolve) } },\r\n { path: 'colaboradorlogacesso', name: 'Log de acesso dos colaboradores', component: function (resolve) { require(['@/views/colaboradorlogacesso'], resolve) } },\r\n { path: 'colaboradorlogacesso/create', name: 'Novo Log de acesso dos colaboradores', component: function (resolve) { require(['@/views/colaboradorlogacesso/create'], resolve) } },\r\n { path: 'colaboradorlogacesso/edit/:id', name: 'Editar Log de acesso dos colaboradores', component: function (resolve) { require(['@/views/colaboradorlogacesso/edit'], resolve) } },\r\n { path: 'tutorialvideo', name: 'Vídeo Tutorial', component: function (resolve) { require(['@/views/tutorialvideo'], resolve) } },\r\n { path: 'tutorialvideo/create', name: 'Novo Vídeo Tutorial', component: function (resolve) { require(['@/views/tutorialvideo/create'], resolve) } },\r\n { path: 'tutorialvideo/edit/:id', name: 'Editar Vídeo Tutorial', component: function (resolve) { require(['@/views/tutorialvideo/edit'], resolve) } },\r\n { path: 'tutorialvideofuncionalidade', name: 'Vídeo Funcionalidade', component: function (resolve) { require(['@/views/tutorialvideofuncionalidade'], resolve) } },\r\n { path: 'tutorialvideofuncionalidade/create', name: 'Novo Vídeo Funcionalidade', component: function (resolve) { require(['@/views/tutorialvideofuncionalidade/create'], resolve) } },\r\n { path: 'tutorialvideofuncionalidade/edit/:id', name: 'Editar Vídeo Funcionalidade', component: function (resolve) { require(['@/views/tutorialvideofuncionalidade/edit'], resolve) } },\r\n { path: 'instituicaoensino', name: 'Instituição de Ensino', component: function (resolve) { require(['@/views/instituicaoensino'], resolve) } },\r\n { path: 'instituicaoensino/create', name: 'Novo Instituição de Ensino', component: function (resolve) { require(['@/views/instituicaoensino/create'], resolve) } },\r\n { path: 'instituicaoensino/edit/:id', name: 'Editar Instituição de Ensino', component: function (resolve) { require(['@/views/instituicaoensino/edit'], resolve) } },\r\n { path: 'instituicaoensinopoliticacomercial', name: 'Instituição Ensino Política Comercial', component: function (resolve) { require(['@/views/instituicaoensinopoliticacomercial'], resolve) } },\r\n { path: 'instituicaoensinopoliticacomercial/create', name: 'Novo Instituição Ensino Política Comercial', component: function (resolve) { require(['@/views/instituicaoensinopoliticacomercial/create'], resolve) } },\r\n { path: 'instituicaoensinopoliticacomercial/edit/:id', name: 'Editar Instituição Ensino Política Comercial', component: function (resolve) { require(['@/views/instituicaoensinopoliticacomercial/edit'], resolve) } },\r\n { path: 'produtopoliticacomercialpreco', name: 'Política Comercial de Produto e Preço', component: function (resolve) { require(['@/views/produtopoliticacomercialpreco'], resolve) } },\r\n { path: 'produtopoliticacomercialpreco/create', name: 'Novo Política Comercial de Produto e Preço', component: function (resolve) { require(['@/views/produtopoliticacomercialpreco/create'], resolve) } },\r\n { path: 'produtopoliticacomercialpreco/edit/:id', name: 'Editar Política Comercial de Produto e Preço', component: function (resolve) { require(['@/views/produtopoliticacomercialpreco/edit'], resolve) } },\r\n { path: 'instituicaoensinousuario', name: 'Gestão de Usuários', component: function (resolve) { require(['@/views/instituicaoensinousuario'], resolve) } },\r\n { path: 'instituicaoensinousuario/create', name: 'Novo Gestão de Usuários', component: function (resolve) { require(['@/views/instituicaoensinousuario/create'], resolve) } },\r\n { path: 'instituicaoensinousuario/edit/:id', name: 'Editar Gestão de Usuários', component: function (resolve) { require(['@/views/instituicaoensinousuario/edit'], resolve) } },\r\n { path: 'ajudaperguntameucna', name: 'Meu CNA - Gestão de Perguntas e Respostas', component: function (resolve) { require(['@/views/ajudaperguntameucna'], resolve) } },\r\n { path: 'ajudaperguntameucna/create', name: 'Novo Meu CNA - Gestão de Perguntas e Respostas', component: function (resolve) { require(['@/views/ajudaperguntameucna/create'], resolve) } },\r\n { path: 'ajudaperguntameucna/edit/:id', name: 'Editar Meu CNA - Gestão de Perguntas e Respostas', component: function (resolve) { require(['@/views/ajudaperguntameucna/edit'], resolve) } },\r\n { path: 'ajudachamadomeucna', name: 'Meu CNA - Gestão de Chamados', component: function (resolve) { require(['@/views/ajudachamadomeucna'], resolve) } },\r\n { path: 'ajudachamadomeucna/create', name: 'Novo Meu CNA - Gestão de Chamados', component: function (resolve) { require(['@/views/ajudachamadomeucna/create'], resolve) } },\r\n { path: 'ajudachamadomeucna/edit/:id', name: 'Editar Meu CNA - Gestão de Chamados', component: function (resolve) { require(['@/views/ajudachamadomeucna/edit'], resolve) } },\r\n { path: 'statusajudachamadomeucna', name: 'Meu CNA - Cadastro de Situações de Chamados', component: function (resolve) { require(['@/views/statusajudachamadomeucna'], resolve) } },\r\n { path: 'statusajudachamadomeucna/create', name: 'Novo Meu CNA - Cadastro de Situações de Chamados', component: function (resolve) { require(['@/views/statusajudachamadomeucna/create'], resolve) } },\r\n { path: 'statusajudachamadomeucna/edit/:id', name: 'Editar Meu CNA - Cadastro de Situações de Chamados', component: function (resolve) { require(['@/views/statusajudachamadomeucna/edit'], resolve) } },\r\n { path: 'aliquotasimplesnacional', name: 'Alíquota Simples Nacional', component: function (resolve) { require(['@/views/aliquotasimplesnacional'], resolve) } },\r\n { path: 'aliquotasimplesnacional/create', name: 'Novo Alíquota Simples Nacional', component: function (resolve) { require(['@/views/aliquotasimplesnacional/create'], resolve) } },\r\n { path: 'aliquotasimplesnacional/edit/:id', name: 'Editar Alíquota Simples Nacional', component: function (resolve) { require(['@/views/aliquotasimplesnacional/edit'], resolve) } },\r\n { path: 'certificacoespoliticapreco', name: 'Política de Preço', component: function (resolve) { require(['@/views/certificacoespoliticapreco'], resolve) } },\r\n { path: 'certificacoespoliticapreco/create', name: 'Novo Política de Preço', component: function (resolve) { require(['@/views/certificacoespoliticapreco/create'], resolve) } },\r\n { path: 'certificacoespoliticapreco/edit/:id', name: 'Editar Política de Preço', component: function (resolve) { require(['@/views/certificacoespoliticapreco/edit'], resolve) } },\r\n { path: 'certificacoesregrasisencao', name: 'Regras de Isenção', component: function (resolve) { require(['@/views/certificacoesregrasisencao'], resolve) } },\r\n { path: 'certificacoesregrasisencao/create', name: 'Novo Regras de Isenção', component: function (resolve) { require(['@/views/certificacoesregrasisencao/create'], resolve) } },\r\n { path: 'certificacoesregrasisencao/edit/:id', name: 'Editar Regras de Isenção', component: function (resolve) { require(['@/views/certificacoesregrasisencao/edit'], resolve) } },\r\n { path: 'parametro', name: 'Parâmetro', component: function (resolve) { require(['@/views/parametro'], resolve) } },\r\n { path: 'parametro/create', name: 'Novo Parâmetro', component: function (resolve) { require(['@/views/parametro/create'], resolve) } },\r\n { path: 'parametro/edit/:id', name: 'Editar Parâmetro', component: function (resolve) { require(['@/views/parametro/edit'], resolve) } },\r\n\r\n];\r\n\r\nexport default routers","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\n\r\nimport Auth from '@/common/auth'\r\n\r\nimport Template from '@/template/index'\r\nimport Home from '@/views/home'\r\nimport Authorized from '@/views/authorized'\r\nimport TrocarEscola from '@/views/trocarescola'\r\nimport AcessoNegado from '@/views/acessonegado'\r\nimport Configuracao from '@/views/estagio/configuracao'\r\n\r\nimport routersgenerated from './generated'\r\n\r\nVue.use(Router)\r\n\r\nlet childrens = routersgenerated.concat([\r\n {\r\n path: 'home',\r\n name: 'Home',\r\n component: Home\r\n },\r\n {\r\n path: '/estagio/configuracao/:id',\r\n name: 'configuracao',\r\n component: Configuracao,\r\n },\r\n]);\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n routes: [\r\n {\r\n path: '/authorized',\r\n name: 'authorized',\r\n component: Authorized,\r\n },\r\n {\r\n path: '/trocarescola',\r\n name: 'trocarescola',\r\n component: TrocarEscola,\r\n },\r\n {\r\n path: '/acessonegado',\r\n name: 'acessonegado',\r\n component: AcessoNegado,\r\n },\r\n {\r\n path: '/',\r\n redirect: '/home',\r\n component: Template,\r\n meta: { requiresAuth: true },\r\n children: childrens\r\n },\r\n ]\r\n})\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n if (to.matched.some(record => record.meta.requiresAuth)) {\r\n\r\n if (!Auth.logged()) {\r\n Auth.login(true);\r\n return;\r\n }\r\n\r\n if (!Auth.canAccess(to.path)) {\r\n next('/acessonegado')\r\n return;\r\n }\r\n }\r\n next();\r\n});\r\n\r\n\r\nexport default router;\r\n","import Vue from 'vue'\r\nimport Auth from '../auth'\r\n\r\nVue.directive('canaccess', {\r\n twoWay: true,\r\n bind: function (el, binding, vnode, old) {\r\n var can = Auth.canAccess(binding.value);\r\n if (!can)\r\n el.style.display = 'none'\r\n }\r\n})","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router/index.js'\r\n\r\nimport './common/directives/select'\r\nimport './common/directives/datepicker'\r\nimport './common/directives/canaccess'\r\nimport './common/directives/htmleditor'\r\n\r\nimport BootstrapVue from 'bootstrap-vue'\r\nVue.use(BootstrapVue);\r\n\r\nimport Notifications from 'vue-notification'\r\nVue.use(Notifications)\r\n\r\nimport VueTheMask from 'vue-the-mask'\r\nVue.use(VueTheMask)\r\n\r\nimport VueMask from 'di-vue-mask'\r\nVue.use(VueMask);\r\n\r\nimport VueNumeric from 'vue-numeric'\r\nVue.use(VueNumeric)\r\n\r\nimport money from 'v-money'\r\nVue.use(money)\r\n\r\nimport tinymce from 'vue-tinymce-editor'\r\nVue.component('tinymce', tinymce)\r\n\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport './assets/css/custom.scss'\r\n\r\nVue.config.productionTip = false\r\n\r\nVue.prototype.$eventHub = new Vue();\r\n\r\nnew Vue({\r\n router,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{class:[_vm.navClass]},[_c('ul',{staticClass:\"pagination justify-content-center\",class:[_vm.ulClass]},[(_vm.showPrevious())?_c('li',{staticClass:\"page-item\",class:[_vm.liClass, { 'disabled' : _vm.internalCurrentPage <= 1 }]},[(_vm.internalCurrentPage <= 1)?_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.config.previousText))])]):_vm._e(),(_vm.internalCurrentPage > 1 )?_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\",\"aria-label\":_vm.config.ariaPrevious},on:{\"click\":function($event){$event.preventDefault();return _vm.changePage(_vm.internalCurrentPage - 1)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.config.previousText))])]):_vm._e()]):_vm._e(),_vm._l((_vm.array),function(num){return _c('li',{key:num,staticClass:\"page-item\",class:[_vm.liClass, { 'active': num === _vm.internalCurrentPage }]},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changePage(num)}}},[_vm._v(_vm._s(num))])])}),(_vm.showNext())?_c('li',{staticClass:\"page-item\",class:[_vm.liClass, { 'disabled' : _vm.internalCurrentPage === _vm.lastPage || _vm.lastPage === 0 }]},[(_vm.internalCurrentPage === _vm.lastPage || _vm.lastPage === 0)?_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.config.nextText))])]):_vm._e(),(_vm.internalCurrentPage < _vm.lastPage)?_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\",\"aria-label\":_vm.config.ariaNext},on:{\"click\":function($event){$event.preventDefault();return _vm.changePage(_vm.internalCurrentPage + 1)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(_vm.config.nextText))])]):_vm._e()]):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pagination.vue?vue&type=template&id=89fb1ad0&\"\nimport script from \"./pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import pagination from '@/common/components/pagination'\r\n\r\nexport default {\r\n components: { pagination },\r\n data: () => ({\r\n mask_data: '##/##/####',\r\n mask_cpf: '###.###.###-##',\r\n mask_cnpj: '##.###.###/####-##',\r\n mask_rg: '##.###.###-#',\r\n mask_tel: '####-####',\r\n mask_telddd: '(##)####-####',\r\n mask_cel: '#####-####',\r\n mask_celddd: '(##)#####-####',\r\n mask_cep: '#####-###',\r\n money: {\r\n decimal: ',',\r\n thousands: '.',\r\n precision: 2,\r\n masked: false\r\n },\r\n }),\r\n methods: {\r\n formatPrice(value) {\r\n let val = (value / 1).toFixed(2).replace('.', ',')\r\n return 'R$' + val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\")\r\n },\r\n defaultPageChanged: function (filter, index) {\r\n filter.pageIndex = index;\r\n return filter;\r\n },\r\n defaultOrderBy: function (filter, field) {\r\n let type = 0;\r\n if (filter.orderByType == 0) type = 1;\r\n filter.orderFields = field;\r\n filter.orderByType = type;\r\n filter.isOrderByDynamic = true;\r\n return filter;\r\n },\r\n\r\n defaultSuccessResult: function (msg) {\r\n this.hideLoading();\r\n this.$eventHub.$emit('show-notification', {\r\n type: 'success',\r\n title: 'Sucesso',\r\n text: msg\r\n })\r\n },\r\n defaultErrorResult: function (err) {\r\n this.hideLoading();\r\n if (err.data && err.data.errors) {\r\n for (var i = 0; i < err.data.errors.length; i++) {\r\n this.$eventHub.$emit('show-notification', {\r\n type: 'error',\r\n title: 'Atenção',\r\n text: err.data.errors[i]\r\n })\r\n }\r\n }\r\n\r\n else\r\n this.$eventHub.$emit('show-notification', {\r\n type: 'error',\r\n title: 'Atenção',\r\n text: err\r\n })\r\n },\r\n configNotification() {\r\n this.$eventHub.$on('show-notification', (data) => {\r\n this.$notify({\r\n type: data.type,\r\n title: data.title,\r\n text: data.text,\r\n duration: 10000,\r\n speed: 1000\r\n })\r\n })\r\n },\r\n showLoading: function () {\r\n this.$eventHub.$emit('show-loading', true)\r\n },\r\n hideLoading: function () {\r\n this.$eventHub.$emit('show-loading', false)\r\n },\r\n failLoading: function () {\r\n this.$eventHub.$emit('show-loading', false)\r\n },\r\n\r\n },\r\n mounted() {\r\n window.scrollTo(0, 0);\r\n },\r\n}\r\n","(function () {\r\nvar lists = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var global$6 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var isTextNode = function (node) {\r\n return node && node.nodeType === 3;\r\n };\r\n var isListNode = function (node) {\r\n return node && /^(OL|UL|DL)$/.test(node.nodeName);\r\n };\r\n var isListItemNode = function (node) {\r\n return node && /^(LI|DT|DD)$/.test(node.nodeName);\r\n };\r\n var isTableCellNode = function (node) {\r\n return node && /^(TH|TD)$/.test(node.nodeName);\r\n };\r\n var isBr = function (node) {\r\n return node && node.nodeName === 'BR';\r\n };\r\n var isFirstChild = function (node) {\r\n return node.parentNode.firstChild === node;\r\n };\r\n var isLastChild = function (node) {\r\n return node.parentNode.lastChild === node;\r\n };\r\n var isTextBlock = function (editor, node) {\r\n return node && !!editor.schema.getTextBlockElements()[node.nodeName];\r\n };\r\n var isBlock = function (node, blockElements) {\r\n return node && node.nodeName in blockElements;\r\n };\r\n var isBogusBr = function (dom, node) {\r\n if (!isBr(node)) {\r\n return false;\r\n }\r\n if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isEmpty = function (dom, elm, keepBookmarks) {\r\n var empty = dom.isEmpty(elm);\r\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\r\n return false;\r\n }\r\n return empty;\r\n };\r\n var isChildOfBody = function (dom, elm) {\r\n return dom.isChildOf(elm, dom.getRoot());\r\n };\r\n var $_eyfb4cgljkmcwpc0 = {\r\n isTextNode: isTextNode,\r\n isListNode: isListNode,\r\n isListItemNode: isListItemNode,\r\n isTableCellNode: isTableCellNode,\r\n isBr: isBr,\r\n isFirstChild: isFirstChild,\r\n isLastChild: isLastChild,\r\n isTextBlock: isTextBlock,\r\n isBlock: isBlock,\r\n isBogusBr: isBogusBr,\r\n isEmpty: isEmpty,\r\n isChildOfBody: isChildOfBody\r\n };\r\n\r\n var getNormalizedEndPoint = function (container, offset) {\r\n var node = global$1.getNode(container, offset);\r\n if ($_eyfb4cgljkmcwpc0.isListItemNode(container) && $_eyfb4cgljkmcwpc0.isTextNode(node)) {\r\n var textNodeOffset = offset >= container.childNodes.length ? node.data.length : 0;\r\n return {\r\n container: node,\r\n offset: textNodeOffset\r\n };\r\n }\r\n return {\r\n container: container,\r\n offset: offset\r\n };\r\n };\r\n var normalizeRange = function (rng) {\r\n var outRng = rng.cloneRange();\r\n var rangeStart = getNormalizedEndPoint(rng.startContainer, rng.startOffset);\r\n outRng.setStart(rangeStart.container, rangeStart.offset);\r\n var rangeEnd = getNormalizedEndPoint(rng.endContainer, rng.endOffset);\r\n outRng.setEnd(rangeEnd.container, rangeEnd.offset);\r\n return outRng;\r\n };\r\n var $_8n62cfgkjkmcwpbw = {\r\n getNormalizedEndPoint: getNormalizedEndPoint,\r\n normalizeRange: normalizeRange\r\n };\r\n\r\n var DOM = global$6.DOM;\r\n var createBookmark = function (rng) {\r\n var bookmark = {};\r\n var setupEndPoint = function (start) {\r\n var offsetNode, container, offset;\r\n container = rng[start ? 'startContainer' : 'endContainer'];\r\n offset = rng[start ? 'startOffset' : 'endOffset'];\r\n if (container.nodeType === 1) {\r\n offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' });\r\n if (container.hasChildNodes()) {\r\n offset = Math.min(offset, container.childNodes.length - 1);\r\n if (start) {\r\n container.insertBefore(offsetNode, container.childNodes[offset]);\r\n } else {\r\n DOM.insertAfter(offsetNode, container.childNodes[offset]);\r\n }\r\n } else {\r\n container.appendChild(offsetNode);\r\n }\r\n container = offsetNode;\r\n offset = 0;\r\n }\r\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\r\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\r\n };\r\n setupEndPoint(true);\r\n if (!rng.collapsed) {\r\n setupEndPoint();\r\n }\r\n return bookmark;\r\n };\r\n var resolveBookmark = function (bookmark) {\r\n function restoreEndPoint(start) {\r\n var container, offset, node;\r\n var nodeIndex = function (container) {\r\n var node = container.parentNode.firstChild, idx = 0;\r\n while (node) {\r\n if (node === container) {\r\n return idx;\r\n }\r\n if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {\r\n idx++;\r\n }\r\n node = node.nextSibling;\r\n }\r\n return -1;\r\n };\r\n container = node = bookmark[start ? 'startContainer' : 'endContainer'];\r\n offset = bookmark[start ? 'startOffset' : 'endOffset'];\r\n if (!container) {\r\n return;\r\n }\r\n if (container.nodeType === 1) {\r\n offset = nodeIndex(container);\r\n container = container.parentNode;\r\n DOM.remove(node);\r\n if (!container.hasChildNodes() && DOM.isBlock(container)) {\r\n container.appendChild(DOM.create('br'));\r\n }\r\n }\r\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\r\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\r\n }\r\n restoreEndPoint(true);\r\n restoreEndPoint();\r\n var rng = DOM.createRng();\r\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\r\n if (bookmark.endContainer) {\r\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\r\n }\r\n return $_8n62cfgkjkmcwpbw.normalizeRange(rng);\r\n };\r\n var $_aredwjgjjkmcwpbt = {\r\n createBookmark: createBookmark,\r\n resolveBookmark: resolveBookmark\r\n };\r\n\r\n var DOM$1 = global$6.DOM;\r\n var normalizeList = function (dom, ul) {\r\n var sibling;\r\n var parentNode = ul.parentNode;\r\n if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) {\r\n sibling = parentNode.previousSibling;\r\n if (sibling && sibling.nodeName === 'LI') {\r\n sibling.appendChild(ul);\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(dom, parentNode)) {\r\n DOM$1.remove(parentNode);\r\n }\r\n } else {\r\n DOM$1.setStyle(parentNode, 'listStyleType', 'none');\r\n }\r\n }\r\n if ($_eyfb4cgljkmcwpc0.isListNode(parentNode)) {\r\n sibling = parentNode.previousSibling;\r\n if (sibling && sibling.nodeName === 'LI') {\r\n sibling.appendChild(ul);\r\n }\r\n }\r\n };\r\n var normalizeLists = function (dom, element) {\r\n global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) {\r\n normalizeList(dom, ul);\r\n });\r\n };\r\n var $_f0sxyjgmjkmcwpc3 = {\r\n normalizeList: normalizeList,\r\n normalizeLists: normalizeLists\r\n };\r\n\r\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\r\n\r\n var getParentList = function (editor) {\r\n var selectionStart = editor.selection.getStart(true);\r\n return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));\r\n };\r\n var isParentListSelected = function (parentList, selectedBlocks) {\r\n return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\r\n };\r\n var findSubLists = function (parentList) {\r\n return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) {\r\n return $_eyfb4cgljkmcwpc0.isListNode(elm);\r\n });\r\n };\r\n var getSelectedSubLists = function (editor) {\r\n var parentList = getParentList(editor);\r\n var selectedBlocks = editor.selection.getSelectedBlocks();\r\n if (isParentListSelected(parentList, selectedBlocks)) {\r\n return findSubLists(parentList);\r\n } else {\r\n return global$5.grep(selectedBlocks, function (elm) {\r\n return $_eyfb4cgljkmcwpc0.isListNode(elm) && parentList !== elm;\r\n });\r\n }\r\n };\r\n var findParentListItemsNodes = function (editor, elms) {\r\n var listItemsElms = global$5.map(elms, function (elm) {\r\n var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));\r\n return parentLi ? parentLi : elm;\r\n });\r\n return global$7.unique(listItemsElms);\r\n };\r\n var getSelectedListItems = function (editor) {\r\n var selectedBlocks = editor.selection.getSelectedBlocks();\r\n return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {\r\n return $_eyfb4cgljkmcwpc0.isListItemNode(block);\r\n });\r\n };\r\n var getClosestListRootElm = function (editor, elm) {\r\n var parentTableCell = editor.dom.getParents(elm, 'TD,TH');\r\n var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\r\n return root;\r\n };\r\n var $_g5359xgnjkmcwpc5 = {\r\n getParentList: getParentList,\r\n getSelectedSubLists: getSelectedSubLists,\r\n getSelectedListItems: getSelectedListItems,\r\n getClosestListRootElm: getClosestListRootElm\r\n };\r\n\r\n var global$8 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var DOM$2 = global$6.DOM;\r\n var createNewTextBlock = function (editor, contentNode, blockName) {\r\n var node, textBlock;\r\n var fragment = DOM$2.createFragment();\r\n var hasContentNode;\r\n var blockElements = editor.schema.getBlockElements();\r\n if (editor.settings.forced_root_block) {\r\n blockName = blockName || editor.settings.forced_root_block;\r\n }\r\n if (blockName) {\r\n textBlock = DOM$2.create(blockName);\r\n if (textBlock.tagName === editor.settings.forced_root_block) {\r\n DOM$2.setAttribs(textBlock, editor.settings.forced_root_block_attrs);\r\n }\r\n if (!$_eyfb4cgljkmcwpc0.isBlock(contentNode.firstChild, blockElements)) {\r\n fragment.appendChild(textBlock);\r\n }\r\n }\r\n if (contentNode) {\r\n while (node = contentNode.firstChild) {\r\n var nodeName = node.nodeName;\r\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\r\n hasContentNode = true;\r\n }\r\n if ($_eyfb4cgljkmcwpc0.isBlock(node, blockElements)) {\r\n fragment.appendChild(node);\r\n textBlock = null;\r\n } else {\r\n if (blockName) {\r\n if (!textBlock) {\r\n textBlock = DOM$2.create(blockName);\r\n fragment.appendChild(textBlock);\r\n }\r\n textBlock.appendChild(node);\r\n } else {\r\n fragment.appendChild(node);\r\n }\r\n }\r\n }\r\n }\r\n if (!editor.settings.forced_root_block) {\r\n fragment.appendChild(DOM$2.create('br'));\r\n } else {\r\n if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) {\r\n textBlock.appendChild(DOM$2.create('br', { 'data-mce-bogus': '1' }));\r\n }\r\n }\r\n return fragment;\r\n };\r\n var $_givla1gqjkmcwpcb = { createNewTextBlock: createNewTextBlock };\r\n\r\n var DOM$3 = global$6.DOM;\r\n var splitList = function (editor, ul, li, newBlock) {\r\n var tmpRng, fragment, bookmarks, node;\r\n var removeAndKeepBookmarks = function (targetNode) {\r\n global$5.each(bookmarks, function (node) {\r\n targetNode.parentNode.insertBefore(node, li.parentNode);\r\n });\r\n DOM$3.remove(targetNode);\r\n };\r\n bookmarks = DOM$3.select('span[data-mce-type=\"bookmark\"]', ul);\r\n newBlock = newBlock || $_givla1gqjkmcwpcb.createNewTextBlock(editor, li);\r\n tmpRng = DOM$3.createRng();\r\n tmpRng.setStartAfter(li);\r\n tmpRng.setEndAfter(ul);\r\n fragment = tmpRng.extractContents();\r\n for (node = fragment.firstChild; node; node = node.firstChild) {\r\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\r\n DOM$3.remove(node);\r\n break;\r\n }\r\n }\r\n if (!editor.dom.isEmpty(fragment)) {\r\n DOM$3.insertAfter(fragment, ul);\r\n }\r\n DOM$3.insertAfter(newBlock, ul);\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(editor.dom, li.parentNode)) {\r\n removeAndKeepBookmarks(li.parentNode);\r\n }\r\n DOM$3.remove(li);\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(editor.dom, ul)) {\r\n DOM$3.remove(ul);\r\n }\r\n };\r\n var $_3aykwpgpjkmcwpc8 = { splitList: splitList };\r\n\r\n var DOM$4 = global$6.DOM;\r\n var removeEmptyLi = function (dom, li) {\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(dom, li)) {\r\n DOM$4.remove(li);\r\n }\r\n };\r\n var outdent = function (editor, li) {\r\n var ul = li.parentNode;\r\n var ulParent, newBlock;\r\n if (ul) {\r\n ulParent = ul.parentNode;\r\n } else {\r\n removeEmptyLi(editor.dom, li);\r\n return true;\r\n }\r\n if (ul === editor.getBody()) {\r\n return true;\r\n }\r\n if (li.nodeName === 'DD') {\r\n DOM$4.rename(li, 'DT');\r\n return true;\r\n }\r\n if ($_eyfb4cgljkmcwpc0.isFirstChild(li) && $_eyfb4cgljkmcwpc0.isLastChild(li)) {\r\n if (ulParent.nodeName === 'LI') {\r\n DOM$4.insertAfter(li, ulParent);\r\n removeEmptyLi(editor.dom, ulParent);\r\n DOM$4.remove(ul);\r\n } else if ($_eyfb4cgljkmcwpc0.isListNode(ulParent)) {\r\n DOM$4.remove(ul, true);\r\n } else {\r\n ulParent.insertBefore($_givla1gqjkmcwpcb.createNewTextBlock(editor, li), ul);\r\n DOM$4.remove(ul);\r\n }\r\n return true;\r\n } else if ($_eyfb4cgljkmcwpc0.isFirstChild(li)) {\r\n if (ulParent.nodeName === 'LI') {\r\n DOM$4.insertAfter(li, ulParent);\r\n li.appendChild(ul);\r\n removeEmptyLi(editor.dom, ulParent);\r\n } else if ($_eyfb4cgljkmcwpc0.isListNode(ulParent)) {\r\n ulParent.insertBefore(li, ul);\r\n } else {\r\n ulParent.insertBefore($_givla1gqjkmcwpcb.createNewTextBlock(editor, li), ul);\r\n DOM$4.remove(li);\r\n }\r\n return true;\r\n } else if ($_eyfb4cgljkmcwpc0.isLastChild(li)) {\r\n if (ulParent.nodeName === 'LI') {\r\n DOM$4.insertAfter(li, ulParent);\r\n } else if ($_eyfb4cgljkmcwpc0.isListNode(ulParent)) {\r\n DOM$4.insertAfter(li, ul);\r\n } else {\r\n DOM$4.insertAfter($_givla1gqjkmcwpcb.createNewTextBlock(editor, li), ul);\r\n DOM$4.remove(li);\r\n }\r\n return true;\r\n }\r\n if (ulParent.nodeName === 'LI') {\r\n ul = ulParent;\r\n newBlock = $_givla1gqjkmcwpcb.createNewTextBlock(editor, li, 'LI');\r\n } else if ($_eyfb4cgljkmcwpc0.isListNode(ulParent)) {\r\n newBlock = $_givla1gqjkmcwpcb.createNewTextBlock(editor, li, 'LI');\r\n } else {\r\n newBlock = $_givla1gqjkmcwpcb.createNewTextBlock(editor, li);\r\n }\r\n $_3aykwpgpjkmcwpc8.splitList(editor, ul, li, newBlock);\r\n $_f0sxyjgmjkmcwpc3.normalizeLists(editor.dom, ul.parentNode);\r\n return true;\r\n };\r\n var outdentSelection = function (editor) {\r\n var listElements = $_g5359xgnjkmcwpc5.getSelectedListItems(editor);\r\n if (listElements.length) {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(editor.selection.getRng());\r\n var i = void 0, y = void 0;\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, editor.selection.getStart(true));\r\n i = listElements.length;\r\n while (i--) {\r\n var node = listElements[i].parentNode;\r\n while (node && node !== root) {\r\n y = listElements.length;\r\n while (y--) {\r\n if (listElements[y] === node) {\r\n listElements.splice(i, 1);\r\n break;\r\n }\r\n }\r\n node = node.parentNode;\r\n }\r\n }\r\n for (i = 0; i < listElements.length; i++) {\r\n if (!outdent(editor, listElements[i]) && i === 0) {\r\n break;\r\n }\r\n }\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n editor.nodeChanged();\r\n return true;\r\n }\r\n };\r\n var $_80fi2gghjkmcwpbq = {\r\n outdent: outdent,\r\n outdentSelection: outdentSelection\r\n };\r\n\r\n var updateListStyle = function (dom, el, detail) {\r\n var type = detail['list-style-type'] ? detail['list-style-type'] : null;\r\n dom.setStyle(el, 'list-style-type', type);\r\n };\r\n var setAttribs = function (elm, attrs) {\r\n global$5.each(attrs, function (value, key) {\r\n elm.setAttribute(key, value);\r\n });\r\n };\r\n var updateListAttrs = function (dom, el, detail) {\r\n setAttribs(el, detail['list-attributes']);\r\n global$5.each(dom.select('li', el), function (li) {\r\n setAttribs(li, detail['list-item-attributes']);\r\n });\r\n };\r\n var updateListWithDetails = function (dom, el, detail) {\r\n updateListStyle(dom, el, detail);\r\n updateListAttrs(dom, el, detail);\r\n };\r\n var removeStyles = function (dom, element, styles) {\r\n global$5.each(styles, function (style) {\r\n var _a;\r\n return dom.setStyle(element, (_a = {}, _a[style] = '', _a));\r\n });\r\n };\r\n var getEndPointNode = function (editor, rng, start, root) {\r\n var container, offset;\r\n container = rng[start ? 'startContainer' : 'endContainer'];\r\n offset = rng[start ? 'startOffset' : 'endOffset'];\r\n if (container.nodeType === 1) {\r\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\r\n }\r\n if (!start && $_eyfb4cgljkmcwpc0.isBr(container.nextSibling)) {\r\n container = container.nextSibling;\r\n }\r\n while (container.parentNode !== root) {\r\n if ($_eyfb4cgljkmcwpc0.isTextBlock(editor, container)) {\r\n return container;\r\n }\r\n if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {\r\n return container;\r\n }\r\n container = container.parentNode;\r\n }\r\n return container;\r\n };\r\n var getSelectedTextBlocks = function (editor, rng, root) {\r\n var textBlocks = [], dom = editor.dom;\r\n var startNode = getEndPointNode(editor, rng, true, root);\r\n var endNode = getEndPointNode(editor, rng, false, root);\r\n var block;\r\n var siblings = [];\r\n for (var node = startNode; node; node = node.nextSibling) {\r\n siblings.push(node);\r\n if (node === endNode) {\r\n break;\r\n }\r\n }\r\n global$5.each(siblings, function (node) {\r\n if ($_eyfb4cgljkmcwpc0.isTextBlock(editor, node)) {\r\n textBlocks.push(node);\r\n block = null;\r\n return;\r\n }\r\n if (dom.isBlock(node) || $_eyfb4cgljkmcwpc0.isBr(node)) {\r\n if ($_eyfb4cgljkmcwpc0.isBr(node)) {\r\n dom.remove(node);\r\n }\r\n block = null;\r\n return;\r\n }\r\n var nextSibling = node.nextSibling;\r\n if (global$4.isBookmarkNode(node)) {\r\n if ($_eyfb4cgljkmcwpc0.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\r\n block = null;\r\n return;\r\n }\r\n }\r\n if (!block) {\r\n block = dom.create('p');\r\n node.parentNode.insertBefore(block, node);\r\n textBlocks.push(block);\r\n }\r\n block.appendChild(node);\r\n });\r\n return textBlocks;\r\n };\r\n var hasCompatibleStyle = function (dom, sib, detail) {\r\n var sibStyle = dom.getStyle(sib, 'list-style-type');\r\n var detailStyle = detail ? detail['list-style-type'] : '';\r\n detailStyle = detailStyle === null ? '' : detailStyle;\r\n return sibStyle === detailStyle;\r\n };\r\n var applyList = function (editor, listName, detail) {\r\n if (detail === void 0) {\r\n detail = {};\r\n }\r\n var rng = editor.selection.getRng(true);\r\n var bookmark;\r\n var listItemName = 'LI';\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, editor.selection.getStart(true));\r\n var dom = editor.dom;\r\n if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\r\n return;\r\n }\r\n listName = listName.toUpperCase();\r\n if (listName === 'DL') {\r\n listItemName = 'DT';\r\n }\r\n bookmark = $_aredwjgjjkmcwpbt.createBookmark(rng);\r\n global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) {\r\n var listBlock, sibling;\r\n sibling = block.previousSibling;\r\n if (sibling && $_eyfb4cgljkmcwpc0.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {\r\n listBlock = sibling;\r\n block = dom.rename(block, listItemName);\r\n sibling.appendChild(block);\r\n } else {\r\n listBlock = dom.create(listName);\r\n block.parentNode.insertBefore(listBlock, block);\r\n listBlock.appendChild(block);\r\n block = dom.rename(block, listItemName);\r\n }\r\n removeStyles(dom, block, [\r\n 'margin',\r\n 'margin-right',\r\n 'margin-bottom',\r\n 'margin-left',\r\n 'margin-top',\r\n 'padding',\r\n 'padding-right',\r\n 'padding-bottom',\r\n 'padding-left',\r\n 'padding-top'\r\n ]);\r\n updateListWithDetails(dom, listBlock, detail);\r\n mergeWithAdjacentLists(editor.dom, listBlock);\r\n });\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n };\r\n var removeList = function (editor) {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(editor.selection.getRng(true));\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, editor.selection.getStart(true));\r\n var listItems = $_g5359xgnjkmcwpc5.getSelectedListItems(editor);\r\n var emptyListItems = global$5.grep(listItems, function (li) {\r\n return editor.dom.isEmpty(li);\r\n });\r\n listItems = global$5.grep(listItems, function (li) {\r\n return !editor.dom.isEmpty(li);\r\n });\r\n global$5.each(emptyListItems, function (li) {\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(editor.dom, li)) {\r\n $_80fi2gghjkmcwpbq.outdent(editor, li);\r\n return;\r\n }\r\n });\r\n global$5.each(listItems, function (li) {\r\n var node, rootList;\r\n if (li.parentNode === editor.getBody()) {\r\n return;\r\n }\r\n for (node = li; node && node !== root; node = node.parentNode) {\r\n if ($_eyfb4cgljkmcwpc0.isListNode(node)) {\r\n rootList = node;\r\n }\r\n }\r\n $_3aykwpgpjkmcwpc8.splitList(editor, rootList, li);\r\n $_f0sxyjgmjkmcwpc3.normalizeLists(editor.dom, rootList.parentNode);\r\n });\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n };\r\n var isValidLists = function (list1, list2) {\r\n return list1 && list2 && $_eyfb4cgljkmcwpc0.isListNode(list1) && list1.nodeName === list2.nodeName;\r\n };\r\n var hasSameListStyle = function (dom, list1, list2) {\r\n var targetStyle = dom.getStyle(list1, 'list-style-type', true);\r\n var style = dom.getStyle(list2, 'list-style-type', true);\r\n return targetStyle === style;\r\n };\r\n var hasSameClasses = function (elm1, elm2) {\r\n return elm1.className === elm2.className;\r\n };\r\n var shouldMerge = function (dom, list1, list2) {\r\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\r\n };\r\n var mergeWithAdjacentLists = function (dom, listBlock) {\r\n var sibling, node;\r\n sibling = listBlock.nextSibling;\r\n if (shouldMerge(dom, listBlock, sibling)) {\r\n while (node = sibling.firstChild) {\r\n listBlock.appendChild(node);\r\n }\r\n dom.remove(sibling);\r\n }\r\n sibling = listBlock.previousSibling;\r\n if (shouldMerge(dom, listBlock, sibling)) {\r\n while (node = sibling.lastChild) {\r\n listBlock.insertBefore(node, listBlock.firstChild);\r\n }\r\n dom.remove(sibling);\r\n }\r\n };\r\n var updateList = function (dom, list, listName, detail) {\r\n if (list.nodeName !== listName) {\r\n var newList = dom.rename(list, listName);\r\n updateListWithDetails(dom, newList, detail);\r\n } else {\r\n updateListWithDetails(dom, list, detail);\r\n }\r\n };\r\n var toggleMultipleLists = function (editor, parentList, lists, listName, detail) {\r\n if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {\r\n removeList(editor);\r\n } else {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(editor.selection.getRng(true));\r\n global$5.each([parentList].concat(lists), function (elm) {\r\n updateList(editor.dom, elm, listName, detail);\r\n });\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n }\r\n };\r\n var hasListStyleDetail = function (detail) {\r\n return 'list-style-type' in detail;\r\n };\r\n var toggleSingleList = function (editor, parentList, listName, detail) {\r\n if (parentList === editor.getBody()) {\r\n return;\r\n }\r\n if (parentList) {\r\n if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {\r\n removeList(editor);\r\n } else {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(editor.selection.getRng(true));\r\n updateListWithDetails(editor.dom, parentList, detail);\r\n mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName));\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n }\r\n } else {\r\n applyList(editor, listName, detail);\r\n }\r\n };\r\n var toggleList = function (editor, listName, detail) {\r\n var parentList = $_g5359xgnjkmcwpc5.getParentList(editor);\r\n var selectedSubLists = $_g5359xgnjkmcwpc5.getSelectedSubLists(editor);\r\n detail = detail ? detail : {};\r\n if (parentList && selectedSubLists.length > 0) {\r\n toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);\r\n } else {\r\n toggleSingleList(editor, parentList, listName, detail);\r\n }\r\n };\r\n var $_8bvl87gejkmcwpbi = {\r\n toggleList: toggleList,\r\n removeList: removeList,\r\n mergeWithAdjacentLists: mergeWithAdjacentLists\r\n };\r\n\r\n var findNextCaretContainer = function (editor, rng, isForward, root) {\r\n var node = rng.startContainer;\r\n var offset = rng.startOffset;\r\n var nonEmptyBlocks, walker;\r\n if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) {\r\n return node;\r\n }\r\n nonEmptyBlocks = editor.schema.getNonEmptyElements();\r\n if (node.nodeType === 1) {\r\n node = global$1.getNode(node, offset);\r\n }\r\n walker = new global$2(node, root);\r\n if (isForward) {\r\n if ($_eyfb4cgljkmcwpc0.isBogusBr(editor.dom, node)) {\r\n walker.next();\r\n }\r\n }\r\n while (node = walker[isForward ? 'next' : 'prev2']()) {\r\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\r\n return node;\r\n }\r\n if (nonEmptyBlocks[node.nodeName]) {\r\n return node;\r\n }\r\n if (node.nodeType === 3 && node.data.length > 0) {\r\n return node;\r\n }\r\n }\r\n };\r\n var hasOnlyOneBlockChild = function (dom, elm) {\r\n var childNodes = elm.childNodes;\r\n return childNodes.length === 1 && !$_eyfb4cgljkmcwpc0.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\r\n };\r\n var unwrapSingleBlockChild = function (dom, elm) {\r\n if (hasOnlyOneBlockChild(dom, elm)) {\r\n dom.remove(elm.firstChild, true);\r\n }\r\n };\r\n var moveChildren = function (dom, fromElm, toElm) {\r\n var node, targetElm;\r\n targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\r\n unwrapSingleBlockChild(dom, fromElm);\r\n if (!$_eyfb4cgljkmcwpc0.isEmpty(dom, fromElm, true)) {\r\n while (node = fromElm.firstChild) {\r\n targetElm.appendChild(node);\r\n }\r\n }\r\n };\r\n var mergeLiElements = function (dom, fromElm, toElm) {\r\n var node, listNode;\r\n var ul = fromElm.parentNode;\r\n if (!$_eyfb4cgljkmcwpc0.isChildOfBody(dom, fromElm) || !$_eyfb4cgljkmcwpc0.isChildOfBody(dom, toElm)) {\r\n return;\r\n }\r\n if ($_eyfb4cgljkmcwpc0.isListNode(toElm.lastChild)) {\r\n listNode = toElm.lastChild;\r\n }\r\n if (ul === toElm.lastChild) {\r\n if ($_eyfb4cgljkmcwpc0.isBr(ul.previousSibling)) {\r\n dom.remove(ul.previousSibling);\r\n }\r\n }\r\n node = toElm.lastChild;\r\n if (node && $_eyfb4cgljkmcwpc0.isBr(node) && fromElm.hasChildNodes()) {\r\n dom.remove(node);\r\n }\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(dom, toElm, true)) {\r\n dom.$(toElm).empty();\r\n }\r\n moveChildren(dom, fromElm, toElm);\r\n if (listNode) {\r\n toElm.appendChild(listNode);\r\n }\r\n dom.remove(fromElm);\r\n if ($_eyfb4cgljkmcwpc0.isEmpty(dom, ul) && ul !== dom.getRoot()) {\r\n dom.remove(ul);\r\n }\r\n };\r\n var mergeIntoEmptyLi = function (editor, fromLi, toLi) {\r\n editor.dom.$(toLi).empty();\r\n mergeLiElements(editor.dom, fromLi, toLi);\r\n editor.selection.setCursorLocation(toLi);\r\n };\r\n var mergeForward = function (editor, rng, fromLi, toLi) {\r\n var dom = editor.dom;\r\n if (dom.isEmpty(toLi)) {\r\n mergeIntoEmptyLi(editor, fromLi, toLi);\r\n } else {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(rng);\r\n mergeLiElements(dom, fromLi, toLi);\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n }\r\n };\r\n var mergeBackward = function (editor, rng, fromLi, toLi) {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(rng);\r\n mergeLiElements(editor.dom, fromLi, toLi);\r\n var resolvedBookmark = $_aredwjgjjkmcwpbt.resolveBookmark(bookmark);\r\n editor.selection.setRng(resolvedBookmark);\r\n };\r\n var backspaceDeleteFromListToListCaret = function (editor, isForward) {\r\n var dom = editor.dom, selection = editor.selection;\r\n var selectionStartElm = selection.getStart();\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, selectionStartElm);\r\n var li = dom.getParent(selection.getStart(), 'LI', root);\r\n var ul, rng, otherLi;\r\n if (li) {\r\n ul = li.parentNode;\r\n if (ul === editor.getBody() && $_eyfb4cgljkmcwpc0.isEmpty(dom, ul)) {\r\n return true;\r\n }\r\n rng = $_8n62cfgkjkmcwpbw.normalizeRange(selection.getRng(true));\r\n otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\r\n if (otherLi && otherLi !== li) {\r\n if (isForward) {\r\n mergeForward(editor, rng, otherLi, li);\r\n } else {\r\n mergeBackward(editor, rng, li, otherLi);\r\n }\r\n return true;\r\n } else if (!otherLi) {\r\n if (!isForward && $_8bvl87gejkmcwpbi.removeList(editor)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var removeBlock = function (dom, block, root) {\r\n var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\r\n dom.remove(block);\r\n if (parentBlock && dom.isEmpty(parentBlock)) {\r\n dom.remove(parentBlock);\r\n }\r\n };\r\n var backspaceDeleteIntoListCaret = function (editor, isForward) {\r\n var dom = editor.dom;\r\n var selectionStartElm = editor.selection.getStart();\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, selectionStartElm);\r\n var block = dom.getParent(selectionStartElm, dom.isBlock, root);\r\n if (block && dom.isEmpty(block)) {\r\n var rng = $_8n62cfgkjkmcwpbw.normalizeRange(editor.selection.getRng(true));\r\n var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\r\n if (otherLi_1) {\r\n editor.undoManager.transact(function () {\r\n removeBlock(dom, block, root);\r\n $_8bvl87gejkmcwpbi.mergeWithAdjacentLists(dom, otherLi_1.parentNode);\r\n editor.selection.select(otherLi_1, true);\r\n editor.selection.collapse(isForward);\r\n });\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var backspaceDeleteCaret = function (editor, isForward) {\r\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\r\n };\r\n var backspaceDeleteRange = function (editor) {\r\n var selectionStartElm = editor.selection.getStart();\r\n var root = $_g5359xgnjkmcwpc5.getClosestListRootElm(editor, selectionStartElm);\r\n var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);\r\n if (startListParent || $_g5359xgnjkmcwpc5.getSelectedListItems(editor).length > 0) {\r\n editor.undoManager.transact(function () {\r\n editor.execCommand('Delete');\r\n $_f0sxyjgmjkmcwpc3.normalizeLists(editor.dom, editor.getBody());\r\n });\r\n return true;\r\n }\r\n return false;\r\n };\r\n var backspaceDelete = function (editor, isForward) {\r\n return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);\r\n };\r\n var setup = function (editor) {\r\n editor.on('keydown', function (e) {\r\n if (e.keyCode === global$3.BACKSPACE) {\r\n if (backspaceDelete(editor, false)) {\r\n e.preventDefault();\r\n }\r\n } else if (e.keyCode === global$3.DELETE) {\r\n if (backspaceDelete(editor, true)) {\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n };\r\n var $_17li1sgajkmcwpb9 = {\r\n setup: setup,\r\n backspaceDelete: backspaceDelete\r\n };\r\n\r\n var get = function (editor) {\r\n return {\r\n backspaceDelete: function (isForward) {\r\n $_17li1sgajkmcwpb9.backspaceDelete(editor, isForward);\r\n }\r\n };\r\n };\r\n var $_4wrbe2g9jkmcwpb7 = { get: get };\r\n\r\n var DOM$5 = global$6.DOM;\r\n var mergeLists = function (from, to) {\r\n var node;\r\n if ($_eyfb4cgljkmcwpc0.isListNode(from)) {\r\n while (node = from.firstChild) {\r\n to.appendChild(node);\r\n }\r\n DOM$5.remove(from);\r\n }\r\n };\r\n var indent = function (li) {\r\n var sibling, newList, listStyle;\r\n if (li.nodeName === 'DT') {\r\n DOM$5.rename(li, 'DD');\r\n return true;\r\n }\r\n sibling = li.previousSibling;\r\n if (sibling && $_eyfb4cgljkmcwpc0.isListNode(sibling)) {\r\n sibling.appendChild(li);\r\n return true;\r\n }\r\n if (sibling && sibling.nodeName === 'LI' && $_eyfb4cgljkmcwpc0.isListNode(sibling.lastChild)) {\r\n sibling.lastChild.appendChild(li);\r\n mergeLists(li.lastChild, sibling.lastChild);\r\n return true;\r\n }\r\n sibling = li.nextSibling;\r\n if (sibling && $_eyfb4cgljkmcwpc0.isListNode(sibling)) {\r\n sibling.insertBefore(li, sibling.firstChild);\r\n return true;\r\n }\r\n sibling = li.previousSibling;\r\n if (sibling && sibling.nodeName === 'LI') {\r\n newList = DOM$5.create(li.parentNode.nodeName);\r\n listStyle = DOM$5.getStyle(li.parentNode, 'listStyleType');\r\n if (listStyle) {\r\n DOM$5.setStyle(newList, 'listStyleType', listStyle);\r\n }\r\n sibling.appendChild(newList);\r\n newList.appendChild(li);\r\n mergeLists(li.lastChild, newList);\r\n return true;\r\n }\r\n return false;\r\n };\r\n var indentSelection = function (editor) {\r\n var listElements = $_g5359xgnjkmcwpc5.getSelectedListItems(editor);\r\n if (listElements.length) {\r\n var bookmark = $_aredwjgjjkmcwpbt.createBookmark(editor.selection.getRng(true));\r\n for (var i = 0; i < listElements.length; i++) {\r\n if (!indent(listElements[i]) && i === 0) {\r\n break;\r\n }\r\n }\r\n editor.selection.setRng($_aredwjgjjkmcwpbt.resolveBookmark(bookmark));\r\n editor.nodeChanged();\r\n return true;\r\n }\r\n };\r\n var $_fhzwh2gtjkmcwpco = { indentSelection: indentSelection };\r\n\r\n var queryListCommandState = function (editor, listName) {\r\n return function () {\r\n var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');\r\n return parentList && parentList.nodeName === listName;\r\n };\r\n };\r\n var register = function (editor) {\r\n editor.on('BeforeExecCommand', function (e) {\r\n var cmd = e.command.toLowerCase();\r\n var isHandled;\r\n if (cmd === 'indent') {\r\n if ($_fhzwh2gtjkmcwpco.indentSelection(editor)) {\r\n isHandled = true;\r\n }\r\n } else if (cmd === 'outdent') {\r\n if ($_80fi2gghjkmcwpbq.outdentSelection(editor)) {\r\n isHandled = true;\r\n }\r\n }\r\n if (isHandled) {\r\n editor.fire('ExecCommand', { command: e.command });\r\n e.preventDefault();\r\n return true;\r\n }\r\n });\r\n editor.addCommand('InsertUnorderedList', function (ui, detail) {\r\n $_8bvl87gejkmcwpbi.toggleList(editor, 'UL', detail);\r\n });\r\n editor.addCommand('InsertOrderedList', function (ui, detail) {\r\n $_8bvl87gejkmcwpbi.toggleList(editor, 'OL', detail);\r\n });\r\n editor.addCommand('InsertDefinitionList', function (ui, detail) {\r\n $_8bvl87gejkmcwpbi.toggleList(editor, 'DL', detail);\r\n });\r\n editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));\r\n editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));\r\n editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));\r\n };\r\n var $_7snno4gsjkmcwpcf = { register: register };\r\n\r\n var shouldIndentOnTab = function (editor) {\r\n return editor.getParam('lists_indent_on_tab', true);\r\n };\r\n var $_7hi6itgvjkmcwpcr = { shouldIndentOnTab: shouldIndentOnTab };\r\n\r\n var setupTabKey = function (editor) {\r\n editor.on('keydown', function (e) {\r\n if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {\r\n return;\r\n }\r\n if (editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD')) {\r\n e.preventDefault();\r\n if (e.shiftKey) {\r\n $_80fi2gghjkmcwpbq.outdentSelection(editor);\r\n } else {\r\n $_fhzwh2gtjkmcwpco.indentSelection(editor);\r\n }\r\n }\r\n });\r\n };\r\n var setup$1 = function (editor) {\r\n if ($_7hi6itgvjkmcwpcr.shouldIndentOnTab(editor)) {\r\n setupTabKey(editor);\r\n }\r\n $_17li1sgajkmcwpb9.setup(editor);\r\n };\r\n var $_fv3b7wgujkmcwpcq = { setup: setup$1 };\r\n\r\n var findIndex = function (list, predicate) {\r\n for (var index = 0; index < list.length; index++) {\r\n var element = list[index];\r\n if (predicate(element)) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n };\r\n var listState = function (editor, listName) {\r\n return function (e) {\r\n var ctrl = e.control;\r\n editor.on('NodeChange', function (e) {\r\n var tableCellIndex = findIndex(e.parents, $_eyfb4cgljkmcwpc0.isTableCellNode);\r\n var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;\r\n var lists = global$5.grep(parents, $_eyfb4cgljkmcwpc0.isListNode);\r\n ctrl.active(lists.length > 0 && lists[0].nodeName === listName);\r\n });\r\n };\r\n };\r\n var indentPostRender = function (editor) {\r\n return function (e) {\r\n var ctrl = e.control;\r\n editor.on('nodechange', function () {\r\n var listItemBlocks = $_g5359xgnjkmcwpc5.getSelectedListItems(editor);\r\n var disable = listItemBlocks.length > 0 && $_eyfb4cgljkmcwpc0.isFirstChild(listItemBlocks[0]);\r\n ctrl.disabled(disable);\r\n });\r\n };\r\n };\r\n var register$1 = function (editor) {\r\n var hasPlugin = function (editor, plugin) {\r\n var plugins = editor.settings.plugins ? editor.settings.plugins : '';\r\n return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1;\r\n };\r\n if (!hasPlugin(editor, 'advlist')) {\r\n editor.addButton('numlist', {\r\n active: false,\r\n title: 'Numbered list',\r\n cmd: 'InsertOrderedList',\r\n onPostRender: listState(editor, 'OL')\r\n });\r\n editor.addButton('bullist', {\r\n active: false,\r\n title: 'Bullet list',\r\n cmd: 'InsertUnorderedList',\r\n onPostRender: listState(editor, 'UL')\r\n });\r\n }\r\n editor.addButton('indent', {\r\n icon: 'indent',\r\n title: 'Increase indent',\r\n cmd: 'Indent',\r\n onPostRender: indentPostRender(editor)\r\n });\r\n };\r\n var $_e09q6ogwjkmcwpct = { register: register$1 };\r\n\r\n global.add('lists', function (editor) {\r\n $_fv3b7wgujkmcwpcq.setup(editor);\r\n $_e09q6ogwjkmcwpct.register(editor);\r\n $_7snno4gsjkmcwpcf.register(editor);\r\n return $_4wrbe2g9jkmcwpb7.get(editor);\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","function _get(key) {\r\n var _name = key + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(_name) == 0) return c.substring(_name.length, c.length);\r\n }\r\n return null;\r\n};\r\n\r\nfunction _add(key, data, seconds) {\r\n if (seconds) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (seconds * 1000));\r\n var expires = \"; expires=\" + date.toGMTString();\r\n } else var expires = \"\";\r\n document.cookie = key + \"=\" + data + expires + \"; path=/\";\r\n};\r\n\r\nfunction _update(key, data, seconds) {\r\n _remove(key);\r\n _add(key, data, seconds);\r\n};\r\n\r\nfunction _remove(key) {\r\n _add(key, \"\", -1);\r\n};\r\n\r\nexport default {\r\n get: _get,\r\n add: _add,\r\n update: _update,\r\n remove: _remove,\r\n}\r\n","import Cache from './cache'\r\nimport Cookie from './cookie'\r\nimport Global from './global'\r\nimport { Api } from './api'\r\nimport { setTimeout } from 'timers';\r\n\r\nexport default {\r\n\r\n authorize_url: Global.SSO_END_POINT + 'connect/authorize',\r\n addclaims_authorize_url: Global.SSO_END_POINT + '/accountafterauth/claimsadd',\r\n endsession_url: Global.SSO_END_POINT + 'connect/endsession',\r\n redirect_uri: Global.SSO_REDIRECT_LOGIN_URL,\r\n post_logout_redirect_uri: Global.SSO_REDIRECT_LOGOUT_URL,\r\n\r\n client_id: Global.SSO_CLIENT_ID,\r\n response_type: Global.SSO_RESPONSE_TYPE,\r\n scope: Global.SSO_SCOPE,\r\n\r\n menu_key: 'PFB___FXX_JB_01',\r\n permissoes_key: 'PFB___FXX_JB_02',\r\n foto_key: 'PFB___FXX_JB_03',\r\n loadfinished_key: 'PFB___FXX_JB_04',\r\n lastlocation_key: 'PFB___AEF_03_5O',\r\n\r\n usuariosPermitidos: ['magda.araujo@cna.com.br',\r\n 'fabricio.mainieri@cna.com.br',\r\n 'camila.neves@cna.com.br',\r\n 'thiago.guimaraes@cna.com.br',\r\n 'talyta.syozi@cna.com.br',\r\n 'alana.medeiros@cna.com.br',\r\n 'daiane.fernandes@cna.com.br',\r\n 'alexia.cardoso@cna.com.br',\r\n 'cristiane.santos@cna.com.br',\r\n 'kevellin.santos@cna.com.br',\r\n 'daniela@cna.com.br',\r\n 'ligiaalencar@cna.com.br',\r\n 'danilozanutto@gmail.com',\r\n 'guilherme.azevedo@cna.com.br',\r\n 'laura.bianca@cna.com.br',\r\n 'sofia.goncalves@cna.com.br'],\r\n\r\n rotasRestritas: ['certificacoes',\r\n 'certificacoespoliticapreco',\r\n 'certificacoesregrasisencao'],\r\n\r\n\r\n getToken: function () {\r\n return Cache.get(Global.ID_TOKEN);\r\n },\r\n\r\n getAccessToken: function () {\r\n return Cache.get(Global.ACCESS_TOKEN);\r\n },\r\n\r\n getState: function () {\r\n return Cache.get(Global.ID_STATE);\r\n },\r\n\r\n logged: function () {\r\n return Cache.get(Global.ID_TOKEN) && Cache.get(this.loadfinished_key) == \"finished\";\r\n },\r\n\r\n login: function (saveActualPage) {\r\n\r\n if (saveActualPage)\r\n Cache.add(this.lastlocation_key, window.location.pathname);\r\n\r\n Cache.add(Global.ID_STATE, Date.now());\r\n\r\n var url = this.authorize_url + \"?\" +\r\n \"client_id=\" + encodeURIComponent(this.client_id) + \"&\" +\r\n \"redirect_uri=\" + encodeURIComponent(this.redirect_uri) + \"&\" +\r\n \"response_type=\" + encodeURIComponent(this.response_type) + \"&\" +\r\n \"scope=\" + encodeURIComponent(this.scope) + \"&\" +\r\n \"state=\" + encodeURIComponent(this.getState()) + \"&\" +\r\n \"nonce=xyz\";\r\n\r\n window.location = url;\r\n },\r\n\r\n getCurrentUser: function (callback) {\r\n var api = new Api(\"currentuser\");\r\n api.hasDefaultFilters = false;\r\n api.get().then(response => {\r\n var _user = response.data;\r\n _user.escolas = JSON.parse(_user.escolas)\r\n Cache.add(Global.USER_INFO, JSON.stringify(_user));\r\n setTimeout(() => { callback(_user) }, 500);\r\n });\r\n },\r\n\r\n currentUser: function () {\r\n var _user = JSON.parse(Cache.get(Global.USER_INFO));\r\n return _user;\r\n },\r\n\r\n logout: function () {\r\n\r\n var url = this.endsession_url + \"?\" +\r\n \"id_token_hint=\" + this.getToken() + \"&\" +\r\n \"post_logout_redirect_uri=\" + encodeURIComponent(this.post_logout_redirect_uri) + \"&\" +\r\n \"state=\" + encodeURIComponent(this.getState());\r\n\r\n this.reset();\r\n\r\n window.location = url;\r\n },\r\n\r\n processTokenCallback: function (callback) {\r\n\r\n if (window.location.href.indexOf(\"access_token\") < 0) {\r\n callback();\r\n return;\r\n }\r\n\r\n this.reset();\r\n\r\n var itens = window.location.hash.split('#');\r\n var result = itens[1].split('&').reduce(function (result, item) {\r\n var parts = item.split('=');\r\n result[parts[0]] = parts[1];\r\n return result;\r\n }, {});\r\n\r\n Cache.add(Global.ACCESS_TOKEN, result.access_token, result.expires_in);\r\n Cache.add(Global.ID_TOKEN, result.id_token, result.expires_in);\r\n\r\n setTimeout(() => {\r\n callback();\r\n }, 500);\r\n\r\n },\r\n\r\n claimsAddLoginSso: function (claim_type, claim_value) {\r\n\r\n Cache.add(Global.ID_STATE, Date.now());\r\n\r\n let url = this.addclaims_authorize_url + \"?\" +\r\n \"claims_type=\" + encodeURIComponent(claim_type) + \"&\" +\r\n \"claims_value=\" + encodeURIComponent(claim_value) + \"&\" +\r\n \"client_id=\" + encodeURIComponent(this.client_id) + \"&\" +\r\n \"redirect_uri=\" + encodeURIComponent(this.redirect_uri) + \"&\" +\r\n \"response_type=\" + encodeURIComponent(this.response_type) + \"&\" +\r\n \"scope=\" + encodeURIComponent(this.scope) + \"&\" +\r\n \"state=\" + encodeURIComponent(this.getState()) + \"&\" +\r\n \"nonce=xyz\";\r\n\r\n Cache.remove(Global.USER_INFO);\r\n\r\n window.location = url;\r\n },\r\n\r\n reset: function () {\r\n Cache.remove(Global.ACCESS_TOKEN);\r\n Cache.remove(Global.ID_TOKEN);\r\n Cache.remove(Global.USER_INFO);\r\n },\r\n\r\n getPermissoes: function () {\r\n var _fromcache = Cache.get(this.permissoes_key);\r\n return JSON.parse(_fromcache);\r\n },\r\n\r\n getMenu: function () {\r\n var _fromcache = Cache.get(this.menu_key);\r\n return JSON.parse(_fromcache);\r\n },\r\n\r\n getFotoUser: function () {\r\n var _fromcache = Cache.get(this.foto_key);\r\n return _fromcache;\r\n },\r\n\r\n canAccess: function (url) {\r\n\r\n var user = this.currentUser();\r\n if (!user || user.tenant != 276)\r\n return false;\r\n\r\n if (this.rotasRestritas.includes(url.split('/').pop()) &&\r\n (this.usuariosPermitidos.includes(user.email) == false && user.email.includes('@targetsoftware.com.br') == false)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n\r\n if (url == '' ||\r\n url == '/' ||\r\n url == '/home')\r\n return true;\r\n\r\n var permissions = this.getPermissoes();\r\n var can = false;\r\n\r\n if (url.endsWith(\"/\"))\r\n url = url.slice(0, -1)\r\n\r\n var rotaSplited = url.split('/');\r\n\r\n for (var key in permissions) {\r\n var splited = permissions[key].split('/');\r\n var todosparametrosbatem = false;\r\n for (var itemrota in rotaSplited) {\r\n if (splited[itemrota] == \"[parametro]\" || rotaSplited[itemrota] == splited[itemrota]) {\r\n todosparametrosbatem = true;\r\n }\r\n else {\r\n todosparametrosbatem = false;\r\n break;\r\n }\r\n }\r\n\r\n if (todosparametrosbatem) {\r\n can = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!can)\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n","export default {\r\n\r\n END_POINT_DEFAULT: process.env.VUE_APP_ENDPOINT_DEFAULT,\r\n END_POINT_PORTAL_CORPORATIVO: process.env.VUE_APP_END_POINT_PORTAL_CORPORATIVO,\r\n \r\n SSO_END_POINT: process.env.VUE_APP_ENDPOINT_SSO,\r\n\r\n SSO_REDIRECT_LOGIN_URL: process.env.VUE_APP_LOCATION_URL + \"authorized/?\",\r\n SSO_REDIRECT_LOGOUT_URL: \"https://www.cna.com.br\",\r\n\r\n SSO_CLIENT_ID: \"corporativo-spa\",\r\n SSO_RESPONSE_TYPE: \"id_token token\",\r\n SSO_SCOPE: \"openid ssocna profile email\",\r\n\r\n ACCESS_TOKEN: \"PFB_AC_T_X857D\",\r\n ID_TOKEN: \"PFB_ID_T_D98SW\",\r\n USER_INFO: \"PFB_U_I_D8D5D\",\r\n ID_STATE: \"PFB_ID_S_852PL\",\r\n\r\n CHAVE_IDENTIFICACAO_SISTEMA: \"PORTALFRANQUEADOR_BOX\",\r\n\r\n URL_PORTAL_CORPORATIVO: process.env.VUE_APP_PORTAL_CORPORATIVO,\r\n URL_DOWNLOAD: process.env.VUE_APP_ENDPOINT_DOWNLOAD + '/document/download/',\r\n\r\n PARAMETRO_TEMPO_DE_INATIVIDADE: 184,\r\n\r\n\r\n}\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG8AAAAqCAMAAACKjvWNAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAtZQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////E/HvlQAAAPJ0Uk5TAAEQIzE2NzQTBDg7HC8eCVC45Pf/ugjLdwp+R3j0QQzftg6J5+FcBor7TK/9XTm9/u3UvJ/5py1O5R1Ez1QZAwf1FuueQ85KZ67j3mSraMk/KdjHIEnI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\"","import Vue from 'vue'\r\nimport { Api } from '@/common/api'\r\n\r\nimport 'choices.js/public/assets/styles/choices.min.css'\r\nimport Choices from 'choices.js'\r\n\r\nfunction _addOption(el, text, value, selected, placeholder) {\r\n var option = document.createElement(\"option\");\r\n option.text = text;\r\n option.value = value;\r\n if (placeholder) option.setAttribute(\"placeholder\", true)\r\n if (selected) option.selected = true\r\n el.add(option);\r\n}\r\n\r\nfunction _addItems(el, items, value) {\r\n for (var i = 0; i < items.length; i++) {\r\n _addOption(el, items[i].name, items[i].id, items[i].id == value);\r\n }\r\n}\r\n\r\nVue.directive('select', {\r\n twoWay: true,\r\n inserted: (el, binding, vnode) => {\r\n\r\n let isMultiple = el.multiple;\r\n if (isMultiple == false && binding.value.default)\r\n _addOption(el, \" \" + binding.value.default, \"\", false, true);\r\n\r\n var resource = binding.value.dataitem + \"/dataitems\";\r\n\r\n var filters = {};\r\n if (binding.value.filters)\r\n filters = binding.value.filters;\r\n\r\n var api = new Api(resource);\r\n api.dataItem(filters).then(data => {\r\n\r\n var value = getVModelValue(vnode);\r\n\r\n if (data.dataList)\r\n _addItems(el, data.dataList, value);\r\n\r\n setTimeout(() => {\r\n\r\n const choices = new Choices(el, {\r\n placeholder: true,\r\n placeholderValue: \"Selecione...\",\r\n searchPlaceholderValue: \"Digite para buscar\",\r\n removeItems: true,\r\n removeItemButton: true,\r\n shouldSort: false,\r\n shouldSortItems: false,\r\n loadingText: 'Carregando...',\r\n noResultsText: 'Nenhum resultado encontrado',\r\n noChoicesText: 'Nenhum item para selecionar',\r\n itemSelectText: 'Clique para selecionar',\r\n searchResultLimit: 20,\r\n });\r\n\r\n //if (value) choices.setValue(value);\r\n\r\n el.oninvalid = () => {\r\n let elParent = el.parentElement;\r\n if (elParent) {\r\n elParent.style.cssText = `\r\n color: #b7291c !important;\r\n border-color: #dc3545 !important;\r\n padding-right: calc(1.5em + 0.75rem) !important;`\r\n }\r\n };\r\n\r\n el.onchange = () => {\r\n\r\n let wasValidated = el.closest(\".was-validated\");\r\n if (wasValidated) {\r\n let isValid = el.checkValidity();\r\n if (isValid) {\r\n let elParent = el.parentElement;\r\n if (elParent) elParent.style.cssText = '';\r\n }\r\n }\r\n\r\n };\r\n\r\n }, 500)\r\n\r\n });\r\n\r\n function findVModelName(vnode) {\r\n return vnode.data.directives.find(function (o) {\r\n return o.name === 'model';\r\n }).expression;\r\n }\r\n\r\n function getVModelValue(vnode) {\r\n var prop = findVModelName(vnode)\r\n return eval('vnode.context.' + prop)\r\n }\r\n\r\n }\r\n})","(function () {\r\nvar image = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\r\n\r\n var hasDimensions = function (editor) {\r\n return editor.settings.image_dimensions === false ? false : true;\r\n };\r\n var hasAdvTab = function (editor) {\r\n return editor.settings.image_advtab === true ? true : false;\r\n };\r\n var getPrependUrl = function (editor) {\r\n return editor.getParam('image_prepend_url', '');\r\n };\r\n var getClassList = function (editor) {\r\n return editor.getParam('image_class_list');\r\n };\r\n var hasDescription = function (editor) {\r\n return editor.settings.image_description === false ? false : true;\r\n };\r\n var hasImageTitle = function (editor) {\r\n return editor.settings.image_title === true ? true : false;\r\n };\r\n var hasImageCaption = function (editor) {\r\n return editor.settings.image_caption === true ? true : false;\r\n };\r\n var getImageList = function (editor) {\r\n return editor.getParam('image_list', false);\r\n };\r\n var hasUploadUrl = function (editor) {\r\n return editor.getParam('images_upload_url', false);\r\n };\r\n var hasUploadHandler = function (editor) {\r\n return editor.getParam('images_upload_handler', false);\r\n };\r\n var getUploadUrl = function (editor) {\r\n return editor.getParam('images_upload_url');\r\n };\r\n var getUploadHandler = function (editor) {\r\n return editor.getParam('images_upload_handler');\r\n };\r\n var getUploadBasePath = function (editor) {\r\n return editor.getParam('images_upload_base_path');\r\n };\r\n var getUploadCredentials = function (editor) {\r\n return editor.getParam('images_upload_credentials');\r\n };\r\n var $_gc1jdictjkmcwomd = {\r\n hasDimensions: hasDimensions,\r\n hasAdvTab: hasAdvTab,\r\n getPrependUrl: getPrependUrl,\r\n getClassList: getClassList,\r\n hasDescription: hasDescription,\r\n hasImageTitle: hasImageTitle,\r\n hasImageCaption: hasImageCaption,\r\n getImageList: getImageList,\r\n hasUploadUrl: hasUploadUrl,\r\n hasUploadHandler: hasUploadHandler,\r\n getUploadUrl: getUploadUrl,\r\n getUploadHandler: getUploadHandler,\r\n getUploadBasePath: getUploadBasePath,\r\n getUploadCredentials: getUploadCredentials\r\n };\r\n\r\n var Global = typeof window !== 'undefined' ? window : Function('return this;')();\r\n\r\n var path = function (parts, scope) {\r\n var o = scope !== undefined && scope !== null ? scope : Global;\r\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\r\n o = o[parts[i]];\r\n return o;\r\n };\r\n var resolve = function (p, scope) {\r\n var parts = p.split('.');\r\n return path(parts, scope);\r\n };\r\n\r\n var unsafe = function (name, scope) {\r\n return resolve(name, scope);\r\n };\r\n var getOrDie = function (name, scope) {\r\n var actual = unsafe(name, scope);\r\n if (actual === undefined || actual === null)\r\n throw name + ' not available on this browser';\r\n return actual;\r\n };\r\n var $_db9o2scwjkmcwomp = { getOrDie: getOrDie };\r\n\r\n function FileReader () {\r\n var f = $_db9o2scwjkmcwomp.getOrDie('FileReader');\r\n return new f();\r\n }\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');\r\n\r\n var parseIntAndGetMax = function (val1, val2) {\r\n return Math.max(parseInt(val1, 10), parseInt(val2, 10));\r\n };\r\n var getImageSize = function (url, callback) {\r\n var img = document.createElement('img');\r\n function done(width, height) {\r\n if (img.parentNode) {\r\n img.parentNode.removeChild(img);\r\n }\r\n callback({\r\n width: width,\r\n height: height\r\n });\r\n }\r\n img.onload = function () {\r\n var width = parseIntAndGetMax(img.width, img.clientWidth);\r\n var height = parseIntAndGetMax(img.height, img.clientHeight);\r\n done(width, height);\r\n };\r\n img.onerror = function () {\r\n done(0, 0);\r\n };\r\n var style = img.style;\r\n style.visibility = 'hidden';\r\n style.position = 'fixed';\r\n style.bottom = style.left = '0px';\r\n style.width = style.height = 'auto';\r\n document.body.appendChild(img);\r\n img.src = url;\r\n };\r\n var buildListItems = function (inputList, itemCallback, startItems) {\r\n function appendItems(values, output) {\r\n output = output || [];\r\n global$2.each(values, function (item) {\r\n var menuItem = { text: item.text || item.title };\r\n if (item.menu) {\r\n menuItem.menu = appendItems(item.menu);\r\n } else {\r\n menuItem.value = item.value;\r\n itemCallback(menuItem);\r\n }\r\n output.push(menuItem);\r\n });\r\n return output;\r\n }\r\n return appendItems(inputList, startItems || []);\r\n };\r\n var removePixelSuffix = function (value) {\r\n if (value) {\r\n value = value.replace(/px$/, '');\r\n }\r\n return value;\r\n };\r\n var addPixelSuffix = function (value) {\r\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\r\n value += 'px';\r\n }\r\n return value;\r\n };\r\n var mergeMargins = function (css) {\r\n if (css.margin) {\r\n var splitMargin = css.margin.split(' ');\r\n switch (splitMargin.length) {\r\n case 1:\r\n css['margin-top'] = css['margin-top'] || splitMargin[0];\r\n css['margin-right'] = css['margin-right'] || splitMargin[0];\r\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\r\n css['margin-left'] = css['margin-left'] || splitMargin[0];\r\n break;\r\n case 2:\r\n css['margin-top'] = css['margin-top'] || splitMargin[0];\r\n css['margin-right'] = css['margin-right'] || splitMargin[1];\r\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\r\n css['margin-left'] = css['margin-left'] || splitMargin[1];\r\n break;\r\n case 3:\r\n css['margin-top'] = css['margin-top'] || splitMargin[0];\r\n css['margin-right'] = css['margin-right'] || splitMargin[1];\r\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\r\n css['margin-left'] = css['margin-left'] || splitMargin[1];\r\n break;\r\n case 4:\r\n css['margin-top'] = css['margin-top'] || splitMargin[0];\r\n css['margin-right'] = css['margin-right'] || splitMargin[1];\r\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\r\n css['margin-left'] = css['margin-left'] || splitMargin[3];\r\n }\r\n delete css.margin;\r\n }\r\n return css;\r\n };\r\n var createImageList = function (editor, callback) {\r\n var imageList = $_gc1jdictjkmcwomd.getImageList(editor);\r\n if (typeof imageList === 'string') {\r\n global$3.send({\r\n url: imageList,\r\n success: function (text) {\r\n callback(JSON.parse(text));\r\n }\r\n });\r\n } else if (typeof imageList === 'function') {\r\n imageList(callback);\r\n } else {\r\n callback(imageList);\r\n }\r\n };\r\n var waitLoadImage = function (editor, data, imgElm) {\r\n function selectImage() {\r\n imgElm.onload = imgElm.onerror = null;\r\n if (editor.selection) {\r\n editor.selection.select(imgElm);\r\n editor.nodeChanged();\r\n }\r\n }\r\n imgElm.onload = function () {\r\n if (!data.width && !data.height && $_gc1jdictjkmcwomd.hasDimensions(editor)) {\r\n editor.dom.setAttribs(imgElm, {\r\n width: imgElm.clientWidth,\r\n height: imgElm.clientHeight\r\n });\r\n }\r\n selectImage();\r\n };\r\n imgElm.onerror = selectImage;\r\n };\r\n var blobToDataUri = function (blob) {\r\n return new global$1(function (resolve, reject) {\r\n var reader = new FileReader();\r\n reader.onload = function () {\r\n resolve(reader.result);\r\n };\r\n reader.onerror = function () {\r\n reject(FileReader.error.message);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n };\r\n var $_9v7cmwcujkmcwomi = {\r\n getImageSize: getImageSize,\r\n buildListItems: buildListItems,\r\n removePixelSuffix: removePixelSuffix,\r\n addPixelSuffix: addPixelSuffix,\r\n mergeMargins: mergeMargins,\r\n createImageList: createImageList,\r\n waitLoadImage: waitLoadImage,\r\n blobToDataUri: blobToDataUri\r\n };\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var hasOwnProperty = Object.prototype.hasOwnProperty;\r\n var shallow = function (old, nu) {\r\n return nu;\r\n };\r\n var baseMerge = function (merger) {\r\n return function () {\r\n var objects = new Array(arguments.length);\r\n for (var i = 0; i < objects.length; i++)\r\n objects[i] = arguments[i];\r\n if (objects.length === 0)\r\n throw new Error('Can\\'t merge zero objects');\r\n var ret = {};\r\n for (var j = 0; j < objects.length; j++) {\r\n var curObject = objects[j];\r\n for (var key in curObject)\r\n if (hasOwnProperty.call(curObject, key)) {\r\n ret[key] = merger(ret[key], curObject[key]);\r\n }\r\n }\r\n return ret;\r\n };\r\n };\r\n\r\n var merge = baseMerge(shallow);\r\n\r\n var DOM = global$4.DOM;\r\n var getHspace = function (image) {\r\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\r\n return $_9v7cmwcujkmcwomi.removePixelSuffix(image.style.marginLeft);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getVspace = function (image) {\r\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\r\n return $_9v7cmwcujkmcwomi.removePixelSuffix(image.style.marginTop);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getBorder = function (image) {\r\n if (image.style.borderWidth) {\r\n return $_9v7cmwcujkmcwomi.removePixelSuffix(image.style.borderWidth);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getAttrib = function (image, name$$1) {\r\n if (image.hasAttribute(name$$1)) {\r\n return image.getAttribute(name$$1);\r\n } else {\r\n return '';\r\n }\r\n };\r\n var getStyle = function (image, name$$1) {\r\n return image.style[name$$1] ? image.style[name$$1] : '';\r\n };\r\n var hasCaption = function (image) {\r\n return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\r\n };\r\n var setAttrib = function (image, name$$1, value) {\r\n image.setAttribute(name$$1, value);\r\n };\r\n var wrapInFigure = function (image) {\r\n var figureElm = DOM.create('figure', { class: 'image' });\r\n DOM.insertAfter(figureElm, image);\r\n figureElm.appendChild(image);\r\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));\r\n figureElm.contentEditable = 'false';\r\n };\r\n var removeFigure = function (image) {\r\n var figureElm = image.parentNode;\r\n DOM.insertAfter(image, figureElm);\r\n DOM.remove(figureElm);\r\n };\r\n var toggleCaption = function (image) {\r\n if (hasCaption(image)) {\r\n removeFigure(image);\r\n } else {\r\n wrapInFigure(image);\r\n }\r\n };\r\n var normalizeStyle = function (image, normalizeCss) {\r\n var attrValue = image.getAttribute('style');\r\n var value = normalizeCss(attrValue !== null ? attrValue : '');\r\n if (value.length > 0) {\r\n image.setAttribute('style', value);\r\n image.setAttribute('data-mce-style', value);\r\n } else {\r\n image.removeAttribute('style');\r\n }\r\n };\r\n var setSize = function (name$$1, normalizeCss) {\r\n return function (image, name$$1, value) {\r\n if (image.style[name$$1]) {\r\n image.style[name$$1] = $_9v7cmwcujkmcwomi.addPixelSuffix(value);\r\n normalizeStyle(image, normalizeCss);\r\n } else {\r\n setAttrib(image, name$$1, value);\r\n }\r\n };\r\n };\r\n var getSize = function (image, name$$1) {\r\n if (image.style[name$$1]) {\r\n return $_9v7cmwcujkmcwomi.removePixelSuffix(image.style[name$$1]);\r\n } else {\r\n return getAttrib(image, name$$1);\r\n }\r\n };\r\n var setHspace = function (image, value) {\r\n var pxValue = $_9v7cmwcujkmcwomi.addPixelSuffix(value);\r\n image.style.marginLeft = pxValue;\r\n image.style.marginRight = pxValue;\r\n };\r\n var setVspace = function (image, value) {\r\n var pxValue = $_9v7cmwcujkmcwomi.addPixelSuffix(value);\r\n image.style.marginTop = pxValue;\r\n image.style.marginBottom = pxValue;\r\n };\r\n var setBorder = function (image, value) {\r\n var pxValue = $_9v7cmwcujkmcwomi.addPixelSuffix(value);\r\n image.style.borderWidth = pxValue;\r\n };\r\n var setBorderStyle = function (image, value) {\r\n image.style.borderStyle = value;\r\n };\r\n var getBorderStyle = function (image) {\r\n return getStyle(image, 'borderStyle');\r\n };\r\n var isFigure = function (elm) {\r\n return elm.nodeName === 'FIGURE';\r\n };\r\n var defaultData = function () {\r\n return {\r\n src: '',\r\n alt: '',\r\n title: '',\r\n width: '',\r\n height: '',\r\n class: '',\r\n style: '',\r\n caption: false,\r\n hspace: '',\r\n vspace: '',\r\n border: '',\r\n borderStyle: ''\r\n };\r\n };\r\n var getStyleValue = function (normalizeCss, data) {\r\n var image = document.createElement('img');\r\n setAttrib(image, 'style', data.style);\r\n if (getHspace(image) || data.hspace !== '') {\r\n setHspace(image, data.hspace);\r\n }\r\n if (getVspace(image) || data.vspace !== '') {\r\n setVspace(image, data.vspace);\r\n }\r\n if (getBorder(image) || data.border !== '') {\r\n setBorder(image, data.border);\r\n }\r\n if (getBorderStyle(image) || data.borderStyle !== '') {\r\n setBorderStyle(image, data.borderStyle);\r\n }\r\n return normalizeCss(image.getAttribute('style'));\r\n };\r\n var create = function (normalizeCss, data) {\r\n var image = document.createElement('img');\r\n write(normalizeCss, merge(data, { caption: false }), image);\r\n setAttrib(image, 'alt', data.alt);\r\n if (data.caption) {\r\n var figure = DOM.create('figure', { class: 'image' });\r\n figure.appendChild(image);\r\n figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));\r\n figure.contentEditable = 'false';\r\n return figure;\r\n } else {\r\n return image;\r\n }\r\n };\r\n var read = function (normalizeCss, image) {\r\n return {\r\n src: getAttrib(image, 'src'),\r\n alt: getAttrib(image, 'alt'),\r\n title: getAttrib(image, 'title'),\r\n width: getSize(image, 'width'),\r\n height: getSize(image, 'height'),\r\n class: getAttrib(image, 'class'),\r\n style: normalizeCss(getAttrib(image, 'style')),\r\n caption: hasCaption(image),\r\n hspace: getHspace(image),\r\n vspace: getVspace(image),\r\n border: getBorder(image),\r\n borderStyle: getStyle(image, 'borderStyle')\r\n };\r\n };\r\n var updateProp = function (image, oldData, newData, name$$1, set) {\r\n if (newData[name$$1] !== oldData[name$$1]) {\r\n set(image, name$$1, newData[name$$1]);\r\n }\r\n };\r\n var normalized = function (set, normalizeCss) {\r\n return function (image, name$$1, value) {\r\n set(image, value);\r\n normalizeStyle(image, normalizeCss);\r\n };\r\n };\r\n var write = function (normalizeCss, newData, image) {\r\n var oldData = read(normalizeCss, image);\r\n updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {\r\n return toggleCaption(image);\r\n });\r\n updateProp(image, oldData, newData, 'src', setAttrib);\r\n updateProp(image, oldData, newData, 'alt', setAttrib);\r\n updateProp(image, oldData, newData, 'title', setAttrib);\r\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\r\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\r\n updateProp(image, oldData, newData, 'class', setAttrib);\r\n updateProp(image, oldData, newData, 'style', normalized(function (image, value) {\r\n return setAttrib(image, 'style', value);\r\n }, normalizeCss));\r\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\r\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\r\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\r\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\r\n };\r\n\r\n var normalizeCss = function (editor, cssText) {\r\n var css = editor.dom.styles.parse(cssText);\r\n var mergedCss = $_9v7cmwcujkmcwomi.mergeMargins(css);\r\n var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\r\n return editor.dom.styles.serialize(compressed);\r\n };\r\n var getSelectedImage = function (editor) {\r\n var imgElm = editor.selection.getNode();\r\n var figureElm = editor.dom.getParent(imgElm, 'figure.image');\r\n if (figureElm) {\r\n return editor.dom.select('img', figureElm)[0];\r\n }\r\n if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) {\r\n return null;\r\n }\r\n return imgElm;\r\n };\r\n var splitTextBlock = function (editor, figure) {\r\n var dom = editor.dom;\r\n var textBlock = dom.getParent(figure.parentNode, function (node) {\r\n return editor.schema.getTextBlockElements()[node.nodeName];\r\n });\r\n if (textBlock) {\r\n return dom.split(textBlock, figure);\r\n } else {\r\n return figure;\r\n }\r\n };\r\n var readImageDataFromSelection = function (editor) {\r\n var image = getSelectedImage(editor);\r\n return image ? read(function (css) {\r\n return normalizeCss(editor, css);\r\n }, image) : defaultData();\r\n };\r\n var insertImageAtCaret = function (editor, data) {\r\n var elm = create(function (css) {\r\n return normalizeCss(editor, css);\r\n }, data);\r\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\r\n editor.focus();\r\n editor.selection.setContent(elm.outerHTML);\r\n var insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\r\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\r\n if (isFigure(insertedElm)) {\r\n var figure = splitTextBlock(editor, insertedElm);\r\n editor.selection.select(figure);\r\n } else {\r\n editor.selection.select(insertedElm);\r\n }\r\n };\r\n var syncSrcAttr = function (editor, image) {\r\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\r\n };\r\n var deleteImage = function (editor, image) {\r\n if (image) {\r\n var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\r\n editor.dom.remove(elm);\r\n editor.focus();\r\n editor.nodeChanged();\r\n if (editor.dom.isEmpty(editor.getBody())) {\r\n editor.setContent('');\r\n editor.selection.setCursorLocation();\r\n }\r\n }\r\n };\r\n var writeImageDataToSelection = function (editor, data) {\r\n var image = getSelectedImage(editor);\r\n write(function (css) {\r\n return normalizeCss(editor, css);\r\n }, data, image);\r\n syncSrcAttr(editor, image);\r\n if (isFigure(image.parentNode)) {\r\n var figure = image.parentNode;\r\n splitTextBlock(editor, figure);\r\n editor.selection.select(image.parentNode);\r\n } else {\r\n editor.selection.select(image);\r\n $_9v7cmwcujkmcwomi.waitLoadImage(editor, data, image);\r\n }\r\n };\r\n var insertOrUpdateImage = function (editor, data) {\r\n var image = getSelectedImage(editor);\r\n if (image) {\r\n if (data.src) {\r\n writeImageDataToSelection(editor, data);\r\n } else {\r\n deleteImage(editor, image);\r\n }\r\n } else if (data.src) {\r\n insertImageAtCaret(editor, data);\r\n }\r\n };\r\n\r\n var updateVSpaceHSpaceBorder = function (editor) {\r\n return function (evt) {\r\n var dom = editor.dom;\r\n var rootControl = evt.control.rootControl;\r\n if (!$_gc1jdictjkmcwomd.hasAdvTab(editor)) {\r\n return;\r\n }\r\n var data = rootControl.toJSON();\r\n var css = dom.parseStyle(data.style);\r\n rootControl.find('#vspace').value('');\r\n rootControl.find('#hspace').value('');\r\n css = $_9v7cmwcujkmcwomi.mergeMargins(css);\r\n if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) {\r\n if (css['margin-top'] === css['margin-bottom']) {\r\n rootControl.find('#vspace').value($_9v7cmwcujkmcwomi.removePixelSuffix(css['margin-top']));\r\n } else {\r\n rootControl.find('#vspace').value('');\r\n }\r\n if (css['margin-right'] === css['margin-left']) {\r\n rootControl.find('#hspace').value($_9v7cmwcujkmcwomi.removePixelSuffix(css['margin-right']));\r\n } else {\r\n rootControl.find('#hspace').value('');\r\n }\r\n }\r\n if (css['border-width']) {\r\n rootControl.find('#border').value($_9v7cmwcujkmcwomi.removePixelSuffix(css['border-width']));\r\n } else {\r\n rootControl.find('#border').value('');\r\n }\r\n if (css['border-style']) {\r\n rootControl.find('#borderStyle').value(css['border-style']);\r\n } else {\r\n rootControl.find('#borderStyle').value('');\r\n }\r\n rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));\r\n };\r\n };\r\n var updateStyle = function (editor, win) {\r\n win.find('#style').each(function (ctrl) {\r\n var value = getStyleValue(function (css) {\r\n return normalizeCss(editor, css);\r\n }, merge(defaultData(), win.toJSON()));\r\n ctrl.value(value);\r\n });\r\n };\r\n var makeTab = function (editor) {\r\n return {\r\n title: 'Advanced',\r\n type: 'form',\r\n pack: 'start',\r\n items: [\r\n {\r\n label: 'Style',\r\n name: 'style',\r\n type: 'textbox',\r\n onchange: updateVSpaceHSpaceBorder(editor)\r\n },\r\n {\r\n type: 'form',\r\n layout: 'grid',\r\n packV: 'start',\r\n columns: 2,\r\n padding: 0,\r\n defaults: {\r\n type: 'textbox',\r\n maxWidth: 50,\r\n onchange: function (evt) {\r\n updateStyle(editor, evt.control.rootControl);\r\n }\r\n },\r\n items: [\r\n {\r\n label: 'Vertical space',\r\n name: 'vspace'\r\n },\r\n {\r\n label: 'Border width',\r\n name: 'border'\r\n },\r\n {\r\n label: 'Horizontal space',\r\n name: 'hspace'\r\n },\r\n {\r\n label: 'Border style',\r\n type: 'listbox',\r\n name: 'borderStyle',\r\n width: 90,\r\n maxWidth: 90,\r\n onselect: function (evt) {\r\n updateStyle(editor, evt.control.rootControl);\r\n },\r\n values: [\r\n {\r\n text: 'Select...',\r\n value: ''\r\n },\r\n {\r\n text: 'Solid',\r\n value: 'solid'\r\n },\r\n {\r\n text: 'Dotted',\r\n value: 'dotted'\r\n },\r\n {\r\n text: 'Dashed',\r\n value: 'dashed'\r\n },\r\n {\r\n text: 'Double',\r\n value: 'double'\r\n },\r\n {\r\n text: 'Groove',\r\n value: 'groove'\r\n },\r\n {\r\n text: 'Ridge',\r\n value: 'ridge'\r\n },\r\n {\r\n text: 'Inset',\r\n value: 'inset'\r\n },\r\n {\r\n text: 'Outset',\r\n value: 'outset'\r\n },\r\n {\r\n text: 'None',\r\n value: 'none'\r\n },\r\n {\r\n text: 'Hidden',\r\n value: 'hidden'\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n };\r\n var $_4qd61kd3jkmcwonl = { makeTab: makeTab };\r\n\r\n var doSyncSize = function (widthCtrl, heightCtrl) {\r\n widthCtrl.state.set('oldVal', widthCtrl.value());\r\n heightCtrl.state.set('oldVal', heightCtrl.value());\r\n };\r\n var doSizeControls = function (win, f) {\r\n var widthCtrl = win.find('#width')[0];\r\n var heightCtrl = win.find('#height')[0];\r\n var constrained = win.find('#constrain')[0];\r\n if (widthCtrl && heightCtrl && constrained) {\r\n f(widthCtrl, heightCtrl, constrained.checked());\r\n }\r\n };\r\n var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) {\r\n var oldWidth = widthCtrl.state.get('oldVal');\r\n var oldHeight = heightCtrl.state.get('oldVal');\r\n var newWidth = widthCtrl.value();\r\n var newHeight = heightCtrl.value();\r\n if (isContrained && oldWidth && oldHeight && newWidth && newHeight) {\r\n if (newWidth !== oldWidth) {\r\n newHeight = Math.round(newWidth / oldWidth * newHeight);\r\n if (!isNaN(newHeight)) {\r\n heightCtrl.value(newHeight);\r\n }\r\n } else {\r\n newWidth = Math.round(newHeight / oldHeight * newWidth);\r\n if (!isNaN(newWidth)) {\r\n widthCtrl.value(newWidth);\r\n }\r\n }\r\n }\r\n doSyncSize(widthCtrl, heightCtrl);\r\n };\r\n var syncSize = function (win) {\r\n doSizeControls(win, doSyncSize);\r\n };\r\n var updateSize = function (win) {\r\n doSizeControls(win, doUpdateSize);\r\n };\r\n var createUi = function () {\r\n var recalcSize = function (evt) {\r\n updateSize(evt.control.rootControl);\r\n };\r\n return {\r\n type: 'container',\r\n label: 'Dimensions',\r\n layout: 'flex',\r\n align: 'center',\r\n spacing: 5,\r\n items: [\r\n {\r\n name: 'width',\r\n type: 'textbox',\r\n maxLength: 5,\r\n size: 5,\r\n onchange: recalcSize,\r\n ariaLabel: 'Width'\r\n },\r\n {\r\n type: 'label',\r\n text: 'x'\r\n },\r\n {\r\n name: 'height',\r\n type: 'textbox',\r\n maxLength: 5,\r\n size: 5,\r\n onchange: recalcSize,\r\n ariaLabel: 'Height'\r\n },\r\n {\r\n name: 'constrain',\r\n type: 'checkbox',\r\n checked: true,\r\n text: 'Constrain proportions'\r\n }\r\n ]\r\n };\r\n };\r\n var $_14kdtjdajkmcwoo8 = {\r\n createUi: createUi,\r\n syncSize: syncSize,\r\n updateSize: updateSize\r\n };\r\n\r\n var onSrcChange = function (evt, editor) {\r\n var srcURL, prependURL, absoluteURLPattern;\r\n var meta = evt.meta || {};\r\n var control = evt.control;\r\n var rootControl = control.rootControl;\r\n var imageListCtrl = rootControl.find('#image-list')[0];\r\n if (imageListCtrl) {\r\n imageListCtrl.value(editor.convertURL(control.value(), 'src'));\r\n }\r\n global$2.each(meta, function (value, key) {\r\n rootControl.find('#' + key).value(value);\r\n });\r\n if (!meta.width && !meta.height) {\r\n srcURL = editor.convertURL(control.value(), 'src');\r\n prependURL = $_gc1jdictjkmcwomd.getPrependUrl(editor);\r\n absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) {\r\n srcURL = prependURL + srcURL;\r\n }\r\n control.value(srcURL);\r\n $_9v7cmwcujkmcwomi.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) {\r\n if (data.width && data.height && $_gc1jdictjkmcwomd.hasDimensions(editor)) {\r\n rootControl.find('#width').value(data.width);\r\n rootControl.find('#height').value(data.height);\r\n $_14kdtjdajkmcwoo8.syncSize(rootControl);\r\n }\r\n });\r\n }\r\n };\r\n var onBeforeCall = function (evt) {\r\n evt.meta = evt.control.rootControl.toJSON();\r\n };\r\n var getGeneralItems = function (editor, imageListCtrl) {\r\n var generalFormItems = [\r\n {\r\n name: 'src',\r\n type: 'filepicker',\r\n filetype: 'image',\r\n label: 'Source',\r\n autofocus: true,\r\n onchange: function (evt) {\r\n onSrcChange(evt, editor);\r\n },\r\n onbeforecall: onBeforeCall\r\n },\r\n imageListCtrl\r\n ];\r\n if ($_gc1jdictjkmcwomd.hasDescription(editor)) {\r\n generalFormItems.push({\r\n name: 'alt',\r\n type: 'textbox',\r\n label: 'Image description'\r\n });\r\n }\r\n if ($_gc1jdictjkmcwomd.hasImageTitle(editor)) {\r\n generalFormItems.push({\r\n name: 'title',\r\n type: 'textbox',\r\n label: 'Image Title'\r\n });\r\n }\r\n if ($_gc1jdictjkmcwomd.hasDimensions(editor)) {\r\n generalFormItems.push($_14kdtjdajkmcwoo8.createUi());\r\n }\r\n if ($_gc1jdictjkmcwomd.getClassList(editor)) {\r\n generalFormItems.push({\r\n name: 'class',\r\n type: 'listbox',\r\n label: 'Class',\r\n values: $_9v7cmwcujkmcwomi.buildListItems($_gc1jdictjkmcwomd.getClassList(editor), function (item) {\r\n if (item.value) {\r\n item.textStyle = function () {\r\n return editor.formatter.getCssText({\r\n inline: 'img',\r\n classes: [item.value]\r\n });\r\n };\r\n }\r\n })\r\n });\r\n }\r\n if ($_gc1jdictjkmcwomd.hasImageCaption(editor)) {\r\n generalFormItems.push({\r\n name: 'caption',\r\n type: 'checkbox',\r\n label: 'Caption'\r\n });\r\n }\r\n return generalFormItems;\r\n };\r\n var makeTab$1 = function (editor, imageListCtrl) {\r\n return {\r\n title: 'General',\r\n type: 'form',\r\n items: getGeneralItems(editor, imageListCtrl)\r\n };\r\n };\r\n var $_bpqbuud9jkmcwoo5 = {\r\n makeTab: makeTab$1,\r\n getGeneralItems: getGeneralItems\r\n };\r\n\r\n var url = function () {\r\n return $_db9o2scwjkmcwomp.getOrDie('URL');\r\n };\r\n var createObjectURL = function (blob) {\r\n return url().createObjectURL(blob);\r\n };\r\n var revokeObjectURL = function (u) {\r\n url().revokeObjectURL(u);\r\n };\r\n var $_e8tsx4dcjkmcwooe = {\r\n createObjectURL: createObjectURL,\r\n revokeObjectURL: revokeObjectURL\r\n };\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.ui.Factory');\r\n\r\n function XMLHttpRequest () {\r\n var f = $_db9o2scwjkmcwomp.getOrDie('XMLHttpRequest');\r\n return new f();\r\n }\r\n\r\n var noop = function () {\r\n };\r\n var pathJoin = function (path1, path2) {\r\n if (path1) {\r\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\r\n }\r\n return path2;\r\n };\r\n function Uploader (settings) {\r\n var defaultHandler = function (blobInfo, success, failure, progress) {\r\n var xhr, formData;\r\n xhr = new XMLHttpRequest();\r\n xhr.open('POST', settings.url);\r\n xhr.withCredentials = settings.credentials;\r\n xhr.upload.onprogress = function (e) {\r\n progress(e.loaded / e.total * 100);\r\n };\r\n xhr.onerror = function () {\r\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\r\n };\r\n xhr.onload = function () {\r\n var json;\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n failure('HTTP Error: ' + xhr.status);\r\n return;\r\n }\r\n json = JSON.parse(xhr.responseText);\r\n if (!json || typeof json.location !== 'string') {\r\n failure('Invalid JSON: ' + xhr.responseText);\r\n return;\r\n }\r\n success(pathJoin(settings.basePath, json.location));\r\n };\r\n formData = new FormData();\r\n formData.append('file', blobInfo.blob(), blobInfo.filename());\r\n xhr.send(formData);\r\n };\r\n var uploadBlob = function (blobInfo, handler) {\r\n return new global$1(function (resolve, reject) {\r\n try {\r\n handler(blobInfo, resolve, reject, noop);\r\n } catch (ex) {\r\n reject(ex.message);\r\n }\r\n });\r\n };\r\n var isDefaultHandler = function (handler) {\r\n return handler === defaultHandler;\r\n };\r\n var upload = function (blobInfo) {\r\n return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler);\r\n };\r\n settings = global$2.extend({\r\n credentials: false,\r\n handler: defaultHandler\r\n }, settings);\r\n return { upload: upload };\r\n }\r\n\r\n var onFileInput = function (editor) {\r\n return function (evt) {\r\n var Throbber = global$5.get('Throbber');\r\n var rootControl = evt.control.rootControl;\r\n var throbber = new Throbber(rootControl.getEl());\r\n var file = evt.control.value();\r\n var blobUri = $_e8tsx4dcjkmcwooe.createObjectURL(file);\r\n var uploader = Uploader({\r\n url: $_gc1jdictjkmcwomd.getUploadUrl(editor),\r\n basePath: $_gc1jdictjkmcwomd.getUploadBasePath(editor),\r\n credentials: $_gc1jdictjkmcwomd.getUploadCredentials(editor),\r\n handler: $_gc1jdictjkmcwomd.getUploadHandler(editor)\r\n });\r\n var finalize = function () {\r\n throbber.hide();\r\n $_e8tsx4dcjkmcwooe.revokeObjectURL(blobUri);\r\n };\r\n throbber.show();\r\n return $_9v7cmwcujkmcwomi.blobToDataUri(file).then(function (dataUrl) {\r\n var blobInfo = editor.editorUpload.blobCache.create({\r\n blob: file,\r\n blobUri: blobUri,\r\n name: file.name ? file.name.replace(/\\.[^\\.]+$/, '') : null,\r\n base64: dataUrl.split(',')[1]\r\n });\r\n return uploader.upload(blobInfo).then(function (url) {\r\n var src = rootControl.find('#src');\r\n src.value(url);\r\n rootControl.find('tabpanel')[0].activateTab(0);\r\n src.fire('change');\r\n finalize();\r\n return url;\r\n });\r\n }).catch(function (err) {\r\n editor.windowManager.alert(err);\r\n finalize();\r\n });\r\n };\r\n };\r\n var acceptExts = '.jpg,.jpeg,.png,.gif';\r\n var makeTab$2 = function (editor) {\r\n return {\r\n title: 'Upload',\r\n type: 'form',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n padding: '20 20 20 20',\r\n items: [\r\n {\r\n type: 'container',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'center',\r\n spacing: 10,\r\n items: [\r\n {\r\n text: 'Browse for an image',\r\n type: 'browsebutton',\r\n accept: acceptExts,\r\n onchange: onFileInput(editor)\r\n },\r\n {\r\n text: 'OR',\r\n type: 'label'\r\n }\r\n ]\r\n },\r\n {\r\n text: 'Drop an image here',\r\n type: 'dropzone',\r\n accept: acceptExts,\r\n height: 100,\r\n onchange: onFileInput(editor)\r\n }\r\n ]\r\n };\r\n };\r\n var $_26ghgddbjkmcwooa = { makeTab: makeTab$2 };\r\n\r\n var curry = function (f) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = new Array(arguments.length - 1);\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var newArgs = new Array(arguments.length);\r\n for (var j = 0; j < newArgs.length; j++)\r\n newArgs[j] = arguments[j];\r\n var all = args.concat(newArgs);\r\n return f.apply(null, all);\r\n };\r\n };\r\n\r\n var submitForm = function (editor, evt) {\r\n var win = evt.control.getRoot();\r\n $_14kdtjdajkmcwoo8.updateSize(win);\r\n editor.undoManager.transact(function () {\r\n var data = merge(readImageDataFromSelection(editor), win.toJSON());\r\n insertOrUpdateImage(editor, data);\r\n });\r\n editor.editorUpload.uploadImagesAuto();\r\n };\r\n function Dialog (editor) {\r\n function showDialog(imageList) {\r\n var data = readImageDataFromSelection(editor);\r\n var win, imageListCtrl;\r\n if (imageList) {\r\n imageListCtrl = {\r\n type: 'listbox',\r\n label: 'Image list',\r\n name: 'image-list',\r\n values: $_9v7cmwcujkmcwomi.buildListItems(imageList, function (item) {\r\n item.value = editor.convertURL(item.value || item.url, 'src');\r\n }, [{\r\n text: 'None',\r\n value: ''\r\n }]),\r\n value: data.src && editor.convertURL(data.src, 'src'),\r\n onselect: function (e) {\r\n var altCtrl = win.find('#alt');\r\n if (!altCtrl.value() || e.lastControl && altCtrl.value() === e.lastControl.text()) {\r\n altCtrl.value(e.control.text());\r\n }\r\n win.find('#src').value(e.control.value()).fire('change');\r\n },\r\n onPostRender: function () {\r\n imageListCtrl = this;\r\n }\r\n };\r\n }\r\n if ($_gc1jdictjkmcwomd.hasAdvTab(editor) || $_gc1jdictjkmcwomd.hasUploadUrl(editor) || $_gc1jdictjkmcwomd.hasUploadHandler(editor)) {\r\n var body = [$_bpqbuud9jkmcwoo5.makeTab(editor, imageListCtrl)];\r\n if ($_gc1jdictjkmcwomd.hasAdvTab(editor)) {\r\n body.push($_4qd61kd3jkmcwonl.makeTab(editor));\r\n }\r\n if ($_gc1jdictjkmcwomd.hasUploadUrl(editor) || $_gc1jdictjkmcwomd.hasUploadHandler(editor)) {\r\n body.push($_26ghgddbjkmcwooa.makeTab(editor));\r\n }\r\n win = editor.windowManager.open({\r\n title: 'Insert/edit image',\r\n data: data,\r\n bodyType: 'tabpanel',\r\n body: body,\r\n onSubmit: curry(submitForm, editor)\r\n });\r\n } else {\r\n win = editor.windowManager.open({\r\n title: 'Insert/edit image',\r\n data: data,\r\n body: $_bpqbuud9jkmcwoo5.getGeneralItems(editor, imageListCtrl),\r\n onSubmit: curry(submitForm, editor)\r\n });\r\n }\r\n $_14kdtjdajkmcwoo8.syncSize(win);\r\n }\r\n function open() {\r\n $_9v7cmwcujkmcwomi.createImageList(editor, showDialog);\r\n }\r\n return { open: open };\r\n }\r\n\r\n var register = function (editor) {\r\n editor.addCommand('mceImage', Dialog(editor).open);\r\n };\r\n var $_cwg86qcrjkmcwom6 = { register: register };\r\n\r\n var hasImageClass = function (node) {\r\n var className = node.attr('class');\r\n return className && /\\bimage\\b/.test(className);\r\n };\r\n var toggleContentEditableState = function (state) {\r\n return function (nodes) {\r\n var i = nodes.length, node;\r\n var toggleContentEditable = function (node) {\r\n node.attr('contenteditable', state ? 'true' : null);\r\n };\r\n while (i--) {\r\n node = nodes[i];\r\n if (hasImageClass(node)) {\r\n node.attr('contenteditable', state ? 'false' : null);\r\n global$2.each(node.getAll('figcaption'), toggleContentEditable);\r\n }\r\n }\r\n };\r\n };\r\n var setup = function (editor) {\r\n editor.on('preInit', function () {\r\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\r\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\r\n });\r\n };\r\n var $_8m7aavdhjkmcwooq = { setup: setup };\r\n\r\n var register$1 = function (editor) {\r\n editor.addButton('image', {\r\n icon: 'image',\r\n tooltip: 'Insert/edit image',\r\n onclick: Dialog(editor).open,\r\n stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image'\r\n });\r\n editor.addMenuItem('image', {\r\n icon: 'image',\r\n text: 'Image',\r\n onclick: Dialog(editor).open,\r\n context: 'insert',\r\n prependToContext: true\r\n });\r\n };\r\n var $_2zobs0dijkmcwoos = { register: register$1 };\r\n\r\n global.add('image', function (editor) {\r\n $_8m7aavdhjkmcwooq.setup(editor);\r\n $_2zobs0dijkmcwoos.register(editor);\r\n $_cwg86qcrjkmcwom6.register(editor);\r\n });\r\n function Plugin () {\r\n }\r\n\r\n return Plugin;\r\n\r\n}());\r\n})();\r\n","(function () {\r\nvar modern = (function () {\r\n 'use strict';\r\n\r\n var global = tinymce.util.Tools.resolve('tinymce.ThemeManager');\r\n\r\n var global$1 = tinymce.util.Tools.resolve('tinymce.EditorManager');\r\n\r\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\r\n\r\n var isBrandingEnabled = function (editor) {\r\n return editor.getParam('branding', true, 'boolean');\r\n };\r\n var hasMenubar = function (editor) {\r\n return getMenubar(editor) !== false;\r\n };\r\n var getMenubar = function (editor) {\r\n return editor.getParam('menubar');\r\n };\r\n var hasStatusbar = function (editor) {\r\n return editor.getParam('statusbar', true, 'boolean');\r\n };\r\n var getToolbarSize = function (editor) {\r\n return editor.getParam('toolbar_items_size');\r\n };\r\n var isReadOnly = function (editor) {\r\n return editor.getParam('readonly', false, 'boolean');\r\n };\r\n var getFixedToolbarContainer = function (editor) {\r\n return editor.getParam('fixed_toolbar_container');\r\n };\r\n var getInlineToolbarPositionHandler = function (editor) {\r\n return editor.getParam('inline_toolbar_position_handler');\r\n };\r\n var getMenu = function (editor) {\r\n return editor.getParam('menu');\r\n };\r\n var getRemovedMenuItems = function (editor) {\r\n return editor.getParam('removed_menuitems', '');\r\n };\r\n var getMinWidth = function (editor) {\r\n return editor.getParam('min_width', 100, 'number');\r\n };\r\n var getMinHeight = function (editor) {\r\n return editor.getParam('min_height', 100, 'number');\r\n };\r\n var getMaxWidth = function (editor) {\r\n return editor.getParam('max_width', 65535, 'number');\r\n };\r\n var getMaxHeight = function (editor) {\r\n return editor.getParam('max_height', 65535, 'number');\r\n };\r\n var isSkinDisabled = function (editor) {\r\n return editor.settings.skin === false;\r\n };\r\n var isInline = function (editor) {\r\n return editor.getParam('inline', false, 'boolean');\r\n };\r\n var getResize = function (editor) {\r\n var resize = editor.getParam('resize', 'vertical');\r\n if (resize === false) {\r\n return 'none';\r\n } else if (resize === 'both') {\r\n return 'both';\r\n } else {\r\n return 'vertical';\r\n }\r\n };\r\n var getSkinUrl = function (editor) {\r\n var settings = editor.settings;\r\n var skin = settings.skin;\r\n var skinUrl = settings.skin_url;\r\n if (skin !== false) {\r\n var skinName = skin ? skin : 'lightgray';\r\n if (skinUrl) {\r\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\r\n } else {\r\n skinUrl = global$1.baseURL + '/skins/' + skinName;\r\n }\r\n }\r\n return skinUrl;\r\n };\r\n var getIndexedToolbars = function (settings, defaultToolbar) {\r\n var toolbars = [];\r\n for (var i = 1; i < 10; i++) {\r\n var toolbar = settings['toolbar' + i];\r\n if (!toolbar) {\r\n break;\r\n }\r\n toolbars.push(toolbar);\r\n }\r\n var mainToolbar = settings.toolbar ? [settings.toolbar] : [defaultToolbar];\r\n return toolbars.length > 0 ? toolbars : mainToolbar;\r\n };\r\n var getToolbars = function (editor) {\r\n var toolbar = editor.getParam('toolbar');\r\n var defaultToolbar = 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image';\r\n if (toolbar === false) {\r\n return [];\r\n } else if (global$2.isArray(toolbar)) {\r\n return global$2.grep(toolbar, function (toolbar) {\r\n return toolbar.length > 0;\r\n });\r\n } else {\r\n return getIndexedToolbars(editor.settings, defaultToolbar);\r\n }\r\n };\r\n\r\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\r\n\r\n var global$4 = tinymce.util.Tools.resolve('tinymce.ui.Factory');\r\n\r\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.I18n');\r\n\r\n var fireSkinLoaded = function (editor) {\r\n return editor.fire('SkinLoaded');\r\n };\r\n var fireResizeEditor = function (editor) {\r\n return editor.fire('ResizeEditor');\r\n };\r\n var fireBeforeRenderUI = function (editor) {\r\n return editor.fire('BeforeRenderUI');\r\n };\r\n var $_1jkxpltzjkmcwsg4 = {\r\n fireSkinLoaded: fireSkinLoaded,\r\n fireResizeEditor: fireResizeEditor,\r\n fireBeforeRenderUI: fireBeforeRenderUI\r\n };\r\n\r\n var focus = function (panel, type) {\r\n return function () {\r\n var item = panel.find(type)[0];\r\n if (item) {\r\n item.focus(true);\r\n }\r\n };\r\n };\r\n var addKeys = function (editor, panel) {\r\n editor.shortcuts.add('Alt+F9', '', focus(panel, 'menubar'));\r\n editor.shortcuts.add('Alt+F10,F10', '', focus(panel, 'toolbar'));\r\n editor.shortcuts.add('Alt+F11', '', focus(panel, 'elementpath'));\r\n panel.on('cancel', function () {\r\n editor.focus();\r\n });\r\n };\r\n var $_1mdekmu0jkmcwsg5 = { addKeys: addKeys };\r\n\r\n var global$6 = tinymce.util.Tools.resolve('tinymce.geom.Rect');\r\n\r\n var global$7 = tinymce.util.Tools.resolve('tinymce.util.Delay');\r\n\r\n var noop = function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n };\r\n\r\n var compose = function (fa, fb) {\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n return fa(fb.apply(null, arguments));\r\n };\r\n };\r\n var constant = function (value) {\r\n return function () {\r\n return value;\r\n };\r\n };\r\n\r\n\r\n var curry = function (f) {\r\n var x = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n x[_i - 1] = arguments[_i];\r\n }\r\n var args = new Array(arguments.length - 1);\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n return function () {\r\n var x = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n x[_i] = arguments[_i];\r\n }\r\n var newArgs = new Array(arguments.length);\r\n for (var j = 0; j < newArgs.length; j++)\r\n newArgs[j] = arguments[j];\r\n var all = args.concat(newArgs);\r\n return f.apply(null, all);\r\n };\r\n };\r\n\r\n\r\n\r\n\r\n var never = constant(false);\r\n var always = constant(true);\r\n\r\n var never$1 = never;\r\n var always$1 = always;\r\n var none = function () {\r\n return NONE;\r\n };\r\n var NONE = function () {\r\n var eq = function (o) {\r\n return o.isNone();\r\n };\r\n var call$$1 = function (thunk) {\r\n return thunk();\r\n };\r\n var id = function (n) {\r\n return n;\r\n };\r\n var noop$$1 = function () {\r\n };\r\n var nul = function () {\r\n return null;\r\n };\r\n var undef = function () {\r\n return undefined;\r\n };\r\n var me = {\r\n fold: function (n, s) {\r\n return n();\r\n },\r\n is: never$1,\r\n isSome: never$1,\r\n isNone: always$1,\r\n getOr: id,\r\n getOrThunk: call$$1,\r\n getOrDie: function (msg) {\r\n throw new Error(msg || 'error: getOrDie called on none.');\r\n },\r\n getOrNull: nul,\r\n getOrUndefined: undef,\r\n or: id,\r\n orThunk: call$$1,\r\n map: none,\r\n ap: none,\r\n each: noop$$1,\r\n bind: none,\r\n flatten: none,\r\n exists: never$1,\r\n forall: always$1,\r\n filter: none,\r\n equals: eq,\r\n equals_: eq,\r\n toArray: function () {\r\n return [];\r\n },\r\n toString: constant('none()')\r\n };\r\n if (Object.freeze)\r\n Object.freeze(me);\r\n return me;\r\n }();\r\n var some = function (a) {\r\n var constant_a = function () {\r\n return a;\r\n };\r\n var self = function () {\r\n return me;\r\n };\r\n var map = function (f) {\r\n return some(f(a));\r\n };\r\n var bind = function (f) {\r\n return f(a);\r\n };\r\n var me = {\r\n fold: function (n, s) {\r\n return s(a);\r\n },\r\n is: function (v) {\r\n return a === v;\r\n },\r\n isSome: always$1,\r\n isNone: never$1,\r\n getOr: constant_a,\r\n getOrThunk: constant_a,\r\n getOrDie: constant_a,\r\n getOrNull: constant_a,\r\n getOrUndefined: constant_a,\r\n or: self,\r\n orThunk: self,\r\n map: map,\r\n ap: function (optfab) {\r\n return optfab.fold(none, function (fab) {\r\n return some(fab(a));\r\n });\r\n },\r\n each: function (f) {\r\n f(a);\r\n },\r\n bind: bind,\r\n flatten: constant_a,\r\n exists: bind,\r\n forall: bind,\r\n filter: function (f) {\r\n return f(a) ? me : NONE;\r\n },\r\n equals: function (o) {\r\n return o.is(a);\r\n },\r\n equals_: function (o, elementEq) {\r\n return o.fold(never$1, function (b) {\r\n return elementEq(a, b);\r\n });\r\n },\r\n toArray: function () {\r\n return [a];\r\n },\r\n toString: function () {\r\n return 'some(' + a + ')';\r\n }\r\n };\r\n return me;\r\n };\r\n var from = function (value) {\r\n return value === null || value === undefined ? NONE : some(value);\r\n };\r\n var Option = {\r\n some: some,\r\n none: none,\r\n from: from\r\n };\r\n\r\n var getUiContainerDelta = function (ctrl) {\r\n var uiContainer = getUiContainer(ctrl);\r\n if (uiContainer && global$3.DOM.getStyle(uiContainer, 'position', true) !== 'static') {\r\n var containerPos = global$3.DOM.getPos(uiContainer);\r\n var dx = uiContainer.scrollLeft - containerPos.x;\r\n var dy = uiContainer.scrollTop - containerPos.y;\r\n return Option.some({\r\n x: dx,\r\n y: dy\r\n });\r\n } else {\r\n return Option.none();\r\n }\r\n };\r\n var setUiContainer = function (editor, ctrl) {\r\n var uiContainer = global$3.DOM.select(editor.settings.ui_container)[0];\r\n ctrl.getRoot().uiContainer = uiContainer;\r\n };\r\n var getUiContainer = function (ctrl) {\r\n return ctrl ? ctrl.getRoot().uiContainer : null;\r\n };\r\n var inheritUiContainer = function (fromCtrl, toCtrl) {\r\n return toCtrl.uiContainer = getUiContainer(fromCtrl);\r\n };\r\n var $_5kmlp5u4jkmcwsge = {\r\n getUiContainerDelta: getUiContainerDelta,\r\n setUiContainer: setUiContainer,\r\n getUiContainer: getUiContainer,\r\n inheritUiContainer: inheritUiContainer\r\n };\r\n\r\n var createToolbar = function (editor, items, size) {\r\n var toolbarItems = [];\r\n var buttonGroup;\r\n if (!items) {\r\n return;\r\n }\r\n global$2.each(items.split(/[ ,]/), function (item) {\r\n var itemName;\r\n var bindSelectorChanged = function () {\r\n var selection = editor.selection;\r\n if (item.settings.stateSelector) {\r\n selection.selectorChanged(item.settings.stateSelector, function (state) {\r\n item.active(state);\r\n }, true);\r\n }\r\n if (item.settings.disabledStateSelector) {\r\n selection.selectorChanged(item.settings.disabledStateSelector, function (state) {\r\n item.disabled(state);\r\n });\r\n }\r\n };\r\n if (item === '|') {\r\n buttonGroup = null;\r\n } else {\r\n if (!buttonGroup) {\r\n buttonGroup = {\r\n type: 'buttongroup',\r\n items: []\r\n };\r\n toolbarItems.push(buttonGroup);\r\n }\r\n if (editor.buttons[item]) {\r\n itemName = item;\r\n item = editor.buttons[itemName];\r\n if (typeof item === 'function') {\r\n item = item();\r\n }\r\n item.type = item.type || 'button';\r\n item.size = size;\r\n item = global$4.create(item);\r\n buttonGroup.items.push(item);\r\n if (editor.initialized) {\r\n bindSelectorChanged();\r\n } else {\r\n editor.on('init', bindSelectorChanged);\r\n }\r\n }\r\n }\r\n });\r\n return {\r\n type: 'toolbar',\r\n layout: 'flow',\r\n items: toolbarItems\r\n };\r\n };\r\n var createToolbars = function (editor, size) {\r\n var toolbars = [];\r\n var addToolbar = function (items) {\r\n if (items) {\r\n toolbars.push(createToolbar(editor, items, size));\r\n }\r\n };\r\n global$2.each(getToolbars(editor), function (toolbar) {\r\n addToolbar(toolbar);\r\n });\r\n if (toolbars.length) {\r\n return {\r\n type: 'panel',\r\n layout: 'stack',\r\n classes: 'toolbar-grp',\r\n ariaRoot: true,\r\n ariaRemember: true,\r\n items: toolbars\r\n };\r\n }\r\n };\r\n var $_5g1hacu7jkmcwsgn = {\r\n createToolbar: createToolbar,\r\n createToolbars: createToolbars\r\n };\r\n\r\n var DOM = global$3.DOM;\r\n var toClientRect = function (geomRect) {\r\n return {\r\n left: geomRect.x,\r\n top: geomRect.y,\r\n width: geomRect.w,\r\n height: geomRect.h,\r\n right: geomRect.x + geomRect.w,\r\n bottom: geomRect.y + geomRect.h\r\n };\r\n };\r\n var hideAllFloatingPanels = function (editor) {\r\n global$2.each(editor.contextToolbars, function (toolbar) {\r\n if (toolbar.panel) {\r\n toolbar.panel.hide();\r\n }\r\n });\r\n };\r\n var movePanelTo = function (panel, pos) {\r\n panel.moveTo(pos.left, pos.top);\r\n };\r\n var togglePositionClass = function (panel, relPos, predicate) {\r\n relPos = relPos ? relPos.substr(0, 2) : '';\r\n global$2.each({\r\n t: 'down',\r\n b: 'up'\r\n }, function (cls, pos) {\r\n panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(0, 1)));\r\n });\r\n global$2.each({\r\n l: 'left',\r\n r: 'right'\r\n }, function (cls, pos) {\r\n panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(1, 1)));\r\n });\r\n };\r\n var userConstrain = function (handler, x, y, elementRect, contentAreaRect, panelRect) {\r\n panelRect = toClientRect({\r\n x: x,\r\n y: y,\r\n w: panelRect.w,\r\n h: panelRect.h\r\n });\r\n if (handler) {\r\n panelRect = handler({\r\n elementRect: toClientRect(elementRect),\r\n contentAreaRect: toClientRect(contentAreaRect),\r\n panelRect: panelRect\r\n });\r\n }\r\n return panelRect;\r\n };\r\n var addContextualToolbars = function (editor) {\r\n var scrollContainer;\r\n var getContextToolbars = function () {\r\n return editor.contextToolbars || [];\r\n };\r\n var getElementRect = function (elm) {\r\n var pos, targetRect, root;\r\n pos = DOM.getPos(editor.getContentAreaContainer());\r\n targetRect = editor.dom.getRect(elm);\r\n root = editor.dom.getRoot();\r\n if (root.nodeName === 'BODY') {\r\n targetRect.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft;\r\n targetRect.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop;\r\n }\r\n targetRect.x += pos.x;\r\n targetRect.y += pos.y;\r\n return targetRect;\r\n };\r\n var reposition = function (match, shouldShow) {\r\n var relPos, panelRect, elementRect, contentAreaRect, panel, relRect, testPositions, smallElementWidthThreshold;\r\n var handler = getInlineToolbarPositionHandler(editor);\r\n if (editor.removed) {\r\n return;\r\n }\r\n if (!match || !match.toolbar.panel) {\r\n hideAllFloatingPanels(editor);\r\n return;\r\n }\r\n testPositions = [\r\n 'bc-tc',\r\n 'tc-bc',\r\n 'tl-bl',\r\n 'bl-tl',\r\n 'tr-br',\r\n 'br-tr'\r\n ];\r\n panel = match.toolbar.panel;\r\n if (shouldShow) {\r\n panel.show();\r\n }\r\n elementRect = getElementRect(match.element);\r\n panelRect = DOM.getRect(panel.getEl());\r\n contentAreaRect = DOM.getRect(editor.getContentAreaContainer() || editor.getBody());\r\n var delta = $_5kmlp5u4jkmcwsge.getUiContainerDelta(panel).getOr({\r\n x: 0,\r\n y: 0\r\n });\r\n elementRect.x += delta.x;\r\n elementRect.y += delta.y;\r\n panelRect.x += delta.x;\r\n panelRect.y += delta.y;\r\n contentAreaRect.x += delta.x;\r\n contentAreaRect.y += delta.y;\r\n smallElementWidthThreshold = 25;\r\n if (DOM.getStyle(match.element, 'display', true) !== 'inline') {\r\n var clientRect = match.element.getBoundingClientRect();\r\n elementRect.w = clientRect.width;\r\n elementRect.h = clientRect.height;\r\n }\r\n if (!editor.inline) {\r\n contentAreaRect.w = editor.getDoc().documentElement.offsetWidth;\r\n }\r\n if (editor.selection.controlSelection.isResizable(match.element) && elementRect.w < smallElementWidthThreshold) {\r\n elementRect = global$6.inflate(elementRect, 0, 8);\r\n }\r\n relPos = global$6.findBestRelativePosition(panelRect, elementRect, contentAreaRect, testPositions);\r\n elementRect = global$6.clamp(elementRect, contentAreaRect);\r\n if (relPos) {\r\n relRect = global$6.relativePosition(panelRect, elementRect, relPos);\r\n movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));\r\n } else {\r\n contentAreaRect.h += panelRect.h;\r\n elementRect = global$6.intersect(contentAreaRect, elementRect);\r\n if (elementRect) {\r\n relPos = global$6.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [\r\n 'bc-tc',\r\n 'bl-tl',\r\n 'br-tr'\r\n ]);\r\n if (relPos) {\r\n relRect = global$6.relativePosition(panelRect, elementRect, relPos);\r\n movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));\r\n } else {\r\n movePanelTo(panel, userConstrain(handler, elementRect.x, elementRect.y, elementRect, contentAreaRect, panelRect));\r\n }\r\n } else {\r\n panel.hide();\r\n }\r\n }\r\n togglePositionClass(panel, relPos, function (pos1, pos2) {\r\n return pos1 === pos2;\r\n });\r\n };\r\n var repositionHandler = function (show) {\r\n return function () {\r\n var execute = function () {\r\n if (editor.selection) {\r\n reposition(findFrontMostMatch(editor.selection.getNode()), show);\r\n }\r\n };\r\n global$7.requestAnimationFrame(execute);\r\n };\r\n };\r\n var bindScrollEvent = function (panel) {\r\n if (!scrollContainer) {\r\n var reposition_1 = repositionHandler(true);\r\n var uiContainer_1 = $_5kmlp5u4jkmcwsge.getUiContainer(panel);\r\n scrollContainer = editor.selection.getScrollContainer() || editor.getWin();\r\n DOM.bind(scrollContainer, 'scroll', reposition_1);\r\n DOM.bind(uiContainer_1, 'scroll', reposition_1);\r\n editor.on('remove', function () {\r\n DOM.unbind(scrollContainer, 'scroll', reposition_1);\r\n DOM.unbind(uiContainer_1, 'scroll', reposition_1);\r\n });\r\n }\r\n };\r\n var showContextToolbar = function (match) {\r\n var panel;\r\n if (match.toolbar.panel) {\r\n match.toolbar.panel.show();\r\n reposition(match);\r\n return;\r\n }\r\n panel = global$4.create({\r\n type: 'floatpanel',\r\n role: 'dialog',\r\n classes: 'tinymce tinymce-inline arrow',\r\n ariaLabel: 'Inline toolbar',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n autohide: false,\r\n autofix: true,\r\n fixed: true,\r\n border: 1,\r\n items: $_5g1hacu7jkmcwsgn.createToolbar(editor, match.toolbar.items),\r\n oncancel: function () {\r\n editor.focus();\r\n }\r\n });\r\n $_5kmlp5u4jkmcwsge.setUiContainer(editor, panel);\r\n bindScrollEvent(panel);\r\n match.toolbar.panel = panel;\r\n panel.renderTo().reflow();\r\n reposition(match);\r\n };\r\n var hideAllContextToolbars = function () {\r\n global$2.each(getContextToolbars(), function (toolbar) {\r\n if (toolbar.panel) {\r\n toolbar.panel.hide();\r\n }\r\n });\r\n };\r\n var findFrontMostMatch = function (targetElm) {\r\n var i, y, parentsAndSelf;\r\n var toolbars = getContextToolbars();\r\n parentsAndSelf = editor.$(targetElm).parents().add(targetElm);\r\n for (i = parentsAndSelf.length - 1; i >= 0; i--) {\r\n for (y = toolbars.length - 1; y >= 0; y--) {\r\n if (toolbars[y].predicate(parentsAndSelf[i])) {\r\n return {\r\n toolbar: toolbars[y],\r\n element: parentsAndSelf[i]\r\n };\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n editor.on('click keyup setContent ObjectResized', function (e) {\r\n if (e.type === 'setcontent' && !e.selection) {\r\n return;\r\n }\r\n global$7.setEditorTimeout(editor, function () {\r\n var match;\r\n match = findFrontMostMatch(editor.selection.getNode());\r\n if (match) {\r\n hideAllContextToolbars();\r\n showContextToolbar(match);\r\n } else {\r\n hideAllContextToolbars();\r\n }\r\n });\r\n });\r\n editor.on('blur hide contextmenu', hideAllContextToolbars);\r\n editor.on('ObjectResizeStart', function () {\r\n var match = findFrontMostMatch(editor.selection.getNode());\r\n if (match && match.toolbar.panel) {\r\n match.toolbar.panel.hide();\r\n }\r\n });\r\n editor.on('ResizeEditor ResizeWindow', repositionHandler(true));\r\n editor.on('nodeChange', repositionHandler(false));\r\n editor.on('remove', function () {\r\n global$2.each(getContextToolbars(), function (toolbar) {\r\n if (toolbar.panel) {\r\n toolbar.panel.remove();\r\n }\r\n });\r\n editor.contextToolbars = {};\r\n });\r\n editor.shortcuts.add('ctrl+shift+e > ctrl+shift+p', '', function () {\r\n var match = findFrontMostMatch(editor.selection.getNode());\r\n if (match && match.toolbar.panel) {\r\n match.toolbar.panel.items()[0].focus();\r\n }\r\n });\r\n };\r\n var $_44ggy0u1jkmcwsg7 = { addContextualToolbars: addContextualToolbars };\r\n\r\n var typeOf = function (x) {\r\n if (x === null)\r\n return 'null';\r\n var t = typeof x;\r\n if (t === 'object' && Array.prototype.isPrototypeOf(x))\r\n return 'array';\r\n if (t === 'object' && String.prototype.isPrototypeOf(x))\r\n return 'string';\r\n return t;\r\n };\r\n var isType = function (type) {\r\n return function (value) {\r\n return typeOf(value) === type;\r\n };\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n var isFunction = isType('function');\r\n var isNumber = isType('number');\r\n\r\n var rawIndexOf = function () {\r\n var pIndexOf = Array.prototype.indexOf;\r\n var fastIndex = function (xs, x) {\r\n return pIndexOf.call(xs, x);\r\n };\r\n var slowIndex = function (xs, x) {\r\n return slowIndexOf(xs, x);\r\n };\r\n return pIndexOf === undefined ? slowIndex : fastIndex;\r\n }();\r\n var indexOf = function (xs, x) {\r\n var r = rawIndexOf(xs, x);\r\n return r === -1 ? Option.none() : Option.some(r);\r\n };\r\n\r\n var exists = function (xs, pred) {\r\n return findIndex(xs, pred).isSome();\r\n };\r\n\r\n\r\n var map = function (xs, f) {\r\n var len = xs.length;\r\n var r = new Array(len);\r\n for (var i = 0; i < len; i++) {\r\n var x = xs[i];\r\n r[i] = f(x, i, xs);\r\n }\r\n return r;\r\n };\r\n var each = function (xs, f) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n f(x, i, xs);\r\n }\r\n };\r\n\r\n\r\n var filter = function (xs, pred) {\r\n var r = [];\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n r.push(x);\r\n }\r\n }\r\n return r;\r\n };\r\n\r\n\r\n var foldl = function (xs, f, acc) {\r\n each(xs, function (x) {\r\n acc = f(acc, x);\r\n });\r\n return acc;\r\n };\r\n var find = function (xs, pred) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n return Option.some(x);\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var findIndex = function (xs, pred) {\r\n for (var i = 0, len = xs.length; i < len; i++) {\r\n var x = xs[i];\r\n if (pred(x, i, xs)) {\r\n return Option.some(i);\r\n }\r\n }\r\n return Option.none();\r\n };\r\n var slowIndexOf = function (xs, x) {\r\n for (var i = 0, len = xs.length; i < len; ++i) {\r\n if (xs[i] === x) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n var push = Array.prototype.push;\r\n var flatten = function (xs) {\r\n var r = [];\r\n for (var i = 0, len = xs.length; i < len; ++i) {\r\n if (!Array.prototype.isPrototypeOf(xs[i]))\r\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\r\n push.apply(r, xs[i]);\r\n }\r\n return r;\r\n };\r\n\r\n\r\n\r\n var slice = Array.prototype.slice;\r\n var reverse = function (xs) {\r\n var r = slice.call(xs, 0);\r\n r.reverse();\r\n return r;\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\r\n return slice.call(x);\r\n };\r\n\r\n var defaultMenus = {\r\n file: {\r\n title: 'File',\r\n items: 'newdocument restoredraft | preview | print'\r\n },\r\n edit: {\r\n title: 'Edit',\r\n items: 'undo redo | cut copy paste pastetext | selectall'\r\n },\r\n view: {\r\n title: 'View',\r\n items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen'\r\n },\r\n insert: {\r\n title: 'Insert',\r\n items: 'image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime'\r\n },\r\n format: {\r\n title: 'Format',\r\n items: 'bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat'\r\n },\r\n tools: {\r\n title: 'Tools',\r\n items: 'spellchecker spellcheckerlanguage | a11ycheck code'\r\n },\r\n table: { title: 'Table' },\r\n help: { title: 'Help' }\r\n };\r\n var delimiterMenuNamePair = function () {\r\n return {\r\n name: '|',\r\n item: { text: '|' }\r\n };\r\n };\r\n var createMenuNameItemPair = function (name, item) {\r\n var menuItem = item ? {\r\n name: name,\r\n item: item\r\n } : null;\r\n return name === '|' ? delimiterMenuNamePair() : menuItem;\r\n };\r\n var hasItemName = function (namedMenuItems, name) {\r\n return findIndex(namedMenuItems, function (namedMenuItem) {\r\n return namedMenuItem.name === name;\r\n }).isSome();\r\n };\r\n var isSeparator = function (namedMenuItem) {\r\n return namedMenuItem && namedMenuItem.item.text === '|';\r\n };\r\n var cleanupMenu = function (namedMenuItems, removedMenuItems) {\r\n var menuItemsPass1 = filter(namedMenuItems, function (namedMenuItem) {\r\n return removedMenuItems.hasOwnProperty(namedMenuItem.name) === false;\r\n });\r\n var menuItemsPass2 = filter(menuItemsPass1, function (namedMenuItem, i, namedMenuItems) {\r\n return !isSeparator(namedMenuItem) || !isSeparator(namedMenuItems[i - 1]);\r\n });\r\n return filter(menuItemsPass2, function (namedMenuItem, i, namedMenuItems) {\r\n return !isSeparator(namedMenuItem) || i > 0 && i < namedMenuItems.length - 1;\r\n });\r\n };\r\n var createMenu = function (editorMenuItems, menus, removedMenuItems, context) {\r\n var menuButton, menu, namedMenuItems, isUserDefined;\r\n if (menus) {\r\n menu = menus[context];\r\n isUserDefined = true;\r\n } else {\r\n menu = defaultMenus[context];\r\n }\r\n if (menu) {\r\n menuButton = { text: menu.title };\r\n namedMenuItems = [];\r\n global$2.each((menu.items || '').split(/[ ,]/), function (name) {\r\n var namedMenuItem = createMenuNameItemPair(name, editorMenuItems[name]);\r\n if (namedMenuItem) {\r\n namedMenuItems.push(namedMenuItem);\r\n }\r\n });\r\n if (!isUserDefined) {\r\n global$2.each(editorMenuItems, function (item, name) {\r\n if (item.context === context && !hasItemName(namedMenuItems, name)) {\r\n if (item.separator === 'before') {\r\n namedMenuItems.push(delimiterMenuNamePair());\r\n }\r\n if (item.prependToContext) {\r\n namedMenuItems.unshift(createMenuNameItemPair(name, item));\r\n } else {\r\n namedMenuItems.push(createMenuNameItemPair(name, item));\r\n }\r\n if (item.separator === 'after') {\r\n namedMenuItems.push(delimiterMenuNamePair());\r\n }\r\n }\r\n });\r\n }\r\n menuButton.menu = map(cleanupMenu(namedMenuItems, removedMenuItems), function (menuItem) {\r\n return menuItem.item;\r\n });\r\n if (!menuButton.menu.length) {\r\n return null;\r\n }\r\n }\r\n return menuButton;\r\n };\r\n var getDefaultMenubar = function (editor) {\r\n var name;\r\n var defaultMenuBar = [];\r\n var menu = getMenu(editor);\r\n if (menu) {\r\n for (name in menu) {\r\n defaultMenuBar.push(name);\r\n }\r\n } else {\r\n for (name in defaultMenus) {\r\n defaultMenuBar.push(name);\r\n }\r\n }\r\n return defaultMenuBar;\r\n };\r\n var createMenuButtons = function (editor) {\r\n var menuButtons = [];\r\n var defaultMenuBar = getDefaultMenubar(editor);\r\n var removedMenuItems = global$2.makeMap(getRemovedMenuItems(editor).split(/[ ,]/));\r\n var menubar = getMenubar(editor);\r\n var enabledMenuNames = typeof menubar === 'string' ? menubar.split(/[ ,]/) : defaultMenuBar;\r\n for (var i = 0; i < enabledMenuNames.length; i++) {\r\n var menuItems = enabledMenuNames[i];\r\n var menu = createMenu(editor.menuItems, getMenu(editor), removedMenuItems, menuItems);\r\n if (menu) {\r\n menuButtons.push(menu);\r\n }\r\n }\r\n return menuButtons;\r\n };\r\n var $_3ke8tlu8jkmcwsgq = { createMenuButtons: createMenuButtons };\r\n\r\n var DOM$1 = global$3.DOM;\r\n var getSize = function (elm) {\r\n return {\r\n width: elm.clientWidth,\r\n height: elm.clientHeight\r\n };\r\n };\r\n var resizeTo = function (editor, width, height) {\r\n var containerElm, iframeElm, containerSize, iframeSize;\r\n containerElm = editor.getContainer();\r\n iframeElm = editor.getContentAreaContainer().firstChild;\r\n containerSize = getSize(containerElm);\r\n iframeSize = getSize(iframeElm);\r\n if (width !== null) {\r\n width = Math.max(getMinWidth(editor), width);\r\n width = Math.min(getMaxWidth(editor), width);\r\n DOM$1.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width));\r\n DOM$1.setStyle(iframeElm, 'width', width);\r\n }\r\n height = Math.max(getMinHeight(editor), height);\r\n height = Math.min(getMaxHeight(editor), height);\r\n DOM$1.setStyle(iframeElm, 'height', height);\r\n $_1jkxpltzjkmcwsg4.fireResizeEditor(editor);\r\n };\r\n var resizeBy = function (editor, dw, dh) {\r\n var elm = editor.getContentAreaContainer();\r\n resizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh);\r\n };\r\n var $_focm2tubjkmcwsh5 = {\r\n resizeTo: resizeTo,\r\n resizeBy: resizeBy\r\n };\r\n\r\n var global$8 = tinymce.util.Tools.resolve('tinymce.Env');\r\n\r\n var api = function (elm) {\r\n return {\r\n element: function () {\r\n return elm;\r\n }\r\n };\r\n };\r\n var trigger = function (sidebar, panel, callbackName) {\r\n var callback = sidebar.settings[callbackName];\r\n if (callback) {\r\n callback(api(panel.getEl('body')));\r\n }\r\n };\r\n var hidePanels = function (name, container, sidebars) {\r\n global$2.each(sidebars, function (sidebar) {\r\n var panel = container.items().filter('#' + sidebar.name)[0];\r\n if (panel && panel.visible() && sidebar.name !== name) {\r\n trigger(sidebar, panel, 'onhide');\r\n panel.visible(false);\r\n }\r\n });\r\n };\r\n var deactivateButtons = function (toolbar) {\r\n toolbar.items().each(function (ctrl) {\r\n ctrl.active(false);\r\n });\r\n };\r\n var findSidebar = function (sidebars, name) {\r\n return global$2.grep(sidebars, function (sidebar) {\r\n return sidebar.name === name;\r\n })[0];\r\n };\r\n var showPanel = function (editor, name, sidebars) {\r\n return function (e) {\r\n var btnCtrl = e.control;\r\n var container = btnCtrl.parents().filter('panel')[0];\r\n var panel = container.find('#' + name)[0];\r\n var sidebar = findSidebar(sidebars, name);\r\n hidePanels(name, container, sidebars);\r\n deactivateButtons(btnCtrl.parent());\r\n if (panel && panel.visible()) {\r\n trigger(sidebar, panel, 'onhide');\r\n panel.hide();\r\n btnCtrl.active(false);\r\n } else {\r\n if (panel) {\r\n panel.show();\r\n trigger(sidebar, panel, 'onshow');\r\n } else {\r\n panel = global$4.create({\r\n type: 'container',\r\n name: name,\r\n layout: 'stack',\r\n classes: 'sidebar-panel',\r\n html: ''\r\n });\r\n container.prepend(panel);\r\n trigger(sidebar, panel, 'onrender');\r\n trigger(sidebar, panel, 'onshow');\r\n }\r\n btnCtrl.active(true);\r\n }\r\n $_1jkxpltzjkmcwsg4.fireResizeEditor(editor);\r\n };\r\n };\r\n var isModernBrowser = function () {\r\n return !global$8.ie || global$8.ie >= 11;\r\n };\r\n var hasSidebar = function (editor) {\r\n return isModernBrowser() && editor.sidebars ? editor.sidebars.length > 0 : false;\r\n };\r\n var createSidebar = function (editor) {\r\n var buttons = global$2.map(editor.sidebars, function (sidebar) {\r\n var settings = sidebar.settings;\r\n return {\r\n type: 'button',\r\n icon: settings.icon,\r\n image: settings.image,\r\n tooltip: settings.tooltip,\r\n onclick: showPanel(editor, sidebar.name, editor.sidebars)\r\n };\r\n });\r\n return {\r\n type: 'panel',\r\n name: 'sidebar',\r\n layout: 'stack',\r\n classes: 'sidebar',\r\n items: [{\r\n type: 'toolbar',\r\n layout: 'stack',\r\n classes: 'sidebar-toolbar',\r\n items: buttons\r\n }]\r\n };\r\n };\r\n var $_93h32bucjkmcwsh7 = {\r\n hasSidebar: hasSidebar,\r\n createSidebar: createSidebar\r\n };\r\n\r\n var fireSkinLoaded$1 = function (editor) {\r\n var done = function () {\r\n editor._skinLoaded = true;\r\n $_1jkxpltzjkmcwsg4.fireSkinLoaded(editor);\r\n };\r\n return function () {\r\n if (editor.initialized) {\r\n done();\r\n } else {\r\n editor.on('init', done);\r\n }\r\n };\r\n };\r\n var $_2tsyb2uejkmcwsha = { fireSkinLoaded: fireSkinLoaded$1 };\r\n\r\n var DOM$2 = global$3.DOM;\r\n var switchMode = function (panel) {\r\n return function (e) {\r\n panel.find('*').disabled(e.mode === 'readonly');\r\n };\r\n };\r\n var editArea = function (border) {\r\n return {\r\n type: 'panel',\r\n name: 'iframe',\r\n layout: 'stack',\r\n classes: 'edit-area',\r\n border: border,\r\n html: ''\r\n };\r\n };\r\n var editAreaContainer = function (editor) {\r\n return {\r\n type: 'panel',\r\n layout: 'stack',\r\n classes: 'edit-aria-container',\r\n border: '1 0 0 0',\r\n items: [\r\n editArea('0'),\r\n $_93h32bucjkmcwsh7.createSidebar(editor)\r\n ]\r\n };\r\n };\r\n var render = function (editor, theme, args) {\r\n var panel, resizeHandleCtrl, startSize;\r\n if (isSkinDisabled(editor) === false && args.skinUiCss) {\r\n DOM$2.styleSheetLoader.load(args.skinUiCss, $_2tsyb2uejkmcwsha.fireSkinLoaded(editor));\r\n } else {\r\n $_2tsyb2uejkmcwsha.fireSkinLoaded(editor)();\r\n }\r\n panel = theme.panel = global$4.create({\r\n type: 'panel',\r\n role: 'application',\r\n classes: 'tinymce',\r\n style: 'visibility: hidden',\r\n layout: 'stack',\r\n border: 1,\r\n items: [\r\n {\r\n type: 'container',\r\n classes: 'top-part',\r\n items: [\r\n hasMenubar(editor) === false ? null : {\r\n type: 'menubar',\r\n border: '0 0 1 0',\r\n items: $_3ke8tlu8jkmcwsgq.createMenuButtons(editor)\r\n },\r\n $_5g1hacu7jkmcwsgn.createToolbars(editor, getToolbarSize(editor))\r\n ]\r\n },\r\n $_93h32bucjkmcwsh7.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0')\r\n ]\r\n });\r\n $_5kmlp5u4jkmcwsge.setUiContainer(editor, panel);\r\n if (getResize(editor) !== 'none') {\r\n resizeHandleCtrl = {\r\n type: 'resizehandle',\r\n direction: getResize(editor),\r\n onResizeStart: function () {\r\n var elm = editor.getContentAreaContainer().firstChild;\r\n startSize = {\r\n width: elm.clientWidth,\r\n height: elm.clientHeight\r\n };\r\n },\r\n onResize: function (e) {\r\n if (getResize(editor) === 'both') {\r\n $_focm2tubjkmcwsh5.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY);\r\n } else {\r\n $_focm2tubjkmcwsh5.resizeTo(editor, null, startSize.height + e.deltaY);\r\n }\r\n }\r\n };\r\n }\r\n if (hasStatusbar(editor)) {\r\n var linkHtml = 'tinymce';\r\n var html = global$5.translate([\r\n 'Powered by {0}',\r\n linkHtml\r\n ]);\r\n var brandingLabel = isBrandingEnabled(editor) ? {\r\n type: 'label',\r\n classes: 'branding',\r\n html: ' ' + html\r\n } : null;\r\n panel.add({\r\n type: 'panel',\r\n name: 'statusbar',\r\n classes: 'statusbar',\r\n layout: 'flow',\r\n border: '1 0 0 0',\r\n ariaRoot: true,\r\n items: [\r\n {\r\n type: 'elementpath',\r\n editor: editor\r\n },\r\n resizeHandleCtrl,\r\n brandingLabel\r\n ]\r\n });\r\n }\r\n $_1jkxpltzjkmcwsg4.fireBeforeRenderUI(editor);\r\n editor.on('SwitchMode', switchMode(panel));\r\n panel.renderBefore(args.targetNode).reflow();\r\n if (isReadOnly(editor)) {\r\n editor.setMode('readonly');\r\n }\r\n if (args.width) {\r\n DOM$2.setStyle(panel.getEl(), 'width', args.width);\r\n }\r\n editor.on('remove', function () {\r\n panel.remove();\r\n panel = null;\r\n });\r\n $_1mdekmu0jkmcwsg5.addKeys(editor, panel);\r\n $_44ggy0u1jkmcwsg7.addContextualToolbars(editor);\r\n return {\r\n iframeContainer: panel.find('#iframe')[0].getEl(),\r\n editorContainer: panel.getEl()\r\n };\r\n };\r\n var $_9mz4sntvjkmcwsft = { render: render };\r\n\r\n var global$9 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\r\n\r\n var count = 0;\r\n var funcs = {\r\n id: function () {\r\n return 'mceu_' + count++;\r\n },\r\n create: function (name$$1, attrs, children) {\r\n var elm = document.createElement(name$$1);\r\n global$3.DOM.setAttribs(elm, attrs);\r\n if (typeof children === 'string') {\r\n elm.innerHTML = children;\r\n } else {\r\n global$2.each(children, function (child) {\r\n if (child.nodeType) {\r\n elm.appendChild(child);\r\n }\r\n });\r\n }\r\n return elm;\r\n },\r\n createFragment: function (html) {\r\n return global$3.DOM.createFragment(html);\r\n },\r\n getWindowSize: function () {\r\n return global$3.DOM.getViewPort();\r\n },\r\n getSize: function (elm) {\r\n var width, height;\r\n if (elm.getBoundingClientRect) {\r\n var rect = elm.getBoundingClientRect();\r\n width = Math.max(rect.width || rect.right - rect.left, elm.offsetWidth);\r\n height = Math.max(rect.height || rect.bottom - rect.bottom, elm.offsetHeight);\r\n } else {\r\n width = elm.offsetWidth;\r\n height = elm.offsetHeight;\r\n }\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n },\r\n getPos: function (elm, root) {\r\n return global$3.DOM.getPos(elm, root || funcs.getContainer());\r\n },\r\n getContainer: function () {\r\n return global$8.container ? global$8.container : document.body;\r\n },\r\n getViewPort: function (win) {\r\n return global$3.DOM.getViewPort(win);\r\n },\r\n get: function (id) {\r\n return document.getElementById(id);\r\n },\r\n addClass: function (elm, cls) {\r\n return global$3.DOM.addClass(elm, cls);\r\n },\r\n removeClass: function (elm, cls) {\r\n return global$3.DOM.removeClass(elm, cls);\r\n },\r\n hasClass: function (elm, cls) {\r\n return global$3.DOM.hasClass(elm, cls);\r\n },\r\n toggleClass: function (elm, cls, state) {\r\n return global$3.DOM.toggleClass(elm, cls, state);\r\n },\r\n css: function (elm, name$$1, value) {\r\n return global$3.DOM.setStyle(elm, name$$1, value);\r\n },\r\n getRuntimeStyle: function (elm, name$$1) {\r\n return global$3.DOM.getStyle(elm, name$$1, true);\r\n },\r\n on: function (target, name$$1, callback, scope) {\r\n return global$3.DOM.bind(target, name$$1, callback, scope);\r\n },\r\n off: function (target, name$$1, callback) {\r\n return global$3.DOM.unbind(target, name$$1, callback);\r\n },\r\n fire: function (target, name$$1, args) {\r\n return global$3.DOM.fire(target, name$$1, args);\r\n },\r\n innerHtml: function (elm, html) {\r\n global$3.DOM.setHTML(elm, html);\r\n }\r\n };\r\n\r\n var isStatic = function (elm) {\r\n return funcs.getRuntimeStyle(elm, 'position') === 'static';\r\n };\r\n var isFixed = function (ctrl) {\r\n return ctrl.state.get('fixed');\r\n };\r\n function calculateRelativePosition(ctrl, targetElm, rel) {\r\n var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size;\r\n viewport = getWindowViewPort();\r\n pos = funcs.getPos(targetElm, $_5kmlp5u4jkmcwsge.getUiContainer(ctrl));\r\n x = pos.x;\r\n y = pos.y;\r\n if (isFixed(ctrl) && isStatic(document.body)) {\r\n x -= viewport.x;\r\n y -= viewport.y;\r\n }\r\n ctrlElm = ctrl.getEl();\r\n size = funcs.getSize(ctrlElm);\r\n selfW = size.width;\r\n selfH = size.height;\r\n size = funcs.getSize(targetElm);\r\n targetW = size.width;\r\n targetH = size.height;\r\n rel = (rel || '').split('');\r\n if (rel[0] === 'b') {\r\n y += targetH;\r\n }\r\n if (rel[1] === 'r') {\r\n x += targetW;\r\n }\r\n if (rel[0] === 'c') {\r\n y += Math.round(targetH / 2);\r\n }\r\n if (rel[1] === 'c') {\r\n x += Math.round(targetW / 2);\r\n }\r\n if (rel[3] === 'b') {\r\n y -= selfH;\r\n }\r\n if (rel[4] === 'r') {\r\n x -= selfW;\r\n }\r\n if (rel[3] === 'c') {\r\n y -= Math.round(selfH / 2);\r\n }\r\n if (rel[4] === 'c') {\r\n x -= Math.round(selfW / 2);\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n w: selfW,\r\n h: selfH\r\n };\r\n }\r\n var getUiContainerViewPort = function (customUiContainer) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n w: customUiContainer.scrollWidth - 1,\r\n h: customUiContainer.scrollHeight - 1\r\n };\r\n };\r\n var getWindowViewPort = function () {\r\n var win = window;\r\n var x = Math.max(win.pageXOffset, document.body.scrollLeft, document.documentElement.scrollLeft);\r\n var y = Math.max(win.pageYOffset, document.body.scrollTop, document.documentElement.scrollTop);\r\n var w = win.innerWidth || document.documentElement.clientWidth;\r\n var h = win.innerHeight || document.documentElement.clientHeight;\r\n return {\r\n x: x,\r\n y: y,\r\n w: x + w,\r\n h: y + h\r\n };\r\n };\r\n var getViewPortRect = function (ctrl) {\r\n var customUiContainer = $_5kmlp5u4jkmcwsge.getUiContainer(ctrl);\r\n return customUiContainer && !isFixed(ctrl) ? getUiContainerViewPort(customUiContainer) : getWindowViewPort();\r\n };\r\n var $_77p0ikukjkmcwsie = {\r\n testMoveRel: function (elm, rels) {\r\n var viewPortRect = getViewPortRect(this);\r\n for (var i = 0; i < rels.length; i++) {\r\n var pos = calculateRelativePosition(this, elm, rels[i]);\r\n if (isFixed(this)) {\r\n if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) {\r\n return rels[i];\r\n }\r\n } else {\r\n if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w && pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h) {\r\n return rels[i];\r\n }\r\n }\r\n }\r\n return rels[0];\r\n },\r\n moveRel: function (elm, rel) {\r\n if (typeof rel !== 'string') {\r\n rel = this.testMoveRel(elm, rel);\r\n }\r\n var pos = calculateRelativePosition(this, elm, rel);\r\n return this.moveTo(pos.x, pos.y);\r\n },\r\n moveBy: function (dx, dy) {\r\n var self$$1 = this, rect = self$$1.layoutRect();\r\n self$$1.moveTo(rect.x + dx, rect.y + dy);\r\n return self$$1;\r\n },\r\n moveTo: function (x, y) {\r\n var self$$1 = this;\r\n function constrain(value, max, size) {\r\n if (value < 0) {\r\n return 0;\r\n }\r\n if (value + size > max) {\r\n value = max - size;\r\n return value < 0 ? 0 : value;\r\n }\r\n return value;\r\n }\r\n if (self$$1.settings.constrainToViewport) {\r\n var viewPortRect = getViewPortRect(this);\r\n var layoutRect = self$$1.layoutRect();\r\n x = constrain(x, viewPortRect.w, layoutRect.w);\r\n y = constrain(y, viewPortRect.h, layoutRect.h);\r\n }\r\n var uiContainer = $_5kmlp5u4jkmcwsge.getUiContainer(self$$1);\r\n if (uiContainer && isStatic(uiContainer) && !isFixed(self$$1)) {\r\n x -= uiContainer.scrollLeft;\r\n y -= uiContainer.scrollTop;\r\n }\r\n if (uiContainer) {\r\n x += 1;\r\n y += 1;\r\n }\r\n if (self$$1.state.get('rendered')) {\r\n self$$1.layoutRect({\r\n x: x,\r\n y: y\r\n }).repaint();\r\n } else {\r\n self$$1.settings.x = x;\r\n self$$1.settings.y = y;\r\n }\r\n self$$1.fire('move', {\r\n x: x,\r\n y: y\r\n });\r\n return self$$1;\r\n }\r\n };\r\n\r\n var global$10 = tinymce.util.Tools.resolve('tinymce.util.Class');\r\n\r\n var global$11 = tinymce.util.Tools.resolve('tinymce.util.EventDispatcher');\r\n\r\n var $_79d0aauqjkmcwsj9 = {\r\n parseBox: function (value) {\r\n var len;\r\n var radix = 10;\r\n if (!value) {\r\n return;\r\n }\r\n if (typeof value === 'number') {\r\n value = value || 0;\r\n return {\r\n top: value,\r\n left: value,\r\n bottom: value,\r\n right: value\r\n };\r\n }\r\n value = value.split(' ');\r\n len = value.length;\r\n if (len === 1) {\r\n value[1] = value[2] = value[3] = value[0];\r\n } else if (len === 2) {\r\n value[2] = value[0];\r\n value[3] = value[1];\r\n } else if (len === 3) {\r\n value[3] = value[1];\r\n }\r\n return {\r\n top: parseInt(value[0], radix) || 0,\r\n right: parseInt(value[1], radix) || 0,\r\n bottom: parseInt(value[2], radix) || 0,\r\n left: parseInt(value[3], radix) || 0\r\n };\r\n },\r\n measureBox: function (elm, prefix) {\r\n function getStyle(name) {\r\n var defaultView = elm.ownerDocument.defaultView;\r\n if (defaultView) {\r\n var computedStyle = defaultView.getComputedStyle(elm, null);\r\n if (computedStyle) {\r\n name = name.replace(/[A-Z]/g, function (a) {\r\n return '-' + a;\r\n });\r\n return computedStyle.getPropertyValue(name);\r\n } else {\r\n return null;\r\n }\r\n }\r\n return elm.currentStyle[name];\r\n }\r\n function getSide(name) {\r\n var val = parseFloat(getStyle(name));\r\n return isNaN(val) ? 0 : val;\r\n }\r\n return {\r\n top: getSide(prefix + 'TopWidth'),\r\n right: getSide(prefix + 'RightWidth'),\r\n bottom: getSide(prefix + 'BottomWidth'),\r\n left: getSide(prefix + 'LeftWidth')\r\n };\r\n }\r\n };\r\n\r\n function noop$1() {\r\n }\r\n function ClassList(onchange) {\r\n this.cls = [];\r\n this.cls._map = {};\r\n this.onchange = onchange || noop$1;\r\n this.prefix = '';\r\n }\r\n global$2.extend(ClassList.prototype, {\r\n add: function (cls) {\r\n if (cls && !this.contains(cls)) {\r\n this.cls._map[cls] = true;\r\n this.cls.push(cls);\r\n this._change();\r\n }\r\n return this;\r\n },\r\n remove: function (cls) {\r\n if (this.contains(cls)) {\r\n var i = void 0;\r\n for (i = 0; i < this.cls.length; i++) {\r\n if (this.cls[i] === cls) {\r\n break;\r\n }\r\n }\r\n this.cls.splice(i, 1);\r\n delete this.cls._map[cls];\r\n this._change();\r\n }\r\n return this;\r\n },\r\n toggle: function (cls, state) {\r\n var curState = this.contains(cls);\r\n if (curState !== state) {\r\n if (curState) {\r\n this.remove(cls);\r\n } else {\r\n this.add(cls);\r\n }\r\n this._change();\r\n }\r\n return this;\r\n },\r\n contains: function (cls) {\r\n return !!this.cls._map[cls];\r\n },\r\n _change: function () {\r\n delete this.clsValue;\r\n this.onchange.call(this);\r\n }\r\n });\r\n ClassList.prototype.toString = function () {\r\n var value;\r\n if (this.clsValue) {\r\n return this.clsValue;\r\n }\r\n value = '';\r\n for (var i = 0; i < this.cls.length; i++) {\r\n if (i > 0) {\r\n value += ' ';\r\n }\r\n value += this.prefix + this.cls[i];\r\n }\r\n return value;\r\n };\r\n\r\n function unique(array) {\r\n var uniqueItems = [];\r\n var i = array.length, item;\r\n while (i--) {\r\n item = array[i];\r\n if (!item.__checked) {\r\n uniqueItems.push(item);\r\n item.__checked = 1;\r\n }\r\n }\r\n i = uniqueItems.length;\r\n while (i--) {\r\n delete uniqueItems[i].__checked;\r\n }\r\n return uniqueItems;\r\n }\r\n var expression = /^([\\w\\\\*]+)?(?:#([\\w\\-\\\\]+))?(?:\\.([\\w\\\\\\.]+))?(?:\\[\\@?([\\w\\\\]+)([\\^\\$\\*!~]?=)([\\w\\\\]+)\\])?(?:\\:(.+))?/i;\r\n var chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g;\r\n var whiteSpace = /^\\s*|\\s*$/g;\r\n var Collection;\r\n var Selector = global$10.extend({\r\n init: function (selector) {\r\n var match = this.match;\r\n function compileNameFilter(name) {\r\n if (name) {\r\n name = name.toLowerCase();\r\n return function (item) {\r\n return name === '*' || item.type === name;\r\n };\r\n }\r\n }\r\n function compileIdFilter(id) {\r\n if (id) {\r\n return function (item) {\r\n return item._name === id;\r\n };\r\n }\r\n }\r\n function compileClassesFilter(classes) {\r\n if (classes) {\r\n classes = classes.split('.');\r\n return function (item) {\r\n var i = classes.length;\r\n while (i--) {\r\n if (!item.classes.contains(classes[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n }\r\n }\r\n function compileAttrFilter(name, cmp, check) {\r\n if (name) {\r\n return function (item) {\r\n var value = item[name] ? item[name]() : '';\r\n return !cmp ? !!check : cmp === '=' ? value === check : cmp === '*=' ? value.indexOf(check) >= 0 : cmp === '~=' ? (' ' + value + ' ').indexOf(' ' + check + ' ') >= 0 : cmp === '!=' ? value !== check : cmp === '^=' ? value.indexOf(check) === 0 : cmp === '$=' ? value.substr(value.length - check.length) === check : false;\r\n };\r\n }\r\n }\r\n function compilePsuedoFilter(name) {\r\n var notSelectors;\r\n if (name) {\r\n name = /(?:not\\((.+)\\))|(.+)/i.exec(name);\r\n if (!name[1]) {\r\n name = name[2];\r\n return function (item, index, length) {\r\n return name === 'first' ? index === 0 : name === 'last' ? index === length - 1 : name === 'even' ? index % 2 === 0 : name === 'odd' ? index % 2 === 1 : item[name] ? item[name]() : false;\r\n };\r\n }\r\n notSelectors = parseChunks(name[1], []);\r\n return function (item) {\r\n return !match(item, notSelectors);\r\n };\r\n }\r\n }\r\n function compile(selector, filters, direct) {\r\n var parts;\r\n function add(filter) {\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n }\r\n parts = expression.exec(selector.replace(whiteSpace, ''));\r\n add(compileNameFilter(parts[1]));\r\n add(compileIdFilter(parts[2]));\r\n add(compileClassesFilter(parts[3]));\r\n add(compileAttrFilter(parts[4], parts[5], parts[6]));\r\n add(compilePsuedoFilter(parts[7]));\r\n filters.pseudo = !!parts[7];\r\n filters.direct = direct;\r\n return filters;\r\n }\r\n function parseChunks(selector, selectors) {\r\n var parts = [];\r\n var extra, matches, i;\r\n do {\r\n chunker.exec('');\r\n matches = chunker.exec(selector);\r\n if (matches) {\r\n selector = matches[3];\r\n parts.push(matches[1]);\r\n if (matches[2]) {\r\n extra = matches[3];\r\n break;\r\n }\r\n }\r\n } while (matches);\r\n if (extra) {\r\n parseChunks(extra, selectors);\r\n }\r\n selector = [];\r\n for (i = 0; i < parts.length; i++) {\r\n if (parts[i] !== '>') {\r\n selector.push(compile(parts[i], [], parts[i - 1] === '>'));\r\n }\r\n }\r\n selectors.push(selector);\r\n return selectors;\r\n }\r\n this._selectors = parseChunks(selector, []);\r\n },\r\n match: function (control, selectors) {\r\n var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item;\r\n selectors = selectors || this._selectors;\r\n for (i = 0, l = selectors.length; i < l; i++) {\r\n selector = selectors[i];\r\n sl = selector.length;\r\n item = control;\r\n count = 0;\r\n for (si = sl - 1; si >= 0; si--) {\r\n filters = selector[si];\r\n while (item) {\r\n if (filters.pseudo) {\r\n siblings = item.parent().items();\r\n index = length = siblings.length;\r\n while (index--) {\r\n if (siblings[index] === item) {\r\n break;\r\n }\r\n }\r\n }\r\n for (fi = 0, fl = filters.length; fi < fl; fi++) {\r\n if (!filters[fi](item, index, length)) {\r\n fi = fl + 1;\r\n break;\r\n }\r\n }\r\n if (fi === fl) {\r\n count++;\r\n break;\r\n } else {\r\n if (si === sl - 1) {\r\n break;\r\n }\r\n }\r\n item = item.parent();\r\n }\r\n }\r\n if (count === sl) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n find: function (container) {\r\n var matches = [], i, l;\r\n var selectors = this._selectors;\r\n function collect(items, selector, index) {\r\n var i, l, fi, fl, item;\r\n var filters = selector[index];\r\n for (i = 0, l = items.length; i < l; i++) {\r\n item = items[i];\r\n for (fi = 0, fl = filters.length; fi < fl; fi++) {\r\n if (!filters[fi](item, i, l)) {\r\n fi = fl + 1;\r\n break;\r\n }\r\n }\r\n if (fi === fl) {\r\n if (index === selector.length - 1) {\r\n matches.push(item);\r\n } else {\r\n if (item.items) {\r\n collect(item.items(), selector, index + 1);\r\n }\r\n }\r\n } else if (filters.direct) {\r\n return;\r\n }\r\n if (item.items) {\r\n collect(item.items(), selector, index);\r\n }\r\n }\r\n }\r\n if (container.items) {\r\n for (i = 0, l = selectors.length; i < l; i++) {\r\n collect(container.items(), selectors[i], 0);\r\n }\r\n if (l > 1) {\r\n matches = unique(matches);\r\n }\r\n }\r\n if (!Collection) {\r\n Collection = Selector.Collection;\r\n }\r\n return new Collection(matches);\r\n }\r\n });\r\n\r\n var Collection$1;\r\n var proto;\r\n var push$1 = Array.prototype.push;\r\n var slice$1 = Array.prototype.slice;\r\n proto = {\r\n length: 0,\r\n init: function (items) {\r\n if (items) {\r\n this.add(items);\r\n }\r\n },\r\n add: function (items) {\r\n var self = this;\r\n if (!global$2.isArray(items)) {\r\n if (items instanceof Collection$1) {\r\n self.add(items.toArray());\r\n } else {\r\n push$1.call(self, items);\r\n }\r\n } else {\r\n push$1.apply(self, items);\r\n }\r\n return self;\r\n },\r\n set: function (items) {\r\n var self = this;\r\n var len = self.length;\r\n var i;\r\n self.length = 0;\r\n self.add(items);\r\n for (i = self.length; i < len; i++) {\r\n delete self[i];\r\n }\r\n return self;\r\n },\r\n filter: function (selector) {\r\n var self = this;\r\n var i, l;\r\n var matches = [];\r\n var item, match;\r\n if (typeof selector === 'string') {\r\n selector = new Selector(selector);\r\n match = function (item) {\r\n return selector.match(item);\r\n };\r\n } else {\r\n match = selector;\r\n }\r\n for (i = 0, l = self.length; i < l; i++) {\r\n item = self[i];\r\n if (match(item)) {\r\n matches.push(item);\r\n }\r\n }\r\n return new Collection$1(matches);\r\n },\r\n slice: function () {\r\n return new Collection$1(slice$1.apply(this, arguments));\r\n },\r\n eq: function (index) {\r\n return index === -1 ? this.slice(index) : this.slice(index, +index + 1);\r\n },\r\n each: function (callback) {\r\n global$2.each(this, callback);\r\n return this;\r\n },\r\n toArray: function () {\r\n return global$2.toArray(this);\r\n },\r\n indexOf: function (ctrl) {\r\n var self = this;\r\n var i = self.length;\r\n while (i--) {\r\n if (self[i] === ctrl) {\r\n break;\r\n }\r\n }\r\n return i;\r\n },\r\n reverse: function () {\r\n return new Collection$1(global$2.toArray(this).reverse());\r\n },\r\n hasClass: function (cls) {\r\n return this[0] ? this[0].classes.contains(cls) : false;\r\n },\r\n prop: function (name, value) {\r\n var self = this;\r\n var item;\r\n if (value !== undefined) {\r\n self.each(function (item) {\r\n if (item[name]) {\r\n item[name](value);\r\n }\r\n });\r\n return self;\r\n }\r\n item = self[0];\r\n if (item && item[name]) {\r\n return item[name]();\r\n }\r\n },\r\n exec: function (name) {\r\n var self = this, args = global$2.toArray(arguments).slice(1);\r\n self.each(function (item) {\r\n if (item[name]) {\r\n item[name].apply(item, args);\r\n }\r\n });\r\n return self;\r\n },\r\n remove: function () {\r\n var i = this.length;\r\n while (i--) {\r\n this[i].remove();\r\n }\r\n return this;\r\n },\r\n addClass: function (cls) {\r\n return this.each(function (item) {\r\n item.classes.add(cls);\r\n });\r\n },\r\n removeClass: function (cls) {\r\n return this.each(function (item) {\r\n item.classes.remove(cls);\r\n });\r\n }\r\n };\r\n global$2.each('fire on off show hide append prepend before after reflow'.split(' '), function (name) {\r\n proto[name] = function () {\r\n var args = global$2.toArray(arguments);\r\n this.each(function (ctrl) {\r\n if (name in ctrl) {\r\n ctrl[name].apply(ctrl, args);\r\n }\r\n });\r\n return this;\r\n };\r\n });\r\n global$2.each('text name disabled active selected checked visible parent value data'.split(' '), function (name) {\r\n proto[name] = function (value) {\r\n return this.prop(name, value);\r\n };\r\n });\r\n Collection$1 = global$10.extend(proto);\r\n Selector.Collection = Collection$1;\r\n var Collection$2 = Collection$1;\r\n\r\n var Binding = function (settings) {\r\n this.create = settings.create;\r\n };\r\n Binding.create = function (model, name) {\r\n return new Binding({\r\n create: function (otherModel, otherName) {\r\n var bindings;\r\n var fromSelfToOther = function (e) {\r\n otherModel.set(otherName, e.value);\r\n };\r\n var fromOtherToSelf = function (e) {\r\n model.set(name, e.value);\r\n };\r\n otherModel.on('change:' + otherName, fromOtherToSelf);\r\n model.on('change:' + name, fromSelfToOther);\r\n bindings = otherModel._bindings;\r\n if (!bindings) {\r\n bindings = otherModel._bindings = [];\r\n otherModel.on('destroy', function () {\r\n var i = bindings.length;\r\n while (i--) {\r\n bindings[i]();\r\n }\r\n });\r\n }\r\n bindings.push(function () {\r\n model.off('change:' + name, fromSelfToOther);\r\n });\r\n return model.get(name);\r\n }\r\n });\r\n };\r\n\r\n var global$12 = tinymce.util.Tools.resolve('tinymce.util.Observable');\r\n\r\n function isNode(node) {\r\n return node.nodeType > 0;\r\n }\r\n function isEqual(a, b) {\r\n var k, checked;\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null || b === null) {\r\n return a === b;\r\n }\r\n if (typeof a !== 'object' || typeof b !== 'object') {\r\n return a === b;\r\n }\r\n if (global$2.isArray(b)) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n k = a.length;\r\n while (k--) {\r\n if (!isEqual(a[k], b[k])) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (isNode(a) || isNode(b)) {\r\n return a === b;\r\n }\r\n checked = {};\r\n for (k in b) {\r\n if (!isEqual(a[k], b[k])) {\r\n return false;\r\n }\r\n checked[k] = true;\r\n }\r\n for (k in a) {\r\n if (!checked[k] && !isEqual(a[k], b[k])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n var ObservableObject = global$10.extend({\r\n Mixins: [global$12],\r\n init: function (data) {\r\n var name, value;\r\n data = data || {};\r\n for (name in data) {\r\n value = data[name];\r\n if (value instanceof Binding) {\r\n data[name] = value.create(this, name);\r\n }\r\n }\r\n this.data = data;\r\n },\r\n set: function (name, value) {\r\n var key, args;\r\n var oldValue = this.data[name];\r\n if (value instanceof Binding) {\r\n value = value.create(this, name);\r\n }\r\n if (typeof name === 'object') {\r\n for (key in name) {\r\n this.set(key, name[key]);\r\n }\r\n return this;\r\n }\r\n if (!isEqual(oldValue, value)) {\r\n this.data[name] = value;\r\n args = {\r\n target: this,\r\n name: name,\r\n value: value,\r\n oldValue: oldValue\r\n };\r\n this.fire('change:' + name, args);\r\n this.fire('change', args);\r\n }\r\n return this;\r\n },\r\n get: function (name) {\r\n return this.data[name];\r\n },\r\n has: function (name) {\r\n return name in this.data;\r\n },\r\n bind: function (name) {\r\n return Binding.create(this, name);\r\n },\r\n destroy: function () {\r\n this.fire('destroy');\r\n }\r\n });\r\n\r\n var dirtyCtrls = {};\r\n var animationFrameRequested;\r\n var $_921m08uxjkmcwsk2 = {\r\n add: function (ctrl) {\r\n var parent$$1 = ctrl.parent();\r\n if (parent$$1) {\r\n if (!parent$$1._layout || parent$$1._layout.isNative()) {\r\n return;\r\n }\r\n if (!dirtyCtrls[parent$$1._id]) {\r\n dirtyCtrls[parent$$1._id] = parent$$1;\r\n }\r\n if (!animationFrameRequested) {\r\n animationFrameRequested = true;\r\n global$7.requestAnimationFrame(function () {\r\n var id, ctrl;\r\n animationFrameRequested = false;\r\n for (id in dirtyCtrls) {\r\n ctrl = dirtyCtrls[id];\r\n if (ctrl.state.get('rendered')) {\r\n ctrl.reflow();\r\n }\r\n }\r\n dirtyCtrls = {};\r\n }, document.body);\r\n }\r\n }\r\n },\r\n remove: function (ctrl) {\r\n if (dirtyCtrls[ctrl._id]) {\r\n delete dirtyCtrls[ctrl._id];\r\n }\r\n }\r\n };\r\n\r\n var hasMouseWheelEventSupport = 'onmousewheel' in document;\r\n var hasWheelEventSupport = false;\r\n var classPrefix = 'mce-';\r\n var Control;\r\n var idCounter = 0;\r\n var proto$1 = {\r\n Statics: { classPrefix: classPrefix },\r\n isRtl: function () {\r\n return Control.rtl;\r\n },\r\n classPrefix: classPrefix,\r\n init: function (settings) {\r\n var self$$1 = this;\r\n var classes, defaultClasses;\r\n function applyClasses(classes) {\r\n var i;\r\n classes = classes.split(' ');\r\n for (i = 0; i < classes.length; i++) {\r\n self$$1.classes.add(classes[i]);\r\n }\r\n }\r\n self$$1.settings = settings = global$2.extend({}, self$$1.Defaults, settings);\r\n self$$1._id = settings.id || 'mceu_' + idCounter++;\r\n self$$1._aria = { role: settings.role };\r\n self$$1._elmCache = {};\r\n self$$1.$ = global$9;\r\n self$$1.state = new ObservableObject({\r\n visible: true,\r\n active: false,\r\n disabled: false,\r\n value: ''\r\n });\r\n self$$1.data = new ObservableObject(settings.data);\r\n self$$1.classes = new ClassList(function () {\r\n if (self$$1.state.get('rendered')) {\r\n self$$1.getEl().className = this.toString();\r\n }\r\n });\r\n self$$1.classes.prefix = self$$1.classPrefix;\r\n classes = settings.classes;\r\n if (classes) {\r\n if (self$$1.Defaults) {\r\n defaultClasses = self$$1.Defaults.classes;\r\n if (defaultClasses && classes !== defaultClasses) {\r\n applyClasses(defaultClasses);\r\n }\r\n }\r\n applyClasses(classes);\r\n }\r\n global$2.each('title text name visible disabled active value'.split(' '), function (name$$1) {\r\n if (name$$1 in settings) {\r\n self$$1[name$$1](settings[name$$1]);\r\n }\r\n });\r\n self$$1.on('click', function () {\r\n if (self$$1.disabled()) {\r\n return false;\r\n }\r\n });\r\n self$$1.settings = settings;\r\n self$$1.borderBox = $_79d0aauqjkmcwsj9.parseBox(settings.border);\r\n self$$1.paddingBox = $_79d0aauqjkmcwsj9.parseBox(settings.padding);\r\n self$$1.marginBox = $_79d0aauqjkmcwsj9.parseBox(settings.margin);\r\n if (settings.hidden) {\r\n self$$1.hide();\r\n }\r\n },\r\n Properties: 'parent,name',\r\n getContainerElm: function () {\r\n var uiContainer = $_5kmlp5u4jkmcwsge.getUiContainer(this);\r\n return uiContainer ? uiContainer : funcs.getContainer();\r\n },\r\n getParentCtrl: function (elm) {\r\n var ctrl;\r\n var lookup = this.getRoot().controlIdLookup;\r\n while (elm && lookup) {\r\n ctrl = lookup[elm.id];\r\n if (ctrl) {\r\n break;\r\n }\r\n elm = elm.parentNode;\r\n }\r\n return ctrl;\r\n },\r\n initLayoutRect: function () {\r\n var self$$1 = this;\r\n var settings = self$$1.settings;\r\n var borderBox, layoutRect;\r\n var elm = self$$1.getEl();\r\n var width, height, minWidth, minHeight, autoResize;\r\n var startMinWidth, startMinHeight, initialSize;\r\n borderBox = self$$1.borderBox = self$$1.borderBox || $_79d0aauqjkmcwsj9.measureBox(elm, 'border');\r\n self$$1.paddingBox = self$$1.paddingBox || $_79d0aauqjkmcwsj9.measureBox(elm, 'padding');\r\n self$$1.marginBox = self$$1.marginBox || $_79d0aauqjkmcwsj9.measureBox(elm, 'margin');\r\n initialSize = funcs.getSize(elm);\r\n startMinWidth = settings.minWidth;\r\n startMinHeight = settings.minHeight;\r\n minWidth = startMinWidth || initialSize.width;\r\n minHeight = startMinHeight || initialSize.height;\r\n width = settings.width;\r\n height = settings.height;\r\n autoResize = settings.autoResize;\r\n autoResize = typeof autoResize !== 'undefined' ? autoResize : !width && !height;\r\n width = width || minWidth;\r\n height = height || minHeight;\r\n var deltaW = borderBox.left + borderBox.right;\r\n var deltaH = borderBox.top + borderBox.bottom;\r\n var maxW = settings.maxWidth || 65535;\r\n var maxH = settings.maxHeight || 65535;\r\n self$$1._layoutRect = layoutRect = {\r\n x: settings.x || 0,\r\n y: settings.y || 0,\r\n w: width,\r\n h: height,\r\n deltaW: deltaW,\r\n deltaH: deltaH,\r\n contentW: width - deltaW,\r\n contentH: height - deltaH,\r\n innerW: width - deltaW,\r\n innerH: height - deltaH,\r\n startMinWidth: startMinWidth || 0,\r\n startMinHeight: startMinHeight || 0,\r\n minW: Math.min(minWidth, maxW),\r\n minH: Math.min(minHeight, maxH),\r\n maxW: maxW,\r\n maxH: maxH,\r\n autoResize: autoResize,\r\n scrollW: 0\r\n };\r\n self$$1._lastLayoutRect = {};\r\n return layoutRect;\r\n },\r\n layoutRect: function (newRect) {\r\n var self$$1 = this;\r\n var curRect = self$$1._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls;\r\n if (!curRect) {\r\n curRect = self$$1.initLayoutRect();\r\n }\r\n if (newRect) {\r\n deltaWidth = curRect.deltaW;\r\n deltaHeight = curRect.deltaH;\r\n if (newRect.x !== undefined) {\r\n curRect.x = newRect.x;\r\n }\r\n if (newRect.y !== undefined) {\r\n curRect.y = newRect.y;\r\n }\r\n if (newRect.minW !== undefined) {\r\n curRect.minW = newRect.minW;\r\n }\r\n if (newRect.minH !== undefined) {\r\n curRect.minH = newRect.minH;\r\n }\r\n size = newRect.w;\r\n if (size !== undefined) {\r\n size = size < curRect.minW ? curRect.minW : size;\r\n size = size > curRect.maxW ? curRect.maxW : size;\r\n curRect.w = size;\r\n curRect.innerW = size - deltaWidth;\r\n }\r\n size = newRect.h;\r\n if (size !== undefined) {\r\n size = size < curRect.minH ? curRect.minH : size;\r\n size = size > curRect.maxH ? curRect.maxH : size;\r\n curRect.h = size;\r\n curRect.innerH = size - deltaHeight;\r\n }\r\n size = newRect.innerW;\r\n if (size !== undefined) {\r\n size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size;\r\n size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size;\r\n curRect.innerW = size;\r\n curRect.w = size + deltaWidth;\r\n }\r\n size = newRect.innerH;\r\n if (size !== undefined) {\r\n size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size;\r\n size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size;\r\n curRect.innerH = size;\r\n curRect.h = size + deltaHeight;\r\n }\r\n if (newRect.contentW !== undefined) {\r\n curRect.contentW = newRect.contentW;\r\n }\r\n if (newRect.contentH !== undefined) {\r\n curRect.contentH = newRect.contentH;\r\n }\r\n lastLayoutRect = self$$1._lastLayoutRect;\r\n if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) {\r\n repaintControls = Control.repaintControls;\r\n if (repaintControls) {\r\n if (repaintControls.map && !repaintControls.map[self$$1._id]) {\r\n repaintControls.push(self$$1);\r\n repaintControls.map[self$$1._id] = true;\r\n }\r\n }\r\n lastLayoutRect.x = curRect.x;\r\n lastLayoutRect.y = curRect.y;\r\n lastLayoutRect.w = curRect.w;\r\n lastLayoutRect.h = curRect.h;\r\n }\r\n return self$$1;\r\n }\r\n return curRect;\r\n },\r\n repaint: function () {\r\n var self$$1 = this;\r\n var style, bodyStyle, bodyElm, rect, borderBox;\r\n var borderW, borderH, lastRepaintRect, round, value;\r\n round = !document.createRange ? Math.round : function (value) {\r\n return value;\r\n };\r\n style = self$$1.getEl().style;\r\n rect = self$$1._layoutRect;\r\n lastRepaintRect = self$$1._lastRepaintRect || {};\r\n borderBox = self$$1.borderBox;\r\n borderW = borderBox.left + borderBox.right;\r\n borderH = borderBox.top + borderBox.bottom;\r\n if (rect.x !== lastRepaintRect.x) {\r\n style.left = round(rect.x) + 'px';\r\n lastRepaintRect.x = rect.x;\r\n }\r\n if (rect.y !== lastRepaintRect.y) {\r\n style.top = round(rect.y) + 'px';\r\n lastRepaintRect.y = rect.y;\r\n }\r\n if (rect.w !== lastRepaintRect.w) {\r\n value = round(rect.w - borderW);\r\n style.width = (value >= 0 ? value : 0) + 'px';\r\n lastRepaintRect.w = rect.w;\r\n }\r\n if (rect.h !== lastRepaintRect.h) {\r\n value = round(rect.h - borderH);\r\n style.height = (value >= 0 ? value : 0) + 'px';\r\n lastRepaintRect.h = rect.h;\r\n }\r\n if (self$$1._hasBody && rect.innerW !== lastRepaintRect.innerW) {\r\n value = round(rect.innerW);\r\n bodyElm = self$$1.getEl('body');\r\n if (bodyElm) {\r\n bodyStyle = bodyElm.style;\r\n bodyStyle.width = (value >= 0 ? value : 0) + 'px';\r\n }\r\n lastRepaintRect.innerW = rect.innerW;\r\n }\r\n if (self$$1._hasBody && rect.innerH !== lastRepaintRect.innerH) {\r\n value = round(rect.innerH);\r\n bodyElm = bodyElm || self$$1.getEl('body');\r\n if (bodyElm) {\r\n bodyStyle = bodyStyle || bodyElm.style;\r\n bodyStyle.height = (value >= 0 ? value : 0) + 'px';\r\n }\r\n lastRepaintRect.innerH = rect.innerH;\r\n }\r\n self$$1._lastRepaintRect = lastRepaintRect;\r\n self$$1.fire('repaint', {}, false);\r\n },\r\n updateLayoutRect: function () {\r\n var self$$1 = this;\r\n self$$1.parent()._lastRect = null;\r\n funcs.css(self$$1.getEl(), {\r\n width: '',\r\n height: ''\r\n });\r\n self$$1._layoutRect = self$$1._lastRepaintRect = self$$1._lastLayoutRect = null;\r\n self$$1.initLayoutRect();\r\n },\r\n on: function (name$$1, callback) {\r\n var self$$1 = this;\r\n function resolveCallbackName(name$$1) {\r\n var callback, scope;\r\n if (typeof name$$1 !== 'string') {\r\n return name$$1;\r\n }\r\n return function (e) {\r\n if (!callback) {\r\n self$$1.parentsAndSelf().each(function (ctrl) {\r\n var callbacks = ctrl.settings.callbacks;\r\n if (callbacks && (callback = callbacks[name$$1])) {\r\n scope = ctrl;\r\n return false;\r\n }\r\n });\r\n }\r\n if (!callback) {\r\n e.action = name$$1;\r\n this.fire('execute', e);\r\n return;\r\n }\r\n return callback.call(scope, e);\r\n };\r\n }\r\n getEventDispatcher(self$$1).on(name$$1, resolveCallbackName(callback));\r\n return self$$1;\r\n },\r\n off: function (name$$1, callback) {\r\n getEventDispatcher(this).off(name$$1, callback);\r\n return this;\r\n },\r\n fire: function (name$$1, args, bubble) {\r\n var self$$1 = this;\r\n args = args || {};\r\n if (!args.control) {\r\n args.control = self$$1;\r\n }\r\n args = getEventDispatcher(self$$1).fire(name$$1, args);\r\n if (bubble !== false && self$$1.parent) {\r\n var parent$$1 = self$$1.parent();\r\n while (parent$$1 && !args.isPropagationStopped()) {\r\n parent$$1.fire(name$$1, args, false);\r\n parent$$1 = parent$$1.parent();\r\n }\r\n }\r\n return args;\r\n },\r\n hasEventListeners: function (name$$1) {\r\n return getEventDispatcher(this).has(name$$1);\r\n },\r\n parents: function (selector) {\r\n var self$$1 = this;\r\n var ctrl, parents = new Collection$2();\r\n for (ctrl = self$$1.parent(); ctrl; ctrl = ctrl.parent()) {\r\n parents.add(ctrl);\r\n }\r\n if (selector) {\r\n parents = parents.filter(selector);\r\n }\r\n return parents;\r\n },\r\n parentsAndSelf: function (selector) {\r\n return new Collection$2(this).add(this.parents(selector));\r\n },\r\n next: function () {\r\n var parentControls = this.parent().items();\r\n return parentControls[parentControls.indexOf(this) + 1];\r\n },\r\n prev: function () {\r\n var parentControls = this.parent().items();\r\n return parentControls[parentControls.indexOf(this) - 1];\r\n },\r\n innerHtml: function (html) {\r\n this.$el.html(html);\r\n return this;\r\n },\r\n getEl: function (suffix) {\r\n var id = suffix ? this._id + '-' + suffix : this._id;\r\n if (!this._elmCache[id]) {\r\n this._elmCache[id] = global$9('#' + id)[0];\r\n }\r\n return this._elmCache[id];\r\n },\r\n show: function () {\r\n return this.visible(true);\r\n },\r\n hide: function () {\r\n return this.visible(false);\r\n },\r\n focus: function () {\r\n try {\r\n this.getEl().focus();\r\n } catch (ex) {\r\n }\r\n return this;\r\n },\r\n blur: function () {\r\n this.getEl().blur();\r\n return this;\r\n },\r\n aria: function (name$$1, value) {\r\n var self$$1 = this, elm = self$$1.getEl(self$$1.ariaTarget);\r\n if (typeof value === 'undefined') {\r\n return self$$1._aria[name$$1];\r\n }\r\n self$$1._aria[name$$1] = value;\r\n if (self$$1.state.get('rendered')) {\r\n elm.setAttribute(name$$1 === 'role' ? name$$1 : 'aria-' + name$$1, value);\r\n }\r\n return self$$1;\r\n },\r\n encode: function (text, translate) {\r\n if (translate !== false) {\r\n text = this.translate(text);\r\n }\r\n return (text || '').replace(/[&<>\"]/g, function (match) {\r\n return '&#' + match.charCodeAt(0) + ';';\r\n });\r\n },\r\n translate: function (text) {\r\n return Control.translate ? Control.translate(text) : text;\r\n },\r\n before: function (items) {\r\n var self$$1 = this, parent$$1 = self$$1.parent();\r\n if (parent$$1) {\r\n parent$$1.insert(items, parent$$1.items().indexOf(self$$1), true);\r\n }\r\n return self$$1;\r\n },\r\n after: function (items) {\r\n var self$$1 = this, parent$$1 = self$$1.parent();\r\n if (parent$$1) {\r\n parent$$1.insert(items, parent$$1.items().indexOf(self$$1));\r\n }\r\n return self$$1;\r\n },\r\n remove: function () {\r\n var self$$1 = this;\r\n var elm = self$$1.getEl();\r\n var parent$$1 = self$$1.parent();\r\n var newItems, i;\r\n if (self$$1.items) {\r\n var controls = self$$1.items().toArray();\r\n i = controls.length;\r\n while (i--) {\r\n controls[i].remove();\r\n }\r\n }\r\n if (parent$$1 && parent$$1.items) {\r\n newItems = [];\r\n parent$$1.items().each(function (item) {\r\n if (item !== self$$1) {\r\n newItems.push(item);\r\n }\r\n });\r\n parent$$1.items().set(newItems);\r\n parent$$1._lastRect = null;\r\n }\r\n if (self$$1._eventsRoot && self$$1._eventsRoot === self$$1) {\r\n global$9(elm).off();\r\n }\r\n var lookup = self$$1.getRoot().controlIdLookup;\r\n if (lookup) {\r\n delete lookup[self$$1._id];\r\n }\r\n if (elm && elm.parentNode) {\r\n elm.parentNode.removeChild(elm);\r\n }\r\n self$$1.state.set('rendered', false);\r\n self$$1.state.destroy();\r\n self$$1.fire('remove');\r\n return self$$1;\r\n },\r\n renderBefore: function (elm) {\r\n global$9(elm).before(this.renderHtml());\r\n this.postRender();\r\n return this;\r\n },\r\n renderTo: function (elm) {\r\n global$9(elm || this.getContainerElm()).append(this.renderHtml());\r\n this.postRender();\r\n return this;\r\n },\r\n preRender: function () {\r\n },\r\n render: function () {\r\n },\r\n renderHtml: function () {\r\n return '
    ';\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n var settings = self$$1.settings;\r\n var elm, box, parent$$1, name$$1, parentEventsRoot;\r\n self$$1.$el = global$9(self$$1.getEl());\r\n self$$1.state.set('rendered', true);\r\n for (name$$1 in settings) {\r\n if (name$$1.indexOf('on') === 0) {\r\n self$$1.on(name$$1.substr(2), settings[name$$1]);\r\n }\r\n }\r\n if (self$$1._eventsRoot) {\r\n for (parent$$1 = self$$1.parent(); !parentEventsRoot && parent$$1; parent$$1 = parent$$1.parent()) {\r\n parentEventsRoot = parent$$1._eventsRoot;\r\n }\r\n if (parentEventsRoot) {\r\n for (name$$1 in parentEventsRoot._nativeEvents) {\r\n self$$1._nativeEvents[name$$1] = true;\r\n }\r\n }\r\n }\r\n bindPendingEvents(self$$1);\r\n if (settings.style) {\r\n elm = self$$1.getEl();\r\n if (elm) {\r\n elm.setAttribute('style', settings.style);\r\n elm.style.cssText = settings.style;\r\n }\r\n }\r\n if (self$$1.settings.border) {\r\n box = self$$1.borderBox;\r\n self$$1.$el.css({\r\n 'border-top-width': box.top,\r\n 'border-right-width': box.right,\r\n 'border-bottom-width': box.bottom,\r\n 'border-left-width': box.left\r\n });\r\n }\r\n var root = self$$1.getRoot();\r\n if (!root.controlIdLookup) {\r\n root.controlIdLookup = {};\r\n }\r\n root.controlIdLookup[self$$1._id] = self$$1;\r\n for (var key in self$$1._aria) {\r\n self$$1.aria(key, self$$1._aria[key]);\r\n }\r\n if (self$$1.state.get('visible') === false) {\r\n self$$1.getEl().style.display = 'none';\r\n }\r\n self$$1.bindStates();\r\n self$$1.state.on('change:visible', function (e) {\r\n var state = e.value;\r\n var parentCtrl;\r\n if (self$$1.state.get('rendered')) {\r\n self$$1.getEl().style.display = state === false ? 'none' : '';\r\n self$$1.getEl().getBoundingClientRect();\r\n }\r\n parentCtrl = self$$1.parent();\r\n if (parentCtrl) {\r\n parentCtrl._lastRect = null;\r\n }\r\n self$$1.fire(state ? 'show' : 'hide');\r\n $_921m08uxjkmcwsk2.add(self$$1);\r\n });\r\n self$$1.fire('postrender', {}, false);\r\n },\r\n bindStates: function () {\r\n },\r\n scrollIntoView: function (align) {\r\n function getOffset(elm, rootElm) {\r\n var x, y, parent$$1 = elm;\r\n x = y = 0;\r\n while (parent$$1 && parent$$1 !== rootElm && parent$$1.nodeType) {\r\n x += parent$$1.offsetLeft || 0;\r\n y += parent$$1.offsetTop || 0;\r\n parent$$1 = parent$$1.offsetParent;\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n }\r\n var elm = this.getEl(), parentElm = elm.parentNode;\r\n var x, y, width, height, parentWidth, parentHeight;\r\n var pos = getOffset(elm, parentElm);\r\n x = pos.x;\r\n y = pos.y;\r\n width = elm.offsetWidth;\r\n height = elm.offsetHeight;\r\n parentWidth = parentElm.clientWidth;\r\n parentHeight = parentElm.clientHeight;\r\n if (align === 'end') {\r\n x -= parentWidth - width;\r\n y -= parentHeight - height;\r\n } else if (align === 'center') {\r\n x -= parentWidth / 2 - width / 2;\r\n y -= parentHeight / 2 - height / 2;\r\n }\r\n parentElm.scrollLeft = x;\r\n parentElm.scrollTop = y;\r\n return this;\r\n },\r\n getRoot: function () {\r\n var ctrl = this, rootControl;\r\n var parents = [];\r\n while (ctrl) {\r\n if (ctrl.rootControl) {\r\n rootControl = ctrl.rootControl;\r\n break;\r\n }\r\n parents.push(ctrl);\r\n rootControl = ctrl;\r\n ctrl = ctrl.parent();\r\n }\r\n if (!rootControl) {\r\n rootControl = this;\r\n }\r\n var i = parents.length;\r\n while (i--) {\r\n parents[i].rootControl = rootControl;\r\n }\r\n return rootControl;\r\n },\r\n reflow: function () {\r\n $_921m08uxjkmcwsk2.remove(this);\r\n var parent$$1 = this.parent();\r\n if (parent$$1 && parent$$1._layout && !parent$$1._layout.isNative()) {\r\n parent$$1.reflow();\r\n }\r\n return this;\r\n }\r\n };\r\n global$2.each('text title visible disabled active value'.split(' '), function (name$$1) {\r\n proto$1[name$$1] = function (value) {\r\n if (arguments.length === 0) {\r\n return this.state.get(name$$1);\r\n }\r\n if (typeof value !== 'undefined') {\r\n this.state.set(name$$1, value);\r\n }\r\n return this;\r\n };\r\n });\r\n Control = global$10.extend(proto$1);\r\n function getEventDispatcher(obj) {\r\n if (!obj._eventDispatcher) {\r\n obj._eventDispatcher = new global$11({\r\n scope: obj,\r\n toggleEvent: function (name$$1, state) {\r\n if (state && global$11.isNative(name$$1)) {\r\n if (!obj._nativeEvents) {\r\n obj._nativeEvents = {};\r\n }\r\n obj._nativeEvents[name$$1] = true;\r\n if (obj.state.get('rendered')) {\r\n bindPendingEvents(obj);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return obj._eventDispatcher;\r\n }\r\n function bindPendingEvents(eventCtrl) {\r\n var i, l, parents, eventRootCtrl, nativeEvents, name$$1;\r\n function delegate(e) {\r\n var control = eventCtrl.getParentCtrl(e.target);\r\n if (control) {\r\n control.fire(e.type, e);\r\n }\r\n }\r\n function mouseLeaveHandler() {\r\n var ctrl = eventRootCtrl._lastHoverCtrl;\r\n if (ctrl) {\r\n ctrl.fire('mouseleave', { target: ctrl.getEl() });\r\n ctrl.parents().each(function (ctrl) {\r\n ctrl.fire('mouseleave', { target: ctrl.getEl() });\r\n });\r\n eventRootCtrl._lastHoverCtrl = null;\r\n }\r\n }\r\n function mouseEnterHandler(e) {\r\n var ctrl = eventCtrl.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents;\r\n if (ctrl !== lastCtrl) {\r\n eventRootCtrl._lastHoverCtrl = ctrl;\r\n parents = ctrl.parents().toArray().reverse();\r\n parents.push(ctrl);\r\n if (lastCtrl) {\r\n lastParents = lastCtrl.parents().toArray().reverse();\r\n lastParents.push(lastCtrl);\r\n for (idx = 0; idx < lastParents.length; idx++) {\r\n if (parents[idx] !== lastParents[idx]) {\r\n break;\r\n }\r\n }\r\n for (i = lastParents.length - 1; i >= idx; i--) {\r\n lastCtrl = lastParents[i];\r\n lastCtrl.fire('mouseleave', { target: lastCtrl.getEl() });\r\n }\r\n }\r\n for (i = idx; i < parents.length; i++) {\r\n ctrl = parents[i];\r\n ctrl.fire('mouseenter', { target: ctrl.getEl() });\r\n }\r\n }\r\n }\r\n function fixWheelEvent(e) {\r\n e.preventDefault();\r\n if (e.type === 'mousewheel') {\r\n e.deltaY = -1 / 40 * e.wheelDelta;\r\n if (e.wheelDeltaX) {\r\n e.deltaX = -1 / 40 * e.wheelDeltaX;\r\n }\r\n } else {\r\n e.deltaX = 0;\r\n e.deltaY = e.detail;\r\n }\r\n e = eventCtrl.fire('wheel', e);\r\n }\r\n nativeEvents = eventCtrl._nativeEvents;\r\n if (nativeEvents) {\r\n parents = eventCtrl.parents().toArray();\r\n parents.unshift(eventCtrl);\r\n for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) {\r\n eventRootCtrl = parents[i]._eventsRoot;\r\n }\r\n if (!eventRootCtrl) {\r\n eventRootCtrl = parents[parents.length - 1] || eventCtrl;\r\n }\r\n eventCtrl._eventsRoot = eventRootCtrl;\r\n for (l = i, i = 0; i < l; i++) {\r\n parents[i]._eventsRoot = eventRootCtrl;\r\n }\r\n var eventRootDelegates = eventRootCtrl._delegates;\r\n if (!eventRootDelegates) {\r\n eventRootDelegates = eventRootCtrl._delegates = {};\r\n }\r\n for (name$$1 in nativeEvents) {\r\n if (!nativeEvents) {\r\n return false;\r\n }\r\n if (name$$1 === 'wheel' && !hasWheelEventSupport) {\r\n if (hasMouseWheelEventSupport) {\r\n global$9(eventCtrl.getEl()).on('mousewheel', fixWheelEvent);\r\n } else {\r\n global$9(eventCtrl.getEl()).on('DOMMouseScroll', fixWheelEvent);\r\n }\r\n continue;\r\n }\r\n if (name$$1 === 'mouseenter' || name$$1 === 'mouseleave') {\r\n if (!eventRootCtrl._hasMouseEnter) {\r\n global$9(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler);\r\n eventRootCtrl._hasMouseEnter = 1;\r\n }\r\n } else if (!eventRootDelegates[name$$1]) {\r\n global$9(eventRootCtrl.getEl()).on(name$$1, delegate);\r\n eventRootDelegates[name$$1] = true;\r\n }\r\n nativeEvents[name$$1] = false;\r\n }\r\n }\r\n }\r\n var Control$1 = Control;\r\n\r\n var hasTabstopData = function (elm) {\r\n return elm.getAttribute('data-mce-tabstop') ? true : false;\r\n };\r\n function KeyboardNavigation (settings) {\r\n var root = settings.root;\r\n var focusedElement, focusedControl;\r\n function isElement(node) {\r\n return node && node.nodeType === 1;\r\n }\r\n try {\r\n focusedElement = document.activeElement;\r\n } catch (ex) {\r\n focusedElement = document.body;\r\n }\r\n focusedControl = root.getParentCtrl(focusedElement);\r\n function getRole(elm) {\r\n elm = elm || focusedElement;\r\n if (isElement(elm)) {\r\n return elm.getAttribute('role');\r\n }\r\n return null;\r\n }\r\n function getParentRole(elm) {\r\n var role, parent$$1 = elm || focusedElement;\r\n while (parent$$1 = parent$$1.parentNode) {\r\n if (role = getRole(parent$$1)) {\r\n return role;\r\n }\r\n }\r\n }\r\n function getAriaProp(name$$1) {\r\n var elm = focusedElement;\r\n if (isElement(elm)) {\r\n return elm.getAttribute('aria-' + name$$1);\r\n }\r\n }\r\n function isTextInputElement(elm) {\r\n var tagName = elm.tagName.toUpperCase();\r\n return tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT';\r\n }\r\n function canFocus(elm) {\r\n if (isTextInputElement(elm) && !elm.hidden) {\r\n return true;\r\n }\r\n if (hasTabstopData(elm)) {\r\n return true;\r\n }\r\n if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(getRole(elm))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function getFocusElements(elm) {\r\n var elements = [];\r\n function collect(elm) {\r\n if (elm.nodeType !== 1 || elm.style.display === 'none' || elm.disabled) {\r\n return;\r\n }\r\n if (canFocus(elm)) {\r\n elements.push(elm);\r\n }\r\n for (var i = 0; i < elm.childNodes.length; i++) {\r\n collect(elm.childNodes[i]);\r\n }\r\n }\r\n collect(elm || root.getEl());\r\n return elements;\r\n }\r\n function getNavigationRoot(targetControl) {\r\n var navigationRoot, controls;\r\n targetControl = targetControl || focusedControl;\r\n controls = targetControl.parents().toArray();\r\n controls.unshift(targetControl);\r\n for (var i = 0; i < controls.length; i++) {\r\n navigationRoot = controls[i];\r\n if (navigationRoot.settings.ariaRoot) {\r\n break;\r\n }\r\n }\r\n return navigationRoot;\r\n }\r\n function focusFirst(targetControl) {\r\n var navigationRoot = getNavigationRoot(targetControl);\r\n var focusElements = getFocusElements(navigationRoot.getEl());\r\n if (navigationRoot.settings.ariaRemember && 'lastAriaIndex' in navigationRoot) {\r\n moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements);\r\n } else {\r\n moveFocusToIndex(0, focusElements);\r\n }\r\n }\r\n function moveFocusToIndex(idx, elements) {\r\n if (idx < 0) {\r\n idx = elements.length - 1;\r\n } else if (idx >= elements.length) {\r\n idx = 0;\r\n }\r\n if (elements[idx]) {\r\n elements[idx].focus();\r\n }\r\n return idx;\r\n }\r\n function moveFocus(dir, elements) {\r\n var idx = -1;\r\n var navigationRoot = getNavigationRoot();\r\n elements = elements || getFocusElements(navigationRoot.getEl());\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i] === focusedElement) {\r\n idx = i;\r\n }\r\n }\r\n idx += dir;\r\n navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements);\r\n }\r\n function left() {\r\n var parentRole = getParentRole();\r\n if (parentRole === 'tablist') {\r\n moveFocus(-1, getFocusElements(focusedElement.parentNode));\r\n } else if (focusedControl.parent().submenu) {\r\n cancel();\r\n } else {\r\n moveFocus(-1);\r\n }\r\n }\r\n function right() {\r\n var role = getRole(), parentRole = getParentRole();\r\n if (parentRole === 'tablist') {\r\n moveFocus(1, getFocusElements(focusedElement.parentNode));\r\n } else if (role === 'menuitem' && parentRole === 'menu' && getAriaProp('haspopup')) {\r\n enter();\r\n } else {\r\n moveFocus(1);\r\n }\r\n }\r\n function up() {\r\n moveFocus(-1);\r\n }\r\n function down() {\r\n var role = getRole(), parentRole = getParentRole();\r\n if (role === 'menuitem' && parentRole === 'menubar') {\r\n enter();\r\n } else if (role === 'button' && getAriaProp('haspopup')) {\r\n enter({ key: 'down' });\r\n } else {\r\n moveFocus(1);\r\n }\r\n }\r\n function tab(e) {\r\n var parentRole = getParentRole();\r\n if (parentRole === 'tablist') {\r\n var elm = getFocusElements(focusedControl.getEl('body'))[0];\r\n if (elm) {\r\n elm.focus();\r\n }\r\n } else {\r\n moveFocus(e.shiftKey ? -1 : 1);\r\n }\r\n }\r\n function cancel() {\r\n focusedControl.fire('cancel');\r\n }\r\n function enter(aria) {\r\n aria = aria || {};\r\n focusedControl.fire('click', {\r\n target: focusedElement,\r\n aria: aria\r\n });\r\n }\r\n root.on('keydown', function (e) {\r\n function handleNonTabOrEscEvent(e, handler) {\r\n if (isTextInputElement(focusedElement) || hasTabstopData(focusedElement)) {\r\n return;\r\n }\r\n if (getRole(focusedElement) === 'slider') {\r\n return;\r\n }\r\n if (handler(e) !== false) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (e.isDefaultPrevented()) {\r\n return;\r\n }\r\n switch (e.keyCode) {\r\n case 37:\r\n handleNonTabOrEscEvent(e, left);\r\n break;\r\n case 39:\r\n handleNonTabOrEscEvent(e, right);\r\n break;\r\n case 38:\r\n handleNonTabOrEscEvent(e, up);\r\n break;\r\n case 40:\r\n handleNonTabOrEscEvent(e, down);\r\n break;\r\n case 27:\r\n cancel();\r\n break;\r\n case 14:\r\n case 13:\r\n case 32:\r\n handleNonTabOrEscEvent(e, enter);\r\n break;\r\n case 9:\r\n tab(e);\r\n e.preventDefault();\r\n break;\r\n }\r\n });\r\n root.on('focusin', function (e) {\r\n focusedElement = e.target;\r\n focusedControl = e.control;\r\n });\r\n return { focusFirst: focusFirst };\r\n }\r\n\r\n var selectorCache = {};\r\n var Container = Control$1.extend({\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n settings = self.settings;\r\n if (settings.fixed) {\r\n self.state.set('fixed', true);\r\n }\r\n self._items = new Collection$2();\r\n if (self.isRtl()) {\r\n self.classes.add('rtl');\r\n }\r\n self.bodyClasses = new ClassList(function () {\r\n if (self.state.get('rendered')) {\r\n self.getEl('body').className = this.toString();\r\n }\r\n });\r\n self.bodyClasses.prefix = self.classPrefix;\r\n self.classes.add('container');\r\n self.bodyClasses.add('container-body');\r\n if (settings.containerCls) {\r\n self.classes.add(settings.containerCls);\r\n }\r\n self._layout = global$4.create((settings.layout || '') + 'layout');\r\n if (self.settings.items) {\r\n self.add(self.settings.items);\r\n } else {\r\n self.add(self.render());\r\n }\r\n self._hasBody = true;\r\n },\r\n items: function () {\r\n return this._items;\r\n },\r\n find: function (selector) {\r\n selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector);\r\n return selector.find(this);\r\n },\r\n add: function (items) {\r\n var self = this;\r\n self.items().add(self.create(items)).parent(self);\r\n return self;\r\n },\r\n focus: function (keyboard) {\r\n var self = this;\r\n var focusCtrl, keyboardNav, items;\r\n if (keyboard) {\r\n keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav;\r\n if (keyboardNav) {\r\n keyboardNav.focusFirst(self);\r\n return;\r\n }\r\n }\r\n items = self.find('*');\r\n if (self.statusbar) {\r\n items.add(self.statusbar.items());\r\n }\r\n items.each(function (ctrl) {\r\n if (ctrl.settings.autofocus) {\r\n focusCtrl = null;\r\n return false;\r\n }\r\n if (ctrl.canFocus) {\r\n focusCtrl = focusCtrl || ctrl;\r\n }\r\n });\r\n if (focusCtrl) {\r\n focusCtrl.focus();\r\n }\r\n return self;\r\n },\r\n replace: function (oldItem, newItem) {\r\n var ctrlElm;\r\n var items = this.items();\r\n var i = items.length;\r\n while (i--) {\r\n if (items[i] === oldItem) {\r\n items[i] = newItem;\r\n break;\r\n }\r\n }\r\n if (i >= 0) {\r\n ctrlElm = newItem.getEl();\r\n if (ctrlElm) {\r\n ctrlElm.parentNode.removeChild(ctrlElm);\r\n }\r\n ctrlElm = oldItem.getEl();\r\n if (ctrlElm) {\r\n ctrlElm.parentNode.removeChild(ctrlElm);\r\n }\r\n }\r\n newItem.parent(this);\r\n },\r\n create: function (items) {\r\n var self = this;\r\n var settings;\r\n var ctrlItems = [];\r\n if (!global$2.isArray(items)) {\r\n items = [items];\r\n }\r\n global$2.each(items, function (item) {\r\n if (item) {\r\n if (!(item instanceof Control$1)) {\r\n if (typeof item === 'string') {\r\n item = { type: item };\r\n }\r\n settings = global$2.extend({}, self.settings.defaults, item);\r\n item.type = settings.type = settings.type || item.type || self.settings.defaultType || (settings.defaults ? settings.defaults.type : null);\r\n item = global$4.create(settings);\r\n }\r\n ctrlItems.push(item);\r\n }\r\n });\r\n return ctrlItems;\r\n },\r\n renderNew: function () {\r\n var self = this;\r\n self.items().each(function (ctrl, index) {\r\n var containerElm;\r\n ctrl.parent(self);\r\n if (!ctrl.state.get('rendered')) {\r\n containerElm = self.getEl('body');\r\n if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) {\r\n global$9(containerElm.childNodes[index]).before(ctrl.renderHtml());\r\n } else {\r\n global$9(containerElm).append(ctrl.renderHtml());\r\n }\r\n ctrl.postRender();\r\n $_921m08uxjkmcwsk2.add(ctrl);\r\n }\r\n });\r\n self._layout.applyClasses(self.items().filter(':visible'));\r\n self._lastRect = null;\r\n return self;\r\n },\r\n append: function (items) {\r\n return this.add(items).renderNew();\r\n },\r\n prepend: function (items) {\r\n var self = this;\r\n self.items().set(self.create(items).concat(self.items().toArray()));\r\n return self.renderNew();\r\n },\r\n insert: function (items, index, before) {\r\n var self = this;\r\n var curItems, beforeItems, afterItems;\r\n items = self.create(items);\r\n curItems = self.items();\r\n if (!before && index < curItems.length - 1) {\r\n index += 1;\r\n }\r\n if (index >= 0 && index < curItems.length) {\r\n beforeItems = curItems.slice(0, index).toArray();\r\n afterItems = curItems.slice(index).toArray();\r\n curItems.set(beforeItems.concat(items, afterItems));\r\n }\r\n return self.renderNew();\r\n },\r\n fromJSON: function (data) {\r\n var self = this;\r\n for (var name in data) {\r\n self.find('#' + name).value(data[name]);\r\n }\r\n return self;\r\n },\r\n toJSON: function () {\r\n var self = this, data = {};\r\n self.find('*').each(function (ctrl) {\r\n var name = ctrl.name(), value = ctrl.value();\r\n if (name && typeof value !== 'undefined') {\r\n data[name] = value;\r\n }\r\n });\r\n return data;\r\n },\r\n renderHtml: function () {\r\n var self = this, layout = self._layout, role = this.settings.role;\r\n self.preRender();\r\n layout.preRender(self);\r\n return '
    ' + '
    ' + (self.settings.html || '') + layout.renderHtml(self) + '
    ' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this;\r\n var box;\r\n self.items().exec('postRender');\r\n self._super();\r\n self._layout.postRender(self);\r\n self.state.set('rendered', true);\r\n if (self.settings.style) {\r\n self.$el.css(self.settings.style);\r\n }\r\n if (self.settings.border) {\r\n box = self.borderBox;\r\n self.$el.css({\r\n 'border-top-width': box.top,\r\n 'border-right-width': box.right,\r\n 'border-bottom-width': box.bottom,\r\n 'border-left-width': box.left\r\n });\r\n }\r\n if (!self.parent()) {\r\n self.keyboardNav = KeyboardNavigation({ root: self });\r\n }\r\n return self;\r\n },\r\n initLayoutRect: function () {\r\n var self = this, layoutRect = self._super();\r\n self._layout.recalc(self);\r\n return layoutRect;\r\n },\r\n recalc: function () {\r\n var self = this;\r\n var rect = self._layoutRect;\r\n var lastRect = self._lastRect;\r\n if (!lastRect || lastRect.w !== rect.w || lastRect.h !== rect.h) {\r\n self._layout.recalc(self);\r\n rect = self.layoutRect();\r\n self._lastRect = {\r\n x: rect.x,\r\n y: rect.y,\r\n w: rect.w,\r\n h: rect.h\r\n };\r\n return true;\r\n }\r\n },\r\n reflow: function () {\r\n var i;\r\n $_921m08uxjkmcwsk2.remove(this);\r\n if (this.visible()) {\r\n Control$1.repaintControls = [];\r\n Control$1.repaintControls.map = {};\r\n this.recalc();\r\n i = Control$1.repaintControls.length;\r\n while (i--) {\r\n Control$1.repaintControls[i].repaint();\r\n }\r\n if (this.settings.layout !== 'flow' && this.settings.layout !== 'stack') {\r\n this.repaint();\r\n }\r\n Control$1.repaintControls = [];\r\n }\r\n return this;\r\n }\r\n });\r\n\r\n function getDocumentSize(doc) {\r\n var documentElement, body, scrollWidth, clientWidth;\r\n var offsetWidth, scrollHeight, clientHeight, offsetHeight;\r\n var max = Math.max;\r\n documentElement = doc.documentElement;\r\n body = doc.body;\r\n scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\r\n clientWidth = max(documentElement.clientWidth, body.clientWidth);\r\n offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\r\n scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\r\n clientHeight = max(documentElement.clientHeight, body.clientHeight);\r\n offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\r\n return {\r\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\r\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\r\n };\r\n }\r\n function updateWithTouchData(e) {\r\n var keys, i;\r\n if (e.changedTouches) {\r\n keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\r\n for (i = 0; i < keys.length; i++) {\r\n e[keys[i]] = e.changedTouches[0][keys[i]];\r\n }\r\n }\r\n }\r\n function DragHelper (id, settings) {\r\n var $eventOverlay;\r\n var doc = settings.document || document;\r\n var downButton;\r\n var start, stop$$1, drag, startX, startY;\r\n settings = settings || {};\r\n var handleElement = doc.getElementById(settings.handle || id);\r\n start = function (e) {\r\n var docSize = getDocumentSize(doc);\r\n var handleElm, cursor;\r\n updateWithTouchData(e);\r\n e.preventDefault();\r\n downButton = e.button;\r\n handleElm = handleElement;\r\n startX = e.screenX;\r\n startY = e.screenY;\r\n if (window.getComputedStyle) {\r\n cursor = window.getComputedStyle(handleElm, null).getPropertyValue('cursor');\r\n } else {\r\n cursor = handleElm.runtimeStyle.cursor;\r\n }\r\n $eventOverlay = global$9('
    ').css({\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: docSize.width,\r\n height: docSize.height,\r\n zIndex: 2147483647,\r\n opacity: 0.0001,\r\n cursor: cursor\r\n }).appendTo(doc.body);\r\n global$9(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop$$1);\r\n settings.start(e);\r\n };\r\n drag = function (e) {\r\n updateWithTouchData(e);\r\n if (e.button !== downButton) {\r\n return stop$$1(e);\r\n }\r\n e.deltaX = e.screenX - startX;\r\n e.deltaY = e.screenY - startY;\r\n e.preventDefault();\r\n settings.drag(e);\r\n };\r\n stop$$1 = function (e) {\r\n updateWithTouchData(e);\r\n global$9(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop$$1);\r\n $eventOverlay.remove();\r\n if (settings.stop) {\r\n settings.stop(e);\r\n }\r\n };\r\n this.destroy = function () {\r\n global$9(handleElement).off();\r\n };\r\n global$9(handleElement).on('mousedown touchstart', start);\r\n }\r\n\r\n var $_c9juz9uzjkmcwskb = {\r\n init: function () {\r\n var self = this;\r\n self.on('repaint', self.renderScroll);\r\n },\r\n renderScroll: function () {\r\n var self = this, margin = 2;\r\n function repaintScroll() {\r\n var hasScrollH, hasScrollV, bodyElm;\r\n function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) {\r\n var containerElm, scrollBarElm, scrollThumbElm;\r\n var containerSize, scrollSize, ratio, rect;\r\n var posNameLower, sizeNameLower;\r\n scrollBarElm = self.getEl('scroll' + axisName);\r\n if (scrollBarElm) {\r\n posNameLower = posName.toLowerCase();\r\n sizeNameLower = sizeName.toLowerCase();\r\n global$9(self.getEl('absend')).css(posNameLower, self.layoutRect()[contentSizeName] - 1);\r\n if (!hasScroll) {\r\n global$9(scrollBarElm).css('display', 'none');\r\n return;\r\n }\r\n global$9(scrollBarElm).css('display', 'block');\r\n containerElm = self.getEl('body');\r\n scrollThumbElm = self.getEl('scroll' + axisName + 't');\r\n containerSize = containerElm['client' + sizeName] - margin * 2;\r\n containerSize -= hasScrollH && hasScrollV ? scrollBarElm['client' + ax] : 0;\r\n scrollSize = containerElm['scroll' + sizeName];\r\n ratio = containerSize / scrollSize;\r\n rect = {};\r\n rect[posNameLower] = containerElm['offset' + posName] + margin;\r\n rect[sizeNameLower] = containerSize;\r\n global$9(scrollBarElm).css(rect);\r\n rect = {};\r\n rect[posNameLower] = containerElm['scroll' + posName] * ratio;\r\n rect[sizeNameLower] = containerSize * ratio;\r\n global$9(scrollThumbElm).css(rect);\r\n }\r\n }\r\n bodyElm = self.getEl('body');\r\n hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth;\r\n hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight;\r\n repaintAxis('h', 'Left', 'Width', 'contentW', hasScrollH, 'Height');\r\n repaintAxis('v', 'Top', 'Height', 'contentH', hasScrollV, 'Width');\r\n }\r\n function addScroll() {\r\n function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) {\r\n var scrollStart;\r\n var axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix;\r\n global$9(self.getEl()).append('
    ' + '
    ' + '
    ');\r\n self.draghelper = new DragHelper(axisId + 't', {\r\n start: function () {\r\n scrollStart = self.getEl('body')['scroll' + posName];\r\n global$9('#' + axisId).addClass(prefix + 'active');\r\n },\r\n drag: function (e) {\r\n var ratio, hasScrollH, hasScrollV, containerSize;\r\n var layoutRect = self.layoutRect();\r\n hasScrollH = layoutRect.contentW > layoutRect.innerW;\r\n hasScrollV = layoutRect.contentH > layoutRect.innerH;\r\n containerSize = self.getEl('body')['client' + sizeName] - margin * 2;\r\n containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)['client' + ax] : 0;\r\n ratio = containerSize / self.getEl('body')['scroll' + sizeName];\r\n self.getEl('body')['scroll' + posName] = scrollStart + e['delta' + deltaPosName] / ratio;\r\n },\r\n stop: function () {\r\n global$9('#' + axisId).removeClass(prefix + 'active');\r\n }\r\n });\r\n }\r\n self.classes.add('scroll');\r\n addScrollAxis('v', 'Top', 'Height', 'Y', 'Width');\r\n addScrollAxis('h', 'Left', 'Width', 'X', 'Height');\r\n }\r\n if (self.settings.autoScroll) {\r\n if (!self._hasScroll) {\r\n self._hasScroll = true;\r\n addScroll();\r\n self.on('wheel', function (e) {\r\n var bodyEl = self.getEl('body');\r\n bodyEl.scrollLeft += (e.deltaX || 0) * 10;\r\n bodyEl.scrollTop += e.deltaY * 10;\r\n repaintScroll();\r\n });\r\n global$9(self.getEl('body')).on('scroll', repaintScroll);\r\n }\r\n repaintScroll();\r\n }\r\n }\r\n };\r\n\r\n var Panel = Container.extend({\r\n Defaults: {\r\n layout: 'fit',\r\n containerCls: 'panel'\r\n },\r\n Mixins: [$_c9juz9uzjkmcwskb],\r\n renderHtml: function () {\r\n var self = this;\r\n var layout = self._layout;\r\n var innerHtml = self.settings.html;\r\n self.preRender();\r\n layout.preRender(self);\r\n if (typeof innerHtml === 'undefined') {\r\n innerHtml = '
    ' + layout.renderHtml(self) + '
    ';\r\n } else {\r\n if (typeof innerHtml === 'function') {\r\n innerHtml = innerHtml.call(self);\r\n }\r\n self._hasBody = false;\r\n }\r\n return '
    ' + (self._preBodyHtml || '') + innerHtml + '
    ';\r\n }\r\n });\r\n\r\n var $_4ci2x6v1jkmcwski = {\r\n resizeToContent: function () {\r\n this._layoutRect.autoResize = true;\r\n this._lastRect = null;\r\n this.reflow();\r\n },\r\n resizeTo: function (w, h) {\r\n if (w <= 1 || h <= 1) {\r\n var rect = funcs.getWindowSize();\r\n w = w <= 1 ? w * rect.w : w;\r\n h = h <= 1 ? h * rect.h : h;\r\n }\r\n this._layoutRect.autoResize = false;\r\n return this.layoutRect({\r\n minW: w,\r\n minH: h,\r\n w: w,\r\n h: h\r\n }).reflow();\r\n },\r\n resizeBy: function (dw, dh) {\r\n var self = this, rect = self.layoutRect();\r\n return self.resizeTo(rect.w + dw, rect.h + dh);\r\n }\r\n };\r\n\r\n var documentClickHandler;\r\n var documentScrollHandler;\r\n var windowResizeHandler;\r\n var visiblePanels = [];\r\n var zOrder = [];\r\n var hasModal;\r\n function isChildOf(ctrl, parent$$1) {\r\n while (ctrl) {\r\n if (ctrl === parent$$1) {\r\n return true;\r\n }\r\n ctrl = ctrl.parent();\r\n }\r\n }\r\n function skipOrHidePanels(e) {\r\n var i = visiblePanels.length;\r\n while (i--) {\r\n var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target);\r\n if (panel.settings.autohide) {\r\n if (clickCtrl) {\r\n if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) {\r\n continue;\r\n }\r\n }\r\n e = panel.fire('autohide', { target: e.target });\r\n if (!e.isDefaultPrevented()) {\r\n panel.hide();\r\n }\r\n }\r\n }\r\n }\r\n function bindDocumentClickHandler() {\r\n if (!documentClickHandler) {\r\n documentClickHandler = function (e) {\r\n if (e.button === 2) {\r\n return;\r\n }\r\n skipOrHidePanels(e);\r\n };\r\n global$9(document).on('click touchstart', documentClickHandler);\r\n }\r\n }\r\n function bindDocumentScrollHandler() {\r\n if (!documentScrollHandler) {\r\n documentScrollHandler = function () {\r\n var i;\r\n i = visiblePanels.length;\r\n while (i--) {\r\n repositionPanel(visiblePanels[i]);\r\n }\r\n };\r\n global$9(window).on('scroll', documentScrollHandler);\r\n }\r\n }\r\n function bindWindowResizeHandler() {\r\n if (!windowResizeHandler) {\r\n var docElm_1 = document.documentElement;\r\n var clientWidth_1 = docElm_1.clientWidth, clientHeight_1 = docElm_1.clientHeight;\r\n windowResizeHandler = function () {\r\n if (!document.all || clientWidth_1 !== docElm_1.clientWidth || clientHeight_1 !== docElm_1.clientHeight) {\r\n clientWidth_1 = docElm_1.clientWidth;\r\n clientHeight_1 = docElm_1.clientHeight;\r\n FloatPanel.hideAll();\r\n }\r\n };\r\n global$9(window).on('resize', windowResizeHandler);\r\n }\r\n }\r\n function repositionPanel(panel) {\r\n var scrollY$$1 = funcs.getViewPort().y;\r\n function toggleFixedChildPanels(fixed, deltaY) {\r\n var parent$$1;\r\n for (var i = 0; i < visiblePanels.length; i++) {\r\n if (visiblePanels[i] !== panel) {\r\n parent$$1 = visiblePanels[i].parent();\r\n while (parent$$1 && (parent$$1 = parent$$1.parent())) {\r\n if (parent$$1 === panel) {\r\n visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (panel.settings.autofix) {\r\n if (!panel.state.get('fixed')) {\r\n panel._autoFixY = panel.layoutRect().y;\r\n if (panel._autoFixY < scrollY$$1) {\r\n panel.fixed(true).layoutRect({ y: 0 }).repaint();\r\n toggleFixedChildPanels(true, scrollY$$1 - panel._autoFixY);\r\n }\r\n } else {\r\n if (panel._autoFixY > scrollY$$1) {\r\n panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint();\r\n toggleFixedChildPanels(false, panel._autoFixY - scrollY$$1);\r\n }\r\n }\r\n }\r\n }\r\n function addRemove(add, ctrl) {\r\n var i, zIndex = FloatPanel.zIndex || 65535, topModal;\r\n if (add) {\r\n zOrder.push(ctrl);\r\n } else {\r\n i = zOrder.length;\r\n while (i--) {\r\n if (zOrder[i] === ctrl) {\r\n zOrder.splice(i, 1);\r\n }\r\n }\r\n }\r\n if (zOrder.length) {\r\n for (i = 0; i < zOrder.length; i++) {\r\n if (zOrder[i].modal) {\r\n zIndex++;\r\n topModal = zOrder[i];\r\n }\r\n zOrder[i].getEl().style.zIndex = zIndex;\r\n zOrder[i].zIndex = zIndex;\r\n zIndex++;\r\n }\r\n }\r\n var modalBlockEl = global$9('#' + ctrl.classPrefix + 'modal-block', ctrl.getContainerElm())[0];\r\n if (topModal) {\r\n global$9(modalBlockEl).css('z-index', topModal.zIndex - 1);\r\n } else if (modalBlockEl) {\r\n modalBlockEl.parentNode.removeChild(modalBlockEl);\r\n hasModal = false;\r\n }\r\n FloatPanel.currentZIndex = zIndex;\r\n }\r\n var FloatPanel = Panel.extend({\r\n Mixins: [\r\n $_77p0ikukjkmcwsie,\r\n $_4ci2x6v1jkmcwski\r\n ],\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._super(settings);\r\n self$$1._eventsRoot = self$$1;\r\n self$$1.classes.add('floatpanel');\r\n if (settings.autohide) {\r\n bindDocumentClickHandler();\r\n bindWindowResizeHandler();\r\n visiblePanels.push(self$$1);\r\n }\r\n if (settings.autofix) {\r\n bindDocumentScrollHandler();\r\n self$$1.on('move', function () {\r\n repositionPanel(this);\r\n });\r\n }\r\n self$$1.on('postrender show', function (e) {\r\n if (e.control === self$$1) {\r\n var $modalBlockEl_1;\r\n var prefix_1 = self$$1.classPrefix;\r\n if (self$$1.modal && !hasModal) {\r\n $modalBlockEl_1 = global$9('#' + prefix_1 + 'modal-block', self$$1.getContainerElm());\r\n if (!$modalBlockEl_1[0]) {\r\n $modalBlockEl_1 = global$9('
    ').appendTo(self$$1.getContainerElm());\r\n }\r\n global$7.setTimeout(function () {\r\n $modalBlockEl_1.addClass(prefix_1 + 'in');\r\n global$9(self$$1.getEl()).addClass(prefix_1 + 'in');\r\n });\r\n hasModal = true;\r\n }\r\n addRemove(true, self$$1);\r\n }\r\n });\r\n self$$1.on('show', function () {\r\n self$$1.parents().each(function (ctrl) {\r\n if (ctrl.state.get('fixed')) {\r\n self$$1.fixed(true);\r\n return false;\r\n }\r\n });\r\n });\r\n if (settings.popover) {\r\n self$$1._preBodyHtml = '
    ';\r\n self$$1.classes.add('popover').add('bottom').add(self$$1.isRtl() ? 'end' : 'start');\r\n }\r\n self$$1.aria('label', settings.ariaLabel);\r\n self$$1.aria('labelledby', self$$1._id);\r\n self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');\r\n },\r\n fixed: function (state) {\r\n var self$$1 = this;\r\n if (self$$1.state.get('fixed') !== state) {\r\n if (self$$1.state.get('rendered')) {\r\n var viewport = funcs.getViewPort();\r\n if (state) {\r\n self$$1.layoutRect().y -= viewport.y;\r\n } else {\r\n self$$1.layoutRect().y += viewport.y;\r\n }\r\n }\r\n self$$1.classes.toggle('fixed', state);\r\n self$$1.state.set('fixed', state);\r\n }\r\n return self$$1;\r\n },\r\n show: function () {\r\n var self$$1 = this;\r\n var i;\r\n var state = self$$1._super();\r\n i = visiblePanels.length;\r\n while (i--) {\r\n if (visiblePanels[i] === self$$1) {\r\n break;\r\n }\r\n }\r\n if (i === -1) {\r\n visiblePanels.push(self$$1);\r\n }\r\n return state;\r\n },\r\n hide: function () {\r\n removeVisiblePanel(this);\r\n addRemove(false, this);\r\n return this._super();\r\n },\r\n hideAll: function () {\r\n FloatPanel.hideAll();\r\n },\r\n close: function () {\r\n var self$$1 = this;\r\n if (!self$$1.fire('close').isDefaultPrevented()) {\r\n self$$1.remove();\r\n addRemove(false, self$$1);\r\n }\r\n return self$$1;\r\n },\r\n remove: function () {\r\n removeVisiblePanel(this);\r\n this._super();\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n if (self$$1.settings.bodyRole) {\r\n this.getEl('body').setAttribute('role', self$$1.settings.bodyRole);\r\n }\r\n return self$$1._super();\r\n }\r\n });\r\n FloatPanel.hideAll = function () {\r\n var i = visiblePanels.length;\r\n while (i--) {\r\n var panel = visiblePanels[i];\r\n if (panel && panel.settings.autohide) {\r\n panel.hide();\r\n visiblePanels.splice(i, 1);\r\n }\r\n }\r\n };\r\n function removeVisiblePanel(panel) {\r\n var i;\r\n i = visiblePanels.length;\r\n while (i--) {\r\n if (visiblePanels[i] === panel) {\r\n visiblePanels.splice(i, 1);\r\n }\r\n }\r\n i = zOrder.length;\r\n while (i--) {\r\n if (zOrder[i] === panel) {\r\n zOrder.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n var isFixed$1 = function (inlineToolbarContainer, editor) {\r\n return !!(inlineToolbarContainer && !editor.settings.ui_container);\r\n };\r\n var render$1 = function (editor, theme, args) {\r\n var panel, inlineToolbarContainer;\r\n var DOM = global$3.DOM;\r\n var fixedToolbarContainer = getFixedToolbarContainer(editor);\r\n if (fixedToolbarContainer) {\r\n inlineToolbarContainer = DOM.select(fixedToolbarContainer)[0];\r\n }\r\n var reposition = function () {\r\n if (panel && panel.moveRel && panel.visible() && !panel._fixed) {\r\n var scrollContainer = editor.selection.getScrollContainer(), body = editor.getBody();\r\n var deltaX = 0, deltaY = 0;\r\n if (scrollContainer) {\r\n var bodyPos = DOM.getPos(body), scrollContainerPos = DOM.getPos(scrollContainer);\r\n deltaX = Math.max(0, scrollContainerPos.x - bodyPos.x);\r\n deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y);\r\n }\r\n panel.fixed(false).moveRel(body, editor.rtl ? [\r\n 'tr-br',\r\n 'br-tr'\r\n ] : [\r\n 'tl-bl',\r\n 'bl-tl',\r\n 'tr-br'\r\n ]).moveBy(deltaX, deltaY);\r\n }\r\n };\r\n var show = function () {\r\n if (panel) {\r\n panel.show();\r\n reposition();\r\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\r\n }\r\n };\r\n var hide = function () {\r\n if (panel) {\r\n panel.hide();\r\n FloatPanel.hideAll();\r\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\r\n }\r\n };\r\n var render = function () {\r\n if (panel) {\r\n if (!panel.visible()) {\r\n show();\r\n }\r\n return;\r\n }\r\n panel = theme.panel = global$4.create({\r\n type: inlineToolbarContainer ? 'panel' : 'floatpanel',\r\n role: 'application',\r\n classes: 'tinymce tinymce-inline',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n autohide: false,\r\n autofix: isFixed$1(inlineToolbarContainer, editor),\r\n fixed: isFixed$1(inlineToolbarContainer, editor),\r\n border: 1,\r\n items: [\r\n hasMenubar(editor) === false ? null : {\r\n type: 'menubar',\r\n border: '0 0 1 0',\r\n items: $_3ke8tlu8jkmcwsgq.createMenuButtons(editor)\r\n },\r\n $_5g1hacu7jkmcwsgn.createToolbars(editor, getToolbarSize(editor))\r\n ]\r\n });\r\n $_5kmlp5u4jkmcwsge.setUiContainer(editor, panel);\r\n $_1jkxpltzjkmcwsg4.fireBeforeRenderUI(editor);\r\n if (inlineToolbarContainer) {\r\n panel.renderTo(inlineToolbarContainer).reflow();\r\n } else {\r\n panel.renderTo().reflow();\r\n }\r\n $_1mdekmu0jkmcwsg5.addKeys(editor, panel);\r\n show();\r\n $_44ggy0u1jkmcwsg7.addContextualToolbars(editor);\r\n editor.on('nodeChange', reposition);\r\n editor.on('ResizeWindow', reposition);\r\n editor.on('activate', show);\r\n editor.on('deactivate', hide);\r\n editor.nodeChanged();\r\n };\r\n editor.settings.content_editable = true;\r\n editor.on('focus', function () {\r\n if (isSkinDisabled(editor) === false && args.skinUiCss) {\r\n DOM.styleSheetLoader.load(args.skinUiCss, render, render);\r\n } else {\r\n render();\r\n }\r\n });\r\n editor.on('blur hide', hide);\r\n editor.on('remove', function () {\r\n if (panel) {\r\n panel.remove();\r\n panel = null;\r\n }\r\n });\r\n if (isSkinDisabled(editor) === false && args.skinUiCss) {\r\n DOM.styleSheetLoader.load(args.skinUiCss, $_2tsyb2uejkmcwsha.fireSkinLoaded(editor));\r\n } else {\r\n $_2tsyb2uejkmcwsha.fireSkinLoaded(editor)();\r\n }\r\n return {};\r\n };\r\n var $_aqv3nuufjkmcwshc = { render: render$1 };\r\n\r\n function Throbber (elm, inline) {\r\n var self = this;\r\n var state;\r\n var classPrefix = Control$1.classPrefix;\r\n var timer;\r\n self.show = function (time, callback) {\r\n function render() {\r\n if (state) {\r\n global$9(elm).append('
    ');\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n }\r\n self.hide();\r\n state = true;\r\n if (time) {\r\n timer = global$7.setTimeout(render, time);\r\n } else {\r\n render();\r\n }\r\n return self;\r\n };\r\n self.hide = function () {\r\n var child = elm.lastChild;\r\n global$7.clearTimeout(timer);\r\n if (child && child.className.indexOf('throbber') !== -1) {\r\n child.parentNode.removeChild(child);\r\n }\r\n state = false;\r\n return self;\r\n };\r\n }\r\n\r\n var setup = function (editor, theme) {\r\n var throbber;\r\n editor.on('ProgressState', function (e) {\r\n throbber = throbber || new Throbber(theme.panel.getEl('body'));\r\n if (e.state) {\r\n throbber.show(e.time);\r\n } else {\r\n throbber.hide();\r\n }\r\n });\r\n };\r\n var $_575jhev2jkmcwskj = { setup: setup };\r\n\r\n var renderUI = function (editor, theme, args) {\r\n var skinUrl = getSkinUrl(editor);\r\n if (skinUrl) {\r\n args.skinUiCss = skinUrl + '/skin.min.css';\r\n editor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css');\r\n }\r\n $_575jhev2jkmcwskj.setup(editor, theme);\r\n return isInline(editor) ? $_aqv3nuufjkmcwshc.render(editor, theme, args) : $_9mz4sntvjkmcwsft.render(editor, theme, args);\r\n };\r\n var $_7k92xgtrjkmcwsfn = { renderUI: renderUI };\r\n\r\n var Tooltip = Control$1.extend({\r\n Mixins: [$_77p0ikukjkmcwsie],\r\n Defaults: { classes: 'widget tooltip tooltip-n' },\r\n renderHtml: function () {\r\n var self = this, prefix = self.classPrefix;\r\n return '
    ' + '
    ' + '
    ' + self.encode(self.state.get('text')) + '
    ' + '
    ';\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:text', function (e) {\r\n self.getEl().lastChild.innerHTML = self.encode(e.value);\r\n });\r\n return self._super();\r\n },\r\n repaint: function () {\r\n var self = this;\r\n var style, rect;\r\n style = self.getEl().style;\r\n rect = self._layoutRect;\r\n style.left = rect.x + 'px';\r\n style.top = rect.y + 'px';\r\n style.zIndex = 65535 + 65535;\r\n }\r\n });\r\n\r\n var Widget = Control$1.extend({\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n settings = self.settings;\r\n self.canFocus = true;\r\n if (settings.tooltip && Widget.tooltips !== false) {\r\n self.on('mouseenter', function (e) {\r\n var tooltip = self.tooltip().moveTo(-65535);\r\n if (e.control === self) {\r\n var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), [\r\n 'bc-tc',\r\n 'bc-tl',\r\n 'bc-tr'\r\n ]);\r\n tooltip.classes.toggle('tooltip-n', rel === 'bc-tc');\r\n tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl');\r\n tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr');\r\n tooltip.moveRel(self.getEl(), rel);\r\n } else {\r\n tooltip.hide();\r\n }\r\n });\r\n self.on('mouseleave mousedown click', function () {\r\n self.tooltip().remove();\r\n self._tooltip = null;\r\n });\r\n }\r\n self.aria('label', settings.ariaLabel || settings.tooltip);\r\n },\r\n tooltip: function () {\r\n if (!this._tooltip) {\r\n this._tooltip = new Tooltip({ type: 'tooltip' });\r\n $_5kmlp5u4jkmcwsge.inheritUiContainer(this, this._tooltip);\r\n this._tooltip.renderTo();\r\n }\r\n return this._tooltip;\r\n },\r\n postRender: function () {\r\n var self = this, settings = self.settings;\r\n self._super();\r\n if (!self.parent() && (settings.width || settings.height)) {\r\n self.initLayoutRect();\r\n self.repaint();\r\n }\r\n if (settings.autofocus) {\r\n self.focus();\r\n }\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n function disable(state) {\r\n self.aria('disabled', state);\r\n self.classes.toggle('disabled', state);\r\n }\r\n function active(state) {\r\n self.aria('pressed', state);\r\n self.classes.toggle('active', state);\r\n }\r\n self.state.on('change:disabled', function (e) {\r\n disable(e.value);\r\n });\r\n self.state.on('change:active', function (e) {\r\n active(e.value);\r\n });\r\n if (self.state.get('disabled')) {\r\n disable(true);\r\n }\r\n if (self.state.get('active')) {\r\n active(true);\r\n }\r\n return self._super();\r\n },\r\n remove: function () {\r\n this._super();\r\n if (this._tooltip) {\r\n this._tooltip.remove();\r\n this._tooltip = null;\r\n }\r\n }\r\n });\r\n\r\n var Progress = Widget.extend({\r\n Defaults: { value: 0 },\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n self.classes.add('progress');\r\n if (!self.settings.filter) {\r\n self.settings.filter = function (value) {\r\n return Math.round(value);\r\n };\r\n }\r\n },\r\n renderHtml: function () {\r\n var self = this, id = self._id, prefix = this.classPrefix;\r\n return '
    ' + '
    ' + '
    ' + '
    ' + '
    0%
    ' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self._super();\r\n self.value(self.settings.value);\r\n return self;\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n function setValue(value) {\r\n value = self.settings.filter(value);\r\n self.getEl().lastChild.innerHTML = value + '%';\r\n self.getEl().firstChild.firstChild.style.width = value + '%';\r\n }\r\n self.state.on('change:value', function (e) {\r\n setValue(e.value);\r\n });\r\n setValue(self.state.get('value'));\r\n return self._super();\r\n }\r\n });\r\n\r\n var updateLiveRegion = function (ctx, text) {\r\n ctx.getEl().lastChild.textContent = text + (ctx.progressBar ? ' ' + ctx.progressBar.value() + '%' : '');\r\n };\r\n var Notification = Control$1.extend({\r\n Mixins: [$_77p0ikukjkmcwsie],\r\n Defaults: { classes: 'widget notification' },\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n self.maxWidth = settings.maxWidth;\r\n if (settings.text) {\r\n self.text(settings.text);\r\n }\r\n if (settings.icon) {\r\n self.icon = settings.icon;\r\n }\r\n if (settings.color) {\r\n self.color = settings.color;\r\n }\r\n if (settings.type) {\r\n self.classes.add('notification-' + settings.type);\r\n }\r\n if (settings.timeout && (settings.timeout < 0 || settings.timeout > 0) && !settings.closeButton) {\r\n self.closeButton = false;\r\n } else {\r\n self.classes.add('has-close');\r\n self.closeButton = true;\r\n }\r\n if (settings.progressBar) {\r\n self.progressBar = new Progress();\r\n }\r\n self.on('click', function (e) {\r\n if (e.target.className.indexOf(self.classPrefix + 'close') !== -1) {\r\n self.close();\r\n }\r\n });\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var prefix = self.classPrefix;\r\n var icon = '', closeButton = '', progressBar = '', notificationStyle = '';\r\n if (self.icon) {\r\n icon = '';\r\n }\r\n notificationStyle = ' style=\"max-width: ' + self.maxWidth + 'px;' + (self.color ? 'background-color: ' + self.color + ';\"' : '\"');\r\n if (self.closeButton) {\r\n closeButton = '';\r\n }\r\n if (self.progressBar) {\r\n progressBar = self.progressBar.renderHtml();\r\n }\r\n return '
    ' + icon + '
    ' + self.state.get('text') + '
    ' + progressBar + closeButton + '
    ' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this;\r\n global$7.setTimeout(function () {\r\n self.$el.addClass(self.classPrefix + 'in');\r\n updateLiveRegion(self, self.state.get('text'));\r\n }, 100);\r\n return self._super();\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:text', function (e) {\r\n self.getEl().firstChild.innerHTML = e.value;\r\n updateLiveRegion(self, e.value);\r\n });\r\n if (self.progressBar) {\r\n self.progressBar.bindStates();\r\n self.progressBar.state.on('change:value', function (e) {\r\n updateLiveRegion(self, self.state.get('text'));\r\n });\r\n }\r\n return self._super();\r\n },\r\n close: function () {\r\n var self = this;\r\n if (!self.fire('close').isDefaultPrevented()) {\r\n self.remove();\r\n }\r\n return self;\r\n },\r\n repaint: function () {\r\n var self = this;\r\n var style, rect;\r\n style = self.getEl().style;\r\n rect = self._layoutRect;\r\n style.left = rect.x + 'px';\r\n style.top = rect.y + 'px';\r\n style.zIndex = 65535 - 1;\r\n }\r\n });\r\n\r\n function NotificationManagerImpl (editor) {\r\n var getEditorContainer = function (editor) {\r\n return editor.inline ? editor.getElement() : editor.getContentAreaContainer();\r\n };\r\n var getContainerWidth = function () {\r\n var container = getEditorContainer(editor);\r\n return funcs.getSize(container).width;\r\n };\r\n var prePositionNotifications = function (notifications) {\r\n each(notifications, function (notification) {\r\n notification.moveTo(0, 0);\r\n });\r\n };\r\n var positionNotifications = function (notifications) {\r\n if (notifications.length > 0) {\r\n var firstItem = notifications.slice(0, 1)[0];\r\n var container = getEditorContainer(editor);\r\n firstItem.moveRel(container, 'tc-tc');\r\n each(notifications, function (notification, index) {\r\n if (index > 0) {\r\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\r\n }\r\n });\r\n }\r\n };\r\n var reposition = function (notifications) {\r\n prePositionNotifications(notifications);\r\n positionNotifications(notifications);\r\n };\r\n var open = function (args, closeCallback) {\r\n var extendedArgs = global$2.extend(args, { maxWidth: getContainerWidth() });\r\n var notif = new Notification(extendedArgs);\r\n notif.args = extendedArgs;\r\n if (extendedArgs.timeout > 0) {\r\n notif.timer = setTimeout(function () {\r\n notif.close();\r\n closeCallback();\r\n }, extendedArgs.timeout);\r\n }\r\n notif.on('close', function () {\r\n closeCallback();\r\n });\r\n notif.renderTo();\r\n return notif;\r\n };\r\n var close = function (notification) {\r\n notification.close();\r\n };\r\n var getArgs = function (notification) {\r\n return notification.args;\r\n };\r\n return {\r\n open: open,\r\n close: close,\r\n reposition: reposition,\r\n getArgs: getArgs\r\n };\r\n }\r\n\r\n var windows = [];\r\n var oldMetaValue = '';\r\n function toggleFullScreenState(state) {\r\n var noScaleMetaValue = 'width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0';\r\n var viewport = global$9('meta[name=viewport]')[0], contentValue;\r\n if (global$8.overrideViewPort === false) {\r\n return;\r\n }\r\n if (!viewport) {\r\n viewport = document.createElement('meta');\r\n viewport.setAttribute('name', 'viewport');\r\n document.getElementsByTagName('head')[0].appendChild(viewport);\r\n }\r\n contentValue = viewport.getAttribute('content');\r\n if (contentValue && typeof oldMetaValue !== 'undefined') {\r\n oldMetaValue = contentValue;\r\n }\r\n viewport.setAttribute('content', state ? noScaleMetaValue : oldMetaValue);\r\n }\r\n function toggleBodyFullScreenClasses(classPrefix, state) {\r\n if (checkFullscreenWindows() && state === false) {\r\n global$9([\r\n document.documentElement,\r\n document.body\r\n ]).removeClass(classPrefix + 'fullscreen');\r\n }\r\n }\r\n function checkFullscreenWindows() {\r\n for (var i = 0; i < windows.length; i++) {\r\n if (windows[i]._fullscreen) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function handleWindowResize() {\r\n if (!global$8.desktop) {\r\n var lastSize_1 = {\r\n w: window.innerWidth,\r\n h: window.innerHeight\r\n };\r\n global$7.setInterval(function () {\r\n var w = window.innerWidth, h = window.innerHeight;\r\n if (lastSize_1.w !== w || lastSize_1.h !== h) {\r\n lastSize_1 = {\r\n w: w,\r\n h: h\r\n };\r\n global$9(window).trigger('resize');\r\n }\r\n }, 100);\r\n }\r\n function reposition() {\r\n var i;\r\n var rect = funcs.getWindowSize();\r\n var layoutRect;\r\n for (i = 0; i < windows.length; i++) {\r\n layoutRect = windows[i].layoutRect();\r\n windows[i].moveTo(windows[i].settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2), windows[i].settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2));\r\n }\r\n }\r\n global$9(window).on('resize', reposition);\r\n }\r\n var Window$$1 = FloatPanel.extend({\r\n modal: true,\r\n Defaults: {\r\n border: 1,\r\n layout: 'flex',\r\n containerCls: 'panel',\r\n role: 'dialog',\r\n callbacks: {\r\n submit: function () {\r\n this.fire('submit', { data: this.toJSON() });\r\n },\r\n close: function () {\r\n this.close();\r\n }\r\n }\r\n },\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._super(settings);\r\n if (self$$1.isRtl()) {\r\n self$$1.classes.add('rtl');\r\n }\r\n self$$1.classes.add('window');\r\n self$$1.bodyClasses.add('window-body');\r\n self$$1.state.set('fixed', true);\r\n if (settings.buttons) {\r\n self$$1.statusbar = new Panel({\r\n layout: 'flex',\r\n border: '1 0 0 0',\r\n spacing: 3,\r\n padding: 10,\r\n align: 'center',\r\n pack: self$$1.isRtl() ? 'start' : 'end',\r\n defaults: { type: 'button' },\r\n items: settings.buttons\r\n });\r\n self$$1.statusbar.classes.add('foot');\r\n self$$1.statusbar.parent(self$$1);\r\n }\r\n self$$1.on('click', function (e) {\r\n var closeClass = self$$1.classPrefix + 'close';\r\n if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) {\r\n self$$1.close();\r\n }\r\n });\r\n self$$1.on('cancel', function () {\r\n self$$1.close();\r\n });\r\n self$$1.on('move', function (e) {\r\n if (e.control === self$$1) {\r\n FloatPanel.hideAll();\r\n }\r\n });\r\n self$$1.aria('describedby', self$$1.describedBy || self$$1._id + '-none');\r\n self$$1.aria('label', settings.title);\r\n self$$1._fullscreen = false;\r\n },\r\n recalc: function () {\r\n var self$$1 = this;\r\n var statusbar$$1 = self$$1.statusbar;\r\n var layoutRect, width, x, needsRecalc;\r\n if (self$$1._fullscreen) {\r\n self$$1.layoutRect(funcs.getWindowSize());\r\n self$$1.layoutRect().contentH = self$$1.layoutRect().innerH;\r\n }\r\n self$$1._super();\r\n layoutRect = self$$1.layoutRect();\r\n if (self$$1.settings.title && !self$$1._fullscreen) {\r\n width = layoutRect.headerW;\r\n if (width > layoutRect.w) {\r\n x = layoutRect.x - Math.max(0, width / 2);\r\n self$$1.layoutRect({\r\n w: width,\r\n x: x\r\n });\r\n needsRecalc = true;\r\n }\r\n }\r\n if (statusbar$$1) {\r\n statusbar$$1.layoutRect({ w: self$$1.layoutRect().innerW }).recalc();\r\n width = statusbar$$1.layoutRect().minW + layoutRect.deltaW;\r\n if (width > layoutRect.w) {\r\n x = layoutRect.x - Math.max(0, width - layoutRect.w);\r\n self$$1.layoutRect({\r\n w: width,\r\n x: x\r\n });\r\n needsRecalc = true;\r\n }\r\n }\r\n if (needsRecalc) {\r\n self$$1.recalc();\r\n }\r\n },\r\n initLayoutRect: function () {\r\n var self$$1 = this;\r\n var layoutRect = self$$1._super();\r\n var deltaH = 0, headEl;\r\n if (self$$1.settings.title && !self$$1._fullscreen) {\r\n headEl = self$$1.getEl('head');\r\n var size = funcs.getSize(headEl);\r\n layoutRect.headerW = size.width;\r\n layoutRect.headerH = size.height;\r\n deltaH += layoutRect.headerH;\r\n }\r\n if (self$$1.statusbar) {\r\n deltaH += self$$1.statusbar.layoutRect().h;\r\n }\r\n layoutRect.deltaH += deltaH;\r\n layoutRect.minH += deltaH;\r\n layoutRect.h += deltaH;\r\n var rect = funcs.getWindowSize();\r\n layoutRect.x = self$$1.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2);\r\n layoutRect.y = self$$1.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2);\r\n return layoutRect;\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this, layout = self$$1._layout, id = self$$1._id, prefix = self$$1.classPrefix;\r\n var settings = self$$1.settings;\r\n var headerHtml = '', footerHtml = '', html = settings.html;\r\n self$$1.preRender();\r\n layout.preRender(self$$1);\r\n if (settings.title) {\r\n headerHtml = '
    ' + '
    ' + self$$1.encode(settings.title) + '
    ' + '
    ' + '' + '
    ';\r\n }\r\n if (settings.url) {\r\n html = '';\r\n }\r\n if (typeof html === 'undefined') {\r\n html = layout.renderHtml(self$$1);\r\n }\r\n if (self$$1.statusbar) {\r\n footerHtml = self$$1.statusbar.renderHtml();\r\n }\r\n return '
    ' + '
    ' + headerHtml + '
    ' + html + '
    ' + footerHtml + '
    ' + '
    ';\r\n },\r\n fullscreen: function (state) {\r\n var self$$1 = this;\r\n var documentElement = document.documentElement;\r\n var slowRendering;\r\n var prefix = self$$1.classPrefix;\r\n var layoutRect;\r\n if (state !== self$$1._fullscreen) {\r\n global$9(window).on('resize', function () {\r\n var time;\r\n if (self$$1._fullscreen) {\r\n if (!slowRendering) {\r\n time = new Date().getTime();\r\n var rect = funcs.getWindowSize();\r\n self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);\r\n if (new Date().getTime() - time > 50) {\r\n slowRendering = true;\r\n }\r\n } else {\r\n if (!self$$1._timer) {\r\n self$$1._timer = global$7.setTimeout(function () {\r\n var rect = funcs.getWindowSize();\r\n self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);\r\n self$$1._timer = 0;\r\n }, 50);\r\n }\r\n }\r\n }\r\n });\r\n layoutRect = self$$1.layoutRect();\r\n self$$1._fullscreen = state;\r\n if (!state) {\r\n self$$1.borderBox = $_79d0aauqjkmcwsj9.parseBox(self$$1.settings.border);\r\n self$$1.getEl('head').style.display = '';\r\n layoutRect.deltaH += layoutRect.headerH;\r\n global$9([\r\n documentElement,\r\n document.body\r\n ]).removeClass(prefix + 'fullscreen');\r\n self$$1.classes.remove('fullscreen');\r\n self$$1.moveTo(self$$1._initial.x, self$$1._initial.y).resizeTo(self$$1._initial.w, self$$1._initial.h);\r\n } else {\r\n self$$1._initial = {\r\n x: layoutRect.x,\r\n y: layoutRect.y,\r\n w: layoutRect.w,\r\n h: layoutRect.h\r\n };\r\n self$$1.borderBox = $_79d0aauqjkmcwsj9.parseBox('0');\r\n self$$1.getEl('head').style.display = 'none';\r\n layoutRect.deltaH -= layoutRect.headerH + 2;\r\n global$9([\r\n documentElement,\r\n document.body\r\n ]).addClass(prefix + 'fullscreen');\r\n self$$1.classes.add('fullscreen');\r\n var rect = funcs.getWindowSize();\r\n self$$1.moveTo(0, 0).resizeTo(rect.w, rect.h);\r\n }\r\n }\r\n return self$$1.reflow();\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n var startPos;\r\n setTimeout(function () {\r\n self$$1.classes.add('in');\r\n self$$1.fire('open');\r\n }, 0);\r\n self$$1._super();\r\n if (self$$1.statusbar) {\r\n self$$1.statusbar.postRender();\r\n }\r\n self$$1.focus();\r\n this.dragHelper = new DragHelper(self$$1._id + '-dragh', {\r\n start: function () {\r\n startPos = {\r\n x: self$$1.layoutRect().x,\r\n y: self$$1.layoutRect().y\r\n };\r\n },\r\n drag: function (e) {\r\n self$$1.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY);\r\n }\r\n });\r\n self$$1.on('submit', function (e) {\r\n if (!e.isDefaultPrevented()) {\r\n self$$1.close();\r\n }\r\n });\r\n windows.push(self$$1);\r\n toggleFullScreenState(true);\r\n },\r\n submit: function () {\r\n return this.fire('submit', { data: this.toJSON() });\r\n },\r\n remove: function () {\r\n var self$$1 = this;\r\n var i;\r\n self$$1.dragHelper.destroy();\r\n self$$1._super();\r\n if (self$$1.statusbar) {\r\n this.statusbar.remove();\r\n }\r\n toggleBodyFullScreenClasses(self$$1.classPrefix, false);\r\n i = windows.length;\r\n while (i--) {\r\n if (windows[i] === self$$1) {\r\n windows.splice(i, 1);\r\n }\r\n }\r\n toggleFullScreenState(windows.length > 0);\r\n },\r\n getContentWindow: function () {\r\n var ifr = this.getEl().getElementsByTagName('iframe')[0];\r\n return ifr ? ifr.contentWindow : null;\r\n }\r\n });\r\n handleWindowResize();\r\n\r\n var MessageBox = Window$$1.extend({\r\n init: function (settings) {\r\n settings = {\r\n border: 1,\r\n padding: 20,\r\n layout: 'flex',\r\n pack: 'center',\r\n align: 'center',\r\n containerCls: 'panel',\r\n autoScroll: true,\r\n buttons: {\r\n type: 'button',\r\n text: 'Ok',\r\n action: 'ok'\r\n },\r\n items: {\r\n type: 'label',\r\n multiline: true,\r\n maxWidth: 500,\r\n maxHeight: 200\r\n }\r\n };\r\n this._super(settings);\r\n },\r\n Statics: {\r\n OK: 1,\r\n OK_CANCEL: 2,\r\n YES_NO: 3,\r\n YES_NO_CANCEL: 4,\r\n msgBox: function (settings) {\r\n var buttons;\r\n var callback = settings.callback || function () {\r\n };\r\n function createButton(text, status$$1, primary) {\r\n return {\r\n type: 'button',\r\n text: text,\r\n subtype: primary ? 'primary' : '',\r\n onClick: function (e) {\r\n e.control.parents()[1].close();\r\n callback(status$$1);\r\n }\r\n };\r\n }\r\n switch (settings.buttons) {\r\n case MessageBox.OK_CANCEL:\r\n buttons = [\r\n createButton('Ok', true, true),\r\n createButton('Cancel', false)\r\n ];\r\n break;\r\n case MessageBox.YES_NO:\r\n case MessageBox.YES_NO_CANCEL:\r\n buttons = [\r\n createButton('Yes', 1, true),\r\n createButton('No', 0)\r\n ];\r\n if (settings.buttons === MessageBox.YES_NO_CANCEL) {\r\n buttons.push(createButton('Cancel', -1));\r\n }\r\n break;\r\n default:\r\n buttons = [createButton('Ok', true, true)];\r\n break;\r\n }\r\n return new Window$$1({\r\n padding: 20,\r\n x: settings.x,\r\n y: settings.y,\r\n minWidth: 300,\r\n minHeight: 100,\r\n layout: 'flex',\r\n pack: 'center',\r\n align: 'center',\r\n buttons: buttons,\r\n title: settings.title,\r\n role: 'alertdialog',\r\n items: {\r\n type: 'label',\r\n multiline: true,\r\n maxWidth: 500,\r\n maxHeight: 200,\r\n text: settings.text\r\n },\r\n onPostRender: function () {\r\n this.aria('describedby', this.items()[0]._id);\r\n },\r\n onClose: settings.onClose,\r\n onCancel: function () {\r\n callback(false);\r\n }\r\n }).renderTo(document.body).reflow();\r\n },\r\n alert: function (settings, callback) {\r\n if (typeof settings === 'string') {\r\n settings = { text: settings };\r\n }\r\n settings.callback = callback;\r\n return MessageBox.msgBox(settings);\r\n },\r\n confirm: function (settings, callback) {\r\n if (typeof settings === 'string') {\r\n settings = { text: settings };\r\n }\r\n settings.callback = callback;\r\n settings.buttons = MessageBox.OK_CANCEL;\r\n return MessageBox.msgBox(settings);\r\n }\r\n }\r\n });\r\n\r\n function WindowManagerImpl (editor) {\r\n var open$$1 = function (args, params, closeCallback) {\r\n var win;\r\n args.title = args.title || ' ';\r\n args.url = args.url || args.file;\r\n if (args.url) {\r\n args.width = parseInt(args.width || 320, 10);\r\n args.height = parseInt(args.height || 240, 10);\r\n }\r\n if (args.body) {\r\n args.items = {\r\n defaults: args.defaults,\r\n type: args.bodyType || 'form',\r\n items: args.body,\r\n data: args.data,\r\n callbacks: args.commands\r\n };\r\n }\r\n if (!args.url && !args.buttons) {\r\n args.buttons = [\r\n {\r\n text: 'Ok',\r\n subtype: 'primary',\r\n onclick: function () {\r\n win.find('form')[0].submit();\r\n }\r\n },\r\n {\r\n text: 'Cancel',\r\n onclick: function () {\r\n win.close();\r\n }\r\n }\r\n ];\r\n }\r\n win = new Window$$1(args);\r\n win.on('close', function () {\r\n closeCallback(win);\r\n });\r\n if (args.data) {\r\n win.on('postRender', function () {\r\n this.find('*').each(function (ctrl) {\r\n var name$$1 = ctrl.name();\r\n if (name$$1 in args.data) {\r\n ctrl.value(args.data[name$$1]);\r\n }\r\n });\r\n });\r\n }\r\n win.features = args || {};\r\n win.params = params || {};\r\n win = win.renderTo(document.body).reflow();\r\n return win;\r\n };\r\n var alert$$1 = function (message, choiceCallback, closeCallback) {\r\n var win;\r\n win = MessageBox.alert(message, function () {\r\n choiceCallback();\r\n });\r\n win.on('close', function () {\r\n closeCallback(win);\r\n });\r\n return win;\r\n };\r\n var confirm$$1 = function (message, choiceCallback, closeCallback) {\r\n var win;\r\n win = MessageBox.confirm(message, function (state) {\r\n choiceCallback(state);\r\n });\r\n win.on('close', function () {\r\n closeCallback(win);\r\n });\r\n return win;\r\n };\r\n var close$$1 = function (window$$1) {\r\n window$$1.close();\r\n };\r\n var getParams = function (window$$1) {\r\n return window$$1.params;\r\n };\r\n var setParams = function (window$$1, params) {\r\n window$$1.params = params;\r\n };\r\n return {\r\n open: open$$1,\r\n alert: alert$$1,\r\n confirm: confirm$$1,\r\n close: close$$1,\r\n getParams: getParams,\r\n setParams: setParams\r\n };\r\n }\r\n\r\n var get = function (editor) {\r\n var renderUI = function (args) {\r\n return $_7k92xgtrjkmcwsfn.renderUI(editor, this, args);\r\n };\r\n var resizeTo = function (w, h) {\r\n return $_focm2tubjkmcwsh5.resizeTo(editor, w, h);\r\n };\r\n var resizeBy = function (dw, dh) {\r\n return $_focm2tubjkmcwsh5.resizeBy(editor, dw, dh);\r\n };\r\n var getNotificationManagerImpl = function () {\r\n return NotificationManagerImpl(editor);\r\n };\r\n var getWindowManagerImpl = function () {\r\n return WindowManagerImpl(editor);\r\n };\r\n return {\r\n renderUI: renderUI,\r\n resizeTo: resizeTo,\r\n resizeBy: resizeBy,\r\n getNotificationManagerImpl: getNotificationManagerImpl,\r\n getWindowManagerImpl: getWindowManagerImpl\r\n };\r\n };\r\n var $_f0tepxtqjkmcwsfm = { get: get };\r\n\r\n var Layout = global$10.extend({\r\n Defaults: {\r\n firstControlClass: 'first',\r\n lastControlClass: 'last'\r\n },\r\n init: function (settings) {\r\n this.settings = global$2.extend({}, this.Defaults, settings);\r\n },\r\n preRender: function (container) {\r\n container.bodyClasses.add(this.settings.containerClass);\r\n },\r\n applyClasses: function (items) {\r\n var self = this;\r\n var settings = self.settings;\r\n var firstClass, lastClass, firstItem, lastItem;\r\n firstClass = settings.firstControlClass;\r\n lastClass = settings.lastControlClass;\r\n items.each(function (item) {\r\n item.classes.remove(firstClass).remove(lastClass).add(settings.controlClass);\r\n if (item.visible()) {\r\n if (!firstItem) {\r\n firstItem = item;\r\n }\r\n lastItem = item;\r\n }\r\n });\r\n if (firstItem) {\r\n firstItem.classes.add(firstClass);\r\n }\r\n if (lastItem) {\r\n lastItem.classes.add(lastClass);\r\n }\r\n },\r\n renderHtml: function (container) {\r\n var self = this;\r\n var html = '';\r\n self.applyClasses(container.items());\r\n container.items().each(function (item) {\r\n html += item.renderHtml();\r\n });\r\n return html;\r\n },\r\n recalc: function () {\r\n },\r\n postRender: function () {\r\n },\r\n isNative: function () {\r\n return false;\r\n }\r\n });\r\n\r\n var AbsoluteLayout = Layout.extend({\r\n Defaults: {\r\n containerClass: 'abs-layout',\r\n controlClass: 'abs-layout-item'\r\n },\r\n recalc: function (container) {\r\n container.items().filter(':visible').each(function (ctrl) {\r\n var settings = ctrl.settings;\r\n ctrl.layoutRect({\r\n x: settings.x,\r\n y: settings.y,\r\n w: settings.w,\r\n h: settings.h\r\n });\r\n if (ctrl.recalc) {\r\n ctrl.recalc();\r\n }\r\n });\r\n },\r\n renderHtml: function (container) {\r\n return '
    ' + this._super(container);\r\n }\r\n });\r\n\r\n var Button = Widget.extend({\r\n Defaults: {\r\n classes: 'widget btn',\r\n role: 'button'\r\n },\r\n init: function (settings) {\r\n var self$$1 = this;\r\n var size;\r\n self$$1._super(settings);\r\n settings = self$$1.settings;\r\n size = self$$1.settings.size;\r\n self$$1.on('click mousedown', function (e) {\r\n e.preventDefault();\r\n });\r\n self$$1.on('touchstart', function (e) {\r\n self$$1.fire('click', e);\r\n e.preventDefault();\r\n });\r\n if (settings.subtype) {\r\n self$$1.classes.add(settings.subtype);\r\n }\r\n if (size) {\r\n self$$1.classes.add('btn-' + size);\r\n }\r\n if (settings.icon) {\r\n self$$1.icon(settings.icon);\r\n }\r\n },\r\n icon: function (icon) {\r\n if (!arguments.length) {\r\n return this.state.get('icon');\r\n }\r\n this.state.set('icon', icon);\r\n return this;\r\n },\r\n repaint: function () {\r\n var btnElm = this.getEl().firstChild;\r\n var btnStyle;\r\n if (btnElm) {\r\n btnStyle = btnElm.style;\r\n btnStyle.width = btnStyle.height = '100%';\r\n }\r\n this._super();\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;\r\n var icon = self$$1.state.get('icon'), image;\r\n var text = self$$1.state.get('text');\r\n var textHtml = '';\r\n var ariaPressed;\r\n var settings = self$$1.settings;\r\n image = settings.image;\r\n if (image) {\r\n icon = 'none';\r\n if (typeof image !== 'string') {\r\n image = window.getSelection ? image[0] : image[1];\r\n }\r\n image = ' style=\"background-image: url(\\'' + image + '\\')\"';\r\n } else {\r\n image = '';\r\n }\r\n if (text) {\r\n self$$1.classes.add('btn-has-text');\r\n textHtml = '' + self$$1.encode(text) + '';\r\n }\r\n icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\r\n ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed=\"' + settings.active + '\"' : '';\r\n return '
    ' + '' + '
    ';\r\n },\r\n bindStates: function () {\r\n var self$$1 = this, $ = self$$1.$, textCls = self$$1.classPrefix + 'txt';\r\n function setButtonText(text) {\r\n var $span = $('span.' + textCls, self$$1.getEl());\r\n if (text) {\r\n if (!$span[0]) {\r\n $('button:first', self$$1.getEl()).append('');\r\n $span = $('span.' + textCls, self$$1.getEl());\r\n }\r\n $span.html(self$$1.encode(text));\r\n } else {\r\n $span.remove();\r\n }\r\n self$$1.classes.toggle('btn-has-text', !!text);\r\n }\r\n self$$1.state.on('change:text', function (e) {\r\n setButtonText(e.value);\r\n });\r\n self$$1.state.on('change:icon', function (e) {\r\n var icon = e.value;\r\n var prefix = self$$1.classPrefix;\r\n self$$1.settings.icon = icon;\r\n icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';\r\n var btnElm = self$$1.getEl().firstChild;\r\n var iconElm = btnElm.getElementsByTagName('i')[0];\r\n if (icon) {\r\n if (!iconElm || iconElm !== btnElm.firstChild) {\r\n iconElm = document.createElement('i');\r\n btnElm.insertBefore(iconElm, btnElm.firstChild);\r\n }\r\n iconElm.className = icon;\r\n } else if (iconElm) {\r\n btnElm.removeChild(iconElm);\r\n }\r\n setButtonText(self$$1.state.get('text'));\r\n });\r\n return self$$1._super();\r\n }\r\n });\r\n\r\n var BrowseButton = Button.extend({\r\n init: function (settings) {\r\n var self = this;\r\n settings = global$2.extend({\r\n text: 'Browse...',\r\n multiple: false,\r\n accept: null\r\n }, settings);\r\n self._super(settings);\r\n self.classes.add('browsebutton');\r\n if (settings.multiple) {\r\n self.classes.add('multiple');\r\n }\r\n },\r\n postRender: function () {\r\n var self = this;\r\n var input = funcs.create('input', {\r\n type: 'file',\r\n id: self._id + '-browse',\r\n accept: self.settings.accept\r\n });\r\n self._super();\r\n global$9(input).on('change', function (e) {\r\n var files = e.target.files;\r\n self.value = function () {\r\n if (!files.length) {\r\n return null;\r\n } else if (self.settings.multiple) {\r\n return files;\r\n } else {\r\n return files[0];\r\n }\r\n };\r\n e.preventDefault();\r\n if (files.length) {\r\n self.fire('change', e);\r\n }\r\n });\r\n global$9(input).on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n global$9(self.getEl('button')).on('click', function (e) {\r\n e.stopPropagation();\r\n input.click();\r\n });\r\n self.getEl().appendChild(input);\r\n },\r\n remove: function () {\r\n global$9(this.getEl('button')).off();\r\n global$9(this.getEl('input')).off();\r\n this._super();\r\n }\r\n });\r\n\r\n var ButtonGroup = Container.extend({\r\n Defaults: {\r\n defaultType: 'button',\r\n role: 'group'\r\n },\r\n renderHtml: function () {\r\n var self = this, layout = self._layout;\r\n self.classes.add('btn-group');\r\n self.preRender();\r\n layout.preRender(self);\r\n return '
    ' + '
    ' + (self.settings.html || '') + layout.renderHtml(self) + '
    ' + '
    ';\r\n }\r\n });\r\n\r\n var Checkbox = Widget.extend({\r\n Defaults: {\r\n classes: 'checkbox',\r\n role: 'checkbox',\r\n checked: false\r\n },\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._super(settings);\r\n self$$1.on('click mousedown', function (e) {\r\n e.preventDefault();\r\n });\r\n self$$1.on('click', function (e) {\r\n e.preventDefault();\r\n if (!self$$1.disabled()) {\r\n self$$1.checked(!self$$1.checked());\r\n }\r\n });\r\n self$$1.checked(self$$1.settings.checked);\r\n },\r\n checked: function (state) {\r\n if (!arguments.length) {\r\n return this.state.get('checked');\r\n }\r\n this.state.set('checked', state);\r\n return this;\r\n },\r\n value: function (state) {\r\n if (!arguments.length) {\r\n return this.checked();\r\n }\r\n return this.checked(state);\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;\r\n return '
    ' + '' + '' + self$$1.encode(self$$1.state.get('text')) + '' + '
    ';\r\n },\r\n bindStates: function () {\r\n var self$$1 = this;\r\n function checked(state) {\r\n self$$1.classes.toggle('checked', state);\r\n self$$1.aria('checked', state);\r\n }\r\n self$$1.state.on('change:text', function (e) {\r\n self$$1.getEl('al').firstChild.data = self$$1.translate(e.value);\r\n });\r\n self$$1.state.on('change:checked change:value', function (e) {\r\n self$$1.fire('change');\r\n checked(e.value);\r\n });\r\n self$$1.state.on('change:icon', function (e) {\r\n var icon = e.value;\r\n var prefix = self$$1.classPrefix;\r\n if (typeof icon === 'undefined') {\r\n return self$$1.settings.icon;\r\n }\r\n self$$1.settings.icon = icon;\r\n icon = icon ? prefix + 'ico ' + prefix + 'i-' + self$$1.settings.icon : '';\r\n var btnElm = self$$1.getEl().firstChild;\r\n var iconElm = btnElm.getElementsByTagName('i')[0];\r\n if (icon) {\r\n if (!iconElm || iconElm !== btnElm.firstChild) {\r\n iconElm = document.createElement('i');\r\n btnElm.insertBefore(iconElm, btnElm.firstChild);\r\n }\r\n iconElm.className = icon;\r\n } else if (iconElm) {\r\n btnElm.removeChild(iconElm);\r\n }\r\n });\r\n if (self$$1.state.get('checked')) {\r\n checked(true);\r\n }\r\n return self$$1._super();\r\n }\r\n });\r\n\r\n var global$13 = tinymce.util.Tools.resolve('tinymce.util.VK');\r\n\r\n var ComboBox = Widget.extend({\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._super(settings);\r\n settings = self$$1.settings;\r\n self$$1.classes.add('combobox');\r\n self$$1.subinput = true;\r\n self$$1.ariaTarget = 'inp';\r\n settings.menu = settings.menu || settings.values;\r\n if (settings.menu) {\r\n settings.icon = 'caret';\r\n }\r\n self$$1.on('click', function (e) {\r\n var elm = e.target;\r\n var root = self$$1.getEl();\r\n if (!global$9.contains(root, elm) && elm !== root) {\r\n return;\r\n }\r\n while (elm && elm !== root) {\r\n if (elm.id && elm.id.indexOf('-open') !== -1) {\r\n self$$1.fire('action');\r\n if (settings.menu) {\r\n self$$1.showMenu();\r\n if (e.aria) {\r\n self$$1.menu.items()[0].focus();\r\n }\r\n }\r\n }\r\n elm = elm.parentNode;\r\n }\r\n });\r\n self$$1.on('keydown', function (e) {\r\n var rootControl;\r\n if (e.keyCode === 13 && e.target.nodeName === 'INPUT') {\r\n e.preventDefault();\r\n self$$1.parents().reverse().each(function (ctrl) {\r\n if (ctrl.toJSON) {\r\n rootControl = ctrl;\r\n return false;\r\n }\r\n });\r\n self$$1.fire('submit', { data: rootControl.toJSON() });\r\n }\r\n });\r\n self$$1.on('keyup', function (e) {\r\n if (e.target.nodeName === 'INPUT') {\r\n var oldValue = self$$1.state.get('value');\r\n var newValue = e.target.value;\r\n if (newValue !== oldValue) {\r\n self$$1.state.set('value', newValue);\r\n self$$1.fire('autocomplete', e);\r\n }\r\n }\r\n });\r\n self$$1.on('mouseover', function (e) {\r\n var tooltip = self$$1.tooltip().moveTo(-65535);\r\n if (self$$1.statusLevel() && e.target.className.indexOf(self$$1.classPrefix + 'status') !== -1) {\r\n var statusMessage = self$$1.statusMessage() || 'Ok';\r\n var rel = tooltip.text(statusMessage).show().testMoveRel(e.target, [\r\n 'bc-tc',\r\n 'bc-tl',\r\n 'bc-tr'\r\n ]);\r\n tooltip.classes.toggle('tooltip-n', rel === 'bc-tc');\r\n tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl');\r\n tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr');\r\n tooltip.moveRel(e.target, rel);\r\n }\r\n });\r\n },\r\n statusLevel: function (value) {\r\n if (arguments.length > 0) {\r\n this.state.set('statusLevel', value);\r\n }\r\n return this.state.get('statusLevel');\r\n },\r\n statusMessage: function (value) {\r\n if (arguments.length > 0) {\r\n this.state.set('statusMessage', value);\r\n }\r\n return this.state.get('statusMessage');\r\n },\r\n showMenu: function () {\r\n var self$$1 = this;\r\n var settings = self$$1.settings;\r\n var menu;\r\n if (!self$$1.menu) {\r\n menu = settings.menu || [];\r\n if (menu.length) {\r\n menu = {\r\n type: 'menu',\r\n items: menu\r\n };\r\n } else {\r\n menu.type = menu.type || 'menu';\r\n }\r\n self$$1.menu = global$4.create(menu).parent(self$$1).renderTo(self$$1.getContainerElm());\r\n self$$1.fire('createmenu');\r\n self$$1.menu.reflow();\r\n self$$1.menu.on('cancel', function (e) {\r\n if (e.control === self$$1.menu) {\r\n self$$1.focus();\r\n }\r\n });\r\n self$$1.menu.on('show hide', function (e) {\r\n e.control.items().each(function (ctrl) {\r\n ctrl.active(ctrl.value() === self$$1.value());\r\n });\r\n }).fire('show');\r\n self$$1.menu.on('select', function (e) {\r\n self$$1.value(e.control.value());\r\n });\r\n self$$1.on('focusin', function (e) {\r\n if (e.target.tagName.toUpperCase() === 'INPUT') {\r\n self$$1.menu.hide();\r\n }\r\n });\r\n self$$1.aria('expanded', true);\r\n }\r\n self$$1.menu.show();\r\n self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });\r\n self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [\r\n 'br-tr',\r\n 'tr-br'\r\n ] : [\r\n 'bl-tl',\r\n 'tl-bl'\r\n ]);\r\n },\r\n focus: function () {\r\n this.getEl('inp').focus();\r\n },\r\n repaint: function () {\r\n var self$$1 = this, elm = self$$1.getEl(), openElm = self$$1.getEl('open'), rect = self$$1.layoutRect();\r\n var width, lineHeight, innerPadding = 0;\r\n var inputElm = elm.firstChild;\r\n if (self$$1.statusLevel() && self$$1.statusLevel() !== 'none') {\r\n innerPadding = parseInt(funcs.getRuntimeStyle(inputElm, 'padding-right'), 10) - parseInt(funcs.getRuntimeStyle(inputElm, 'padding-left'), 10);\r\n }\r\n if (openElm) {\r\n width = rect.w - funcs.getSize(openElm).width - 10;\r\n } else {\r\n width = rect.w - 10;\r\n }\r\n var doc = document;\r\n if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) {\r\n lineHeight = self$$1.layoutRect().h - 2 + 'px';\r\n }\r\n global$9(inputElm).css({\r\n width: width - innerPadding,\r\n lineHeight: lineHeight\r\n });\r\n self$$1._super();\r\n return self$$1;\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n global$9(this.getEl('inp')).on('change', function (e) {\r\n self$$1.state.set('value', e.target.value);\r\n self$$1.fire('change', e);\r\n });\r\n return self$$1._super();\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this, id = self$$1._id, settings = self$$1.settings, prefix = self$$1.classPrefix;\r\n var value = self$$1.state.get('value') || '';\r\n var icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = '';\r\n if ('spellcheck' in settings) {\r\n extraAttrs += ' spellcheck=\"' + settings.spellcheck + '\"';\r\n }\r\n if (settings.maxLength) {\r\n extraAttrs += ' maxlength=\"' + settings.maxLength + '\"';\r\n }\r\n if (settings.size) {\r\n extraAttrs += ' size=\"' + settings.size + '\"';\r\n }\r\n if (settings.subtype) {\r\n extraAttrs += ' type=\"' + settings.subtype + '\"';\r\n }\r\n statusHtml = '';\r\n if (self$$1.disabled()) {\r\n extraAttrs += ' disabled=\"disabled\"';\r\n }\r\n icon = settings.icon;\r\n if (icon && icon !== 'caret') {\r\n icon = prefix + 'ico ' + prefix + 'i-' + settings.icon;\r\n }\r\n text = self$$1.state.get('text');\r\n if (icon || text) {\r\n openBtnHtml = '
    ' + '' + '
    ';\r\n self$$1.classes.add('has-open');\r\n }\r\n return '
    ' + '' + statusHtml + openBtnHtml + '
    ';\r\n },\r\n value: function (value) {\r\n if (arguments.length) {\r\n this.state.set('value', value);\r\n return this;\r\n }\r\n if (this.state.get('rendered')) {\r\n this.state.set('value', this.getEl('inp').value);\r\n }\r\n return this.state.get('value');\r\n },\r\n showAutoComplete: function (items, term) {\r\n var self$$1 = this;\r\n if (items.length === 0) {\r\n self$$1.hideMenu();\r\n return;\r\n }\r\n var insert = function (value, title) {\r\n return function () {\r\n self$$1.fire('selectitem', {\r\n title: title,\r\n value: value\r\n });\r\n };\r\n };\r\n if (self$$1.menu) {\r\n self$$1.menu.items().remove();\r\n } else {\r\n self$$1.menu = global$4.create({\r\n type: 'menu',\r\n classes: 'combobox-menu',\r\n layout: 'flow'\r\n }).parent(self$$1).renderTo();\r\n }\r\n global$2.each(items, function (item) {\r\n self$$1.menu.add({\r\n text: item.title,\r\n url: item.previewUrl,\r\n match: term,\r\n classes: 'menu-item-ellipsis',\r\n onclick: insert(item.value, item.title)\r\n });\r\n });\r\n self$$1.menu.renderNew();\r\n self$$1.hideMenu();\r\n self$$1.menu.on('cancel', function (e) {\r\n if (e.control.parent() === self$$1.menu) {\r\n e.stopPropagation();\r\n self$$1.focus();\r\n self$$1.hideMenu();\r\n }\r\n });\r\n self$$1.menu.on('select', function () {\r\n self$$1.focus();\r\n });\r\n var maxW = self$$1.layoutRect().w;\r\n self$$1.menu.layoutRect({\r\n w: maxW,\r\n minW: 0,\r\n maxW: maxW\r\n });\r\n self$$1.menu.repaint();\r\n self$$1.menu.reflow();\r\n self$$1.menu.show();\r\n self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [\r\n 'br-tr',\r\n 'tr-br'\r\n ] : [\r\n 'bl-tl',\r\n 'tl-bl'\r\n ]);\r\n },\r\n hideMenu: function () {\r\n if (this.menu) {\r\n this.menu.hide();\r\n }\r\n },\r\n bindStates: function () {\r\n var self$$1 = this;\r\n self$$1.state.on('change:value', function (e) {\r\n if (self$$1.getEl('inp').value !== e.value) {\r\n self$$1.getEl('inp').value = e.value;\r\n }\r\n });\r\n self$$1.state.on('change:disabled', function (e) {\r\n self$$1.getEl('inp').disabled = e.value;\r\n });\r\n self$$1.state.on('change:statusLevel', function (e) {\r\n var statusIconElm = self$$1.getEl('status');\r\n var prefix = self$$1.classPrefix, value = e.value;\r\n funcs.css(statusIconElm, 'display', value === 'none' ? 'none' : '');\r\n funcs.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok');\r\n funcs.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn');\r\n funcs.toggleClass(statusIconElm, prefix + 'i-error', value === 'error');\r\n self$$1.classes.toggle('has-status', value !== 'none');\r\n self$$1.repaint();\r\n });\r\n funcs.on(self$$1.getEl('status'), 'mouseleave', function () {\r\n self$$1.tooltip().hide();\r\n });\r\n self$$1.on('cancel', function (e) {\r\n if (self$$1.menu && self$$1.menu.visible()) {\r\n e.stopPropagation();\r\n self$$1.hideMenu();\r\n }\r\n });\r\n var focusIdx = function (idx, menu) {\r\n if (menu && menu.items().length > 0) {\r\n menu.items().eq(idx)[0].focus();\r\n }\r\n };\r\n self$$1.on('keydown', function (e) {\r\n var keyCode = e.keyCode;\r\n if (e.target.nodeName === 'INPUT') {\r\n if (keyCode === global$13.DOWN) {\r\n e.preventDefault();\r\n self$$1.fire('autocomplete');\r\n focusIdx(0, self$$1.menu);\r\n } else if (keyCode === global$13.UP) {\r\n e.preventDefault();\r\n focusIdx(-1, self$$1.menu);\r\n }\r\n }\r\n });\r\n return self$$1._super();\r\n },\r\n remove: function () {\r\n global$9(this.getEl('inp')).off();\r\n if (this.menu) {\r\n this.menu.remove();\r\n }\r\n this._super();\r\n }\r\n });\r\n\r\n var ColorBox = ComboBox.extend({\r\n init: function (settings) {\r\n var self = this;\r\n settings.spellcheck = false;\r\n if (settings.onaction) {\r\n settings.icon = 'none';\r\n }\r\n self._super(settings);\r\n self.classes.add('colorbox');\r\n self.on('change keyup postrender', function () {\r\n self.repaintColor(self.value());\r\n });\r\n },\r\n repaintColor: function (value) {\r\n var openElm = this.getEl('open');\r\n var elm = openElm ? openElm.getElementsByTagName('i')[0] : null;\r\n if (elm) {\r\n try {\r\n elm.style.background = value;\r\n } catch (ex) {\r\n }\r\n }\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:value', function (e) {\r\n if (self.state.get('rendered')) {\r\n self.repaintColor(e.value);\r\n }\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var PanelButton = Button.extend({\r\n showPanel: function () {\r\n var self = this, settings = self.settings;\r\n self.classes.add('opened');\r\n if (!self.panel) {\r\n var panelSettings = settings.panel;\r\n if (panelSettings.type) {\r\n panelSettings = {\r\n layout: 'grid',\r\n items: panelSettings\r\n };\r\n }\r\n panelSettings.role = panelSettings.role || 'dialog';\r\n panelSettings.popover = true;\r\n panelSettings.autohide = true;\r\n panelSettings.ariaRoot = true;\r\n self.panel = new FloatPanel(panelSettings).on('hide', function () {\r\n self.classes.remove('opened');\r\n }).on('cancel', function (e) {\r\n e.stopPropagation();\r\n self.focus();\r\n self.hidePanel();\r\n }).parent(self).renderTo(self.getContainerElm());\r\n self.panel.fire('show');\r\n self.panel.reflow();\r\n } else {\r\n self.panel.show();\r\n }\r\n var rtlRels = [\r\n 'bc-tc',\r\n 'bc-tl',\r\n 'bc-tr'\r\n ];\r\n var ltrRels = [\r\n 'bc-tc',\r\n 'bc-tr',\r\n 'bc-tl',\r\n 'tc-bc',\r\n 'tc-br',\r\n 'tc-bl'\r\n ];\r\n var rel = self.panel.testMoveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? rtlRels : ltrRels));\r\n self.panel.classes.toggle('start', rel.substr(-1) === 'l');\r\n self.panel.classes.toggle('end', rel.substr(-1) === 'r');\r\n var isTop = rel.substr(0, 1) === 't';\r\n self.panel.classes.toggle('bottom', !isTop);\r\n self.panel.classes.toggle('top', isTop);\r\n self.panel.moveRel(self.getEl(), rel);\r\n },\r\n hidePanel: function () {\r\n var self = this;\r\n if (self.panel) {\r\n self.panel.hide();\r\n }\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self.aria('haspopup', true);\r\n self.on('click', function (e) {\r\n if (e.control === self) {\r\n if (self.panel && self.panel.visible()) {\r\n self.hidePanel();\r\n } else {\r\n self.showPanel();\r\n self.panel.focus(!!e.aria);\r\n }\r\n }\r\n });\r\n return self._super();\r\n },\r\n remove: function () {\r\n if (this.panel) {\r\n this.panel.remove();\r\n this.panel = null;\r\n }\r\n return this._super();\r\n }\r\n });\r\n\r\n var DOM$3 = global$3.DOM;\r\n var ColorButton = PanelButton.extend({\r\n init: function (settings) {\r\n this._super(settings);\r\n this.classes.add('splitbtn');\r\n this.classes.add('colorbutton');\r\n },\r\n color: function (color) {\r\n if (color) {\r\n this._color = color;\r\n this.getEl('preview').style.backgroundColor = color;\r\n return this;\r\n }\r\n return this._color;\r\n },\r\n resetColor: function () {\r\n this._color = null;\r\n this.getEl('preview').style.backgroundColor = null;\r\n return this;\r\n },\r\n renderHtml: function () {\r\n var self = this, id = self._id, prefix = self.classPrefix, text = self.state.get('text');\r\n var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : '';\r\n var image = self.settings.image ? ' style=\"background-image: url(\\'' + self.settings.image + '\\')\"' : '';\r\n var textHtml = '';\r\n if (text) {\r\n self.classes.add('btn-has-text');\r\n textHtml = '' + self.encode(text) + '';\r\n }\r\n return '
    ' + '' + '' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this, onClickHandler = self.settings.onclick;\r\n self.on('click', function (e) {\r\n if (e.aria && e.aria.key === 'down') {\r\n return;\r\n }\r\n if (e.control === self && !DOM$3.getParent(e.target, '.' + self.classPrefix + 'open')) {\r\n e.stopImmediatePropagation();\r\n onClickHandler.call(self, e);\r\n }\r\n });\r\n delete self.settings.onclick;\r\n return self._super();\r\n }\r\n });\r\n\r\n var global$14 = tinymce.util.Tools.resolve('tinymce.util.Color');\r\n\r\n var ColorPicker = Widget.extend({\r\n Defaults: { classes: 'widget colorpicker' },\r\n init: function (settings) {\r\n this._super(settings);\r\n },\r\n postRender: function () {\r\n var self = this;\r\n var color = self.color();\r\n var hsv, hueRootElm, huePointElm, svRootElm, svPointElm;\r\n hueRootElm = self.getEl('h');\r\n huePointElm = self.getEl('hp');\r\n svRootElm = self.getEl('sv');\r\n svPointElm = self.getEl('svp');\r\n function getPos(elm, event) {\r\n var pos = funcs.getPos(elm);\r\n var x, y;\r\n x = event.pageX - pos.x;\r\n y = event.pageY - pos.y;\r\n x = Math.max(0, Math.min(x / elm.clientWidth, 1));\r\n y = Math.max(0, Math.min(y / elm.clientHeight, 1));\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n }\r\n function updateColor(hsv, hueUpdate) {\r\n var hue = (360 - hsv.h) / 360;\r\n funcs.css(huePointElm, { top: hue * 100 + '%' });\r\n if (!hueUpdate) {\r\n funcs.css(svPointElm, {\r\n left: hsv.s + '%',\r\n top: 100 - hsv.v + '%'\r\n });\r\n }\r\n svRootElm.style.background = global$14({\r\n s: 100,\r\n v: 100,\r\n h: hsv.h\r\n }).toHex();\r\n self.color().parse({\r\n s: hsv.s,\r\n v: hsv.v,\r\n h: hsv.h\r\n });\r\n }\r\n function updateSaturationAndValue(e) {\r\n var pos;\r\n pos = getPos(svRootElm, e);\r\n hsv.s = pos.x * 100;\r\n hsv.v = (1 - pos.y) * 100;\r\n updateColor(hsv);\r\n self.fire('change');\r\n }\r\n function updateHue(e) {\r\n var pos;\r\n pos = getPos(hueRootElm, e);\r\n hsv = color.toHsv();\r\n hsv.h = (1 - pos.y) * 360;\r\n updateColor(hsv, true);\r\n self.fire('change');\r\n }\r\n self._repaint = function () {\r\n hsv = color.toHsv();\r\n updateColor(hsv);\r\n };\r\n self._super();\r\n self._svdraghelper = new DragHelper(self._id + '-sv', {\r\n start: updateSaturationAndValue,\r\n drag: updateSaturationAndValue\r\n });\r\n self._hdraghelper = new DragHelper(self._id + '-h', {\r\n start: updateHue,\r\n drag: updateHue\r\n });\r\n self._repaint();\r\n },\r\n rgb: function () {\r\n return this.color().toRgb();\r\n },\r\n value: function (value) {\r\n var self = this;\r\n if (arguments.length) {\r\n self.color().parse(value);\r\n if (self._rendered) {\r\n self._repaint();\r\n }\r\n } else {\r\n return self.color().toHex();\r\n }\r\n },\r\n color: function () {\r\n if (!this._color) {\r\n this._color = global$14();\r\n }\r\n return this._color;\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var id = self._id;\r\n var prefix = self.classPrefix;\r\n var hueHtml;\r\n var stops = '#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000';\r\n function getOldIeFallbackHtml() {\r\n var i, l, html = '', gradientPrefix, stopsList;\r\n gradientPrefix = 'filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=';\r\n stopsList = stops.split(',');\r\n for (i = 0, l = stopsList.length - 1; i < l; i++) {\r\n html += '
    ';\r\n }\r\n return html;\r\n }\r\n var gradientCssText = 'background: -ms-linear-gradient(top,' + stops + ');' + 'background: linear-gradient(to bottom,' + stops + ');';\r\n hueHtml = '
    ' + getOldIeFallbackHtml() + '
    ' + '
    ';\r\n return '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + hueHtml + '
    ';\r\n }\r\n });\r\n\r\n var DropZone = Widget.extend({\r\n init: function (settings) {\r\n var self = this;\r\n settings = global$2.extend({\r\n height: 100,\r\n text: 'Drop an image here',\r\n multiple: false,\r\n accept: null\r\n }, settings);\r\n self._super(settings);\r\n self.classes.add('dropzone');\r\n if (settings.multiple) {\r\n self.classes.add('multiple');\r\n }\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var attrs, elm;\r\n var cfg = self.settings;\r\n attrs = {\r\n id: self._id,\r\n hidefocus: '1'\r\n };\r\n elm = funcs.create('div', attrs, '' + this.translate(cfg.text) + '');\r\n if (cfg.height) {\r\n funcs.css(elm, 'height', cfg.height + 'px');\r\n }\r\n if (cfg.width) {\r\n funcs.css(elm, 'width', cfg.width + 'px');\r\n }\r\n elm.className = self.classes;\r\n return elm.outerHTML;\r\n },\r\n postRender: function () {\r\n var self = this;\r\n var toggleDragClass = function (e) {\r\n e.preventDefault();\r\n self.classes.toggle('dragenter');\r\n self.getEl().className = self.classes;\r\n };\r\n var filter = function (files) {\r\n var accept = self.settings.accept;\r\n if (typeof accept !== 'string') {\r\n return files;\r\n }\r\n var re = new RegExp('(' + accept.split(/\\s*,\\s*/).join('|') + ')$', 'i');\r\n return global$2.grep(files, function (file) {\r\n return re.test(file.name);\r\n });\r\n };\r\n self._super();\r\n self.$el.on('dragover', function (e) {\r\n e.preventDefault();\r\n });\r\n self.$el.on('dragenter', toggleDragClass);\r\n self.$el.on('dragleave', toggleDragClass);\r\n self.$el.on('drop', function (e) {\r\n e.preventDefault();\r\n if (self.state.get('disabled')) {\r\n return;\r\n }\r\n var files = filter(e.dataTransfer.files);\r\n self.value = function () {\r\n if (!files.length) {\r\n return null;\r\n } else if (self.settings.multiple) {\r\n return files;\r\n } else {\r\n return files[0];\r\n }\r\n };\r\n if (files.length) {\r\n self.fire('change', e);\r\n }\r\n });\r\n },\r\n remove: function () {\r\n this.$el.off();\r\n this._super();\r\n }\r\n });\r\n\r\n var Path = Widget.extend({\r\n init: function (settings) {\r\n var self = this;\r\n if (!settings.delimiter) {\r\n settings.delimiter = '\\xBB';\r\n }\r\n self._super(settings);\r\n self.classes.add('path');\r\n self.canFocus = true;\r\n self.on('click', function (e) {\r\n var index;\r\n var target = e.target;\r\n if (index = target.getAttribute('data-index')) {\r\n self.fire('select', {\r\n value: self.row()[index],\r\n index: index\r\n });\r\n }\r\n });\r\n self.row(self.settings.row);\r\n },\r\n focus: function () {\r\n var self = this;\r\n self.getEl().firstChild.focus();\r\n return self;\r\n },\r\n row: function (row) {\r\n if (!arguments.length) {\r\n return this.state.get('row');\r\n }\r\n this.state.set('row', row);\r\n return this;\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n return '
    ' + self._getDataPathHtml(self.state.get('row')) + '
    ';\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:row', function (e) {\r\n self.innerHtml(self._getDataPathHtml(e.value));\r\n });\r\n return self._super();\r\n },\r\n _getDataPathHtml: function (data) {\r\n var self = this;\r\n var parts = data || [];\r\n var i, l, html = '';\r\n var prefix = self.classPrefix;\r\n for (i = 0, l = parts.length; i < l; i++) {\r\n html += (i > 0 ? '
    ' + self.settings.delimiter + '
    ' : '') + '
    ' + parts[i].name + '
    ';\r\n }\r\n if (!html) {\r\n html = '
    \\xA0
    ';\r\n }\r\n return html;\r\n }\r\n });\r\n\r\n var ElementPath = Path.extend({\r\n postRender: function () {\r\n var self = this, editor = self.settings.editor;\r\n function isHidden(elm) {\r\n if (elm.nodeType === 1) {\r\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\r\n return true;\r\n }\r\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n if (editor.settings.elementpath !== false) {\r\n self.on('select', function (e) {\r\n editor.focus();\r\n editor.selection.select(this.row()[e.index].element);\r\n editor.nodeChanged();\r\n });\r\n editor.on('nodeChange', function (e) {\r\n var outParents = [];\r\n var parents = e.parents;\r\n var i = parents.length;\r\n while (i--) {\r\n if (parents[i].nodeType === 1 && !isHidden(parents[i])) {\r\n var args = editor.fire('ResolveName', {\r\n name: parents[i].nodeName.toLowerCase(),\r\n target: parents[i]\r\n });\r\n if (!args.isDefaultPrevented()) {\r\n outParents.push({\r\n name: args.name,\r\n element: parents[i]\r\n });\r\n }\r\n if (args.isPropagationStopped()) {\r\n break;\r\n }\r\n }\r\n }\r\n self.row(outParents);\r\n });\r\n }\r\n return self._super();\r\n }\r\n });\r\n\r\n var FormItem = Container.extend({\r\n Defaults: {\r\n layout: 'flex',\r\n align: 'center',\r\n defaults: { flex: 1 }\r\n },\r\n renderHtml: function () {\r\n var self = this, layout = self._layout, prefix = self.classPrefix;\r\n self.classes.add('formitem');\r\n layout.preRender(self);\r\n return '
    ' + (self.settings.title ? '
    ' + self.settings.title + '
    ' : '') + '
    ' + (self.settings.html || '') + layout.renderHtml(self) + '
    ' + '
    ';\r\n }\r\n });\r\n\r\n var Form = Container.extend({\r\n Defaults: {\r\n containerCls: 'form',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n flex: 1,\r\n padding: 15,\r\n labelGap: 30,\r\n spacing: 10,\r\n callbacks: {\r\n submit: function () {\r\n this.submit();\r\n }\r\n }\r\n },\r\n preRender: function () {\r\n var self = this, items = self.items();\r\n if (!self.settings.formItemDefaults) {\r\n self.settings.formItemDefaults = {\r\n layout: 'flex',\r\n autoResize: 'overflow',\r\n defaults: { flex: 1 }\r\n };\r\n }\r\n items.each(function (ctrl) {\r\n var formItem;\r\n var label = ctrl.settings.label;\r\n if (label) {\r\n formItem = new FormItem(global$2.extend({\r\n items: {\r\n type: 'label',\r\n id: ctrl._id + '-l',\r\n text: label,\r\n flex: 0,\r\n forId: ctrl._id,\r\n disabled: ctrl.disabled()\r\n }\r\n }, self.settings.formItemDefaults));\r\n formItem.type = 'formitem';\r\n ctrl.aria('labelledby', ctrl._id + '-l');\r\n if (typeof ctrl.settings.flex === 'undefined') {\r\n ctrl.settings.flex = 1;\r\n }\r\n self.replace(ctrl, formItem);\r\n formItem.add(ctrl);\r\n }\r\n });\r\n },\r\n submit: function () {\r\n return this.fire('submit', { data: this.toJSON() });\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self._super();\r\n self.fromJSON(self.settings.data);\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self._super();\r\n function recalcLabels() {\r\n var maxLabelWidth = 0;\r\n var labels = [];\r\n var i, labelGap, items;\r\n if (self.settings.labelGapCalc === false) {\r\n return;\r\n }\r\n if (self.settings.labelGapCalc === 'children') {\r\n items = self.find('formitem');\r\n } else {\r\n items = self.items();\r\n }\r\n items.filter('formitem').each(function (item) {\r\n var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth;\r\n maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth;\r\n labels.push(labelCtrl);\r\n });\r\n labelGap = self.settings.labelGap || 0;\r\n i = labels.length;\r\n while (i--) {\r\n labels[i].settings.minWidth = maxLabelWidth + labelGap;\r\n }\r\n }\r\n self.on('show', recalcLabels);\r\n recalcLabels();\r\n }\r\n });\r\n\r\n var FieldSet = Form.extend({\r\n Defaults: {\r\n containerCls: 'fieldset',\r\n layout: 'flex',\r\n direction: 'column',\r\n align: 'stretch',\r\n flex: 1,\r\n padding: '25 15 5 15',\r\n labelGap: 30,\r\n spacing: 10,\r\n border: 1\r\n },\r\n renderHtml: function () {\r\n var self = this, layout = self._layout, prefix = self.classPrefix;\r\n self.preRender();\r\n layout.preRender(self);\r\n return '
    ' + (self.settings.title ? '' + self.settings.title + '' : '') + '
    ' + (self.settings.html || '') + layout.renderHtml(self) + '
    ' + '
    ';\r\n }\r\n });\r\n\r\n var unique$1 = 0;\r\n var generate = function (prefix) {\r\n var date = new Date();\r\n var time = date.getTime();\r\n var random = Math.floor(Math.random() * 1000000000);\r\n unique$1++;\r\n return prefix + '_' + random + unique$1 + String(time);\r\n };\r\n\r\n var fromHtml = function (html, scope) {\r\n var doc = scope || document;\r\n var div = doc.createElement('div');\r\n div.innerHTML = html;\r\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\r\n console.error('HTML does not have a single root node', html);\r\n throw 'HTML must have a single root node';\r\n }\r\n return fromDom(div.childNodes[0]);\r\n };\r\n var fromTag = function (tag, scope) {\r\n var doc = scope || document;\r\n var node = doc.createElement(tag);\r\n return fromDom(node);\r\n };\r\n var fromText = function (text, scope) {\r\n var doc = scope || document;\r\n var node = doc.createTextNode(text);\r\n return fromDom(node);\r\n };\r\n var fromDom = function (node) {\r\n if (node === null || node === undefined)\r\n throw new Error('Node cannot be null or undefined');\r\n return { dom: constant(node) };\r\n };\r\n var fromPoint = function (docElm, x, y) {\r\n var doc = docElm.dom();\r\n return Option.from(doc.elementFromPoint(x, y)).map(fromDom);\r\n };\r\n var Element$$1 = {\r\n fromHtml: fromHtml,\r\n fromTag: fromTag,\r\n fromText: fromText,\r\n fromDom: fromDom,\r\n fromPoint: fromPoint\r\n };\r\n\r\n var cached = function (f) {\r\n var called = false;\r\n var r;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!called) {\r\n called = true;\r\n r = f.apply(null, args);\r\n }\r\n return r;\r\n };\r\n };\r\n\r\n var $_g9js5fw5jkmcwsoh = {\r\n ATTRIBUTE: Node.ATTRIBUTE_NODE,\r\n CDATA_SECTION: Node.CDATA_SECTION_NODE,\r\n COMMENT: Node.COMMENT_NODE,\r\n DOCUMENT: Node.DOCUMENT_NODE,\r\n DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,\r\n DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,\r\n ELEMENT: Node.ELEMENT_NODE,\r\n TEXT: Node.TEXT_NODE,\r\n PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,\r\n ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,\r\n ENTITY: Node.ENTITY_NODE,\r\n NOTATION: Node.NOTATION_NODE\r\n };\r\n\r\n var name = function (element) {\r\n var r = element.dom().nodeName;\r\n return r.toLowerCase();\r\n };\r\n var type = function (element) {\r\n return element.dom().nodeType;\r\n };\r\n var value = function (element) {\r\n return element.dom().nodeValue;\r\n };\r\n var isType$1 = function (t) {\r\n return function (element) {\r\n return type(element) === t;\r\n };\r\n };\r\n var isComment = function (element) {\r\n return type(element) === $_g9js5fw5jkmcwsoh.COMMENT || name(element) === '#comment';\r\n };\r\n var isElement = isType$1($_g9js5fw5jkmcwsoh.ELEMENT);\r\n var isText = isType$1($_g9js5fw5jkmcwsoh.TEXT);\r\n var isDocument = isType$1($_g9js5fw5jkmcwsoh.DOCUMENT);\r\n var $_dg0wqww4jkmcwsog = {\r\n name: name,\r\n type: type,\r\n value: value,\r\n isElement: isElement,\r\n isText: isText,\r\n isDocument: isDocument,\r\n isComment: isComment\r\n };\r\n\r\n var inBody = function (element) {\r\n var dom = $_dg0wqww4jkmcwsog.isText(element) ? element.dom().parentNode : element.dom();\r\n return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);\r\n };\r\n var body = cached(function () {\r\n return getBody(Element$$1.fromDom(document));\r\n });\r\n var getBody = function (doc) {\r\n var body = doc.dom().body;\r\n if (body === null || body === undefined)\r\n throw 'Body is not available yet';\r\n return Element$$1.fromDom(body);\r\n };\r\n var $_9gi0tmw2jkmcwsob = {\r\n body: body,\r\n getBody: getBody,\r\n inBody: inBody\r\n };\r\n\r\n var Immutable = function () {\r\n var fields = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n fields[_i] = arguments[_i];\r\n }\r\n return function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i] = arguments[_i];\r\n }\r\n if (fields.length !== values.length) {\r\n throw new Error('Wrong number of arguments to struct. Expected \"[' + fields.length + ']\", got ' + values.length + ' arguments');\r\n }\r\n var struct = {};\r\n each(fields, function (name, i) {\r\n struct[name] = constant(values[i]);\r\n });\r\n return struct;\r\n };\r\n };\r\n\r\n var toArray = function (target, f) {\r\n var r = [];\r\n var recurse = function (e) {\r\n r.push(e);\r\n return f(e);\r\n };\r\n var cur = f(target);\r\n do {\r\n cur = cur.bind(recurse);\r\n } while (cur.isSome());\r\n return r;\r\n };\r\n var $_9vmnzpwcjkmcwsph = { toArray: toArray };\r\n\r\n var Global = typeof window !== 'undefined' ? window : Function('return this;')();\r\n\r\n var path = function (parts, scope) {\r\n var o = scope !== undefined && scope !== null ? scope : Global;\r\n for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)\r\n o = o[parts[i]];\r\n return o;\r\n };\r\n var resolve = function (p, scope) {\r\n var parts = p.split('.');\r\n return path(parts, scope);\r\n };\r\n\r\n var unsafe = function (name, scope) {\r\n return resolve(name, scope);\r\n };\r\n var getOrDie = function (name, scope) {\r\n var actual = unsafe(name, scope);\r\n if (actual === undefined || actual === null)\r\n throw name + ' not available on this browser';\r\n return actual;\r\n };\r\n var $_22q3m2wfjkmcwsps = { getOrDie: getOrDie };\r\n\r\n var node = function () {\r\n var f = $_22q3m2wfjkmcwsps.getOrDie('Node');\r\n return f;\r\n };\r\n var compareDocumentPosition = function (a, b, match) {\r\n return (a.compareDocumentPosition(b) & match) !== 0;\r\n };\r\n var documentPositionPreceding = function (a, b) {\r\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING);\r\n };\r\n var documentPositionContainedBy = function (a, b) {\r\n return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);\r\n };\r\n var $_60zxbqwejkmcwspr = {\r\n documentPositionPreceding: documentPositionPreceding,\r\n documentPositionContainedBy: documentPositionContainedBy\r\n };\r\n\r\n var firstMatch = function (regexes, s) {\r\n for (var i = 0; i < regexes.length; i++) {\r\n var x = regexes[i];\r\n if (x.test(s))\r\n return x;\r\n }\r\n return undefined;\r\n };\r\n var find$2 = function (regexes, agent) {\r\n var r = firstMatch(regexes, agent);\r\n if (!r)\r\n return {\r\n major: 0,\r\n minor: 0\r\n };\r\n var group = function (i) {\r\n return Number(agent.replace(r, '$' + i));\r\n };\r\n return nu(group(1), group(2));\r\n };\r\n var detect = function (versionRegexes, agent) {\r\n var cleanedAgent = String(agent).toLowerCase();\r\n if (versionRegexes.length === 0)\r\n return unknown();\r\n return find$2(versionRegexes, cleanedAgent);\r\n };\r\n var unknown = function () {\r\n return nu(0, 0);\r\n };\r\n var nu = function (major, minor) {\r\n return {\r\n major: major,\r\n minor: minor\r\n };\r\n };\r\n var $_7ota5pwljkmcwsq4 = {\r\n nu: nu,\r\n detect: detect,\r\n unknown: unknown\r\n };\r\n\r\n var edge = 'Edge';\r\n var chrome = 'Chrome';\r\n var ie = 'IE';\r\n var opera = 'Opera';\r\n var firefox = 'Firefox';\r\n var safari = 'Safari';\r\n var isBrowser = function (name, current) {\r\n return function () {\r\n return current === name;\r\n };\r\n };\r\n var unknown$1 = function () {\r\n return nu$1({\r\n current: undefined,\r\n version: $_7ota5pwljkmcwsq4.unknown()\r\n });\r\n };\r\n var nu$1 = function (info) {\r\n var current = info.current;\r\n var version = info.version;\r\n return {\r\n current: current,\r\n version: version,\r\n isEdge: isBrowser(edge, current),\r\n isChrome: isBrowser(chrome, current),\r\n isIE: isBrowser(ie, current),\r\n isOpera: isBrowser(opera, current),\r\n isFirefox: isBrowser(firefox, current),\r\n isSafari: isBrowser(safari, current)\r\n };\r\n };\r\n var $_fknyifwkjkmcwsq1 = {\r\n unknown: unknown$1,\r\n nu: nu$1,\r\n edge: constant(edge),\r\n chrome: constant(chrome),\r\n ie: constant(ie),\r\n opera: constant(opera),\r\n firefox: constant(firefox),\r\n safari: constant(safari)\r\n };\r\n\r\n var windows$1 = 'Windows';\r\n var ios = 'iOS';\r\n var android = 'Android';\r\n var linux = 'Linux';\r\n var osx = 'OSX';\r\n var solaris = 'Solaris';\r\n var freebsd = 'FreeBSD';\r\n var isOS = function (name, current) {\r\n return function () {\r\n return current === name;\r\n };\r\n };\r\n var unknown$2 = function () {\r\n return nu$2({\r\n current: undefined,\r\n version: $_7ota5pwljkmcwsq4.unknown()\r\n });\r\n };\r\n var nu$2 = function (info) {\r\n var current = info.current;\r\n var version = info.version;\r\n return {\r\n current: current,\r\n version: version,\r\n isWindows: isOS(windows$1, current),\r\n isiOS: isOS(ios, current),\r\n isAndroid: isOS(android, current),\r\n isOSX: isOS(osx, current),\r\n isLinux: isOS(linux, current),\r\n isSolaris: isOS(solaris, current),\r\n isFreeBSD: isOS(freebsd, current)\r\n };\r\n };\r\n var $_4dmnqawmjkmcwsq6 = {\r\n unknown: unknown$2,\r\n nu: nu$2,\r\n windows: constant(windows$1),\r\n ios: constant(ios),\r\n android: constant(android),\r\n linux: constant(linux),\r\n osx: constant(osx),\r\n solaris: constant(solaris),\r\n freebsd: constant(freebsd)\r\n };\r\n\r\n function DeviceType (os, browser, userAgent) {\r\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\r\n var isiPhone = os.isiOS() && !isiPad;\r\n var isAndroid3 = os.isAndroid() && os.version.major === 3;\r\n var isAndroid4 = os.isAndroid() && os.version.major === 4;\r\n var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true;\r\n var isTouch = os.isiOS() || os.isAndroid();\r\n var isPhone = isTouch && !isTablet;\r\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\r\n return {\r\n isiPad: constant(isiPad),\r\n isiPhone: constant(isiPhone),\r\n isTablet: constant(isTablet),\r\n isPhone: constant(isPhone),\r\n isTouch: constant(isTouch),\r\n isAndroid: os.isAndroid,\r\n isiOS: os.isiOS,\r\n isWebView: constant(iOSwebview)\r\n };\r\n }\r\n\r\n var detect$1 = function (candidates, userAgent) {\r\n var agent = String(userAgent).toLowerCase();\r\n return find(candidates, function (candidate) {\r\n return candidate.search(agent);\r\n });\r\n };\r\n var detectBrowser = function (browsers, userAgent) {\r\n return detect$1(browsers, userAgent).map(function (browser) {\r\n var version = $_7ota5pwljkmcwsq4.detect(browser.versionRegexes, userAgent);\r\n return {\r\n current: browser.name,\r\n version: version\r\n };\r\n });\r\n };\r\n var detectOs = function (oses, userAgent) {\r\n return detect$1(oses, userAgent).map(function (os) {\r\n var version = $_7ota5pwljkmcwsq4.detect(os.versionRegexes, userAgent);\r\n return {\r\n current: os.name,\r\n version: version\r\n };\r\n });\r\n };\r\n var $_21yllowojkmcwsqc = {\r\n detectBrowser: detectBrowser,\r\n detectOs: detectOs\r\n };\r\n\r\n var contains$1 = function (str, substr) {\r\n return str.indexOf(substr) !== -1;\r\n };\r\n\r\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\r\n var checkContains = function (target) {\r\n return function (uastring) {\r\n return contains$1(uastring, target);\r\n };\r\n };\r\n var browsers = [\r\n {\r\n name: 'Edge',\r\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\r\n search: function (uastring) {\r\n var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\r\n return monstrosity;\r\n }\r\n },\r\n {\r\n name: 'Chrome',\r\n versionRegexes: [\r\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\r\n normalVersionRegex\r\n ],\r\n search: function (uastring) {\r\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\r\n }\r\n },\r\n {\r\n name: 'IE',\r\n versionRegexes: [\r\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\r\n /.*?rv:([0-9]+)\\.([0-9]+).*/\r\n ],\r\n search: function (uastring) {\r\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\r\n }\r\n },\r\n {\r\n name: 'Opera',\r\n versionRegexes: [\r\n normalVersionRegex,\r\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\r\n ],\r\n search: checkContains('opera')\r\n },\r\n {\r\n name: 'Firefox',\r\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\r\n search: checkContains('firefox')\r\n },\r\n {\r\n name: 'Safari',\r\n versionRegexes: [\r\n normalVersionRegex,\r\n /.*?cpu os ([0-9]+)_([0-9]+).*/\r\n ],\r\n search: function (uastring) {\r\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\r\n }\r\n }\r\n ];\r\n var oses = [\r\n {\r\n name: 'Windows',\r\n search: checkContains('win'),\r\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\r\n },\r\n {\r\n name: 'iOS',\r\n search: function (uastring) {\r\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\r\n },\r\n versionRegexes: [\r\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\r\n /.*cpu os ([0-9]+)_([0-9]+).*/,\r\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\r\n ]\r\n },\r\n {\r\n name: 'Android',\r\n search: checkContains('android'),\r\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\r\n },\r\n {\r\n name: 'OSX',\r\n search: checkContains('os x'),\r\n versionRegexes: [/.*?os\\ x\\ ?([0-9]+)_([0-9]+).*/]\r\n },\r\n {\r\n name: 'Linux',\r\n search: checkContains('linux'),\r\n versionRegexes: []\r\n },\r\n {\r\n name: 'Solaris',\r\n search: checkContains('sunos'),\r\n versionRegexes: []\r\n },\r\n {\r\n name: 'FreeBSD',\r\n search: checkContains('freebsd'),\r\n versionRegexes: []\r\n }\r\n ];\r\n var $_993j3rwpjkmcwsqg = {\r\n browsers: constant(browsers),\r\n oses: constant(oses)\r\n };\r\n\r\n var detect$2 = function (userAgent) {\r\n var browsers = $_993j3rwpjkmcwsqg.browsers();\r\n var oses = $_993j3rwpjkmcwsqg.oses();\r\n var browser = $_21yllowojkmcwsqc.detectBrowser(browsers, userAgent).fold($_fknyifwkjkmcwsq1.unknown, $_fknyifwkjkmcwsq1.nu);\r\n var os = $_21yllowojkmcwsqc.detectOs(oses, userAgent).fold($_4dmnqawmjkmcwsq6.unknown, $_4dmnqawmjkmcwsq6.nu);\r\n var deviceType = DeviceType(os, browser, userAgent);\r\n return {\r\n browser: browser,\r\n os: os,\r\n deviceType: deviceType\r\n };\r\n };\r\n var $_4sbeluwjjkmcwsq0 = { detect: detect$2 };\r\n\r\n var detect$3 = cached(function () {\r\n var userAgent = navigator.userAgent;\r\n return $_4sbeluwjjkmcwsq0.detect(userAgent);\r\n });\r\n var $_g4vzapwijkmcwspx = { detect: detect$3 };\r\n\r\n var ELEMENT = $_g9js5fw5jkmcwsoh.ELEMENT;\r\n var DOCUMENT = $_g9js5fw5jkmcwsoh.DOCUMENT;\r\n var is = function (element, selector) {\r\n var elem = element.dom();\r\n if (elem.nodeType !== ELEMENT)\r\n return false;\r\n else if (elem.matches !== undefined)\r\n return elem.matches(selector);\r\n else if (elem.msMatchesSelector !== undefined)\r\n return elem.msMatchesSelector(selector);\r\n else if (elem.webkitMatchesSelector !== undefined)\r\n return elem.webkitMatchesSelector(selector);\r\n else if (elem.mozMatchesSelector !== undefined)\r\n return elem.mozMatchesSelector(selector);\r\n else\r\n throw new Error('Browser lacks native selectors');\r\n };\r\n var bypassSelector = function (dom) {\r\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT || dom.childElementCount === 0;\r\n };\r\n var all = function (selector, scope) {\r\n var base = scope === undefined ? document : scope.dom();\r\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);\r\n };\r\n var one = function (selector, scope) {\r\n var base = scope === undefined ? document : scope.dom();\r\n return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);\r\n };\r\n var $_3tbwnywtjkmcwsqr = {\r\n all: all,\r\n is: is,\r\n one: one\r\n };\r\n\r\n var eq = function (e1, e2) {\r\n return e1.dom() === e2.dom();\r\n };\r\n var isEqualNode = function (e1, e2) {\r\n return e1.dom().isEqualNode(e2.dom());\r\n };\r\n var member = function (element, elements) {\r\n return exists(elements, curry(eq, element));\r\n };\r\n var regularContains = function (e1, e2) {\r\n var d1 = e1.dom(), d2 = e2.dom();\r\n return d1 === d2 ? false : d1.contains(d2);\r\n };\r\n var ieContains = function (e1, e2) {\r\n return $_60zxbqwejkmcwspr.documentPositionContainedBy(e1.dom(), e2.dom());\r\n };\r\n var browser = $_g4vzapwijkmcwspx.detect().browser;\r\n var contains$2 = browser.isIE() ? ieContains : regularContains;\r\n var $_622morwdjkmcwspi = {\r\n eq: eq,\r\n isEqualNode: isEqualNode,\r\n member: member,\r\n contains: contains$2,\r\n is: $_3tbwnywtjkmcwsqr.is\r\n };\r\n\r\n var owner = function (element) {\r\n return Element$$1.fromDom(element.dom().ownerDocument);\r\n };\r\n var documentElement = function (element) {\r\n return Element$$1.fromDom(element.dom().ownerDocument.documentElement);\r\n };\r\n var defaultView = function (element) {\r\n var el = element.dom();\r\n var defaultView = el.ownerDocument.defaultView;\r\n return Element$$1.fromDom(defaultView);\r\n };\r\n var parent = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.parentNode).map(Element$$1.fromDom);\r\n };\r\n var findIndex$1 = function (element) {\r\n return parent(element).bind(function (p) {\r\n var kin = children(p);\r\n return findIndex(kin, function (elem) {\r\n return $_622morwdjkmcwspi.eq(element, elem);\r\n });\r\n });\r\n };\r\n var parents = function (element, isRoot) {\r\n var stop = isFunction(isRoot) ? isRoot : constant(false);\r\n var dom = element.dom();\r\n var ret = [];\r\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\r\n var rawParent = dom.parentNode;\r\n var parent = Element$$1.fromDom(rawParent);\r\n ret.push(parent);\r\n if (stop(parent) === true)\r\n break;\r\n else\r\n dom = rawParent;\r\n }\r\n return ret;\r\n };\r\n var siblings = function (element) {\r\n var filterSelf = function (elements) {\r\n return filter(elements, function (x) {\r\n return !$_622morwdjkmcwspi.eq(element, x);\r\n });\r\n };\r\n return parent(element).map(children).map(filterSelf).getOr([]);\r\n };\r\n var offsetParent = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.offsetParent).map(Element$$1.fromDom);\r\n };\r\n var prevSibling = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.previousSibling).map(Element$$1.fromDom);\r\n };\r\n var nextSibling = function (element) {\r\n var dom = element.dom();\r\n return Option.from(dom.nextSibling).map(Element$$1.fromDom);\r\n };\r\n var prevSiblings = function (element) {\r\n return reverse($_9vmnzpwcjkmcwsph.toArray(element, prevSibling));\r\n };\r\n var nextSiblings = function (element) {\r\n return $_9vmnzpwcjkmcwsph.toArray(element, nextSibling);\r\n };\r\n var children = function (element) {\r\n var dom = element.dom();\r\n return map(dom.childNodes, Element$$1.fromDom);\r\n };\r\n var child = function (element, index) {\r\n var children = element.dom().childNodes;\r\n return Option.from(children[index]).map(Element$$1.fromDom);\r\n };\r\n var firstChild = function (element) {\r\n return child(element, 0);\r\n };\r\n var lastChild = function (element) {\r\n return child(element, element.dom().childNodes.length - 1);\r\n };\r\n var childNodesCount = function (element) {\r\n return element.dom().childNodes.length;\r\n };\r\n var hasChildNodes = function (element) {\r\n return element.dom().hasChildNodes();\r\n };\r\n var spot = Immutable('element', 'offset');\r\n var leaf = function (element, offset) {\r\n var cs = children(element);\r\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\r\n };\r\n var $_adk4mbw6jkmcwsok = {\r\n owner: owner,\r\n defaultView: defaultView,\r\n documentElement: documentElement,\r\n parent: parent,\r\n findIndex: findIndex$1,\r\n parents: parents,\r\n siblings: siblings,\r\n prevSibling: prevSibling,\r\n offsetParent: offsetParent,\r\n prevSiblings: prevSiblings,\r\n nextSibling: nextSibling,\r\n nextSiblings: nextSiblings,\r\n children: children,\r\n child: child,\r\n firstChild: firstChild,\r\n lastChild: lastChild,\r\n childNodesCount: childNodesCount,\r\n hasChildNodes: hasChildNodes,\r\n leaf: leaf\r\n };\r\n\r\n var all$1 = function (predicate) {\r\n return descendants($_9gi0tmw2jkmcwsob.body(), predicate);\r\n };\r\n var ancestors = function (scope, predicate, isRoot) {\r\n return filter($_adk4mbw6jkmcwsok.parents(scope, isRoot), predicate);\r\n };\r\n var siblings$1 = function (scope, predicate) {\r\n return filter($_adk4mbw6jkmcwsok.siblings(scope), predicate);\r\n };\r\n var children$1 = function (scope, predicate) {\r\n return filter($_adk4mbw6jkmcwsok.children(scope), predicate);\r\n };\r\n var descendants = function (scope, predicate) {\r\n var result = [];\r\n each($_adk4mbw6jkmcwsok.children(scope), function (x) {\r\n if (predicate(x)) {\r\n result = result.concat([x]);\r\n }\r\n result = result.concat(descendants(x, predicate));\r\n });\r\n return result;\r\n };\r\n var $_bf8vd5w1jkmcwso8 = {\r\n all: all$1,\r\n ancestors: ancestors,\r\n siblings: siblings$1,\r\n children: children$1,\r\n descendants: descendants\r\n };\r\n\r\n var all$2 = function (selector) {\r\n return $_3tbwnywtjkmcwsqr.all(selector);\r\n };\r\n var ancestors$1 = function (scope, selector, isRoot) {\r\n return $_bf8vd5w1jkmcwso8.ancestors(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n }, isRoot);\r\n };\r\n var siblings$2 = function (scope, selector) {\r\n return $_bf8vd5w1jkmcwso8.siblings(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n });\r\n };\r\n var children$2 = function (scope, selector) {\r\n return $_bf8vd5w1jkmcwso8.children(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n });\r\n };\r\n var descendants$1 = function (scope, selector) {\r\n return $_3tbwnywtjkmcwsqr.all(selector, scope);\r\n };\r\n var $_4ig9ruw0jkmcwso7 = {\r\n all: all$2,\r\n ancestors: ancestors$1,\r\n siblings: siblings$2,\r\n children: children$2,\r\n descendants: descendants$1\r\n };\r\n\r\n var trim$1 = global$2.trim;\r\n var hasContentEditableState = function (value) {\r\n return function (node) {\r\n if (node && node.nodeType === 1) {\r\n if (node.contentEditable === value) {\r\n return true;\r\n }\r\n if (node.getAttribute('data-mce-contenteditable') === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n var isContentEditableTrue = hasContentEditableState('true');\r\n var isContentEditableFalse = hasContentEditableState('false');\r\n var create = function (type, title, url, level, attach) {\r\n return {\r\n type: type,\r\n title: title,\r\n url: url,\r\n level: level,\r\n attach: attach\r\n };\r\n };\r\n var isChildOfContentEditableTrue = function (node) {\r\n while (node = node.parentNode) {\r\n var value = node.contentEditable;\r\n if (value && value !== 'inherit') {\r\n return isContentEditableTrue(node);\r\n }\r\n }\r\n return false;\r\n };\r\n var select = function (selector, root) {\r\n return map($_4ig9ruw0jkmcwso7.descendants(Element$$1.fromDom(root), selector), function (element) {\r\n return element.dom();\r\n });\r\n };\r\n var getElementText = function (elm) {\r\n return elm.innerText || elm.textContent;\r\n };\r\n var getOrGenerateId = function (elm) {\r\n return elm.id ? elm.id : generate('h');\r\n };\r\n var isAnchor = function (elm) {\r\n return elm && elm.nodeName === 'A' && (elm.id || elm.name);\r\n };\r\n var isValidAnchor = function (elm) {\r\n return isAnchor(elm) && isEditable(elm);\r\n };\r\n var isHeader = function (elm) {\r\n return elm && /^(H[1-6])$/.test(elm.nodeName);\r\n };\r\n var isEditable = function (elm) {\r\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\r\n };\r\n var isValidHeader = function (elm) {\r\n return isHeader(elm) && isEditable(elm);\r\n };\r\n var getLevel = function (elm) {\r\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\r\n };\r\n var headerTarget = function (elm) {\r\n var headerId = getOrGenerateId(elm);\r\n var attach = function () {\r\n elm.id = headerId;\r\n };\r\n return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\r\n };\r\n var anchorTarget = function (elm) {\r\n var anchorId = elm.id || elm.name;\r\n var anchorText = getElementText(elm);\r\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\r\n };\r\n var getHeaderTargets = function (elms) {\r\n return map(filter(elms, isValidHeader), headerTarget);\r\n };\r\n var getAnchorTargets = function (elms) {\r\n return map(filter(elms, isValidAnchor), anchorTarget);\r\n };\r\n var getTargetElements = function (elm) {\r\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\r\n return elms;\r\n };\r\n var hasTitle = function (target) {\r\n return trim$1(target.title).length > 0;\r\n };\r\n var find$3 = function (elm) {\r\n var elms = getTargetElements(elm);\r\n return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\r\n };\r\n var $_cb7rvvvxjkmcwsnn = { find: find$3 };\r\n\r\n var getActiveEditor = function () {\r\n return window.tinymce ? window.tinymce.activeEditor : global$1.activeEditor;\r\n };\r\n var history = {};\r\n var HISTORY_LENGTH = 5;\r\n var clearHistory = function () {\r\n history = {};\r\n };\r\n var toMenuItem = function (target) {\r\n return {\r\n title: target.title,\r\n value: {\r\n title: { raw: target.title },\r\n url: target.url,\r\n attach: target.attach\r\n }\r\n };\r\n };\r\n var toMenuItems = function (targets) {\r\n return global$2.map(targets, toMenuItem);\r\n };\r\n var staticMenuItem = function (title, url) {\r\n return {\r\n title: title,\r\n value: {\r\n title: title,\r\n url: url,\r\n attach: noop\r\n }\r\n };\r\n };\r\n var isUniqueUrl = function (url, targets) {\r\n var foundTarget = exists(targets, function (target) {\r\n return target.url === url;\r\n });\r\n return !foundTarget;\r\n };\r\n var getSetting = function (editorSettings, name, defaultValue) {\r\n var value = name in editorSettings ? editorSettings[name] : defaultValue;\r\n return value === false ? null : value;\r\n };\r\n var createMenuItems = function (term, targets, fileType, editorSettings) {\r\n var separator = { title: '-' };\r\n var fromHistoryMenuItems = function (history) {\r\n var historyItems = history.hasOwnProperty(fileType) ? history[fileType] : [];\r\n var uniqueHistory = filter(historyItems, function (url) {\r\n return isUniqueUrl(url, targets);\r\n });\r\n return global$2.map(uniqueHistory, function (url) {\r\n return {\r\n title: url,\r\n value: {\r\n title: url,\r\n url: url,\r\n attach: noop\r\n }\r\n };\r\n });\r\n };\r\n var fromMenuItems = function (type) {\r\n var filteredTargets = filter(targets, function (target) {\r\n return target.type === type;\r\n });\r\n return toMenuItems(filteredTargets);\r\n };\r\n var anchorMenuItems = function () {\r\n var anchorMenuItems = fromMenuItems('anchor');\r\n var topAnchor = getSetting(editorSettings, 'anchor_top', '#top');\r\n var bottomAchor = getSetting(editorSettings, 'anchor_bottom', '#bottom');\r\n if (topAnchor !== null) {\r\n anchorMenuItems.unshift(staticMenuItem('', topAnchor));\r\n }\r\n if (bottomAchor !== null) {\r\n anchorMenuItems.push(staticMenuItem('', bottomAchor));\r\n }\r\n return anchorMenuItems;\r\n };\r\n var join = function (items) {\r\n return foldl(items, function (a, b) {\r\n var bothEmpty = a.length === 0 || b.length === 0;\r\n return bothEmpty ? a.concat(b) : a.concat(separator, b);\r\n }, []);\r\n };\r\n if (editorSettings.typeahead_urls === false) {\r\n return [];\r\n }\r\n return fileType === 'file' ? join([\r\n filterByQuery(term, fromHistoryMenuItems(history)),\r\n filterByQuery(term, fromMenuItems('header')),\r\n filterByQuery(term, anchorMenuItems())\r\n ]) : filterByQuery(term, fromHistoryMenuItems(history));\r\n };\r\n var addToHistory = function (url, fileType) {\r\n var items = history[fileType];\r\n if (!/^https?/.test(url)) {\r\n return;\r\n }\r\n if (items) {\r\n if (indexOf(items, url).isNone()) {\r\n history[fileType] = items.slice(0, HISTORY_LENGTH).concat(url);\r\n }\r\n } else {\r\n history[fileType] = [url];\r\n }\r\n };\r\n var filterByQuery = function (term, menuItems) {\r\n var lowerCaseTerm = term.toLowerCase();\r\n var result = global$2.grep(menuItems, function (item) {\r\n return item.title.toLowerCase().indexOf(lowerCaseTerm) !== -1;\r\n });\r\n return result.length === 1 && result[0].title === term ? [] : result;\r\n };\r\n var getTitle = function (linkDetails) {\r\n var title = linkDetails.title;\r\n return title.raw ? title.raw : title;\r\n };\r\n var setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) {\r\n var autocomplete = function (term) {\r\n var linkTargets = $_cb7rvvvxjkmcwsnn.find(bodyElm);\r\n var menuItems = createMenuItems(term, linkTargets, fileType, editorSettings);\r\n ctrl.showAutoComplete(menuItems, term);\r\n };\r\n ctrl.on('autocomplete', function () {\r\n autocomplete(ctrl.value());\r\n });\r\n ctrl.on('selectitem', function (e) {\r\n var linkDetails = e.value;\r\n ctrl.value(linkDetails.url);\r\n var title = getTitle(linkDetails);\r\n if (fileType === 'image') {\r\n ctrl.fire('change', {\r\n meta: {\r\n alt: title,\r\n attach: linkDetails.attach\r\n }\r\n });\r\n } else {\r\n ctrl.fire('change', {\r\n meta: {\r\n text: title,\r\n attach: linkDetails.attach\r\n }\r\n });\r\n }\r\n ctrl.focus();\r\n });\r\n ctrl.on('click', function (e) {\r\n if (ctrl.value().length === 0 && e.target.nodeName === 'INPUT') {\r\n autocomplete('');\r\n }\r\n });\r\n ctrl.on('PostRender', function () {\r\n ctrl.getRoot().on('submit', function (e) {\r\n if (!e.isDefaultPrevented()) {\r\n addToHistory(ctrl.value(), fileType);\r\n }\r\n });\r\n });\r\n };\r\n var statusToUiState = function (result) {\r\n var status = result.status, message = result.message;\r\n if (status === 'valid') {\r\n return {\r\n status: 'ok',\r\n message: message\r\n };\r\n } else if (status === 'unknown') {\r\n return {\r\n status: 'warn',\r\n message: message\r\n };\r\n } else if (status === 'invalid') {\r\n return {\r\n status: 'warn',\r\n message: message\r\n };\r\n } else {\r\n return {\r\n status: 'none',\r\n message: ''\r\n };\r\n }\r\n };\r\n var setupLinkValidatorHandler = function (ctrl, editorSettings, fileType) {\r\n var validatorHandler = editorSettings.filepicker_validator_handler;\r\n if (validatorHandler) {\r\n var validateUrl_1 = function (url) {\r\n if (url.length === 0) {\r\n ctrl.statusLevel('none');\r\n return;\r\n }\r\n validatorHandler({\r\n url: url,\r\n type: fileType\r\n }, function (result) {\r\n var uiState = statusToUiState(result);\r\n ctrl.statusMessage(uiState.message);\r\n ctrl.statusLevel(uiState.status);\r\n });\r\n };\r\n ctrl.state.on('change:value', function (e) {\r\n validateUrl_1(e.value);\r\n });\r\n }\r\n };\r\n var FilePicker = ComboBox.extend({\r\n Statics: { clearHistory: clearHistory },\r\n init: function (settings) {\r\n var self = this, editor = getActiveEditor(), editorSettings = editor.settings;\r\n var actionCallback, fileBrowserCallback, fileBrowserCallbackTypes;\r\n var fileType = settings.filetype;\r\n settings.spellcheck = false;\r\n fileBrowserCallbackTypes = editorSettings.file_picker_types || editorSettings.file_browser_callback_types;\r\n if (fileBrowserCallbackTypes) {\r\n fileBrowserCallbackTypes = global$2.makeMap(fileBrowserCallbackTypes, /[, ]/);\r\n }\r\n if (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType]) {\r\n fileBrowserCallback = editorSettings.file_picker_callback;\r\n if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) {\r\n actionCallback = function () {\r\n var meta = self.fire('beforecall').meta;\r\n meta = global$2.extend({ filetype: fileType }, meta);\r\n fileBrowserCallback.call(editor, function (value, meta) {\r\n self.value(value).fire('change', { meta: meta });\r\n }, self.value(), meta);\r\n };\r\n } else {\r\n fileBrowserCallback = editorSettings.file_browser_callback;\r\n if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) {\r\n actionCallback = function () {\r\n fileBrowserCallback(self.getEl('inp').id, self.value(), fileType, window);\r\n };\r\n }\r\n }\r\n }\r\n if (actionCallback) {\r\n settings.icon = 'browse';\r\n settings.onaction = actionCallback;\r\n }\r\n self._super(settings);\r\n self.classes.add('filepicker');\r\n setupAutoCompleteHandler(self, editorSettings, editor.getBody(), fileType);\r\n setupLinkValidatorHandler(self, editorSettings, fileType);\r\n }\r\n });\r\n\r\n var FitLayout = AbsoluteLayout.extend({\r\n recalc: function (container) {\r\n var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox;\r\n container.items().filter(':visible').each(function (ctrl) {\r\n ctrl.layoutRect({\r\n x: paddingBox.left,\r\n y: paddingBox.top,\r\n w: contLayoutRect.innerW - paddingBox.right - paddingBox.left,\r\n h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom\r\n });\r\n if (ctrl.recalc) {\r\n ctrl.recalc();\r\n }\r\n });\r\n }\r\n });\r\n\r\n var FlexLayout = AbsoluteLayout.extend({\r\n recalc: function (container) {\r\n var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction;\r\n var ctrl, ctrlLayoutRect, ctrlSettings, flex;\r\n var maxSizeItems = [];\r\n var size, maxSize, ratio, rect, pos, maxAlignEndPos;\r\n var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName;\r\n var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName;\r\n var alignDeltaSizeName, alignContentSizeName;\r\n var max = Math.max, min = Math.min;\r\n items = container.items().filter(':visible');\r\n contLayoutRect = container.layoutRect();\r\n contPaddingBox = container.paddingBox;\r\n contSettings = container.settings;\r\n direction = container.isRtl() ? contSettings.direction || 'row-reversed' : contSettings.direction;\r\n align = contSettings.align;\r\n pack = container.isRtl() ? contSettings.pack || 'end' : contSettings.pack;\r\n spacing = contSettings.spacing || 0;\r\n if (direction === 'row-reversed' || direction === 'column-reverse') {\r\n items = items.set(items.toArray().reverse());\r\n direction = direction.split('-')[0];\r\n }\r\n if (direction === 'column') {\r\n posName = 'y';\r\n sizeName = 'h';\r\n minSizeName = 'minH';\r\n maxSizeName = 'maxH';\r\n innerSizeName = 'innerH';\r\n beforeName = 'top';\r\n deltaSizeName = 'deltaH';\r\n contentSizeName = 'contentH';\r\n alignBeforeName = 'left';\r\n alignSizeName = 'w';\r\n alignAxisName = 'x';\r\n alignInnerSizeName = 'innerW';\r\n alignMinSizeName = 'minW';\r\n alignAfterName = 'right';\r\n alignDeltaSizeName = 'deltaW';\r\n alignContentSizeName = 'contentW';\r\n } else {\r\n posName = 'x';\r\n sizeName = 'w';\r\n minSizeName = 'minW';\r\n maxSizeName = 'maxW';\r\n innerSizeName = 'innerW';\r\n beforeName = 'left';\r\n deltaSizeName = 'deltaW';\r\n contentSizeName = 'contentW';\r\n alignBeforeName = 'top';\r\n alignSizeName = 'h';\r\n alignAxisName = 'y';\r\n alignInnerSizeName = 'innerH';\r\n alignMinSizeName = 'minH';\r\n alignAfterName = 'bottom';\r\n alignDeltaSizeName = 'deltaH';\r\n alignContentSizeName = 'contentH';\r\n }\r\n availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName];\r\n maxAlignEndPos = totalFlex = 0;\r\n for (i = 0, l = items.length; i < l; i++) {\r\n ctrl = items[i];\r\n ctrlLayoutRect = ctrl.layoutRect();\r\n ctrlSettings = ctrl.settings;\r\n flex = ctrlSettings.flex;\r\n availableSpace -= i < l - 1 ? spacing : 0;\r\n if (flex > 0) {\r\n totalFlex += flex;\r\n if (ctrlLayoutRect[maxSizeName]) {\r\n maxSizeItems.push(ctrl);\r\n }\r\n ctrlLayoutRect.flex = flex;\r\n }\r\n availableSpace -= ctrlLayoutRect[minSizeName];\r\n size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName];\r\n if (size > maxAlignEndPos) {\r\n maxAlignEndPos = size;\r\n }\r\n }\r\n rect = {};\r\n if (availableSpace < 0) {\r\n rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName];\r\n } else {\r\n rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName];\r\n }\r\n rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName];\r\n rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace;\r\n rect[alignContentSizeName] = maxAlignEndPos;\r\n rect.minW = min(rect.minW, contLayoutRect.maxW);\r\n rect.minH = min(rect.minH, contLayoutRect.maxH);\r\n rect.minW = max(rect.minW, contLayoutRect.startMinWidth);\r\n rect.minH = max(rect.minH, contLayoutRect.startMinHeight);\r\n if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) {\r\n rect.w = rect.minW;\r\n rect.h = rect.minH;\r\n container.layoutRect(rect);\r\n this.recalc(container);\r\n if (container._lastRect === null) {\r\n var parentCtrl = container.parent();\r\n if (parentCtrl) {\r\n parentCtrl._lastRect = null;\r\n parentCtrl.recalc();\r\n }\r\n }\r\n return;\r\n }\r\n ratio = availableSpace / totalFlex;\r\n for (i = 0, l = maxSizeItems.length; i < l; i++) {\r\n ctrl = maxSizeItems[i];\r\n ctrlLayoutRect = ctrl.layoutRect();\r\n maxSize = ctrlLayoutRect[maxSizeName];\r\n size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio;\r\n if (size > maxSize) {\r\n availableSpace -= ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName];\r\n totalFlex -= ctrlLayoutRect.flex;\r\n ctrlLayoutRect.flex = 0;\r\n ctrlLayoutRect.maxFlexSize = maxSize;\r\n } else {\r\n ctrlLayoutRect.maxFlexSize = 0;\r\n }\r\n }\r\n ratio = availableSpace / totalFlex;\r\n pos = contPaddingBox[beforeName];\r\n rect = {};\r\n if (totalFlex === 0) {\r\n if (pack === 'end') {\r\n pos = availableSpace + contPaddingBox[beforeName];\r\n } else if (pack === 'center') {\r\n pos = Math.round(contLayoutRect[innerSizeName] / 2 - (contLayoutRect[innerSizeName] - availableSpace) / 2) + contPaddingBox[beforeName];\r\n if (pos < 0) {\r\n pos = contPaddingBox[beforeName];\r\n }\r\n } else if (pack === 'justify') {\r\n pos = contPaddingBox[beforeName];\r\n spacing = Math.floor(availableSpace / (items.length - 1));\r\n }\r\n }\r\n rect[alignAxisName] = contPaddingBox[alignBeforeName];\r\n for (i = 0, l = items.length; i < l; i++) {\r\n ctrl = items[i];\r\n ctrlLayoutRect = ctrl.layoutRect();\r\n size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName];\r\n if (align === 'center') {\r\n rect[alignAxisName] = Math.round(contLayoutRect[alignInnerSizeName] / 2 - ctrlLayoutRect[alignSizeName] / 2);\r\n } else if (align === 'stretch') {\r\n rect[alignSizeName] = max(ctrlLayoutRect[alignMinSizeName] || 0, contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName]);\r\n rect[alignAxisName] = contPaddingBox[alignBeforeName];\r\n } else if (align === 'end') {\r\n rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top;\r\n }\r\n if (ctrlLayoutRect.flex > 0) {\r\n size += ctrlLayoutRect.flex * ratio;\r\n }\r\n rect[sizeName] = size;\r\n rect[posName] = pos;\r\n ctrl.layoutRect(rect);\r\n if (ctrl.recalc) {\r\n ctrl.recalc();\r\n }\r\n pos += size + spacing;\r\n }\r\n }\r\n });\r\n\r\n var FlowLayout = Layout.extend({\r\n Defaults: {\r\n containerClass: 'flow-layout',\r\n controlClass: 'flow-layout-item',\r\n endClass: 'break'\r\n },\r\n recalc: function (container) {\r\n container.items().filter(':visible').each(function (ctrl) {\r\n if (ctrl.recalc) {\r\n ctrl.recalc();\r\n }\r\n });\r\n },\r\n isNative: function () {\r\n return true;\r\n }\r\n });\r\n\r\n function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {\r\n return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);\r\n }\r\n\r\n var first$1 = function (predicate) {\r\n return descendant($_9gi0tmw2jkmcwsob.body(), predicate);\r\n };\r\n var ancestor = function (scope, predicate, isRoot) {\r\n var element = scope.dom();\r\n var stop = isFunction(isRoot) ? isRoot : constant(false);\r\n while (element.parentNode) {\r\n element = element.parentNode;\r\n var el = Element$$1.fromDom(element);\r\n if (predicate(el))\r\n return Option.some(el);\r\n else if (stop(el))\r\n break;\r\n }\r\n return Option.none();\r\n };\r\n var closest = function (scope, predicate, isRoot) {\r\n var is = function (scope) {\r\n return predicate(scope);\r\n };\r\n return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);\r\n };\r\n var sibling = function (scope, predicate) {\r\n var element = scope.dom();\r\n if (!element.parentNode)\r\n return Option.none();\r\n return child$1(Element$$1.fromDom(element.parentNode), function (x) {\r\n return !$_622morwdjkmcwspi.eq(scope, x) && predicate(x);\r\n });\r\n };\r\n var child$1 = function (scope, predicate) {\r\n var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));\r\n return result.map(Element$$1.fromDom);\r\n };\r\n var descendant = function (scope, predicate) {\r\n var descend = function (node) {\r\n for (var i = 0; i < node.childNodes.length; i++) {\r\n if (predicate(Element$$1.fromDom(node.childNodes[i])))\r\n return Option.some(Element$$1.fromDom(node.childNodes[i]));\r\n var res = descend(node.childNodes[i]);\r\n if (res.isSome())\r\n return res;\r\n }\r\n return Option.none();\r\n };\r\n return descend(scope.dom());\r\n };\r\n var $_13w0c1wzjkmcwsri = {\r\n first: first$1,\r\n ancestor: ancestor,\r\n closest: closest,\r\n sibling: sibling,\r\n child: child$1,\r\n descendant: descendant\r\n };\r\n\r\n var first$2 = function (selector) {\r\n return $_3tbwnywtjkmcwsqr.one(selector);\r\n };\r\n var ancestor$1 = function (scope, selector, isRoot) {\r\n return $_13w0c1wzjkmcwsri.ancestor(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n }, isRoot);\r\n };\r\n var sibling$1 = function (scope, selector) {\r\n return $_13w0c1wzjkmcwsri.sibling(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n });\r\n };\r\n var child$2 = function (scope, selector) {\r\n return $_13w0c1wzjkmcwsri.child(scope, function (e) {\r\n return $_3tbwnywtjkmcwsqr.is(e, selector);\r\n });\r\n };\r\n var descendant$1 = function (scope, selector) {\r\n return $_3tbwnywtjkmcwsqr.one(selector, scope);\r\n };\r\n var closest$1 = function (scope, selector, isRoot) {\r\n return ClosestOrAncestor($_3tbwnywtjkmcwsqr.is, ancestor$1, scope, selector, isRoot);\r\n };\r\n var $_epq3p6wyjkmcwsrh = {\r\n first: first$2,\r\n ancestor: ancestor$1,\r\n sibling: sibling$1,\r\n child: child$2,\r\n descendant: descendant$1,\r\n closest: closest$1\r\n };\r\n\r\n var toggleFormat = function (editor, fmt) {\r\n return function () {\r\n editor.execCommand('mceToggleFormat', false, fmt);\r\n };\r\n };\r\n var addFormatChangedListener = function (editor, name, changed) {\r\n var handler = function (state) {\r\n changed(state, name);\r\n };\r\n if (editor.formatter) {\r\n editor.formatter.formatChanged(name, handler);\r\n } else {\r\n editor.on('init', function () {\r\n editor.formatter.formatChanged(name, handler);\r\n });\r\n }\r\n };\r\n var postRenderFormatToggle = function (editor, name) {\r\n return function (e) {\r\n addFormatChangedListener(editor, name, function (state) {\r\n e.control.active(state);\r\n });\r\n };\r\n };\r\n\r\n var register = function (editor) {\r\n var alignFormats = [\r\n 'alignleft',\r\n 'aligncenter',\r\n 'alignright',\r\n 'alignjustify'\r\n ];\r\n var defaultAlign = 'alignleft';\r\n var alignMenuItems = [\r\n {\r\n text: 'Left',\r\n icon: 'alignleft',\r\n onclick: toggleFormat(editor, 'alignleft')\r\n },\r\n {\r\n text: 'Center',\r\n icon: 'aligncenter',\r\n onclick: toggleFormat(editor, 'aligncenter')\r\n },\r\n {\r\n text: 'Right',\r\n icon: 'alignright',\r\n onclick: toggleFormat(editor, 'alignright')\r\n },\r\n {\r\n text: 'Justify',\r\n icon: 'alignjustify',\r\n onclick: toggleFormat(editor, 'alignjustify')\r\n }\r\n ];\r\n editor.addMenuItem('align', {\r\n text: 'Align',\r\n menu: alignMenuItems\r\n });\r\n editor.addButton('align', {\r\n type: 'menubutton',\r\n icon: defaultAlign,\r\n menu: alignMenuItems,\r\n onShowMenu: function (e) {\r\n var menu = e.control.menu;\r\n global$2.each(alignFormats, function (formatName, idx) {\r\n menu.items().eq(idx).each(function (item) {\r\n return item.active(editor.formatter.match(formatName));\r\n });\r\n });\r\n },\r\n onPostRender: function (e) {\r\n var ctrl = e.control;\r\n global$2.each(alignFormats, function (formatName, idx) {\r\n addFormatChangedListener(editor, formatName, function (state) {\r\n ctrl.icon(defaultAlign);\r\n if (state) {\r\n ctrl.icon(formatName);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n global$2.each({\r\n alignleft: [\r\n 'Align left',\r\n 'JustifyLeft'\r\n ],\r\n aligncenter: [\r\n 'Align center',\r\n 'JustifyCenter'\r\n ],\r\n alignright: [\r\n 'Align right',\r\n 'JustifyRight'\r\n ],\r\n alignjustify: [\r\n 'Justify',\r\n 'JustifyFull'\r\n ],\r\n alignnone: [\r\n 'No alignment',\r\n 'JustifyNone'\r\n ]\r\n }, function (item, name) {\r\n editor.addButton(name, {\r\n active: false,\r\n tooltip: item[0],\r\n cmd: item[1],\r\n onPostRender: postRenderFormatToggle(editor, name)\r\n });\r\n });\r\n };\r\n var $_ffg0cgx1jkmcwsrx = { register: register };\r\n\r\n var getFirstFont = function (fontFamily) {\r\n return fontFamily ? fontFamily.split(',')[0] : '';\r\n };\r\n var findMatchingValue = function (items, fontFamily) {\r\n var font = fontFamily ? fontFamily.toLowerCase() : '';\r\n var value;\r\n global$2.each(items, function (item) {\r\n if (item.value.toLowerCase() === font) {\r\n value = item.value;\r\n }\r\n });\r\n global$2.each(items, function (item) {\r\n if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(font).toLowerCase()) {\r\n value = item.value;\r\n }\r\n });\r\n return value;\r\n };\r\n var createFontNameListBoxChangeHandler = function (editor, items) {\r\n return function () {\r\n var self = this;\r\n self.state.set('value', null);\r\n editor.on('init nodeChange', function (e) {\r\n var fontFamily = editor.queryCommandValue('FontName');\r\n var match = findMatchingValue(items, fontFamily);\r\n self.value(match ? match : null);\r\n if (!match && fontFamily) {\r\n self.text(getFirstFont(fontFamily));\r\n }\r\n });\r\n };\r\n };\r\n var createFormats = function (formats) {\r\n formats = formats.replace(/;$/, '').split(';');\r\n var i = formats.length;\r\n while (i--) {\r\n formats[i] = formats[i].split('=');\r\n }\r\n return formats;\r\n };\r\n var getFontItems = function (editor) {\r\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';\r\n var fonts = createFormats(editor.settings.font_formats || defaultFontsFormats);\r\n return global$2.map(fonts, function (font) {\r\n return {\r\n text: { raw: font[0] },\r\n value: font[1],\r\n textStyle: font[1].indexOf('dings') === -1 ? 'font-family:' + font[1] : ''\r\n };\r\n });\r\n };\r\n var registerButtons = function (editor) {\r\n editor.addButton('fontselect', function () {\r\n var items = getFontItems(editor);\r\n return {\r\n type: 'listbox',\r\n text: 'Font Family',\r\n tooltip: 'Font Family',\r\n values: items,\r\n fixedWidth: true,\r\n onPostRender: createFontNameListBoxChangeHandler(editor, items),\r\n onselect: function (e) {\r\n if (e.control.settings.value) {\r\n editor.execCommand('FontName', false, e.control.settings.value);\r\n }\r\n }\r\n };\r\n });\r\n };\r\n var register$1 = function (editor) {\r\n registerButtons(editor);\r\n };\r\n var $_1be6fjx3jkmcwss1 = { register: register$1 };\r\n\r\n var round = function (number, precision) {\r\n var factor = Math.pow(10, precision);\r\n return Math.round(number * factor) / factor;\r\n };\r\n var toPt = function (fontSize, precision) {\r\n if (/[0-9.]+px$/.test(fontSize)) {\r\n return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\r\n }\r\n return fontSize;\r\n };\r\n var findMatchingValue$1 = function (items, pt, px) {\r\n var value;\r\n global$2.each(items, function (item) {\r\n if (item.value === px) {\r\n value = px;\r\n } else if (item.value === pt) {\r\n value = pt;\r\n }\r\n });\r\n return value;\r\n };\r\n var createFontSizeListBoxChangeHandler = function (editor, items) {\r\n return function () {\r\n var self = this;\r\n editor.on('init nodeChange', function (e) {\r\n var px, pt, precision, match;\r\n px = editor.queryCommandValue('FontSize');\r\n if (px) {\r\n for (precision = 3; !match && precision >= 0; precision--) {\r\n pt = toPt(px, precision);\r\n match = findMatchingValue$1(items, pt, px);\r\n }\r\n }\r\n self.value(match ? match : null);\r\n if (!match) {\r\n self.text(pt);\r\n }\r\n });\r\n };\r\n };\r\n var getFontSizeItems = function (editor) {\r\n var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\r\n var fontsizeFormats = editor.settings.fontsize_formats || defaultFontsizeFormats;\r\n return global$2.map(fontsizeFormats.split(' '), function (item) {\r\n var text = item, value = item;\r\n var values = item.split('=');\r\n if (values.length > 1) {\r\n text = values[0];\r\n value = values[1];\r\n }\r\n return {\r\n text: text,\r\n value: value\r\n };\r\n });\r\n };\r\n var registerButtons$1 = function (editor) {\r\n editor.addButton('fontsizeselect', function () {\r\n var items = getFontSizeItems(editor);\r\n return {\r\n type: 'listbox',\r\n text: 'Font Sizes',\r\n tooltip: 'Font Sizes',\r\n values: items,\r\n fixedWidth: true,\r\n onPostRender: createFontSizeListBoxChangeHandler(editor, items),\r\n onclick: function (e) {\r\n if (e.control.settings.value) {\r\n editor.execCommand('FontSize', false, e.control.settings.value);\r\n }\r\n }\r\n };\r\n });\r\n };\r\n var register$2 = function (editor) {\r\n registerButtons$1(editor);\r\n };\r\n var $_fnu5cxx4jkmcwss4 = { register: register$2 };\r\n\r\n var hideMenuObjects = function (editor, menu) {\r\n var count = menu.length;\r\n global$2.each(menu, function (item) {\r\n if (item.menu) {\r\n item.hidden = hideMenuObjects(editor, item.menu) === 0;\r\n }\r\n var formatName = item.format;\r\n if (formatName) {\r\n item.hidden = !editor.formatter.canApply(formatName);\r\n }\r\n if (item.hidden) {\r\n count--;\r\n }\r\n });\r\n return count;\r\n };\r\n var hideFormatMenuItems = function (editor, menu) {\r\n var count = menu.items().length;\r\n menu.items().each(function (item) {\r\n if (item.menu) {\r\n item.visible(hideFormatMenuItems(editor, item.menu) > 0);\r\n }\r\n if (!item.menu && item.settings.menu) {\r\n item.visible(hideMenuObjects(editor, item.settings.menu) > 0);\r\n }\r\n var formatName = item.settings.format;\r\n if (formatName) {\r\n item.visible(editor.formatter.canApply(formatName));\r\n }\r\n if (!item.visible()) {\r\n count--;\r\n }\r\n });\r\n return count;\r\n };\r\n var createFormatMenu = function (editor) {\r\n var count = 0;\r\n var newFormats = [];\r\n var defaultStyleFormats = [\r\n {\r\n title: 'Headings',\r\n items: [\r\n {\r\n title: 'Heading 1',\r\n format: 'h1'\r\n },\r\n {\r\n title: 'Heading 2',\r\n format: 'h2'\r\n },\r\n {\r\n title: 'Heading 3',\r\n format: 'h3'\r\n },\r\n {\r\n title: 'Heading 4',\r\n format: 'h4'\r\n },\r\n {\r\n title: 'Heading 5',\r\n format: 'h5'\r\n },\r\n {\r\n title: 'Heading 6',\r\n format: 'h6'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Inline',\r\n items: [\r\n {\r\n title: 'Bold',\r\n icon: 'bold',\r\n format: 'bold'\r\n },\r\n {\r\n title: 'Italic',\r\n icon: 'italic',\r\n format: 'italic'\r\n },\r\n {\r\n title: 'Underline',\r\n icon: 'underline',\r\n format: 'underline'\r\n },\r\n {\r\n title: 'Strikethrough',\r\n icon: 'strikethrough',\r\n format: 'strikethrough'\r\n },\r\n {\r\n title: 'Superscript',\r\n icon: 'superscript',\r\n format: 'superscript'\r\n },\r\n {\r\n title: 'Subscript',\r\n icon: 'subscript',\r\n format: 'subscript'\r\n },\r\n {\r\n title: 'Code',\r\n icon: 'code',\r\n format: 'code'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Blocks',\r\n items: [\r\n {\r\n title: 'Paragraph',\r\n format: 'p'\r\n },\r\n {\r\n title: 'Blockquote',\r\n format: 'blockquote'\r\n },\r\n {\r\n title: 'Div',\r\n format: 'div'\r\n },\r\n {\r\n title: 'Pre',\r\n format: 'pre'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Alignment',\r\n items: [\r\n {\r\n title: 'Left',\r\n icon: 'alignleft',\r\n format: 'alignleft'\r\n },\r\n {\r\n title: 'Center',\r\n icon: 'aligncenter',\r\n format: 'aligncenter'\r\n },\r\n {\r\n title: 'Right',\r\n icon: 'alignright',\r\n format: 'alignright'\r\n },\r\n {\r\n title: 'Justify',\r\n icon: 'alignjustify',\r\n format: 'alignjustify'\r\n }\r\n ]\r\n }\r\n ];\r\n var createMenu = function (formats) {\r\n var menu = [];\r\n if (!formats) {\r\n return;\r\n }\r\n global$2.each(formats, function (format) {\r\n var menuItem = {\r\n text: format.title,\r\n icon: format.icon\r\n };\r\n if (format.items) {\r\n menuItem.menu = createMenu(format.items);\r\n } else {\r\n var formatName = format.format || 'custom' + count++;\r\n if (!format.format) {\r\n format.name = formatName;\r\n newFormats.push(format);\r\n }\r\n menuItem.format = formatName;\r\n menuItem.cmd = format.cmd;\r\n }\r\n menu.push(menuItem);\r\n });\r\n return menu;\r\n };\r\n var createStylesMenu = function () {\r\n var menu;\r\n if (editor.settings.style_formats_merge) {\r\n if (editor.settings.style_formats) {\r\n menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats));\r\n } else {\r\n menu = createMenu(defaultStyleFormats);\r\n }\r\n } else {\r\n menu = createMenu(editor.settings.style_formats || defaultStyleFormats);\r\n }\r\n return menu;\r\n };\r\n editor.on('init', function () {\r\n global$2.each(newFormats, function (format) {\r\n editor.formatter.register(format.name, format);\r\n });\r\n });\r\n return {\r\n type: 'menu',\r\n items: createStylesMenu(),\r\n onPostRender: function (e) {\r\n editor.fire('renderFormatsMenu', { control: e.control });\r\n },\r\n itemDefaults: {\r\n preview: true,\r\n textStyle: function () {\r\n if (this.settings.format) {\r\n return editor.formatter.getCssText(this.settings.format);\r\n }\r\n },\r\n onPostRender: function () {\r\n var self = this;\r\n self.parent().on('show', function () {\r\n var formatName, command;\r\n formatName = self.settings.format;\r\n if (formatName) {\r\n self.disabled(!editor.formatter.canApply(formatName));\r\n self.active(editor.formatter.match(formatName));\r\n }\r\n command = self.settings.cmd;\r\n if (command) {\r\n self.active(editor.queryCommandState(command));\r\n }\r\n });\r\n },\r\n onclick: function () {\r\n if (this.settings.format) {\r\n toggleFormat(editor, this.settings.format)();\r\n }\r\n if (this.settings.cmd) {\r\n editor.execCommand(this.settings.cmd);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n var registerMenuItems = function (editor, formatMenu) {\r\n editor.addMenuItem('formats', {\r\n text: 'Formats',\r\n menu: formatMenu\r\n });\r\n };\r\n var registerButtons$2 = function (editor, formatMenu) {\r\n editor.addButton('styleselect', {\r\n type: 'menubutton',\r\n text: 'Formats',\r\n menu: formatMenu,\r\n onShowMenu: function () {\r\n if (editor.settings.style_formats_autohide) {\r\n hideFormatMenuItems(editor, this.menu);\r\n }\r\n }\r\n });\r\n };\r\n var register$3 = function (editor) {\r\n var formatMenu = createFormatMenu(editor);\r\n registerMenuItems(editor, formatMenu);\r\n registerButtons$2(editor, formatMenu);\r\n };\r\n var $_cmdomhx5jkmcwss6 = { register: register$3 };\r\n\r\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';\r\n var createFormats$1 = function (formats) {\r\n formats = formats.replace(/;$/, '').split(';');\r\n var i = formats.length;\r\n while (i--) {\r\n formats[i] = formats[i].split('=');\r\n }\r\n return formats;\r\n };\r\n var createListBoxChangeHandler = function (editor, items, formatName) {\r\n return function () {\r\n var self = this;\r\n editor.on('nodeChange', function (e) {\r\n var formatter = editor.formatter;\r\n var value = null;\r\n global$2.each(e.parents, function (node) {\r\n global$2.each(items, function (item) {\r\n if (formatName) {\r\n if (formatter.matchNode(node, formatName, { value: item.value })) {\r\n value = item.value;\r\n }\r\n } else {\r\n if (formatter.matchNode(node, item.value)) {\r\n value = item.value;\r\n }\r\n }\r\n if (value) {\r\n return false;\r\n }\r\n });\r\n if (value) {\r\n return false;\r\n }\r\n });\r\n self.value(value);\r\n });\r\n };\r\n };\r\n var lazyFormatSelectBoxItems = function (editor, blocks) {\r\n return function () {\r\n var items = [];\r\n global$2.each(blocks, function (block) {\r\n items.push({\r\n text: block[0],\r\n value: block[1],\r\n textStyle: function () {\r\n return editor.formatter.getCssText(block[1]);\r\n }\r\n });\r\n });\r\n return {\r\n type: 'listbox',\r\n text: blocks[0][0],\r\n values: items,\r\n fixedWidth: true,\r\n onselect: function (e) {\r\n if (e.control) {\r\n var fmt = e.control.value();\r\n toggleFormat(editor, fmt)();\r\n }\r\n },\r\n onPostRender: createListBoxChangeHandler(editor, items)\r\n };\r\n };\r\n };\r\n var buildMenuItems = function (editor, blocks) {\r\n return global$2.map(blocks, function (block) {\r\n return {\r\n text: block[0],\r\n onclick: toggleFormat(editor, block[1]),\r\n textStyle: function () {\r\n return editor.formatter.getCssText(block[1]);\r\n }\r\n };\r\n });\r\n };\r\n var register$4 = function (editor) {\r\n var blocks = createFormats$1(editor.settings.block_formats || defaultBlocks);\r\n editor.addMenuItem('blockformats', {\r\n text: 'Blocks',\r\n menu: buildMenuItems(editor, blocks)\r\n });\r\n editor.addButton('formatselect', lazyFormatSelectBoxItems(editor, blocks));\r\n };\r\n var $_cl4rffx6jkmcwssb = { register: register$4 };\r\n\r\n var createCustomMenuItems = function (editor, names) {\r\n var items, nameList;\r\n if (typeof names === 'string') {\r\n nameList = names.split(' ');\r\n } else if (global$2.isArray(names)) {\r\n return flatten(global$2.map(names, function (names) {\r\n return createCustomMenuItems(editor, names);\r\n }));\r\n }\r\n items = global$2.grep(nameList, function (name) {\r\n return name === '|' || name in editor.menuItems;\r\n });\r\n return global$2.map(items, function (name) {\r\n return name === '|' ? { text: '-' } : editor.menuItems[name];\r\n });\r\n };\r\n var isSeparator$1 = function (menuItem) {\r\n return menuItem && menuItem.text === '-';\r\n };\r\n var trimMenuItems = function (menuItems) {\r\n var menuItems2 = filter(menuItems, function (menuItem, i, menuItems) {\r\n return !isSeparator$1(menuItem) || !isSeparator$1(menuItems[i - 1]);\r\n });\r\n return filter(menuItems2, function (menuItem, i, menuItems) {\r\n return !isSeparator$1(menuItem) || i > 0 && i < menuItems.length - 1;\r\n });\r\n };\r\n var createContextMenuItems = function (editor, context) {\r\n var outputMenuItems = [{ text: '-' }];\r\n var menuItems = global$2.grep(editor.menuItems, function (menuItem) {\r\n return menuItem.context === context;\r\n });\r\n global$2.each(menuItems, function (menuItem) {\r\n if (menuItem.separator === 'before') {\r\n outputMenuItems.push({ text: '|' });\r\n }\r\n if (menuItem.prependToContext) {\r\n outputMenuItems.unshift(menuItem);\r\n } else {\r\n outputMenuItems.push(menuItem);\r\n }\r\n if (menuItem.separator === 'after') {\r\n outputMenuItems.push({ text: '|' });\r\n }\r\n });\r\n return outputMenuItems;\r\n };\r\n var createInsertMenu = function (editor) {\r\n var insertButtonItems = editor.settings.insert_button_items;\r\n if (insertButtonItems) {\r\n return trimMenuItems(createCustomMenuItems(editor, insertButtonItems));\r\n } else {\r\n return trimMenuItems(createContextMenuItems(editor, 'insert'));\r\n }\r\n };\r\n var registerButtons$3 = function (editor) {\r\n editor.addButton('insert', {\r\n type: 'menubutton',\r\n icon: 'insert',\r\n menu: [],\r\n oncreatemenu: function () {\r\n this.menu.add(createInsertMenu(editor));\r\n this.menu.renderNew();\r\n }\r\n });\r\n };\r\n var register$5 = function (editor) {\r\n registerButtons$3(editor);\r\n };\r\n var $_7ix8zax7jkmcwssd = { register: register$5 };\r\n\r\n var registerFormatButtons = function (editor) {\r\n global$2.each({\r\n bold: 'Bold',\r\n italic: 'Italic',\r\n underline: 'Underline',\r\n strikethrough: 'Strikethrough',\r\n subscript: 'Subscript',\r\n superscript: 'Superscript'\r\n }, function (text, name) {\r\n editor.addButton(name, {\r\n active: false,\r\n tooltip: text,\r\n onPostRender: postRenderFormatToggle(editor, name),\r\n onclick: toggleFormat(editor, name)\r\n });\r\n });\r\n };\r\n var registerCommandButtons = function (editor) {\r\n global$2.each({\r\n outdent: [\r\n 'Decrease indent',\r\n 'Outdent'\r\n ],\r\n indent: [\r\n 'Increase indent',\r\n 'Indent'\r\n ],\r\n cut: [\r\n 'Cut',\r\n 'Cut'\r\n ],\r\n copy: [\r\n 'Copy',\r\n 'Copy'\r\n ],\r\n paste: [\r\n 'Paste',\r\n 'Paste'\r\n ],\r\n help: [\r\n 'Help',\r\n 'mceHelp'\r\n ],\r\n selectall: [\r\n 'Select all',\r\n 'SelectAll'\r\n ],\r\n visualaid: [\r\n 'Visual aids',\r\n 'mceToggleVisualAid'\r\n ],\r\n newdocument: [\r\n 'New document',\r\n 'mceNewDocument'\r\n ],\r\n removeformat: [\r\n 'Clear formatting',\r\n 'RemoveFormat'\r\n ],\r\n remove: [\r\n 'Remove',\r\n 'Delete'\r\n ]\r\n }, function (item, name) {\r\n editor.addButton(name, {\r\n tooltip: item[0],\r\n cmd: item[1]\r\n });\r\n });\r\n };\r\n var registerCommandToggleButtons = function (editor) {\r\n global$2.each({\r\n blockquote: [\r\n 'Blockquote',\r\n 'mceBlockQuote'\r\n ],\r\n subscript: [\r\n 'Subscript',\r\n 'Subscript'\r\n ],\r\n superscript: [\r\n 'Superscript',\r\n 'Superscript'\r\n ]\r\n }, function (item, name) {\r\n editor.addButton(name, {\r\n active: false,\r\n tooltip: item[0],\r\n cmd: item[1],\r\n onPostRender: postRenderFormatToggle(editor, name)\r\n });\r\n });\r\n };\r\n var registerButtons$4 = function (editor) {\r\n registerFormatButtons(editor);\r\n registerCommandButtons(editor);\r\n registerCommandToggleButtons(editor);\r\n };\r\n var registerMenuItems$1 = function (editor) {\r\n global$2.each({\r\n bold: [\r\n 'Bold',\r\n 'Bold',\r\n 'Meta+B'\r\n ],\r\n italic: [\r\n 'Italic',\r\n 'Italic',\r\n 'Meta+I'\r\n ],\r\n underline: [\r\n 'Underline',\r\n 'Underline',\r\n 'Meta+U'\r\n ],\r\n strikethrough: [\r\n 'Strikethrough',\r\n 'Strikethrough'\r\n ],\r\n subscript: [\r\n 'Subscript',\r\n 'Subscript'\r\n ],\r\n superscript: [\r\n 'Superscript',\r\n 'Superscript'\r\n ],\r\n removeformat: [\r\n 'Clear formatting',\r\n 'RemoveFormat'\r\n ],\r\n newdocument: [\r\n 'New document',\r\n 'mceNewDocument'\r\n ],\r\n cut: [\r\n 'Cut',\r\n 'Cut',\r\n 'Meta+X'\r\n ],\r\n copy: [\r\n 'Copy',\r\n 'Copy',\r\n 'Meta+C'\r\n ],\r\n paste: [\r\n 'Paste',\r\n 'Paste',\r\n 'Meta+V'\r\n ],\r\n selectall: [\r\n 'Select all',\r\n 'SelectAll',\r\n 'Meta+A'\r\n ]\r\n }, function (item, name) {\r\n editor.addMenuItem(name, {\r\n text: item[0],\r\n icon: name,\r\n shortcut: item[2],\r\n cmd: item[1]\r\n });\r\n });\r\n editor.addMenuItem('codeformat', {\r\n text: 'Code',\r\n icon: 'code',\r\n onclick: toggleFormat(editor, 'code')\r\n });\r\n };\r\n var register$6 = function (editor) {\r\n registerButtons$4(editor);\r\n registerMenuItems$1(editor);\r\n };\r\n var $_gbsmm2x8jkmcwssh = { register: register$6 };\r\n\r\n var toggleUndoRedoState = function (editor, type) {\r\n return function () {\r\n var self = this;\r\n var checkState = function () {\r\n var typeFn = type === 'redo' ? 'hasRedo' : 'hasUndo';\r\n return editor.undoManager ? editor.undoManager[typeFn]() : false;\r\n };\r\n self.disabled(!checkState());\r\n editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function () {\r\n self.disabled(editor.readonly || !checkState());\r\n });\r\n };\r\n };\r\n var registerMenuItems$2 = function (editor) {\r\n editor.addMenuItem('undo', {\r\n text: 'Undo',\r\n icon: 'undo',\r\n shortcut: 'Meta+Z',\r\n onPostRender: toggleUndoRedoState(editor, 'undo'),\r\n cmd: 'undo'\r\n });\r\n editor.addMenuItem('redo', {\r\n text: 'Redo',\r\n icon: 'redo',\r\n shortcut: 'Meta+Y',\r\n onPostRender: toggleUndoRedoState(editor, 'redo'),\r\n cmd: 'redo'\r\n });\r\n };\r\n var registerButtons$5 = function (editor) {\r\n editor.addButton('undo', {\r\n tooltip: 'Undo',\r\n onPostRender: toggleUndoRedoState(editor, 'undo'),\r\n cmd: 'undo'\r\n });\r\n editor.addButton('redo', {\r\n tooltip: 'Redo',\r\n onPostRender: toggleUndoRedoState(editor, 'redo'),\r\n cmd: 'redo'\r\n });\r\n };\r\n var register$7 = function (editor) {\r\n registerMenuItems$2(editor);\r\n registerButtons$5(editor);\r\n };\r\n var $_1bdkmax9jkmcwssr = { register: register$7 };\r\n\r\n var toggleVisualAidState = function (editor) {\r\n return function () {\r\n var self = this;\r\n editor.on('VisualAid', function (e) {\r\n self.active(e.hasVisual);\r\n });\r\n self.active(editor.hasVisual);\r\n };\r\n };\r\n var registerMenuItems$3 = function (editor) {\r\n editor.addMenuItem('visualaid', {\r\n text: 'Visual aids',\r\n selectable: true,\r\n onPostRender: toggleVisualAidState(editor),\r\n cmd: 'mceToggleVisualAid'\r\n });\r\n };\r\n var register$8 = function (editor) {\r\n registerMenuItems$3(editor);\r\n };\r\n var $_21pl3hxajkmcwsst = { register: register$8 };\r\n\r\n var setupEnvironment = function () {\r\n Widget.tooltips = !global$8.iOS;\r\n Control$1.translate = function (text) {\r\n return global$1.translate(text);\r\n };\r\n };\r\n var setupUiContainer = function (editor) {\r\n if (editor.settings.ui_container) {\r\n global$8.container = $_epq3p6wyjkmcwsrh.descendant(Element$$1.fromDom(document.body), editor.settings.ui_container).fold(constant(null), function (elm) {\r\n return elm.dom();\r\n });\r\n }\r\n };\r\n var setupRtlMode = function (editor) {\r\n if (editor.rtl) {\r\n Control$1.rtl = true;\r\n }\r\n };\r\n var setupHideFloatPanels = function (editor) {\r\n editor.on('mousedown', function () {\r\n FloatPanel.hideAll();\r\n });\r\n };\r\n var setup$1 = function (editor) {\r\n setupRtlMode(editor);\r\n setupHideFloatPanels(editor);\r\n setupUiContainer(editor);\r\n setupEnvironment();\r\n $_cl4rffx6jkmcwssb.register(editor);\r\n $_ffg0cgx1jkmcwsrx.register(editor);\r\n $_gbsmm2x8jkmcwssh.register(editor);\r\n $_1bdkmax9jkmcwssr.register(editor);\r\n $_fnu5cxx4jkmcwss4.register(editor);\r\n $_1be6fjx3jkmcwss1.register(editor);\r\n $_cmdomhx5jkmcwss6.register(editor);\r\n $_21pl3hxajkmcwsst.register(editor);\r\n $_7ix8zax7jkmcwssd.register(editor);\r\n };\r\n var $_drujjnwxjkmcwsrc = { setup: setup$1 };\r\n\r\n var GridLayout = AbsoluteLayout.extend({\r\n recalc: function (container) {\r\n var settings, rows, cols, items, contLayoutRect, width, height, rect, ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY;\r\n var colWidths = [];\r\n var rowHeights = [];\r\n var ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight, reverseRows, idx;\r\n settings = container.settings;\r\n items = container.items().filter(':visible');\r\n contLayoutRect = container.layoutRect();\r\n cols = settings.columns || Math.ceil(Math.sqrt(items.length));\r\n rows = Math.ceil(items.length / cols);\r\n spacingH = settings.spacingH || settings.spacing || 0;\r\n spacingV = settings.spacingV || settings.spacing || 0;\r\n alignH = settings.alignH || settings.align;\r\n alignV = settings.alignV || settings.align;\r\n contPaddingBox = container.paddingBox;\r\n reverseRows = 'reverseRows' in settings ? settings.reverseRows : container.isRtl();\r\n if (alignH && typeof alignH === 'string') {\r\n alignH = [alignH];\r\n }\r\n if (alignV && typeof alignV === 'string') {\r\n alignV = [alignV];\r\n }\r\n for (x = 0; x < cols; x++) {\r\n colWidths.push(0);\r\n }\r\n for (y = 0; y < rows; y++) {\r\n rowHeights.push(0);\r\n }\r\n for (y = 0; y < rows; y++) {\r\n for (x = 0; x < cols; x++) {\r\n ctrl = items[y * cols + x];\r\n if (!ctrl) {\r\n break;\r\n }\r\n ctrlLayoutRect = ctrl.layoutRect();\r\n ctrlMinWidth = ctrlLayoutRect.minW;\r\n ctrlMinHeight = ctrlLayoutRect.minH;\r\n colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x];\r\n rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y];\r\n }\r\n }\r\n availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right;\r\n for (maxX = 0, x = 0; x < cols; x++) {\r\n maxX += colWidths[x] + (x > 0 ? spacingH : 0);\r\n availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x];\r\n }\r\n availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom;\r\n for (maxY = 0, y = 0; y < rows; y++) {\r\n maxY += rowHeights[y] + (y > 0 ? spacingV : 0);\r\n availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y];\r\n }\r\n maxX += contPaddingBox.left + contPaddingBox.right;\r\n maxY += contPaddingBox.top + contPaddingBox.bottom;\r\n rect = {};\r\n rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW);\r\n rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH);\r\n rect.contentW = rect.minW - contLayoutRect.deltaW;\r\n rect.contentH = rect.minH - contLayoutRect.deltaH;\r\n rect.minW = Math.min(rect.minW, contLayoutRect.maxW);\r\n rect.minH = Math.min(rect.minH, contLayoutRect.maxH);\r\n rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth);\r\n rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight);\r\n if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) {\r\n rect.w = rect.minW;\r\n rect.h = rect.minH;\r\n container.layoutRect(rect);\r\n this.recalc(container);\r\n if (container._lastRect === null) {\r\n var parentCtrl = container.parent();\r\n if (parentCtrl) {\r\n parentCtrl._lastRect = null;\r\n parentCtrl.recalc();\r\n }\r\n }\r\n return;\r\n }\r\n if (contLayoutRect.autoResize) {\r\n rect = container.layoutRect(rect);\r\n rect.contentW = rect.minW - contLayoutRect.deltaW;\r\n rect.contentH = rect.minH - contLayoutRect.deltaH;\r\n }\r\n var flexV;\r\n if (settings.packV === 'start') {\r\n flexV = 0;\r\n } else {\r\n flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0;\r\n }\r\n var totalFlex = 0;\r\n var flexWidths = settings.flexWidths;\r\n if (flexWidths) {\r\n for (x = 0; x < flexWidths.length; x++) {\r\n totalFlex += flexWidths[x];\r\n }\r\n } else {\r\n totalFlex = cols;\r\n }\r\n var ratio = availableWidth / totalFlex;\r\n for (x = 0; x < cols; x++) {\r\n colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio;\r\n }\r\n posY = contPaddingBox.top;\r\n for (y = 0; y < rows; y++) {\r\n posX = contPaddingBox.left;\r\n height = rowHeights[y] + flexV;\r\n for (x = 0; x < cols; x++) {\r\n if (reverseRows) {\r\n idx = y * cols + cols - 1 - x;\r\n } else {\r\n idx = y * cols + x;\r\n }\r\n ctrl = items[idx];\r\n if (!ctrl) {\r\n break;\r\n }\r\n ctrlSettings = ctrl.settings;\r\n ctrlLayoutRect = ctrl.layoutRect();\r\n width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth);\r\n ctrlLayoutRect.x = posX;\r\n ctrlLayoutRect.y = posY;\r\n align = ctrlSettings.alignH || (alignH ? alignH[x] || alignH[0] : null);\r\n if (align === 'center') {\r\n ctrlLayoutRect.x = posX + width / 2 - ctrlLayoutRect.w / 2;\r\n } else if (align === 'right') {\r\n ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w;\r\n } else if (align === 'stretch') {\r\n ctrlLayoutRect.w = width;\r\n }\r\n align = ctrlSettings.alignV || (alignV ? alignV[x] || alignV[0] : null);\r\n if (align === 'center') {\r\n ctrlLayoutRect.y = posY + height / 2 - ctrlLayoutRect.h / 2;\r\n } else if (align === 'bottom') {\r\n ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h;\r\n } else if (align === 'stretch') {\r\n ctrlLayoutRect.h = height;\r\n }\r\n ctrl.layoutRect(ctrlLayoutRect);\r\n posX += width + spacingH;\r\n if (ctrl.recalc) {\r\n ctrl.recalc();\r\n }\r\n }\r\n posY += height + spacingV;\r\n }\r\n }\r\n });\r\n\r\n var Iframe$1 = Widget.extend({\r\n renderHtml: function () {\r\n var self = this;\r\n self.classes.add('iframe');\r\n self.canFocus = false;\r\n return '';\r\n },\r\n src: function (src) {\r\n this.getEl().src = src;\r\n },\r\n html: function (html, callback) {\r\n var self = this, body = this.getEl().contentWindow.document.body;\r\n if (!body) {\r\n global$7.setTimeout(function () {\r\n self.html(html);\r\n });\r\n } else {\r\n body.innerHTML = html;\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n return this;\r\n }\r\n });\r\n\r\n var InfoBox = Widget.extend({\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n self.classes.add('widget').add('infobox');\r\n self.canFocus = false;\r\n },\r\n severity: function (level) {\r\n this.classes.remove('error');\r\n this.classes.remove('warning');\r\n this.classes.remove('success');\r\n this.classes.add(level);\r\n },\r\n help: function (state) {\r\n this.state.set('help', state);\r\n },\r\n renderHtml: function () {\r\n var self = this, prefix = self.classPrefix;\r\n return '
    ' + '
    ' + self.encode(self.state.get('text')) + '' + '
    ' + '
    ';\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:text', function (e) {\r\n self.getEl('body').firstChild.data = self.encode(e.value);\r\n if (self.state.get('rendered')) {\r\n self.updateLayoutRect();\r\n }\r\n });\r\n self.state.on('change:help', function (e) {\r\n self.classes.toggle('has-help', e.value);\r\n if (self.state.get('rendered')) {\r\n self.updateLayoutRect();\r\n }\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var Label = Widget.extend({\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n self.classes.add('widget').add('label');\r\n self.canFocus = false;\r\n if (settings.multiline) {\r\n self.classes.add('autoscroll');\r\n }\r\n if (settings.strong) {\r\n self.classes.add('strong');\r\n }\r\n },\r\n initLayoutRect: function () {\r\n var self = this, layoutRect = self._super();\r\n if (self.settings.multiline) {\r\n var size = funcs.getSize(self.getEl());\r\n if (size.width > layoutRect.maxW) {\r\n layoutRect.minW = layoutRect.maxW;\r\n self.classes.add('multiline');\r\n }\r\n self.getEl().style.width = layoutRect.minW + 'px';\r\n layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, funcs.getSize(self.getEl()).height);\r\n }\r\n return layoutRect;\r\n },\r\n repaint: function () {\r\n var self = this;\r\n if (!self.settings.multiline) {\r\n self.getEl().style.lineHeight = self.layoutRect().h + 'px';\r\n }\r\n return self._super();\r\n },\r\n severity: function (level) {\r\n this.classes.remove('error');\r\n this.classes.remove('warning');\r\n this.classes.remove('success');\r\n this.classes.add(level);\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var targetCtrl, forName, forId = self.settings.forId;\r\n var text = self.settings.html ? self.settings.html : self.encode(self.state.get('text'));\r\n if (!forId && (forName = self.settings.forName)) {\r\n targetCtrl = self.getRoot().find('#' + forName)[0];\r\n if (targetCtrl) {\r\n forId = targetCtrl._id;\r\n }\r\n }\r\n if (forId) {\r\n return '';\r\n }\r\n return '' + text + '';\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:text', function (e) {\r\n self.innerHtml(self.encode(e.value));\r\n if (self.state.get('rendered')) {\r\n self.updateLayoutRect();\r\n }\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var Toolbar$1 = Container.extend({\r\n Defaults: {\r\n role: 'toolbar',\r\n layout: 'flow'\r\n },\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n self.classes.add('toolbar');\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self.items().each(function (ctrl) {\r\n ctrl.classes.add('toolbar-item');\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var MenuBar = Toolbar$1.extend({\r\n Defaults: {\r\n role: 'menubar',\r\n containerCls: 'menubar',\r\n ariaRoot: true,\r\n defaults: { type: 'menubutton' }\r\n }\r\n });\r\n\r\n function isChildOf$1(node, parent$$1) {\r\n while (node) {\r\n if (parent$$1 === node) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n }\r\n var MenuButton = Button.extend({\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._renderOpen = true;\r\n self$$1._super(settings);\r\n settings = self$$1.settings;\r\n self$$1.classes.add('menubtn');\r\n if (settings.fixedWidth) {\r\n self$$1.classes.add('fixed-width');\r\n }\r\n self$$1.aria('haspopup', true);\r\n self$$1.state.set('menu', settings.menu || self$$1.render());\r\n },\r\n showMenu: function (toggle) {\r\n var self$$1 = this;\r\n var menu;\r\n if (self$$1.menu && self$$1.menu.visible() && toggle !== false) {\r\n return self$$1.hideMenu();\r\n }\r\n if (!self$$1.menu) {\r\n menu = self$$1.state.get('menu') || [];\r\n self$$1.classes.add('opened');\r\n if (menu.length) {\r\n menu = {\r\n type: 'menu',\r\n animate: true,\r\n items: menu\r\n };\r\n } else {\r\n menu.type = menu.type || 'menu';\r\n menu.animate = true;\r\n }\r\n if (!menu.renderTo) {\r\n self$$1.menu = global$4.create(menu).parent(self$$1).renderTo();\r\n } else {\r\n self$$1.menu = menu.parent(self$$1).show().renderTo();\r\n }\r\n self$$1.fire('createmenu');\r\n self$$1.menu.reflow();\r\n self$$1.menu.on('cancel', function (e) {\r\n if (e.control.parent() === self$$1.menu) {\r\n e.stopPropagation();\r\n self$$1.focus();\r\n self$$1.hideMenu();\r\n }\r\n });\r\n self$$1.menu.on('select', function () {\r\n self$$1.focus();\r\n });\r\n self$$1.menu.on('show hide', function (e) {\r\n if (e.control === self$$1.menu) {\r\n self$$1.activeMenu(e.type === 'show');\r\n self$$1.classes.toggle('opened', e.type === 'show');\r\n }\r\n self$$1.aria('expanded', e.type === 'show');\r\n }).fire('show');\r\n }\r\n self$$1.menu.show();\r\n self$$1.menu.layoutRect({ w: self$$1.layoutRect().w });\r\n self$$1.menu.repaint();\r\n self$$1.menu.moveRel(self$$1.getEl(), self$$1.isRtl() ? [\r\n 'br-tr',\r\n 'tr-br'\r\n ] : [\r\n 'bl-tl',\r\n 'tl-bl'\r\n ]);\r\n self$$1.fire('showmenu');\r\n },\r\n hideMenu: function () {\r\n var self$$1 = this;\r\n if (self$$1.menu) {\r\n self$$1.menu.items().each(function (item) {\r\n if (item.hideMenu) {\r\n item.hideMenu();\r\n }\r\n });\r\n self$$1.menu.hide();\r\n }\r\n },\r\n activeMenu: function (state) {\r\n this.classes.toggle('active', state);\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this, id = self$$1._id, prefix = self$$1.classPrefix;\r\n var icon = self$$1.settings.icon, image;\r\n var text = self$$1.state.get('text');\r\n var textHtml = '';\r\n image = self$$1.settings.image;\r\n if (image) {\r\n icon = 'none';\r\n if (typeof image !== 'string') {\r\n image = window.getSelection ? image[0] : image[1];\r\n }\r\n image = ' style=\"background-image: url(\\'' + image + '\\')\"';\r\n } else {\r\n image = '';\r\n }\r\n if (text) {\r\n self$$1.classes.add('btn-has-text');\r\n textHtml = '' + self$$1.encode(text) + '';\r\n }\r\n icon = self$$1.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\r\n self$$1.aria('role', self$$1.parent() instanceof MenuBar ? 'menuitem' : 'button');\r\n return '
    ' + '' + '
    ';\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n self$$1.on('click', function (e) {\r\n if (e.control === self$$1 && isChildOf$1(e.target, self$$1.getEl())) {\r\n self$$1.focus();\r\n self$$1.showMenu(!e.aria);\r\n if (e.aria) {\r\n self$$1.menu.items().filter(':visible')[0].focus();\r\n }\r\n }\r\n });\r\n self$$1.on('mouseenter', function (e) {\r\n var overCtrl = e.control;\r\n var parent$$1 = self$$1.parent();\r\n var hasVisibleSiblingMenu;\r\n if (overCtrl && parent$$1 && overCtrl instanceof MenuButton && overCtrl.parent() === parent$$1) {\r\n parent$$1.items().filter('MenuButton').each(function (ctrl) {\r\n if (ctrl.hideMenu && ctrl !== overCtrl) {\r\n if (ctrl.menu && ctrl.menu.visible()) {\r\n hasVisibleSiblingMenu = true;\r\n }\r\n ctrl.hideMenu();\r\n }\r\n });\r\n if (hasVisibleSiblingMenu) {\r\n overCtrl.focus();\r\n overCtrl.showMenu();\r\n }\r\n }\r\n });\r\n return self$$1._super();\r\n },\r\n bindStates: function () {\r\n var self$$1 = this;\r\n self$$1.state.on('change:menu', function () {\r\n if (self$$1.menu) {\r\n self$$1.menu.remove();\r\n }\r\n self$$1.menu = null;\r\n });\r\n return self$$1._super();\r\n },\r\n remove: function () {\r\n this._super();\r\n if (this.menu) {\r\n this.menu.remove();\r\n }\r\n }\r\n });\r\n\r\n var Menu = FloatPanel.extend({\r\n Defaults: {\r\n defaultType: 'menuitem',\r\n border: 1,\r\n layout: 'stack',\r\n role: 'application',\r\n bodyRole: 'menu',\r\n ariaRoot: true\r\n },\r\n init: function (settings) {\r\n var self = this;\r\n settings.autohide = true;\r\n settings.constrainToViewport = true;\r\n if (typeof settings.items === 'function') {\r\n settings.itemsFactory = settings.items;\r\n settings.items = [];\r\n }\r\n if (settings.itemDefaults) {\r\n var items = settings.items;\r\n var i = items.length;\r\n while (i--) {\r\n items[i] = global$2.extend({}, settings.itemDefaults, items[i]);\r\n }\r\n }\r\n self._super(settings);\r\n self.classes.add('menu');\r\n if (settings.animate && global$8.ie !== 11) {\r\n self.classes.add('animate');\r\n }\r\n },\r\n repaint: function () {\r\n this.classes.toggle('menu-align', true);\r\n this._super();\r\n this.getEl().style.height = '';\r\n this.getEl('body').style.height = '';\r\n return this;\r\n },\r\n cancel: function () {\r\n var self = this;\r\n self.hideAll();\r\n self.fire('select');\r\n },\r\n load: function () {\r\n var self = this;\r\n var time, factory;\r\n function hideThrobber() {\r\n if (self.throbber) {\r\n self.throbber.hide();\r\n self.throbber = null;\r\n }\r\n }\r\n factory = self.settings.itemsFactory;\r\n if (!factory) {\r\n return;\r\n }\r\n if (!self.throbber) {\r\n self.throbber = new Throbber(self.getEl('body'), true);\r\n if (self.items().length === 0) {\r\n self.throbber.show();\r\n self.fire('loading');\r\n } else {\r\n self.throbber.show(100, function () {\r\n self.items().remove();\r\n self.fire('loading');\r\n });\r\n }\r\n self.on('hide close', hideThrobber);\r\n }\r\n self.requestTime = time = new Date().getTime();\r\n self.settings.itemsFactory(function (items) {\r\n if (items.length === 0) {\r\n self.hide();\r\n return;\r\n }\r\n if (self.requestTime !== time) {\r\n return;\r\n }\r\n self.getEl().style.width = '';\r\n self.getEl('body').style.width = '';\r\n hideThrobber();\r\n self.items().remove();\r\n self.getEl('body').innerHTML = '';\r\n self.add(items);\r\n self.renderNew();\r\n self.fire('loaded');\r\n });\r\n },\r\n hideAll: function () {\r\n var self = this;\r\n this.find('menuitem').exec('hideMenu');\r\n return self._super();\r\n },\r\n preRender: function () {\r\n var self = this;\r\n self.items().each(function (ctrl) {\r\n var settings = ctrl.settings;\r\n if (settings.icon || settings.image || settings.selectable) {\r\n self._hasIcons = true;\r\n return false;\r\n }\r\n });\r\n if (self.settings.itemsFactory) {\r\n self.on('postrender', function () {\r\n if (self.settings.itemsFactory) {\r\n self.load();\r\n }\r\n });\r\n }\r\n self.on('show hide', function (e) {\r\n if (e.control === self) {\r\n if (e.type === 'show') {\r\n global$7.setTimeout(function () {\r\n self.classes.add('in');\r\n }, 0);\r\n } else {\r\n self.classes.remove('in');\r\n }\r\n }\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var ListBox = MenuButton.extend({\r\n init: function (settings) {\r\n var self = this;\r\n var values, selected, selectedText, lastItemCtrl;\r\n function setSelected(menuValues) {\r\n for (var i = 0; i < menuValues.length; i++) {\r\n selected = menuValues[i].selected || settings.value === menuValues[i].value;\r\n if (selected) {\r\n selectedText = selectedText || menuValues[i].text;\r\n self.state.set('value', menuValues[i].value);\r\n return true;\r\n }\r\n if (menuValues[i].menu) {\r\n if (setSelected(menuValues[i].menu)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n self._super(settings);\r\n settings = self.settings;\r\n self._values = values = settings.values;\r\n if (values) {\r\n if (typeof settings.value !== 'undefined') {\r\n setSelected(values);\r\n }\r\n if (!selected && values.length > 0) {\r\n selectedText = values[0].text;\r\n self.state.set('value', values[0].value);\r\n }\r\n self.state.set('menu', values);\r\n }\r\n self.state.set('text', settings.text || selectedText);\r\n self.classes.add('listbox');\r\n self.on('select', function (e) {\r\n var ctrl = e.control;\r\n if (lastItemCtrl) {\r\n e.lastControl = lastItemCtrl;\r\n }\r\n if (settings.multiple) {\r\n ctrl.active(!ctrl.active());\r\n } else {\r\n self.value(e.control.value());\r\n }\r\n lastItemCtrl = ctrl;\r\n });\r\n },\r\n value: function (value) {\r\n if (arguments.length === 0) {\r\n return this.state.get('value');\r\n }\r\n if (typeof value === 'undefined') {\r\n return this;\r\n }\r\n if (this.settings.values) {\r\n var matchingValues = global$2.grep(this.settings.values, function (a) {\r\n return a.value === value;\r\n });\r\n if (matchingValues.length > 0) {\r\n this.state.set('value', value);\r\n } else if (value === null) {\r\n this.state.set('value', null);\r\n }\r\n } else {\r\n this.state.set('value', value);\r\n }\r\n return this;\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n function activateMenuItemsByValue(menu, value) {\r\n if (menu instanceof Menu) {\r\n menu.items().each(function (ctrl) {\r\n if (!ctrl.hasMenus()) {\r\n ctrl.active(ctrl.value() === value);\r\n }\r\n });\r\n }\r\n }\r\n function getSelectedItem(menuValues, value) {\r\n var selectedItem;\r\n if (!menuValues) {\r\n return;\r\n }\r\n for (var i = 0; i < menuValues.length; i++) {\r\n if (menuValues[i].value === value) {\r\n return menuValues[i];\r\n }\r\n if (menuValues[i].menu) {\r\n selectedItem = getSelectedItem(menuValues[i].menu, value);\r\n if (selectedItem) {\r\n return selectedItem;\r\n }\r\n }\r\n }\r\n }\r\n self.on('show', function (e) {\r\n activateMenuItemsByValue(e.control, self.value());\r\n });\r\n self.state.on('change:value', function (e) {\r\n var selectedItem = getSelectedItem(self.state.get('menu'), e.value);\r\n if (selectedItem) {\r\n self.text(selectedItem.text);\r\n } else {\r\n self.text(self.settings.text);\r\n }\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var toggleTextStyle = function (ctrl, state) {\r\n var textStyle = ctrl._textStyle;\r\n if (textStyle) {\r\n var textElm = ctrl.getEl('text');\r\n textElm.setAttribute('style', textStyle);\r\n if (state) {\r\n textElm.style.color = '';\r\n textElm.style.backgroundColor = '';\r\n }\r\n }\r\n };\r\n var MenuItem = Widget.extend({\r\n Defaults: {\r\n border: 0,\r\n role: 'menuitem'\r\n },\r\n init: function (settings) {\r\n var self = this;\r\n var text;\r\n self._super(settings);\r\n settings = self.settings;\r\n self.classes.add('menu-item');\r\n if (settings.menu) {\r\n self.classes.add('menu-item-expand');\r\n }\r\n if (settings.preview) {\r\n self.classes.add('menu-item-preview');\r\n }\r\n text = self.state.get('text');\r\n if (text === '-' || text === '|') {\r\n self.classes.add('menu-item-sep');\r\n self.aria('role', 'separator');\r\n self.state.set('text', '-');\r\n }\r\n if (settings.selectable) {\r\n self.aria('role', 'menuitemcheckbox');\r\n self.classes.add('menu-item-checkbox');\r\n settings.icon = 'selected';\r\n }\r\n if (!settings.preview && !settings.selectable) {\r\n self.classes.add('menu-item-normal');\r\n }\r\n self.on('mousedown', function (e) {\r\n e.preventDefault();\r\n });\r\n if (settings.menu && !settings.ariaHideMenu) {\r\n self.aria('haspopup', true);\r\n }\r\n },\r\n hasMenus: function () {\r\n return !!this.settings.menu;\r\n },\r\n showMenu: function () {\r\n var self = this;\r\n var settings = self.settings;\r\n var menu;\r\n var parent = self.parent();\r\n parent.items().each(function (ctrl) {\r\n if (ctrl !== self) {\r\n ctrl.hideMenu();\r\n }\r\n });\r\n if (settings.menu) {\r\n menu = self.menu;\r\n if (!menu) {\r\n menu = settings.menu;\r\n if (menu.length) {\r\n menu = {\r\n type: 'menu',\r\n items: menu\r\n };\r\n } else {\r\n menu.type = menu.type || 'menu';\r\n }\r\n if (parent.settings.itemDefaults) {\r\n menu.itemDefaults = parent.settings.itemDefaults;\r\n }\r\n menu = self.menu = global$4.create(menu).parent(self).renderTo();\r\n menu.reflow();\r\n menu.on('cancel', function (e) {\r\n e.stopPropagation();\r\n self.focus();\r\n menu.hide();\r\n });\r\n menu.on('show hide', function (e) {\r\n if (e.control.items) {\r\n e.control.items().each(function (ctrl) {\r\n ctrl.active(ctrl.settings.selected);\r\n });\r\n }\r\n }).fire('show');\r\n menu.on('hide', function (e) {\r\n if (e.control === menu) {\r\n self.classes.remove('selected');\r\n }\r\n });\r\n menu.submenu = true;\r\n } else {\r\n menu.show();\r\n }\r\n menu._parentMenu = parent;\r\n menu.classes.add('menu-sub');\r\n var rel = menu.testMoveRel(self.getEl(), self.isRtl() ? [\r\n 'tl-tr',\r\n 'bl-br',\r\n 'tr-tl',\r\n 'br-bl'\r\n ] : [\r\n 'tr-tl',\r\n 'br-bl',\r\n 'tl-tr',\r\n 'bl-br'\r\n ]);\r\n menu.moveRel(self.getEl(), rel);\r\n menu.rel = rel;\r\n rel = 'menu-sub-' + rel;\r\n menu.classes.remove(menu._lastRel).add(rel);\r\n menu._lastRel = rel;\r\n self.classes.add('selected');\r\n self.aria('expanded', true);\r\n }\r\n },\r\n hideMenu: function () {\r\n var self = this;\r\n if (self.menu) {\r\n self.menu.items().each(function (item) {\r\n if (item.hideMenu) {\r\n item.hideMenu();\r\n }\r\n });\r\n self.menu.hide();\r\n self.aria('expanded', false);\r\n }\r\n return self;\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var id = self._id;\r\n var settings = self.settings;\r\n var prefix = self.classPrefix;\r\n var text = self.state.get('text');\r\n var icon = self.settings.icon, image = '', shortcut = settings.shortcut;\r\n var url = self.encode(settings.url), iconHtml = '';\r\n function convertShortcut(shortcut) {\r\n var i, value, replace = {};\r\n if (global$8.mac) {\r\n replace = {\r\n alt: '⌥',\r\n ctrl: '⌘',\r\n shift: '⇧',\r\n meta: '⌘'\r\n };\r\n } else {\r\n replace = { meta: 'Ctrl' };\r\n }\r\n shortcut = shortcut.split('+');\r\n for (i = 0; i < shortcut.length; i++) {\r\n value = replace[shortcut[i].toLowerCase()];\r\n if (value) {\r\n shortcut[i] = value;\r\n }\r\n }\r\n return shortcut.join('+');\r\n }\r\n function escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n }\r\n function markMatches(text) {\r\n var match = settings.match || '';\r\n return match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) {\r\n return '!mce~match[' + match + ']mce~match!';\r\n }) : text;\r\n }\r\n function boldMatches(text) {\r\n return text.replace(new RegExp(escapeRegExp('!mce~match['), 'g'), '').replace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '');\r\n }\r\n if (icon) {\r\n self.parent().classes.add('menu-has-icons');\r\n }\r\n if (settings.image) {\r\n image = ' style=\"background-image: url(\\'' + settings.image + '\\')\"';\r\n }\r\n if (shortcut) {\r\n shortcut = convertShortcut(shortcut);\r\n }\r\n icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none');\r\n iconHtml = text !== '-' ? '\\xA0' : '';\r\n text = boldMatches(self.encode(markMatches(text)));\r\n url = boldMatches(self.encode(markMatches(url)));\r\n return '
    ' + iconHtml + (text !== '-' ? '' + text + '' : '') + (shortcut ? '
    ' + shortcut + '
    ' : '') + (settings.menu ? '
    ' : '') + (url ? '
    ' + url + '
    ' : '') + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this, settings = self.settings;\r\n var textStyle = settings.textStyle;\r\n if (typeof textStyle === 'function') {\r\n textStyle = textStyle.call(this);\r\n }\r\n if (textStyle) {\r\n var textElm = self.getEl('text');\r\n if (textElm) {\r\n textElm.setAttribute('style', textStyle);\r\n self._textStyle = textStyle;\r\n }\r\n }\r\n self.on('mouseenter click', function (e) {\r\n if (e.control === self) {\r\n if (!settings.menu && e.type === 'click') {\r\n self.fire('select');\r\n global$7.requestAnimationFrame(function () {\r\n self.parent().hideAll();\r\n });\r\n } else {\r\n self.showMenu();\r\n if (e.aria) {\r\n self.menu.focus(true);\r\n }\r\n }\r\n }\r\n });\r\n self._super();\r\n return self;\r\n },\r\n hover: function () {\r\n var self = this;\r\n self.parent().items().each(function (ctrl) {\r\n ctrl.classes.remove('selected');\r\n });\r\n self.classes.toggle('selected', true);\r\n return self;\r\n },\r\n active: function (state) {\r\n toggleTextStyle(this, state);\r\n if (typeof state !== 'undefined') {\r\n this.aria('checked', state);\r\n }\r\n return this._super(state);\r\n },\r\n remove: function () {\r\n this._super();\r\n if (this.menu) {\r\n this.menu.remove();\r\n }\r\n }\r\n });\r\n\r\n var Radio = Checkbox.extend({\r\n Defaults: {\r\n classes: 'radio',\r\n role: 'radio'\r\n }\r\n });\r\n\r\n var ResizeHandle = Widget.extend({\r\n renderHtml: function () {\r\n var self = this, prefix = self.classPrefix;\r\n self.classes.add('resizehandle');\r\n if (self.settings.direction === 'both') {\r\n self.classes.add('resizehandle-both');\r\n }\r\n self.canFocus = false;\r\n return '
    ' + '' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self._super();\r\n self.resizeDragHelper = new DragHelper(this._id, {\r\n start: function () {\r\n self.fire('ResizeStart');\r\n },\r\n drag: function (e) {\r\n if (self.settings.direction !== 'both') {\r\n e.deltaX = 0;\r\n }\r\n self.fire('Resize', e);\r\n },\r\n stop: function () {\r\n self.fire('ResizeEnd');\r\n }\r\n });\r\n },\r\n remove: function () {\r\n if (this.resizeDragHelper) {\r\n this.resizeDragHelper.destroy();\r\n }\r\n return this._super();\r\n }\r\n });\r\n\r\n function createOptions(options) {\r\n var strOptions = '';\r\n if (options) {\r\n for (var i = 0; i < options.length; i++) {\r\n strOptions += '';\r\n }\r\n }\r\n return strOptions;\r\n }\r\n var SelectBox = Widget.extend({\r\n Defaults: {\r\n classes: 'selectbox',\r\n role: 'selectbox',\r\n options: []\r\n },\r\n init: function (settings) {\r\n var self = this;\r\n self._super(settings);\r\n if (self.settings.size) {\r\n self.size = self.settings.size;\r\n }\r\n if (self.settings.options) {\r\n self._options = self.settings.options;\r\n }\r\n self.on('keydown', function (e) {\r\n var rootControl;\r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n self.parents().reverse().each(function (ctrl) {\r\n if (ctrl.toJSON) {\r\n rootControl = ctrl;\r\n return false;\r\n }\r\n });\r\n self.fire('submit', { data: rootControl.toJSON() });\r\n }\r\n });\r\n },\r\n options: function (state) {\r\n if (!arguments.length) {\r\n return this.state.get('options');\r\n }\r\n this.state.set('options', state);\r\n return this;\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var options, size = '';\r\n options = createOptions(self._options);\r\n if (self.size) {\r\n size = ' size = \"' + self.size + '\"';\r\n }\r\n return '';\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:options', function (e) {\r\n self.getEl().innerHTML = createOptions(e.value);\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n function constrain(value, minVal, maxVal) {\r\n if (value < minVal) {\r\n value = minVal;\r\n }\r\n if (value > maxVal) {\r\n value = maxVal;\r\n }\r\n return value;\r\n }\r\n function setAriaProp(el, name, value) {\r\n el.setAttribute('aria-' + name, value);\r\n }\r\n function updateSliderHandle(ctrl, value) {\r\n var maxHandlePos, shortSizeName, sizeName, stylePosName, styleValue, handleEl;\r\n if (ctrl.settings.orientation === 'v') {\r\n stylePosName = 'top';\r\n sizeName = 'height';\r\n shortSizeName = 'h';\r\n } else {\r\n stylePosName = 'left';\r\n sizeName = 'width';\r\n shortSizeName = 'w';\r\n }\r\n handleEl = ctrl.getEl('handle');\r\n maxHandlePos = (ctrl.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName];\r\n styleValue = maxHandlePos * ((value - ctrl._minValue) / (ctrl._maxValue - ctrl._minValue)) + 'px';\r\n handleEl.style[stylePosName] = styleValue;\r\n handleEl.style.height = ctrl.layoutRect().h + 'px';\r\n setAriaProp(handleEl, 'valuenow', value);\r\n setAriaProp(handleEl, 'valuetext', '' + ctrl.settings.previewFilter(value));\r\n setAriaProp(handleEl, 'valuemin', ctrl._minValue);\r\n setAriaProp(handleEl, 'valuemax', ctrl._maxValue);\r\n }\r\n var Slider = Widget.extend({\r\n init: function (settings) {\r\n var self = this;\r\n if (!settings.previewFilter) {\r\n settings.previewFilter = function (value) {\r\n return Math.round(value * 100) / 100;\r\n };\r\n }\r\n self._super(settings);\r\n self.classes.add('slider');\r\n if (settings.orientation === 'v') {\r\n self.classes.add('vertical');\r\n }\r\n self._minValue = isNumber(settings.minValue) ? settings.minValue : 0;\r\n self._maxValue = isNumber(settings.maxValue) ? settings.maxValue : 100;\r\n self._initValue = self.state.get('value');\r\n },\r\n renderHtml: function () {\r\n var self = this, id = self._id, prefix = self.classPrefix;\r\n return '
    ' + '
    ' + '
    ';\r\n },\r\n reset: function () {\r\n this.value(this._initValue).repaint();\r\n },\r\n postRender: function () {\r\n var self = this;\r\n var minValue, maxValue, screenCordName, stylePosName, sizeName, shortSizeName;\r\n function toFraction(min, max, val) {\r\n return (val + min) / (max - min);\r\n }\r\n function fromFraction(min, max, val) {\r\n return val * (max - min) - min;\r\n }\r\n function handleKeyboard(minValue, maxValue) {\r\n function alter(delta) {\r\n var value;\r\n value = self.value();\r\n value = fromFraction(minValue, maxValue, toFraction(minValue, maxValue, value) + delta * 0.05);\r\n value = constrain(value, minValue, maxValue);\r\n self.value(value);\r\n self.fire('dragstart', { value: value });\r\n self.fire('drag', { value: value });\r\n self.fire('dragend', { value: value });\r\n }\r\n self.on('keydown', function (e) {\r\n switch (e.keyCode) {\r\n case 37:\r\n case 38:\r\n alter(-1);\r\n break;\r\n case 39:\r\n case 40:\r\n alter(1);\r\n break;\r\n }\r\n });\r\n }\r\n function handleDrag(minValue, maxValue, handleEl) {\r\n var startPos, startHandlePos, maxHandlePos, handlePos, value;\r\n self._dragHelper = new DragHelper(self._id, {\r\n handle: self._id + '-handle',\r\n start: function (e) {\r\n startPos = e[screenCordName];\r\n startHandlePos = parseInt(self.getEl('handle').style[stylePosName], 10);\r\n maxHandlePos = (self.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName];\r\n self.fire('dragstart', { value: value });\r\n },\r\n drag: function (e) {\r\n var delta = e[screenCordName] - startPos;\r\n handlePos = constrain(startHandlePos + delta, 0, maxHandlePos);\r\n handleEl.style[stylePosName] = handlePos + 'px';\r\n value = minValue + handlePos / maxHandlePos * (maxValue - minValue);\r\n self.value(value);\r\n self.tooltip().text('' + self.settings.previewFilter(value)).show().moveRel(handleEl, 'bc tc');\r\n self.fire('drag', { value: value });\r\n },\r\n stop: function () {\r\n self.tooltip().hide();\r\n self.fire('dragend', { value: value });\r\n }\r\n });\r\n }\r\n minValue = self._minValue;\r\n maxValue = self._maxValue;\r\n if (self.settings.orientation === 'v') {\r\n screenCordName = 'screenY';\r\n stylePosName = 'top';\r\n sizeName = 'height';\r\n shortSizeName = 'h';\r\n } else {\r\n screenCordName = 'screenX';\r\n stylePosName = 'left';\r\n sizeName = 'width';\r\n shortSizeName = 'w';\r\n }\r\n self._super();\r\n handleKeyboard(minValue, maxValue);\r\n handleDrag(minValue, maxValue, self.getEl('handle'));\r\n },\r\n repaint: function () {\r\n this._super();\r\n updateSliderHandle(this, this.value());\r\n },\r\n bindStates: function () {\r\n var self = this;\r\n self.state.on('change:value', function (e) {\r\n updateSliderHandle(self, e.value);\r\n });\r\n return self._super();\r\n }\r\n });\r\n\r\n var Spacer = Widget.extend({\r\n renderHtml: function () {\r\n var self = this;\r\n self.classes.add('spacer');\r\n self.canFocus = false;\r\n return '
    ';\r\n }\r\n });\r\n\r\n var SplitButton = MenuButton.extend({\r\n Defaults: {\r\n classes: 'widget btn splitbtn',\r\n role: 'button'\r\n },\r\n repaint: function () {\r\n var self$$1 = this;\r\n var elm = self$$1.getEl();\r\n var rect = self$$1.layoutRect();\r\n var mainButtonElm, menuButtonElm;\r\n self$$1._super();\r\n mainButtonElm = elm.firstChild;\r\n menuButtonElm = elm.lastChild;\r\n global$9(mainButtonElm).css({\r\n width: rect.w - funcs.getSize(menuButtonElm).width,\r\n height: rect.h - 2\r\n });\r\n global$9(menuButtonElm).css({ height: rect.h - 2 });\r\n return self$$1;\r\n },\r\n activeMenu: function (state) {\r\n var self$$1 = this;\r\n global$9(self$$1.getEl().lastChild).toggleClass(self$$1.classPrefix + 'active', state);\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this;\r\n var id = self$$1._id;\r\n var prefix = self$$1.classPrefix;\r\n var image;\r\n var icon = self$$1.state.get('icon');\r\n var text = self$$1.state.get('text');\r\n var settings = self$$1.settings;\r\n var textHtml = '', ariaPressed;\r\n image = settings.image;\r\n if (image) {\r\n icon = 'none';\r\n if (typeof image !== 'string') {\r\n image = window.getSelection ? image[0] : image[1];\r\n }\r\n image = ' style=\"background-image: url(\\'' + image + '\\')\"';\r\n } else {\r\n image = '';\r\n }\r\n icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : '';\r\n if (text) {\r\n self$$1.classes.add('btn-has-text');\r\n textHtml = '' + self$$1.encode(text) + '';\r\n }\r\n ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed=\"' + settings.active + '\"' : '';\r\n return '
    ' + '' + '' + '
    ';\r\n },\r\n postRender: function () {\r\n var self$$1 = this, onClickHandler = self$$1.settings.onclick;\r\n self$$1.on('click', function (e) {\r\n var node = e.target;\r\n if (e.control === this) {\r\n while (node) {\r\n if (e.aria && e.aria.key !== 'down' || node.nodeName === 'BUTTON' && node.className.indexOf('open') === -1) {\r\n e.stopImmediatePropagation();\r\n if (onClickHandler) {\r\n onClickHandler.call(this, e);\r\n }\r\n return;\r\n }\r\n node = node.parentNode;\r\n }\r\n }\r\n });\r\n delete self$$1.settings.onclick;\r\n return self$$1._super();\r\n }\r\n });\r\n\r\n var StackLayout = FlowLayout.extend({\r\n Defaults: {\r\n containerClass: 'stack-layout',\r\n controlClass: 'stack-layout-item',\r\n endClass: 'break'\r\n },\r\n isNative: function () {\r\n return true;\r\n }\r\n });\r\n\r\n var TabPanel = Panel.extend({\r\n Defaults: {\r\n layout: 'absolute',\r\n defaults: { type: 'panel' }\r\n },\r\n activateTab: function (idx) {\r\n var activeTabElm;\r\n if (this.activeTabId) {\r\n activeTabElm = this.getEl(this.activeTabId);\r\n global$9(activeTabElm).removeClass(this.classPrefix + 'active');\r\n activeTabElm.setAttribute('aria-selected', 'false');\r\n }\r\n this.activeTabId = 't' + idx;\r\n activeTabElm = this.getEl('t' + idx);\r\n activeTabElm.setAttribute('aria-selected', 'true');\r\n global$9(activeTabElm).addClass(this.classPrefix + 'active');\r\n this.items()[idx].show().fire('showtab');\r\n this.reflow();\r\n this.items().each(function (item, i) {\r\n if (idx !== i) {\r\n item.hide();\r\n }\r\n });\r\n },\r\n renderHtml: function () {\r\n var self = this;\r\n var layout = self._layout;\r\n var tabsHtml = '';\r\n var prefix = self.classPrefix;\r\n self.preRender();\r\n layout.preRender(self);\r\n self.items().each(function (ctrl, i) {\r\n var id = self._id + '-t' + i;\r\n ctrl.aria('role', 'tabpanel');\r\n ctrl.aria('labelledby', id);\r\n tabsHtml += '
    ' + self.encode(ctrl.settings.title) + '
    ';\r\n });\r\n return '
    ' + '
    ' + tabsHtml + '
    ' + '
    ' + layout.renderHtml(self) + '
    ' + '
    ';\r\n },\r\n postRender: function () {\r\n var self = this;\r\n self._super();\r\n self.settings.activeTab = self.settings.activeTab || 0;\r\n self.activateTab(self.settings.activeTab);\r\n this.on('click', function (e) {\r\n var targetParent = e.target.parentNode;\r\n if (targetParent && targetParent.id === self._id + '-head') {\r\n var i = targetParent.childNodes.length;\r\n while (i--) {\r\n if (targetParent.childNodes[i] === e.target) {\r\n self.activateTab(i);\r\n }\r\n }\r\n }\r\n });\r\n },\r\n initLayoutRect: function () {\r\n var self = this;\r\n var rect, minW, minH;\r\n minW = funcs.getSize(self.getEl('head')).width;\r\n minW = minW < 0 ? 0 : minW;\r\n minH = 0;\r\n self.items().each(function (item) {\r\n minW = Math.max(minW, item.layoutRect().minW);\r\n minH = Math.max(minH, item.layoutRect().minH);\r\n });\r\n self.items().each(function (ctrl) {\r\n ctrl.settings.x = 0;\r\n ctrl.settings.y = 0;\r\n ctrl.settings.w = minW;\r\n ctrl.settings.h = minH;\r\n ctrl.layoutRect({\r\n x: 0,\r\n y: 0,\r\n w: minW,\r\n h: minH\r\n });\r\n });\r\n var headH = funcs.getSize(self.getEl('head')).height;\r\n self.settings.minWidth = minW;\r\n self.settings.minHeight = minH + headH;\r\n rect = self._super();\r\n rect.deltaH += headH;\r\n rect.innerH = rect.h - rect.deltaH;\r\n return rect;\r\n }\r\n });\r\n\r\n var TextBox = Widget.extend({\r\n init: function (settings) {\r\n var self$$1 = this;\r\n self$$1._super(settings);\r\n self$$1.classes.add('textbox');\r\n if (settings.multiline) {\r\n self$$1.classes.add('multiline');\r\n } else {\r\n self$$1.on('keydown', function (e) {\r\n var rootControl;\r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n self$$1.parents().reverse().each(function (ctrl) {\r\n if (ctrl.toJSON) {\r\n rootControl = ctrl;\r\n return false;\r\n }\r\n });\r\n self$$1.fire('submit', { data: rootControl.toJSON() });\r\n }\r\n });\r\n self$$1.on('keyup', function (e) {\r\n self$$1.state.set('value', e.target.value);\r\n });\r\n }\r\n },\r\n repaint: function () {\r\n var self$$1 = this;\r\n var style, rect, borderBox, borderW, borderH = 0, lastRepaintRect;\r\n style = self$$1.getEl().style;\r\n rect = self$$1._layoutRect;\r\n lastRepaintRect = self$$1._lastRepaintRect || {};\r\n var doc = document;\r\n if (!self$$1.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) {\r\n style.lineHeight = rect.h - borderH + 'px';\r\n }\r\n borderBox = self$$1.borderBox;\r\n borderW = borderBox.left + borderBox.right + 8;\r\n borderH = borderBox.top + borderBox.bottom + (self$$1.settings.multiline ? 8 : 0);\r\n if (rect.x !== lastRepaintRect.x) {\r\n style.left = rect.x + 'px';\r\n lastRepaintRect.x = rect.x;\r\n }\r\n if (rect.y !== lastRepaintRect.y) {\r\n style.top = rect.y + 'px';\r\n lastRepaintRect.y = rect.y;\r\n }\r\n if (rect.w !== lastRepaintRect.w) {\r\n style.width = rect.w - borderW + 'px';\r\n lastRepaintRect.w = rect.w;\r\n }\r\n if (rect.h !== lastRepaintRect.h) {\r\n style.height = rect.h - borderH + 'px';\r\n lastRepaintRect.h = rect.h;\r\n }\r\n self$$1._lastRepaintRect = lastRepaintRect;\r\n self$$1.fire('repaint', {}, false);\r\n return self$$1;\r\n },\r\n renderHtml: function () {\r\n var self$$1 = this;\r\n var settings = self$$1.settings;\r\n var attrs, elm;\r\n attrs = {\r\n id: self$$1._id,\r\n hidefocus: '1'\r\n };\r\n global$2.each([\r\n 'rows',\r\n 'spellcheck',\r\n 'maxLength',\r\n 'size',\r\n 'readonly',\r\n 'min',\r\n 'max',\r\n 'step',\r\n 'list',\r\n 'pattern',\r\n 'placeholder',\r\n 'required',\r\n 'multiple'\r\n ], function (name$$1) {\r\n attrs[name$$1] = settings[name$$1];\r\n });\r\n if (self$$1.disabled()) {\r\n attrs.disabled = 'disabled';\r\n }\r\n if (settings.subtype) {\r\n attrs.type = settings.subtype;\r\n }\r\n elm = funcs.create(settings.multiline ? 'textarea' : 'input', attrs);\r\n elm.value = self$$1.state.get('value');\r\n elm.className = self$$1.classes.toString();\r\n return elm.outerHTML;\r\n },\r\n value: function (value) {\r\n if (arguments.length) {\r\n this.state.set('value', value);\r\n return this;\r\n }\r\n if (this.state.get('rendered')) {\r\n this.state.set('value', this.getEl().value);\r\n }\r\n return this.state.get('value');\r\n },\r\n postRender: function () {\r\n var self$$1 = this;\r\n self$$1.getEl().value = self$$1.state.get('value');\r\n self$$1._super();\r\n self$$1.$el.on('change', function (e) {\r\n self$$1.state.set('value', e.target.value);\r\n self$$1.fire('change', e);\r\n });\r\n },\r\n bindStates: function () {\r\n var self$$1 = this;\r\n self$$1.state.on('change:value', function (e) {\r\n if (self$$1.getEl().value !== e.value) {\r\n self$$1.getEl().value = e.value;\r\n }\r\n });\r\n self$$1.state.on('change:disabled', function (e) {\r\n self$$1.getEl().disabled = e.value;\r\n });\r\n return self$$1._super();\r\n },\r\n remove: function () {\r\n this.$el.off();\r\n this._super();\r\n }\r\n });\r\n\r\n var getApi = function () {\r\n return {\r\n Selector: Selector,\r\n Collection: Collection$2,\r\n ReflowQueue: $_921m08uxjkmcwsk2,\r\n Control: Control$1,\r\n Factory: global$4,\r\n KeyboardNavigation: KeyboardNavigation,\r\n Container: Container,\r\n DragHelper: DragHelper,\r\n Scrollable: $_c9juz9uzjkmcwskb,\r\n Panel: Panel,\r\n Movable: $_77p0ikukjkmcwsie,\r\n Resizable: $_4ci2x6v1jkmcwski,\r\n FloatPanel: FloatPanel,\r\n Window: Window$$1,\r\n MessageBox: MessageBox,\r\n Tooltip: Tooltip,\r\n Widget: Widget,\r\n Progress: Progress,\r\n Notification: Notification,\r\n Layout: Layout,\r\n AbsoluteLayout: AbsoluteLayout,\r\n Button: Button,\r\n ButtonGroup: ButtonGroup,\r\n Checkbox: Checkbox,\r\n ComboBox: ComboBox,\r\n ColorBox: ColorBox,\r\n PanelButton: PanelButton,\r\n ColorButton: ColorButton,\r\n ColorPicker: ColorPicker,\r\n Path: Path,\r\n ElementPath: ElementPath,\r\n FormItem: FormItem,\r\n Form: Form,\r\n FieldSet: FieldSet,\r\n FilePicker: FilePicker,\r\n FitLayout: FitLayout,\r\n FlexLayout: FlexLayout,\r\n FlowLayout: FlowLayout,\r\n FormatControls: $_drujjnwxjkmcwsrc,\r\n GridLayout: GridLayout,\r\n Iframe: Iframe$1,\r\n InfoBox: InfoBox,\r\n Label: Label,\r\n Toolbar: Toolbar$1,\r\n MenuBar: MenuBar,\r\n MenuButton: MenuButton,\r\n MenuItem: MenuItem,\r\n Throbber: Throbber,\r\n Menu: Menu,\r\n ListBox: ListBox,\r\n Radio: Radio,\r\n ResizeHandle: ResizeHandle,\r\n SelectBox: SelectBox,\r\n Slider: Slider,\r\n Spacer: Spacer,\r\n SplitButton: SplitButton,\r\n StackLayout: StackLayout,\r\n TabPanel: TabPanel,\r\n TextBox: TextBox,\r\n DropZone: DropZone,\r\n BrowseButton: BrowseButton\r\n };\r\n };\r\n var appendTo = function (target) {\r\n if (target.ui) {\r\n global$2.each(getApi(), function (ref, key) {\r\n target.ui[key] = ref;\r\n });\r\n } else {\r\n target.ui = getApi();\r\n }\r\n };\r\n var registerToFactory = function () {\r\n global$2.each(getApi(), function (ref, key) {\r\n global$4.add(key, ref);\r\n });\r\n };\r\n var Api = {\r\n appendTo: appendTo,\r\n registerToFactory: registerToFactory\r\n };\r\n\r\n Api.registerToFactory();\r\n Api.appendTo(window.tinymce ? window.tinymce : {});\r\n global.add('modern', function (editor) {\r\n $_drujjnwxjkmcwsrc.setup(editor);\r\n return $_f0tepxtqjkmcwsfm.get(editor);\r\n });\r\n function Theme () {\r\n }\r\n\r\n return Theme;\r\n\r\n}());\r\n})();\r\n","module.exports = \"data:image/png;base64,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\"","\r\nimport Vue from 'vue';\r\n\r\nimport { Api } from '../api';\r\nimport Global from '../global';\r\nimport Base from '../base';\r\n\r\nimport '../../assets/js/tinymce/tinymce'\r\nimport '../../assets/js/tinymce/themes/modern/theme';\r\nimport '../../assets/js/tinymce/plugins/link/plugin';\r\nimport '../../assets/js/tinymce/plugins/paste/plugin';\r\nimport '../../assets/js/tinymce/plugins/lists/plugin';\r\nimport '../../assets/js/tinymce/plugins/code/plugin';\r\nimport '../../assets/js/tinymce/plugins/preview/plugin';\r\nimport '../../assets/js/tinymce/plugins/advlist/plugin';\r\nimport '../../assets/js/tinymce/plugins/image/plugin';\r\nimport '../../assets/js/tinymce/plugins/media/plugin';\r\n\r\nVue.directive('htmleditor', {\r\n twoWay: true,\r\n inserted: (el, binding, vnode) => {\r\n\r\n let _lastfileuploaded;\r\n let _interval;\r\n let _hascustomtag;\r\n\r\n if (binding && binding.value) {\r\n _hascustomtag = binding.value.hascustomtag == true;\r\n }\r\n\r\n tinymce.PluginManager.add('customtag', (editor) => {\r\n\r\n editor.addButton('customTagButton', {\r\n text: 'Tag de Resposta',\r\n icon: false,\r\n onclick: () => {\r\n _pluginWindowsCustomTag(editor)\r\n }\r\n });\r\n\r\n editor.addMenuItem('customTagMenuItem', {\r\n text: 'Tag de Resposta',\r\n context: 'tools',\r\n onclick: () => {\r\n _pluginWindowsCustomTag(editor)\r\n }\r\n });\r\n });\r\n\r\n function _pluginWindowsCustomTag(editor) {\r\n editor.windowManager.open({\r\n title: 'Insira a Resposta',\r\n body: [\r\n { type: 'textbox', name: 'description', label: 'Resposta' }\r\n ],\r\n onsubmit: (e) => {\r\n editor.insertContent('##' + e.data.description + '##');\r\n }\r\n });\r\n }\r\n\r\n tinymce.init({\r\n target: el,\r\n mode: \"inline\",\r\n language_url: '/js/tinymce-pt_br.js',\r\n plugins: ['link', 'paste', 'lists', 'code', 'preview', 'advlist', 'image', 'media', _hascustomtag ? 'customtag' : ''],\r\n\r\n toolbar: \"formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | image media\" + (_hascustomtag ? \" | customTagButton\" : \"\"),\r\n\r\n extended_valid_elements: \"customtag\",\r\n custom_elements: \"customtag\",\r\n\r\n media_live_embeds: true,\r\n image_advtab: true,\r\n file_picker_types: 'file image media',\r\n setup: (editor) => {\r\n \r\n _interval = setInterval(() => {\r\n if (el.value && el.value.length > 0) {\r\n tinymce.get(el.id).getBody().innerHTML = el.value;\r\n clearInterval(_interval)\r\n }\r\n }, 1000)\r\n\r\n editor.on('change', () => {\r\n clearInterval(_interval)\r\n var value = editor.getContent();\r\n value = value.replace(/'/g, '\\\"');\r\n value = value.replace(/\\r?\\n|\\r/g, '');\r\n\r\n el.value = value;\r\n\r\n setVModelValue(value, vnode)\r\n });\r\n },\r\n file_picker_types: 'image media',\r\n\r\n relative_urls: false,\r\n remove_script_host: false,\r\n media_poster: false,\r\n media_filter_html: false,\r\n\r\n images_upload_url: Global.URL_DOWNLOAD,\r\n\r\n images_upload_handler: (blobInfo, success, failure) => {\r\n new Api('document/upload', Global.END_POINT_PORTAL_CORPORATIVO)\r\n .upload(blobInfo.blob(), \"editorhtml\", true)\r\n .then(result => {\r\n success(Global.URL_DOWNLOAD + \"editorhtml/\" + result.data[0]);\r\n }, (err) => {\r\n failure('Erro ao fazer upload');\r\n });\r\n },\r\n audio_template_callback: function (data) {\r\n return '';\r\n },\r\n video_template_callback: function (data) {\r\n if (_lastfileuploaded && _lastfileuploaded.indexOf(\"audio\") > -1)\r\n return '';\r\n else\r\n return '';\r\n },\r\n file_picker_callback: (cb, value, meta) => {\r\n\r\n if (meta.filetype == 'image') {\r\n var input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/*');\r\n input.onchange = () => {\r\n var file = input.files[0];\r\n _lastfileuploaded = file.type;\r\n var reader = new FileReader();\r\n reader.onload = () => {\r\n var id = 'blobid' + (new Date()).getTime();\r\n var blobCache = tinymce.activeEditor.editorUpload.blobCache;\r\n var base64 = reader.result.split(',')[1];\r\n var blobInfo = blobCache.create(id, file, base64);\r\n blobCache.add(blobInfo);\r\n cb(blobInfo.blobUri(), { title: file.name });\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n input.click();\r\n }\r\n\r\n if (meta.filetype == 'media') {\r\n var input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'audio/*');\r\n input.setAttribute('accept', 'video/*');\r\n input.onchange = () => {\r\n\r\n var file = input.files[0];\r\n if (file.size > 1 * 1024 * 1000) {\r\n event.target.files = [];\r\n return false;\r\n }\r\n \r\n _lastfileuploaded = file.type;\r\n var reader = new FileReader();\r\n reader.onload = () => {\r\n var id = 'blobid' + (new Date()).getTime();\r\n var blobCache = tinymce.activeEditor.editorUpload.blobCache;\r\n var base64 = reader.result.split(',')[1];\r\n var blobInfo = blobCache.create(id, file, base64);\r\n blobCache.add(blobInfo);\r\n cb(blobInfo.blobUri());\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n input.click();\r\n }\r\n\r\n }\r\n });\r\n\r\n function findVModelName(vnode) {\r\n return vnode.data.directives.find(function (o) {\r\n return o.name === 'model';\r\n }).expression;\r\n }\r\n\r\n function setVModelValue(value, vnode) {\r\n var prop = findVModelName(vnode)\r\n eval('vnode.context.' + prop + ' = ' + '\\'' + value + '\\'')\r\n }\r\n }\r\n})"],"sourceRoot":""}