{"version":3,"sources":["webpack:///webpack/bootstrap 814f4741f4a75e04c4a4","webpack:///./src/modules/helper/helper.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///external \"jQuery\"","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js","webpack:///./src/zmt_editor/lib/browser.js","webpack:///./src/config.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./src/zmt_editor/lib/dom.js","webpack:///./src/zmt_editor/lib/escape.js","webpack:///./src/modules/helper/browser.js","webpack:///./src/modules/clearFormat/clearFormat.js","webpack:///./src/modules/publish/publish.js","webpack:///./src/modules/draft/draft.js","webpack:///./src/zmt_editor/lib/PluginManager.js","webpack:///./src/zmt_editor/lib/RangeHelper.js","webpack:///./src/zmt_editor/lib/templates.js","webpack:///./src/modules/helper/env.js","webpack:///./src/modules/helper/editor.js","webpack:///./src/modules/helper/net.js","webpack:///./src/modules/helper/cookie.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./src/modules/title/title.js","webpack:///./src/modules/fullscreen/fullscreen.js","webpack:///./src/xeditor.js","webpack:///./ie8.js","webpack:///./src/editor.js","webpack:///./src/zmt_editor/zmt_editor.js","webpack:///./src/zmt_editor/lib/SCEditor.js","webpack:///./src/zmt_editor/lib/defaultCommands.js","webpack:///./src/zmt_editor/lib/defaultOptions.js","webpack:///./src/command/import.js","webpack:///./src/command/h2.js","webpack:///./src/command/image.js","webpack:///./src/modules/helper/dom.js","webpack:///./src/modules/helper/ajaxUpload.js","webpack:///./src/modules/helper/observer.js","webpack:///./src/modules/helper/text.js","webpack:///./src/modules/helper/storage.js","webpack:///./src/modules/helper/time.js","webpack:///./src/modules/helper/jqPlugin.js","webpack:///./src/command/justify.js","webpack:///./src/command/quotation.js","webpack:///./src/modules/insert_stock_img/insert_stock_img.js","webpack:///./src/modules/modal/modal.js","webpack:///./src/modules/modal/modal.hbs","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:////usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/modules/modal/sendOk.hbs","webpack:///./src/modules/insert_stock_img/insert_stock_img.hbs","webpack:///./src/command/face.js","webpack:///./src/modules/face_dialog/face_dialog.js","webpack:///./src/modules/face_dialog/face_dialog.hbs","webpack:///./src/modules/face_dialog/face_config.js","webpack:///./src/modules/draft/draft.hbs","webpack:///./src/modules/title/title.hbs","webpack:///./src/modules/placeholder/index.js","webpack:///./src/modules/helper/log.js","webpack:///./src/command/clear.js","webpack:///./src/command/fullscreen.js","webpack:///./src/command/horizontalrule.js","webpack:///./src/xeditor.hbs"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","env","dom","AjaxUpload","net","observer","text","storage","time","editor","browser","helper","upload","bindBtn","resolve","reject","$","thislink","url","isDevelop","isTest","action","data","cb","self","location","host","onSubmit","file","ext","fileObj","imgCount","getImgCount","alert","test","files","size","showUploading","onComplete","filename","back","setTimeout","hideUploading","backjson","parseJSON","result","console","log","isSelector","str","indexOf","opt","extend","array","value","len","length","escapeExpression","string","toHTML","possible","replace","badChars","escapeChar","isEmpty","isArray","createFrame","frame","_parent","blockParams","params","ids","path","appendContextPath","contextPath","id","escape","&","<",">","\"","'","`","=","chr","obj","arguments","key","toString","isFunction","Array","jQuery","__WEBPACK_AMD_DEFINE_RESULT__","require","match","isUnsupported","editableAttr","USER_AGENT","navigator","userAgent","ie","v","doc","document","div","createElement","all","getElementsByTagName","innerHTML","documentMode","window","atob","undef","ios","isWysiwygSupported","contentEditable","exec","vendor","undefined","style","isRelease","config","STYLE","MAX_HEIGHT","INIT_HEIGHT","MAX_TITLE","ALLOW_IMAGE","errorProps","Exception","message","node","loc","line","column","start","tmp","Error","constructor","this","idx","captureStackTrace","lineNumber","nop","_propertyNameCache","traverse","func","innermostFirst","siblingsOnly","reverse","lastChild","firstChild","next","previousSibling","nextSibling","rTraverse","parseHTML","html","context","ret","merge","childNodes","hasStyling","elm","$elm","is","className","attr","isEmptyObject","convertElement","oldElm","toTagName","child","oldAttrs","attributes","attrsIdx","newElm","ownerDocument","specified","copyCSS","setAttribute","ex","appendChild","parentNode","replaceChild","blockLevelList","canHaveChildren","nodeType","nodeName","toLowerCase","wrapInlines","body","wrapper","isInline","insertBefore","nodeValue","includeCodeAsBlock","tagName","from","to","cssText","fixNesting","parent","getLastInlineParent","rParent","before","extractContents","middle","findCommonAncestor","node1","node2","parents","has","first","getSibling","previous","removeWhiteSpace","root","preserveNewLines","cssWhiteSpace","nextNode","trimStart","css","hasClass","removeChild","startNode","endNode","extract","commonAncestor","startReached","endReached","clone","docFrag","createDocumentFragment","contains","cloneNode","getOffset","pLeft","pTop","offsetLeft","offsetTop","offsetParent","left","top","getStyle","direction","styleValue","elmStyle","camelCase","hasStyle","values","inArray","VALID_SCHEME_REGEX","regex","entities","noQuotes","replacements"," ","\r\n","\r","\n","uriScheme","pathname","split","pop","protocol","join","isIE","msie","mozilla","version","isLowerIE8","textAlignStyle","RegExp","getAlign","htmltag","textAlign","align","getClass","getColor","color","convertSpanToFont","rgb","rgbColor","hexColor","parseInt","slice","onXeditorImgError","e","_zweditor","par_options","options","paragraph","replaceTag","tagname","isreplace","editorObj","getRangeHelper","saveRange","allow_pure_tag","replaceWith","styleAlign","src","imgNeedReplace","imgsrc","canShow","endsWith","alt","keep_paragraph","restoreRange","searchObj","children","each","contents","clearFormatInternal","getBody","draft","clearFormat","btn_publish","title","content","contentIsEmpty","isTrim","textContent","innerText","placeholder","trim","textLen","encodeURIComponent","find","contentIsValid","imgSize","faceSize","publish_empty_filter","remove","publish_check","canNext","val","xeditorTextBlink","checkSpecialWord","imgLen","public_filter_img","getContent","publish_filter","inner","imgReg","publish_success","publish_failed","error_code","me","launchIn","wrapId","that","click","beforeSend","public_before_filter","public_afater_filter","onSend","clean","send","code","yid","success","rc","error","hbs","lastSaveTitle","lastSaveContent","saveKeyPre","saveKey","saveKeyContent","saveKeyTitle","on","getItem","checkHeight","autoSave","changeSaveKey","mode","save","needSaveContent","setItem","saveTime","timeFormat","Date","outdraft","isFullscreen","show","needSaveTitle","load","enforce","delItem","hide","setHeight","plugins","PluginManager","thisObj","base","registeredPlugins","formatSignalName","signal","charAt","toUpperCase","callHandlers","args","returnAtFirst","shift","apply","callOnlyFirst","hasHandler","exists","plugin","isRegistered","register","push","init","deregister","removedPlugin","pluginIdx","removed","splice","destroy","IE_VER","IE_BR_FIX","_nodeToHtml","append","outerText","range","isLeft","remaining","end","startContainer","offset","startOffset","Math","max","substr","min","w","_createMarker","_isOwner","_prepareInput","contentDocument","win","isW3C","getSelection","startMarker","endMarker","insertHTML","endHTML","selectedRange","selectedHtml","insertNode","pasteHTML","returnHtml","$lastChild","$div","removeMarkers","input","commonAncestorContainer","deleteContents","cloneSelected","cloneRange","duplicate","sel","selection","getRangeAt","rangeCount","createRange","setStartBefore","addRange","type","parentElement","hasSelection","cloneContents","htmlText","getFirstBlockParent","insertNodeAt","currentRange","collapse","selectRange","removeMarker","marker","lineHeight","display","insertMarkers","getMarker","getElementById","container","endContainer","collapsed","rng","setEndAfter","compare","clear","select","isCollapsed","createTextRange","moveToElementText","setEndPoint","moveStart","moveEnd","selectOuterText","right","setStart","setEnd","getOuterText","replaceKeyword","keywords","includeAfter","keywordsSorted","longestKeyword","requireWhitespace","keypressChar","sort","a","b","matchPos","startIndex","leftLen","charsLeft","keyword","keywordLen","keywordIdx","whitespaceLen","maxKeyLen","search","rangeA","rangeB","END_TO_END","Range","START_TO_START","comparePoints","removeAllRanges","empty","_templates","toolbarButton","emoticon","fontOpt","sizeOpt","pastetext","table","image","email","link","youtubeMenu","youtube","createHtml","template","isUAT","locationHref","href","maxHeight","updateSize","minHeight","expandToContent","trigger","Event","updateToMaxHeight","height","checkHeightToMax","matches","pLen","SimplePromise","request","successCall","errorCall","jsonp","param","dataType","josnPcbName","promise","jsonpCallback","ajax","xhrFields","withCredentials","res","support","cors","route","realUrl","paramObj","plat","product","origin","sendGubawebapi","pi","isweb","deviceid","prob","cookie","arr","reg","decodeURIComponent","set","domain","exp","strsec","getsec","setTime","getTime","toGMTString","str1","substring","str2","removeCookie","expires","_interopRequireDefault","default","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","VERSION","COMPILER_REVISION","REVISION_CHANGES","1","2","3","4","5","6","7","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","registerHelper","fn","unregisterHelper","registerPartial","partial","unregisterPartial","registerDecorator","unregisterDecorator","launch","maxTitle","titleInputObj","xeditor_title_limit_now","listen_title","count","publish","resizeLock","hasInit","bodyOverflow","fullscreen","canExitFullScreen","onEnterFullScreen","windowH","removeClass","addClass","resize","editorH","width","windowW","offsetX","offsetY","scrollTop","initScreen","onExitFullScreen","off","clearTimeout","onResize","xeditor","ieVersion","ua","descriptor","keys","Function","bind","oThis","TypeError","aArgs","fToBind","fNOP","fBound","concat","filter","fun","t","thisp","seal","String","startsWith","prefix","suffix","commands","zweditor","keypressLock","focus","insert","insertImg","createImage","insertFace","toExitFullscreen","getEditorObj","fTitle","editor_config","emoticonsEnabled","resizeEnabled","toolbar","colors","toolbarContainer","eq","autoExpand","resizeMaxHeight","disableBlockRemove","enablePasteFiltering","face","sceditor","keyCode","getPlaceholder","bindImageEvent","SCEditor","defaultOptions","RangeHelper","regexEscape","escapeEntities","escapeUriScheme","$this","instance","runWithoutWysiwygSupport","jquery","_tmpl","globalWin","globalDoc","$globalWin","$globalDoc","el","$editorContainer","$toolbar","$wysiwygEditor","wysiwygEditor","$wysiwygBody","wysiwygBody","$wysiwygDoc","wysiwygDocument","$sourceEditor","sourceEditor","$dropdown","lastRange","locale","rangeHelper","pluginManager","currentNode","currentBlockNode","currentSelection","isSelectionCheckPending","isRequired","inlineCss","autoUpdateCanceled","replaceEmoticons","handleCommand","initEditor","initPlugins","initLocale","initToolBar","initOptions","initEvents","initCommands","initResize","initEmoticons","getWysiwygDoc","handlePasteEvt","handleKeyDown","handleBackSpace","handleKeyPress","handleFormReset","handleMouseDown","handleEvent","handleDocumentClick","handleWindowResize","updateToolBar","updateActiveButtons","sourceEditorSelectedText","appendNewLine","checkSelectionChanged","checkNodeChanged","autofocus","emoticonsKeyPress","emoticonsCheckWhitespace","currentStyledBlockNode","triggerValueChanged","valueChangedBlur","valueChangedKeyUp","autoUpdate","original","$original","preLoadCache","requireNewLineFix","btnStateHandlers","shortcutHandlers","currentEmoticons","toolbarButtons","opts","isPlainObject","insertAfter","zIndex","editorContainer","removeAttr","startInSourceMode","toggleSourceMode","loaded","readyState","lang","dateFormat","tabIndex","spellcheck","dimensions","open","write","attrs","charset","close","readOnly","contentWindow","rtl","emoticons","CHECK_SELECTION_EVENTS","form","submit","updateOriginal","keypress","keydown","keyup","blur","emoticonsCompat","mousedown","$group","exclude","toolbarExclude","groups","group","commandName","$button","shortcut","command","dispName","_","tooltip","txtExec","toggleClass","addShortcut","state","cmd","forceNewLineAfter","minWidth","maxWidth","mouseMoveFunc","mouseUpFunc","$grip","$cover","endEvents","startX","startY","newX","newY","startWidth","startHeight","origWidth","origHeight","isDragging","resizeMinHeight","resizeMinWidth","resizeMaxWidth","event","changedTouches","pageX","pageY","newHeight","newWidth","resizeWidth","resizeHeight","preventDefault","touches","emoticonsRoot","txtPos","focusEnd","autofocusEnd","sourceMode","setSelectionRange","selectNodeContents","setStartAfter","scrollHeight","dir","disable","inSourceMode","saveWidth","ieBorder","updateStyleCache","outerWidth","outerHeight","saveHeight","maximize","ignoreMaxHeight","currentHeight","padding","documentElement","removeData","createDropDown","menuItem","ieFix","dropDownCss","cssClass","onlyclose","closeDropDown","marginTop","appendTo","stopPropagation","which","wysiwygEditorInsertHtml","endHtml","overrideCodeBlocking","$marker","scrollTo","editorHeight","wysiwygEditorInsertText","endText","insertText","sourceEditorInsertText","currentValue","startPos","selectionStart","endPos","selectionEnd","End","Start","sourceEditorCaret","position","getSourceEditorValue","getWysiwygEditorValue","setSourceEditorValue","setWysiwygEditorValue","convertEmoticons","allowMixed","$tmp","getContentAreaContainer","emoticonCodes","emoticonRegex","more","dropdown","hidden","parts","parsedHtml","emoticonIdx","nodeParent","createTextNode","enable","toggle","caller","execCommand","execParam","executed","commandObj","$parentNode","errorMessage","check","parent$$1","oldNode","newNode","firstBlock","isSource","$btn","stateFn","isDisabled","queryCommandEnabled","queryCommandState","emActiveClass","emClass","$closestTag","br","brParent","originalEvent","defaultPrevented","closest","DUPLICATED_TAGS","requiresNewLine","p1","target","customEvent","events","handler","excludeWysiwyg","excludeSource","unbind","endOffset","keyDown","keyPress","keyUp","nodeChanged","selectionChanged","valueChanged","replacedEmoticon","cachePos","emoticonsCache","curChar","fromCharCode","longestEmoticonCode","prev","previousText","rangeStartContainer","currentBlock","rangeStart","noneWsRegex","map","insertData","styleSheet","SHIFT_KEYS","8","9","0","-",";",",",".","/","\\","[","]","NUMPAD_SHIFT_KEYS","109","110","111","96","97","98","99","100","101","102","103","104","105","character","13","19","20","27","32","33","34","35","36","37","38","39","40","45","46","91","92","93","106","107","112","113","114","115","116","117","118","119","120","121","122","123","144","145","186","187","188","189","190","191","192","219","220","221","222","ctrlKey","metaKey","altKey","shiftKey","removeShortcut","tmpRange","clearBlockFormatting","block","currentHtml","timer","lastHtmlValue","rawValue","lastChar","lastWasSpace","lastWasDelete","triggerNextChar","defaultCommnds","bold","italic","underline","strike","subscript","superscript","center","justify","font","_dropDown","callback","fontIdx","fonts","clickFunc","fontName","fontSize","x","genColor","r","g","colorColumns","_htmlCache","font_color","$current","removeformat","cut","copy","paste","label","bulletlist","orderedlist","indent","startParent","endParent","$firstBlock","parentLists","parentList","firstElementChild","lastElementChild","outdent","rows","cols","row","col","horizontalrule_bak","desc","description","ins","unlink","$anchor","quote","author","createContent","includeMore","startSpace","endSpace","$content","$line","perLine","sqrt","imgStr","handleIdFunc","date","_date","now","year","getYear","month","getMonth","day","getDate","_time","hours","getHours","mins","getMinutes","secs","getSeconds","ltr","print","source","ignore","微笑","大笑","鼓掌","为什么","哭","怒","滴汗","拜神","胜利","亏大了","赚大了","牛","俏皮","傲","好困惑","兴奋","赞","摊手","加油","困顿","想一下","围观","献花","爱心","毛估估","成交","财力","护城河","复盘","买入","卖出","满仓","空仓","抄底","看多","看空","加仓","减仓",":whistling:",":love:","disablePasting","bbcodeTrim","parserOptions","_data","hover","editorHelper","btnImgDelete","imgId","getCursorPosition","pos","Sel","SelLength","getScrollTop","pageYOffset","onDocumentMove","live","imgObj","addEvent","addEventListener","attachEvent","toElement","ele","cls","box","getBoundingClientRect","docElem","clientTop","clientLeft","zoom","bound","clientWidth","pageXOffset","scrollLeft","getUID","fileFromPath","getExt","xhr","getXhr","XMLHttpRequest","ActiveXObject","button","element","_input","_button","_disabled","_submitting","_justClicked","_parentDialog","ui","dialog","parentDialog","_settings","autoSubmit","responseType","closeConnection","hoverClass","onChange","extension","response","_createInput","_rerouteClicks","setData","styles","margin","opacity","cursor","justClicked","dialogOffset","over","offsetWidth","bottom","offsetHeight","clientX","y","clientY","getMouseCoords","setInterval","clearInterval","_createIframe","iframe","settings","_createForm","toDeleteFlag","frames","XMLDocument","prop","observerObj","eventName","observerItemArray","observerItem","item","k","unRegister","searchIndex","arg","getLength","char_length","son_char","encodeURI","getLength2","cutStr","son_str","sub_len","re1","formatUnit","num","flag","abs","temp_value","unit","toFixed","parseFloat","localStorage","hostname","removeItem","fmt","M+","d+","h+","m+","s+","q+","floor","S","getMilliseconds","$1","getFullYear","parseISO8601","dateStringInRange","NaN","setFullYear","getServerTime","xmlHttp","e2","severtime","getResponseHeader","isDealTime","inputtime","servertime","getDay","initServerTime","blinktime","circle","loop","thisobj","Huitab","tabBar","tabCon","class_name","tabEvent","$tab_menu","index","insert_stock_img","_this","img_url","mk","modal","isi_code","isi_market","isi_type","bindSuggest","StockSuggest","header","mt","changeQuoteImg","imgurl","codewithmarket","tips","tipsText","tipsClose","scriptCharset","done","tipsHbs","sendOkHbs","alignCenter","se","sendOk","reSize","Handlebars","compiler","main","depth0","useData","_interopRequireWildcard","newObj","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","create","hb","SafeString","VM","spec","inst","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","inverse","_exception","execIteration","field","last","j","priorKey","conditional","hash","includeZero","level","_decoratorsInline2","_decoratorsInline","props","methodMap","lookupLevel","levelMap","method","_len","_key","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","decorator","main_d","strict","lookup","depths","lambda","current","invokePartial","resolvePartial","compile","compilerOptions","lines","programs","program","declaredBlockParams","programWrapper","wrapProgram","depth","common","nullContext","noop","_setup","initData","useBlockParams","useDepths","executeDecorators","isTop","usePartial","useDecorators","_child","currentPartialBlock","partialBlock","prog","currentDepths","global","$Handlebars","noConflict","eval","faceDialog","defaultFaceConfig","faceConfig","htmlObj","hasShow","btn","curTab","webjson","getScript","unshift","mergeFaceConfig","gbFaceConfig","helperMissing","stack1","alias1","list","alias2","alias3","alias4","lastContentLength","lastContentText","nowText","nowLen","uid","user","after","tag","sec1","selectNode"],"mappings":"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","file":"xeditor.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 814f4741f4a75e04c4a4","//所有helper 文件汇总\r\nvar env = require(\"./env\")\r\nvar dom = require(\"./dom\")\r\nvar AjaxUpload = require('./ajaxUpload')\r\nvar net = require('./net')\r\nvar observer = require('./observer')\r\nvar text = require(\"./text\")\r\nvar storage =require(\"./storage\")\r\nvar time=require(\"./time\")\r\nvar editor = require(\"./editor\")\r\nvar browser = require(\"./browser\")\r\n\r\nrequire(\"./jqPlugin\")\r\n\r\nvar upload = function(bindBtn,resolve, reject) {\r\n var textinput = $(bindBtn);\r\n // loadingTag = $(loadingTag);\r\n gubauploadimgs(textinput, bindBtn);\r\n function gubauploadimgs(thisinput, thislink){ //上传图片\r\n var url = \"http://gbupload.eastmoney.com/filereceive2.aspx\"\r\n if(env.isDevelop||env.isTest){\r\n url = \"http://gbupload.eastmoney.com/FileUploadTest/filereceive.aspx\"\r\n }\r\n new AjaxUpload(thislink, { \r\n action: url,\r\n name: \"uploadfile\",\r\n data: { \"cb\": \"http://\" + self.location.host + \"/upload_callback.aspx\" },\r\n onSubmit: function (file, ext, fileObj) {\r\n // console.log(fileObj)\r\n var imgCount = editor.getImgCount()\r\n if(imgCount>=20){\r\n alert(\"图片数量不能超过20张,请修改后在发!\")\r\n return false\r\n }\r\n if (ext && /^(jpg|jpeg|png|gif)$/.test(ext)) { //ext是后缀名\r\n if(fileObj.files){\r\n var size = fileObj.files[0].size\r\n // console.log(size)\r\n if(size>1024*1024*5){\r\n alert(\"图片大于5M,请重新上传!\");\r\n return false;\t\t\t\t\t\t\t\r\n }\r\n }\r\n dom.showUploading()\r\n return true\r\n } else {\r\n alert(\"不支持上传非图片格式文件!\")\r\n return false\r\n }\r\n },\r\n onComplete: function (filename, back) {\r\n setTimeout(function(){\r\n dom.hideUploading()\r\n },50)\r\n \r\n var backjson = $.parseJSON(back);\r\n if (backjson.result) {\r\n console.log(backjson)\r\n resolve(backjson);\r\n } else {\r\n console.log(backjson);\r\n reject(backjson)\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction isSelector(str){\r\n if(typeof(str)==\"string\"){\r\n if(str.indexOf(\"#\")>=0 || str.indexOf(\".\")>=0){\r\n return true\r\n }else{\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\n\r\n\r\nvar helper = {\r\n // user : user,\r\n // time : time,\r\n // net : net,\r\n // cookie: cookie,\r\n // text: text,\r\n storage: storage,\r\n time:time,\r\n // stock: stock,\r\n // observer: observer,\r\n // validator:validator,\r\n // url:url,\r\n env:env,\r\n dom:dom,\r\n upload:upload,\r\n net:net,\r\n text:text,\r\n observer:observer,\r\n browser:browser,\r\n isSelector:isSelector,\r\n editor:editor,\r\n opt:{} //外部传入的参数\r\n // influence: influence,\r\n // follow:follow,\r\n // ajax_upload:ajax_upload,\r\n // popmsg:popmsg,\r\n // errorCode: errorCode,\r\n // stock: stock\r\n};\r\n\r\nmodule.exports = helper\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/helper.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQ3ZCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRTdCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFtQjtBQUMzQyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQUlNLFVBQVUsR0FKaEIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQW1CLENBQUM7R0FDcEYsQ0FBQztDQUNIO1FBQ08sVUFBVSxHQUFWLFVBQVU7Ozs7O0FBSVgsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFTLEtBQUssRUFBRTtBQUN0RCxTQUFPLEFBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsR0FBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUFHLEtBQUssQ0FBQztDQUNqRyxDQUFDOzs7OztBQUdLLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUdNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUFFLFdBQU8sTUFBTSxDQUFDO0dBQUU7QUFDOUMsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gICAgICBwb3NzaWJsZSA9IC9bJjw+XCInYD1dLztcblxuZnVuY3Rpb24gZXNjYXBlQ2hhcihjaHIpIHtcbiAgcmV0dXJuIGVzY2FwZVtjaHJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKG9iai8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgfTtcbn1cbmV4cG9ydCB7aXNGdW5jdGlvbn07XG4vKiBlc2xpbnQtZW5hYmxlIGZ1bmMtc3R5bGUgKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpID8gdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XScgOiBmYWxzZTtcbn07XG5cbi8vIE9sZGVyIElFIHZlcnNpb25zIGRvIG5vdCBkaXJlY3RseSBzdXBwb3J0IGluZGV4T2Ygc28gd2UgbXVzdCBpbXBsZW1lbnQgb3VyIG93biwgc2FkbHkuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkgeyByZXR1cm4gc3RyaW5nOyB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShiYWRDaGFycywgZXNjYXBlQ2hhcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKSB7XG4gIGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyYW1lKG9iamVjdCkge1xuICBsZXQgZnJhbWUgPSBleHRlbmQoe30sIG9iamVjdCk7XG4gIGZyYW1lLl9wYXJlbnQgPSBvYmplY3Q7XG4gIHJldHVybiBmcmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJsb2NrUGFyYW1zKHBhcmFtcywgaWRzKSB7XG4gIHBhcmFtcy5wYXRoID0gaWRzO1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kQ29udGV4dFBhdGgoY29udGV4dFBhdGgsIGlkKSB7XG4gIHJldHVybiAoY29udGV4dFBhdGggPyBjb250ZXh0UGF0aCArICcuJyA6ICcnKSArIGlkO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/utils.js\n// module id = 1\n// module chunks = 0","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 2\n// module chunks = 0","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\n// module id = 3\n// module chunks = 0","define(function (require, exports) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\n\tvar USER_AGENT = navigator.userAgent;\n\n\t/**\n\t * Detects the version of IE is being used if any.\n\t *\n\t * Will be the IE version number or undefined if the\n\t * browser is not IE.\n\t *\n\t * Source: https://gist.github.com/527683 with extra code\n\t * for IE 10 & 11 detection.\n\t *\n\t * @function\n\t * @name ie\n\t * @type {int}\n\t */\n\texports.ie = (function () {\n\t\tvar\tundef,\n\t\t\tv = 3,\n\t\t\tdoc = document,\n\t\t\tdiv = doc.createElement('div'),\n\t\t\tall = div.getElementsByTagName('i');\n\n\t\tdo {\n\t\t\tdiv.innerHTML = '';\n\t\t} while (all[0]);\n\n\t\t// Detect IE 10 as it doesn't support conditional comments.\n\t\tif ((doc.documentMode && doc.all && window.atob)) {\n\t\t\tv = 10;\n\t\t}\n\n\t\t// Detect IE 11\n\t\tif (v === 4 && doc.documentMode) {\n\t\t\tv = 11;\n\t\t}\n\n\t\treturn v > 4 ? v : undef;\n\t}());\n\n\t/**\n\t *

Detects if the browser is iOS

\n\t *\n\t *

Needed to fix iOS specific bugs/

\n\t *\n\t * @function\n\t * @name ios\n\t * @memberOf jQuery.sceditor\n\t * @type {Boolean}\n\t */\n\texports.ios = /iPhone|iPod|iPad| wosbrowser\\//i.test(USER_AGENT);\n\n\t/**\n\t * If the browser supports WYSIWYG editing (e.g. older mobile browsers).\n\t *\n\t * @function\n\t * @name isWysiwygSupported\n\t * @return {Boolean}\n\t */\n\texports.isWysiwygSupported = (function () {\n\t\tvar\tmatch, isUnsupported, undef,\n\t\t\teditableAttr = $('

')[0].contentEditable;\n\n\t\t// Check if the contenteditable attribute is supported\n\t\tif (editableAttr === undef || editableAttr === 'inherit') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// I think blackberry supports contentEditable or will at least\n\t\t// give a valid value for the contentEditable detection above\n\t\t// so it isn't included in the below tests.\n\n\t\t// I hate having to do UA sniffing but some mobile browsers say they\n\t\t// support contentediable when it isn't usable, i.e. you can't enter\n\t\t// text.\n\t\t// This is the only way I can think of to detect them which is also how\n\t\t// every other editor I've seen deals with this issue.\n\n\t\t// Exclude Opera mobile and mini\n\t\tisUnsupported = /Opera Mobi|Opera Mini/i.test(USER_AGENT);\n\n\t\tif (/Android/i.test(USER_AGENT)) {\n\t\t\tisUnsupported = true;\n\n\t\t\tif (/Safari/.test(USER_AGENT)) {\n\t\t\t\t// Android browser 534+ supports content editable\n\t\t\t\t// This also matches Chrome which supports content editable too\n\t\t\t\tmatch = /Safari\\/(\\d+)/.exec(USER_AGENT);\n\t\t\t\tisUnsupported = (!match || !match[1] ? true : match[1] < 534);\n\t\t\t}\n\t\t}\n\n\t\t// The current version of Amazon Silk supports it, older versions didn't\n\t\t// As it uses webkit like Android, assume it's the same and started\n\t\t// working at versions >= 534\n\t\tif (/ Silk\\//i.test(USER_AGENT)) {\n\t\t\tmatch = /AppleWebKit\\/(\\d+)/.exec(USER_AGENT);\n\t\t\tisUnsupported = (!match || !match[1] ? true : match[1] < 534);\n\t\t}\n\n\t\t// iOS 5+ supports content editable\n\t\tif (exports.ios) {\n\t\t\t// Block any version <= 4_x(_x)\n\t\t\tisUnsupported = /OS [0-4](_\\d)+ like Mac/i.test(USER_AGENT);\n\t\t}\n\n\t\t// FireFox does support WYSIWYG on mobiles so override\n\t\t// any previous value if using FF\n\t\tif (/Firefox/i.test(USER_AGENT)) {\n\t\t\tisUnsupported = false;\n\t\t}\n\n\t\tif (/OneBrowser/i.test(USER_AGENT)) {\n\t\t\tisUnsupported = false;\n\t\t}\n\n\t\t// UCBrowser works but doesn't give a unique user agent\n\t\tif (navigator.vendor === 'UCWEB') {\n\t\t\tisUnsupported = false;\n\t\t}\n\n\t\treturn !isUnsupported;\n\t}());\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/browser.js\n// module id = 4\n// module chunks = 0","var helper = require(\"./modules/helper/helper\")\r\nvar style = \"//gubawebcs.eastmoney.com/xeditor/editor_frame.css\"\r\n// console.log(helper)\r\nif(helper.env.isRelease){\r\n style = \"//gbfek.dfcfw.com/project/xeditor/editor_frame.css\"\r\n}\r\nvar config = {\r\n STYLE:style,\r\n MAX_HEIGHT:300,\r\n INIT_HEIGHT:130,\r\n MAX_TITLE:40,\r\n ALLOW_IMAGE:0, //是否允许外链图片复制\r\n}\r\nhelper.config = config\r\nmodule.exports = config\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/config.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n column = undefined;\n if (loc) {\n line = loc.start.line;\n column = loc.start.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n } else {\n this.column = column;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsSUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFbkcsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDdEIsSUFBSSxZQUFBO01BQ0osTUFBTSxZQUFBLENBQUM7QUFDWCxNQUFJLEdBQUcsRUFBRTtBQUNQLFFBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUN0QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7O0FBRTFCLFdBQU8sSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7R0FDeEM7O0FBRUQsTUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzs7O0FBRzFELE9BQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0FBQ2hELFFBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDOUM7OztBQUdELE1BQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO0FBQzNCLFNBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsTUFBSTtBQUNGLFFBQUksR0FBRyxFQUFFO0FBQ1AsVUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Ozs7QUFJdkIsVUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO0FBQ3pCLGNBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtBQUNwQyxlQUFLLEVBQUUsTUFBTTtBQUNiLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7T0FDdEI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgZXJyb3JQcm9wcyA9IFsnZGVzY3JpcHRpb24nLCAnZmlsZU5hbWUnLCAnbGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbjtcbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4Y2VwdGlvbjtcbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/exception.js\n// module id = 6\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\tvar browser = require('./browser');\n\n\t/**\n\t * Node type constant for element nodes\n\t *\n\t * @type {number}\n\t */\n\tvar ELEMENT_NODE = 1;\n\n\t/**\n\t * Node type constant for text nodes\n\t *\n\t * @type {number}\n\t */\n\tvar TEXT_NODE = 3;\n\t\t\n\tvar _propertyNameCache = {};\n\n\tvar dom = {\n\t\t/**\n\t\t * Loop all child nodes of the passed node\n\t\t *\n\t\t * The function should accept 1 parameter being the node.\n\t\t * If the function returns false the loop will be exited.\n\t\t *\n\t\t * @param {HTMLElement} node\n\t\t * @param {Function} func Callback which is called with every\n\t\t * child node as the first argument.\n\t\t * @param {bool} innermostFirst If the innermost node should be passed\n\t\t * to the function before it's parents.\n\t\t * @param {bool} siblingsOnly If to only traverse the nodes siblings\n\t\t * @param {bool} reverse If to traverse the nodes in reverse\n\t\t */\n\t\t/*jshint maxparams: false*/\n\t\ttraverse: function (node, func, innermostFirst, siblingsOnly, reverse) {\n\t\t\tif (node) {\n\t\t\t\tnode = reverse ? node.lastChild : node.firstChild;\n\n\t\t\t\twhile (node) {\n\t\t\t\t\tvar next = reverse ?\n\t\t\t\t\t\tnode.previousSibling :\n\t\t\t\t\t\tnode.nextSibling;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(!innermostFirst && func(node) === false) ||\n\t\t\t\t\t\t(!siblingsOnly && dom.traverse(\n\t\t\t\t\t\t\tnode, func, innermostFirst, siblingsOnly, reverse\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\t(innermostFirst && func(node) === false)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// move to next child\n\t\t\t\t\tnode = next;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Like traverse but loops in reverse\n\t\t * @see traverse\n\t\t */\n\t\trTraverse: function (node, func, innermostFirst, siblingsOnly) {\n\t\t\tthis.traverse(node, func, innermostFirst, siblingsOnly, true);\n\t\t},\n\n\t\t/**\n\t\t * Parses HTML\n\t\t *\n\t\t * @param {String} html\n\t\t * @param {Document} context\n\t\t * @since 1.4.4\n\t\t * @return {Array}\n\t\t */\n\t\tparseHTML: function (html, context) {\n\t\t\tvar\tret = [],\n\t\t\t\ttmp = (context || document).createElement('div');\n\n\t\t\ttmp.innerHTML = html;\n\n\t\t\t$.merge(ret, tmp.childNodes);\n\n\t\t\treturn ret;\n\t\t},\n\n\t\t/**\n\t\t * Checks if an element has any styling.\n\t\t *\n\t\t * It has styling if it is not a plain

or

or\n\t\t * if it has a class, style attribute or data.\n\t\t *\n\t\t * @param {HTMLElement} elm\n\t\t * @return {Boolean}\n\t\t * @since 1.4.4\n\t\t */\n\t\thasStyling: function (elm) {\n\t\t\tvar $elm = $(elm);\n\n\t\t\treturn elm && (!$elm.is('p,div') || elm.className ||\n\t\t\t\t$elm.attr('style') || !$.isEmptyObject($elm.data()));\n\t\t},\n\n\t\t/**\n\t\t * Converts an element from one type to another.\n\t\t *\n\t\t * For example it can convert the element to \n\t\t *\n\t\t * @param {HTMLElement} oldElm\n\t\t * @param {String} toTagName\n\t\t * @return {HTMLElement}\n\t\t * @since 1.4.4\n\t\t */\n\t\tconvertElement: function (oldElm, toTagName) {\n\t\t\tvar\tchild, attr,\n\t\t\t\toldAttrs = oldElm.attributes,\n\t\t\t\tattrsIdx = oldAttrs.length,\n\t\t\t\tnewElm = oldElm.ownerDocument.createElement(toTagName);\n\n\t\t\twhile (attrsIdx--) {\n\t\t\t\tattr = oldAttrs[attrsIdx];\n\n\t\t\t\t// IE < 8 returns all possible attributes instead of just\n\t\t\t\t// the specified ones so have to check it is specified.\n\t\t\t\tif (!browser.ie || attr.specified) {\n\t\t\t\t\t// IE < 8 doesn't return the CSS for the style attribute\n\t\t\t\t\t// so must copy it manually\n\t\t\t\t\tif (browser.ie < 8 && /style/i.test(attr.name)) {\n\t\t\t\t\t\tdom.copyCSS(oldElm, newElm);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Some browsers parse invalid attributes names like\n\t\t\t\t\t\t// 'size\"2' which throw an exception when set, just\n\t\t\t\t\t\t// ignore these.\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tnewElm.setAttribute(attr.name, attr.value);\n\t\t\t\t\t\t} catch (ex) {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twhile ((child = oldElm.firstChild)) {\n\t\t\t\tnewElm.appendChild(child);\n\t\t\t}\n\n\t\t\toldElm.parentNode.replaceChild(newElm, oldElm);\n\n\t\t\treturn newElm;\n\t\t},\n\n\t\t/**\n\t\t * List of block level elements separated by bars (|)\n\t\t * @type {string}\n\t\t */\n\t\tblockLevelList: '|body|hr|p|div|h1|h2|h3|h4|h5|h6|address|pre|form|' +\n\t\t\t'table|tbody|thead|tfoot|th|tr|td|li|ol|ul|blockquote|center|',\n\n\t\t/**\n\t\t * List of elements that do not allow children separated by bars (|)\n\t\t *\n\t\t * @param {Node} node\n\t\t * @return {bool}\n\t\t * @since 1.4.5\n\t\t */\n\t\tcanHaveChildren: function (node) {\n\t\t\t// 1 = Element\n\t\t\t// 9 = Document\n\t\t\t// 11 = Document Fragment\n\t\t\tif (!/11?|9/.test(node.nodeType)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// List of empty HTML tags separated by bar (|) character.\n\t\t\t// Source: http://www.w3.org/TR/html4/index/elements.html\n\t\t\t// Source: http://www.w3.org/TR/html5/syntax.html#void-elements\n\t\t\treturn ('|iframe|area|base|basefont|br|col|frame|hr|img|input|wbr' +\n\t\t\t\t'|isindex|link|meta|param|command|embed|keygen|source|track|' +\n\t\t\t\t'object|').indexOf('|' + node.nodeName.toLowerCase() + '|') < 0;\n\t\t},\n\n\t\t/**\n\t\t * edit by ling\n\t\t * Wrap inlines that are in the root in paragraphs.\n\t\t *\n\t\t * @param {HTMLBodyElement} body\n\t\t * @param {Document} doc\n\t\t * @private\n\t\t */\n\t\twrapInlines: function(body, doc) {\n\t\t\tvar wrapper;\n\n\t\t\tdom.traverse(body, function (node) {\n\t\t\t\tif (dom.isInline(node, true)) {\n\t\t\t\t\tif (!wrapper) {\n\t\t\t\t\t\twrapper = doc.createElement('p', {}, doc);\n\t\t\t\t\t\tnode.parentNode.insertBefore(wrapper, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.nodeType !== TEXT_NODE || node.nodeValue !== '') {\n\t\t\t\t\t\twrapper.appendChild(node);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twrapper = null;\n\t\t\t\t}\n\t\t\t}, false, true);\n\t\t},\n\n\t\t/**\n\t\t * Checks if an element is inline\n\t\t *\n\t\t * @return {bool}\n\t\t */\n\t\tisInline: function (elm, includeCodeAsBlock) {\n\t\t\tvar tagName,\n\t\t\t\tnodeType = (elm || {}).nodeType || 3;\n\n\t\t\tif (nodeType !== 1) {\n\t\t\t\treturn nodeType === 3;\n\t\t\t}\n\n\t\t\ttagName = elm.tagName.toLowerCase();\n\n\t\t\tif (tagName === 'code') {\n\t\t\t\treturn !includeCodeAsBlock;\n\t\t\t}\n\n\t\t\treturn dom.blockLevelList.indexOf('|' + tagName + '|') < 0;\n\t\t},\n\n\t\t/**\n\t\t *

Copys the CSS from 1 node to another.

\n\t\t *\n\t\t *

Only copies CSS defined on the element e.g. style attr.

\n\t\t *\n\t\t * @param {HTMLElement} from\n\t\t * @param {HTMLElement} to\n\t\t */\n\t\tcopyCSS: function (from, to) {\n\t\t\tto.style.cssText = from.style.cssText + to.style.cssText;\n\t\t},\n\n\t\t/**\n\t\t * Fixes block level elements inside in inline elements.\n\t\t *\n\t\t * @param {HTMLElement} node\n\t\t */\n\t\tfixNesting: function (node) {\n\t\t\tvar\tgetLastInlineParent = function (node) {\n\t\t\t\twhile (dom.isInline(node.parentNode, true)) {\n\t\t\t\t\tnode = node.parentNode;\n\t\t\t\t}\n\n\t\t\t\treturn node;\n\t\t\t};\n\n\t\t\tdom.traverse(node, function (node) {\n\t\t\t\t// Any blocklevel element inside an inline element needs fixing.\n\t\t\t\tif (node.nodeType === 1 && !dom.isInline(node, true) &&\n\t\t\t\t\tdom.isInline(node.parentNode, true)) {\n\t\t\t\t\tvar\tparent = getLastInlineParent(node),\n\t\t\t\t\t\trParent = parent.parentNode,\n\t\t\t\t\t\tbefore = dom.extractContents(parent, node),\n\t\t\t\t\t\tmiddle = node;\n\n\t\t\t\t\t// copy current styling so when moved out of the parent\n\t\t\t\t\t// it still has the same styling\n\t\t\t\t\tdom.copyCSS(parent, middle);\n\n\t\t\t\t\trParent.insertBefore(before, parent);\n\t\t\t\t\trParent.insertBefore(middle, parent);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Finds the common parent of two nodes\n\t\t *\n\t\t * @param {HTMLElement} node1\n\t\t * @param {HTMLElement} node2\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tfindCommonAncestor: function (node1, node2) {\n\t\t\t// Not as fast as making two arrays of parents and comparing\n\t\t\t// but is a lot smaller and as it's currently only used with\n\t\t\t// fixing invalid nesting it doesn't need to be very fast\n\t\t\treturn $(node1).parents().has($(node2)).first();\n\t\t},\n\n\t\tgetSibling: function (node, previous) {\n\t\t\tif (!node) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (previous ? node.previousSibling : node.nextSibling) ||\n\t\t\t\tdom.getSibling(node.parentNode, previous);\n\t\t},\n\n\t\t/**\n\t\t * Removes unused whitespace from the root and all it's children\n\t\t *\n\t\t * @name removeWhiteSpace^1\n\t\t * @param {HTMLElement} root\n\t\t */\n\t\t/**\n\t\t * Removes unused whitespace from the root and all it's children.\n\t\t *\n\t\t * If preserveNewLines is true, new line characters will not be removed\n\t\t *\n\t\t * @name removeWhiteSpace^2\n\t\t * @param {HTMLElement} root\n\t\t * @param {boolean} preserveNewLines\n\t\t * @since 1.4.3\n\t\t */\n\t\tremoveWhiteSpace: function (root, preserveNewLines) {\n\t\t\tvar\tnodeValue, nodeType, next, previous, previousSibling,\n\t\t\t\tcssWhiteSpace, nextNode, trimStart,\n\t\t\t\tgetSibling = dom.getSibling,\n\t\t\t\tisInline = dom.isInline,\n\t\t\t\tnode = root.firstChild;\n\n\t\t\twhile (node) {\n\t\t\t\tnextNode = node.nextSibling;\n\t\t\t\tnodeValue = node.nodeValue;\n\t\t\t\tnodeType = node.nodeType;\n\n\t\t\t\t// 1 = element\n\t\t\t\tif (nodeType === 1 && node.firstChild) {\n\t\t\t\t\tcssWhiteSpace = $(node).css('whiteSpace');\n\n\t\t\t\t\t// Skip all pre & pre-wrap with any vendor prefix\n\t\t\t\t\tif (!/pre(\\-wrap)?$/i.test(cssWhiteSpace)) {\n\t\t\t\t\t\tdom.removeWhiteSpace(\n\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t/line$/i.test(cssWhiteSpace)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 3 = textnode\n\t\t\t\tif (nodeType === 3 && nodeValue) {\n\t\t\t\t\tnext = getSibling(node);\n\t\t\t\t\tprevious = getSibling(node, true);\n\t\t\t\t\ttrimStart = false;\n\n\t\t\t\t\twhile ($(previous).hasClass('sceditor-ignore')) {\n\t\t\t\t\t\tprevious = getSibling(previous, true);\n\t\t\t\t\t}\n\t\t\t\t\t// If previous sibling isn't inline or is a textnode that\n\t\t\t\t\t// ends in whitespace, time the start whitespace\n\t\t\t\t\tif (isInline(node) && previous) {\n\t\t\t\t\t\tpreviousSibling = previous;\n\n\t\t\t\t\t\twhile (previousSibling.lastChild) {\n\t\t\t\t\t\t\tpreviousSibling = previousSibling.lastChild;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttrimStart = previousSibling.nodeType === 3 ?\n\t\t\t\t\t\t\t/[\\t\\n\\r ]$/.test(previousSibling.nodeValue) :\n\t\t\t\t\t\t\t!isInline(previousSibling);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Clear zero width spaces\n\t\t\t\t\tnodeValue = nodeValue.replace(/\\u200B/g, '');\n\n\t\t\t\t\t// Strip leading whitespace\n\t\t\t\t\tif (!previous || !isInline(previous) || trimStart) {\n\t\t\t\t\t\tnodeValue = nodeValue.replace(\n\t\t\t\t\t\t\tpreserveNewLines ? /^[\\t ]+/ : /^[\\t\\n\\r ]+/,\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Strip trailing whitespace\n\t\t\t\t\tif (!next || !isInline(next)) {\n\t\t\t\t\t\tnodeValue = nodeValue.replace(\n\t\t\t\t\t\t\tpreserveNewLines ? /[\\t ]+$/ : /[\\t\\n\\r ]+$/,\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove empty text nodes\n\t\t\t\t\tif (!nodeValue.length) {\n\t\t\t\t\t\troot.removeChild(node);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.nodeValue = nodeValue.replace(\n\t\t\t\t\t\t\tpreserveNewLines ? /[\\t ]+/g : /[\\t\\n\\r ]+/g,\n\t\t\t\t\t\t\t' '\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnode = nextNode;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Extracts all the nodes between the start and end nodes\n\t\t *\n\t\t * @param {HTMLElement} startNode\tThe node to start extracting at\n\t\t * @param {HTMLElement} endNode\t\tThe node to stop extracting at\n\t\t * @return {DocumentFragment}\n\t\t */\n\t\textractContents: function (startNode, endNode) {\n\t\t\tvar\textract,\n\t\t\t\tcommonAncestor = dom\n\t\t\t\t\t.findCommonAncestor(startNode, endNode)\n\t\t\t\t\t.get(0),\n\t\t\t\tstartReached = false,\n\t\t\t\tendReached = false;\n\n\t\t\textract = function (root) {\n\t\t\t\tvar clone,\n\t\t\t\t\tdocFrag = startNode.ownerDocument.createDocumentFragment();\n\n\t\t\t\tdom.traverse(root, function (node) {\n\t\t\t\t\t// if end has been reached exit loop\n\t\t\t\t\tif (endReached || node === endNode) {\n\t\t\t\t\t\tendReached = true;\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node === startNode) {\n\t\t\t\t\t\tstartReached = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if the start has been reached and this elm contains\n\t\t\t\t\t// the end node then clone it\n\t\t\t\t\t// if this node contains the start node then add it\n\t\t\t\t\tif ($.contains(node, startNode) ||\n\t\t\t\t\t\t(startReached && $.contains(node, endNode))) {\n\t\t\t\t\t\tclone = node.cloneNode(false);\n\n\t\t\t\t\t\tclone.appendChild(extract(node));\n\t\t\t\t\t\tdocFrag.appendChild(clone);\n\n\t\t\t\t\t// otherwise move it if its parent isn't already part of it\n\t\t\t\t\t} else if (startReached && !$.contains(docFrag, node)) {\n\t\t\t\t\t\tdocFrag.appendChild(node);\n\t\t\t\t\t}\n\t\t\t\t}, false);\n\n\t\t\t\treturn docFrag;\n\t\t\t};\n\n\t\t\treturn extract(commonAncestor);\n\t\t},\n\n\t\t/**\n\t\t * Gets the offset position of an element\n\t\t *\n\t\t * @param {HTMLElement} obj\n\t\t * @return {Object} An object with left and top properties\n\t\t */\n\t\tgetOffset: function (obj) {\n\t\t\tvar\tpLeft = 0,\n\t\t\t\tpTop = 0;\n\n\t\t\twhile (obj) {\n\t\t\t\tpLeft += obj.offsetLeft;\n\t\t\t\tpTop += obj.offsetTop;\n\t\t\t\tobj = obj.offsetParent;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tleft: pLeft,\n\t\t\t\ttop: pTop\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Gets the value of a CSS property from the elements style attribute\n\t\t *\n\t\t * @param {HTMLElement} elm\n\t\t * @param {String} property\n\t\t * @return {String}\n\t\t */\n\t\tgetStyle: function (elm, property) {\n\t\t\tvar\t$elm, direction, styleValue,\n\t\t\t\telmStyle = elm.style;\n\n\t\t\tif (!elmStyle) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!_propertyNameCache[property]) {\n\t\t\t\t_propertyNameCache[property] = $.camelCase(property);\n\t\t\t}\n\n\t\t\tproperty = _propertyNameCache[property];\n\t\t\tstyleValue = elmStyle[property];\n\n\t\t\t// Add an exception for text-align\n\t\t\tif ('textAlign' === property) {\n\t\t\t\t$elm = $(elm);\n\t\t\t\tdirection = elmStyle.direction;\n\t\t\t\tstyleValue = styleValue || $elm.css(property);\n\n\t\t\t\tif ($elm.parent().css(property) === styleValue ||\n\t\t\t\t\t$elm.css('display') !== 'block' ||\n\t\t\t\t\t$elm.is('hr') || $elm.is('th')) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n// check all works with changes and merge with prev?\n\t\t\t\t// IE changes text-align to the same as the current direction\n\t\t\t\t// so skip unless its not the same\n\t\t\t\tif ((/right/i.test(styleValue) && direction === 'rtl') ||\n\t\t\t\t\t(/left/i.test(styleValue) && direction === 'ltr')) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn styleValue;\n\t\t},\n\n\t\t/**\n\t\t * Tests if an element has a style.\n\t\t *\n\t\t * If values are specified it will check that the styles value\n\t\t * matches one of the values\n\t\t *\n\t\t * @param {HTMLElement} elm\n\t\t * @param {String} property\n\t\t * @param {String|Array} values\n\t\t * @return {Boolean}\n\t\t */\n\t\thasStyle: function (elm, property, values) {\n\t\t\tvar styleValue = dom.getStyle(elm, property);\n\n\t\t\tif (!styleValue) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn !values || styleValue === values ||\n\t\t\t\t($.isArray(values) && $.inArray(styleValue, values) > -1);\n\t\t}\n\t};\n\n\treturn dom;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/dom.js\n// module id = 7\n// module chunks = 0","define(function (require, exports) {\n\t'use strict';\n\n\tvar VALID_SCHEME_REGEX =\n\t\t/^(?:https?|s?ftp|mailto|spotify|skype|ssh|teamspeak|tel):|(?:\\/\\/)/i;\n\n\t/**\n\t * Escapes a string so it's safe to use in regex\n\t *\n\t * @param {String} str\n\t * @return {String}\n\t * @name regex\n\t */\n\texports.regex = function (str) {\n\t\treturn str.replace(/([\\-.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n\t};\n\n\t/**\n\t * Escapes all HTML entities in a string\n\t *\n\t * If noQuotes is set to false, all single and double\n\t * quotes will also be escaped\n\t *\n\t * @param {String} str\n\t * @param {Boolean} [noQuotes=false]\n\t * @return {String}\n\t * @name entities\n\t * @since 1.4.1\n\t */\n\texports.entities = function (str, noQuotes) {\n\t\tif (!str) {\n\t\t\treturn str;\n\t\t}\n\n\t\tvar replacements = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t' ': '  ',\n\t\t\t'\\r\\n': '\\n',\n\t\t\t'\\r': '\\n',\n\t\t\t'\\n': '
'\n\t\t};\n\n\t\tif (noQuotes !== false) {\n\t\t\treplacements['\"'] = '"';\n\t\t\treplacements['\\''] = ''';\n\t\t\treplacements['`'] = '`';\n\t\t}\n\n\t\tstr = str.replace(/ {2}|\\r\\n|[&<>\\r\\n'\"`]/g, function (match) {\n\t\t\treturn replacements[match] || match;\n\t\t});\n\n\t\treturn str;\n\t};\n\n\t/**\n\t * Escape URI scheme.\n\t *\n\t * Appends the current URL to a url if it has a scheme that is not:\n\t *\n\t * http\n\t * https\n\t * sftp\n\t * ftp\n\t * mailto\n\t * spotify\n\t * skype\n\t * ssh\n\t * teamspeak\n\t * tel\n\t * //\n\t *\n\t * **IMPORTANT**: This does not escape any HTML in a url, for\n\t * that use the escape.entities() method.\n\t *\n\t * @param {String} url\n\t * @return {String}\n\t * @name escapeUriScheme\n\t * @memberOf jQuery.sceditor\n\t * @since 1.4.5\n\t */\n\texports.uriScheme = function (url) {\n\t\t/*jshint maxlen:false*/\n\t\tvar\tpath,\n\t\t\t// If there is a : before a / then it has a scheme\n\t\t\thasScheme = /^[^\\/]*:/i,\n\t\t\tlocation = window.location;\n\n\t\t// Has no scheme or a valid scheme\n\t\tif ((!url || !hasScheme.test(url)) || VALID_SCHEME_REGEX.test(url)) {\n\t\t\treturn url;\n\t\t}\n\n\t\tpath = location.pathname.split('/');\n\t\tpath.pop();\n\n\t\treturn location.protocol + '//' +\n\t\t\tlocation.host +\n\t\t\tpath.join('/') + '/' +\n\t\t\turl;\n\t};\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/escape.js\n// module id = 8\n// module chunks = 0","function isIE(){\r\n if($.browser.msie || ($.browser.mozilla && $.browser.version<=11)){\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nfunction isLowerIE8(){\r\n\tif(isIE() && $.browser.version<=8.0){\r\n\t\treturn true\r\n\t}else{\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\nmodule.exports = {\r\n isIE:isIE,\r\n isLowerIE8:isLowerIE8\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/browser.js\n// module id = 9\n// module chunks = 0","var helper = require(\"../helper/helper\")\r\nvar config = require('../../config')\r\n/**\r\n * 清除格式\r\n * 要依赖jquery\r\n */\r\nvar textAlignStyle = new RegExp('(left|center|right)');\r\nfunction getAlign(htmltag){\r\n var style=\"\"\r\n if(textAlignStyle.test(htmltag.style.textAlign)){\r\n style = ' style=\"text-align:'+htmltag.style.textAlign+'\"'\r\n }\r\n // IE是通过align属性进行居中等操作\r\n if(textAlignStyle.test(htmltag.align)){\r\n style = ' style=\"text-align:'+htmltag.align+'\"'\r\n }\r\n return style\r\n}\r\nfunction getClass(htmltag){\r\n var className=\"\"\r\n if(htmltag.className){\r\n className=\"class='\"+htmltag.className+\"'\"\r\n }\r\n return className\r\n}\r\n\r\nfunction colorRGB2Hex(color) {\r\n var rgb = color.split(',');\r\n var r = parseInt(rgb[0].split('(')[1]);\r\n var g = parseInt(rgb[1]);\r\n var b = parseInt(rgb[2].split(')')[0]);\r\n \r\n var hex = \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\r\n return hex;\r\n}\r\nfunction getColor(htmltag){\r\n var color=htmltag.color\r\n if(htmltag.color){\r\n color=\"color='\"+htmltag.color+\"'\"\r\n }else{\r\n color=\"\"\r\n }\r\n return color\r\n}\r\nfunction convertSpanToFont(htmltag){\r\n var rgbColor = $(htmltag).css(\"color\")\r\n var hexColor = \"#000000\"\r\n if(rgbColor){\r\n hexColor = colorRGB2Hex(rgbColor)\r\n }\r\n if(hexColor && hexColor!=\"#000000\"){\r\n htmltag.color = hexColor\r\n }\r\n return htmltag\r\n}\r\n\r\nwindow.onXeditorImgError=function(e){\r\n\r\n}\r\n\r\nfunction clearFormatInternal(par_options){\r\n var defaultoptions = {\r\n\r\n };\r\n var options = $.extend(defaultoptions, par_options);\r\n var paragraph = ['div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\r\n \r\n function replaceTag(htmltag) {\r\n // console.log(htmltag)\r\n // console.log(htmltag.align)\r\n var tagname = htmltag.tagName.toLowerCase();\r\n var isreplace = false;\r\n var style = '';//属性\r\n // return;\r\n helper.editor.editorObj.getRangeHelper().saveRange();\r\n //过滤指定纯净标签\r\n for (var i = 0; i < options.allow_pure_tag.length; i++) {\r\n if(tagname == options.allow_pure_tag[i]){\r\n // console.log(tagname);\r\n //console.info(htmltag.innerHTML);\r\n if (tagname == 'br') {\r\n $(htmltag).replaceWith('<' + tagname + '>');\r\n }\r\n else{\r\n if(tagname == 'span'){\r\n var newFonttag = convertSpanToFont(htmltag)\r\n // console.log(htmltag,newFonttag.tagName)\r\n }\r\n var styleAlign = getAlign(htmltag)\r\n var className = getClass(htmltag)\r\n var color = getColor(htmltag)\r\n if(color && color!=\"\"){\r\n tagname = \"font\"\r\n }\r\n // console.log(color)\r\n $(htmltag).replaceWith('<' + tagname + styleAlign+' '+className+' '+color+'>' + htmltag.innerHTML + '');\r\n }\r\n // console.log(htmltag)\r\n // console.info($(htmltag).html());\r\n //console.info(111);\r\n isreplace = true;\r\n break;\r\n }\r\n }\r\n \r\n// console.log(isreplace)\r\n //font处理\r\n if(!isreplace && tagname == 'font' && htmltag.color != undefined){\r\n var colorreg = new RegExp('(#000000|#FF0000|#009900|#196199|#00B7EF)','gi');\r\n if(colorreg.test(htmltag.color)){\r\n $(htmltag).replaceWith('' + htmltag.innerHTML + '');\r\n isreplace = true;\r\n }\r\n }\r\n\r\n \r\n \r\n //图片处理\r\n \r\n if(!isreplace && tagname == 'img' && htmltag.src != undefined){\r\n var imgNeedReplace = true\r\n for (var i = 0; i < options.imgsrc.length; i++) {\r\n console.log(config.ALLOW_IMAGE)\r\n if(config.ALLOW_IMAGE==1){\r\n var src = htmltag.src.toLowerCase()\r\n var canShow = false\r\n \r\n if(src.indexOf(\"eastmoney\")>=0 || src.indexOf(\".dfcfw.com\")>=0){\r\n canShow = true\r\n }\r\n else if(helper.text.endsWith(src,\".gif\") || helper.text.endsWith(src,\".jpg\") || helper.text.endsWith(src,\".jpeg\") || helper.text.endsWith(src,\".png\") ){\r\n canShow = true;\r\n }\r\n if(canShow){\r\n if(htmltag.className.indexOf(\"xeditor_img\")<0 && htmltag.className.indexOf(\"xeditor_hqimg\")<0 && htmltag.className.indexOf(\"face\")<0){\r\n htmltag.className = \"xeditor_img\"\r\n }\r\n $(htmltag).replaceWith('\"'');\r\n }else{\r\n $(htmltag).replaceWith('

');\r\n }\r\n imgNeedReplace = false;\r\n }else{\r\n var imgsrcreg = new RegExp(options.imgsrc[i],'ig');\r\n if(imgsrcreg.test(htmltag.src)){\r\n $(htmltag).replaceWith('\"'');\r\n imgNeedReplace = false;\r\n } \r\n }\r\n\r\n }\r\n if(imgNeedReplace){\r\n $(htmltag).replaceWith('

');\r\n }\r\n\r\n isreplace = true;\r\n }\r\n \r\n //保留段落\r\n if(!isreplace){\r\n if(options.keep_paragraph){\r\n for (var i = 0; i < paragraph.length; i++) {\r\n if(tagname == paragraph[i] && htmltag.innerHTML){\r\n var styleAlign = getAlign(htmltag)\r\n if(tagname=='div' && styleAlign.indexOf(\"align\")>=0){\r\n isreplace = true;\r\n continue;\r\n }\r\n $(htmltag).replaceWith('

' + htmltag.innerHTML + '

');\r\n isreplace = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!isreplace) {\r\n // console.info(444);\r\n $(htmltag).replaceWith(htmltag.innerHTML);\r\n }\r\n // console.log(htmltag)\r\n helper.editor.editorObj.getRangeHelper().restoreRange()\r\n }\r\n\r\n function searchObj(htmltag) {\r\n //console.info(htmltag);\r\n $(htmltag).children().each(function() {\r\n if($(this).children().length == 0){\r\n replaceTag(this);\r\n }\r\n else{\r\n searchObj(this);\r\n replaceTag(this);\r\n }\r\n });\r\n }\r\n\r\n searchObj(options.contents);\r\n\r\n // options.children().each(function() {\r\n // if($(this).children().length == 0){\r\n // replaceTag(this);\r\n // }\r\n // else{\r\n\r\n // }\r\n // var tagname = this.tagName.toLowerCase();\r\n // console.info(tagname);\r\n // var isreplace = false;\r\n // //过滤指定纯净标签\r\n // for (var i = 0; i < options.allow_pure_tag.length; i++) {\r\n // if(tagname == options.allow_pure_tag[i]){\r\n // //console.info(tagname);\r\n // $(this).replaceWith('<' + tagname + '>' + this.innerHTML + '');\r\n // isreplace = true;\r\n // break;\r\n // }\r\n // }\r\n // //console.info(isreplace);\r\n // //return false;\r\n // //保留段落\r\n // if(!isreplace){\r\n // if(options.keep_paragraph){\r\n // for (var i = 0; i < paragraph.length; i++) {\r\n // if(tagname == paragraph[i]){\r\n // $(this).replaceWith('

' + this.innerHTML + '

');\r\n // isreplace = true;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // if (!isreplace) {\r\n // $(this).replaceWith(this.innerHTML);\r\n // }\r\n \r\n\r\n // });\r\n}\r\n\r\nmodule.exports = function clearFormat(_zweditor) {\r\n var content = _zweditor.getBody();\r\n //alert(content.html());\r\n clearFormatInternal({\r\n contents: content, //需要过滤的主体\r\n keep_paragraph: true, //如果标签被删除,是否需要保留段落\r\n allow_pure_tag: ['p', 'b', 'u', \"i\" , 'br', 'strong','blockquote','h2','ol','li','ul','hr','span'], //需要保留的纯标签\r\n imgsrc: ['(http|https)://\\\\w+.eastmoney.com/','(http|https)://\\\\w+.dfcfw.com/', '(http|https)://zimeiti-eastmoney-com.oss-cn-shanghai.aliyuncs.com/'] //允许的图片地址\r\n // imgsrc: ['(http|https)://\\\\w+.eastmoney.com/', '(http|https)://zimeiti-eastmoney-com.oss-cn-shanghai.aliyuncs.com/'] //允许的图片地址\r\n });\r\n return false;\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/clearFormat/clearFormat.js\n// module id = 10\n// module chunks = 0","var helper = require(\"../helper/helper\")\r\nvar draft = require(\"../draft/draft\")\r\nvar clearFormat = require(\"../clearFormat/clearFormat\")\r\nvar log = require(\"../helper/log\")\r\n\r\n\r\n\r\nmodule.exports = {\r\n\tbtn_publish:null,\r\n\teditorObj:null,\r\n\ttitle:\"\",\r\n\tcontent:\"\",\r\n\tcontentIsEmpty:function(isTrim){\r\n\t\tisTrim = typeof(isTrim)==\"undefined\"?true:false\r\n\t\tvar textContent = this.editorObj.getBody()[0].textContent\r\n\t\t\r\n\t\tif(typeof(textContent)==\"undefined\"){\r\n\t\t\ttextContent = this.editorObj.getBody()[0].innerText\r\n\t\t}\r\n\t\t\r\n\t\tif(textContent==helper.opt.placeholder){\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif(isTrim){\r\n\t\t\ttextContent = $.trim(textContent)\r\n\t\t}\r\n\t\t// console.log(encodeURIComponent(textContent))//%E2%80%8B ?\r\n\t\t\r\n\t\tvar textLen = textContent.length\r\n\t\tconsole.log(textContent,textLen)\r\n\t\tif(textLen<=0 || (textLen==1 && encodeURIComponent(textContent)=='%E2%80%8B' )){\r\n\t\t\tvar imgCount = this.editorObj.getBody().find(\"img\").size()\r\n\t\t\tif(imgCount==0){\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false\r\n\t},\r\n\tcontentIsValid:function(){\r\n\t\tvar textContent = this.editorObj.getBody()[0].textContent\r\n\t\t\r\n\t\tif(typeof(textContent)==\"undefined\"){\r\n\t\t\ttextContent = this.editorObj.getBody()[0].innerText\r\n\t\t}\r\n\t\ttextContent = $.trim(textContent)\r\n\t\tif(textContent==helper.opt.placeholder){\r\n\t\t\treturn -1\r\n\t\t}\r\n\t\tif(textContent.length<=0){\r\n\t\t\tvar imgSize = this.editorObj.getBody().find(\"img\").size()\r\n\t\t\tvar faceSize = this.editorObj.getBody().find(\".face\").size()\r\n\t\t\t// var bigFaceSize = this.editorObj.getBody().find(\".big_face\").size()\r\n\t\t\t// console.log(imgSize,faceSize,bigFaceSize)\r\n\t\t\tif(imgSize>0 && imgSize==faceSize ){//如果都是表情\r\n\t\t\t\treturn -2\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 1\r\n\t},\r\n\tpublish_empty_filter:function(){\r\n\t\t$(this.editorObj.getBody()).find(\"p\").each(function(){//过滤每个p为空的\r\n\t\t\tif($(this).find(\"img\").size()>0 || $(this).find(\"hr\").size()>0){\r\n\t\t\t\treturn\r\n\t\t\t}else{\r\n\t\t\t\tvar content = $.trim($(this).html())\r\n\t\t\t\tif(content==\"\"){\r\n\t\t\t\t\t$(this).remove()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\tpublish_check:function(){\r\n\t\tvar title = ''\r\n\t\tvar canNext = true;\r\n\t\tif($(\"#xeditor_title\").is(':visible')){\r\n\t\t\ttitle = $.trim($(\"#xeditor_title\").val())\r\n\t\t\tif(!title){\r\n\t\t\t\tcanNext=false;\r\n\t\t\t\t$(\"#xeditor_title\").xeditorTextBlink()\r\n\t\t\t}\r\n\t\t\tif(helper.text.checkSpecialWord(title)){\r\n\t\t\t\tcanNext=false;\r\n\t\t\t\t$(\"#xeditor_title\").xeditorTextBlink()\r\n\t\t\t\talert(\"您输入的标题符号过多,请修改后再发!\")\t\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!canNext){\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t\r\n\t\tclearFormat(this.editorObj)\r\n\t\tif(this.contentIsEmpty()){\r\n\t\t\tcanNext=false;\r\n\t\t\t//请空内容\r\n\t\t\t$(this.editorObj.getBody()[0]).html('')\r\n\t\t\t$(this.editorObj.getBody()[0]).xeditorTextBlink()\r\n\t\t}else{\r\n\t\t\tvar valid = this.contentIsValid()\r\n\t\t\tif(valid == -2){\r\n\t\t\t\tif(title){\r\n\t\t\t\t\tcanNext=true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\talert(\"内容不能仅为表情\")\r\n\t\t\t\t\tcanNext=false;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this.editorObj.getBody()[0].innerText.length>30000){\r\n\t\t\tcanNext=false;\r\n\t\t\talert(\"输入内容过长,请调整内容后重试\")\r\n\t\t\t$(this.editorObj.getBody()[0]).xeditorTextBlink()\r\n\t\t}\r\n\t\tif(!canNext){\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvar imgLen = this.public_filter_img()\r\n\t\tif(imgLen>20){\r\n\t\t\talert(\"图片数量不能超过20张,请修改后在发!\")\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\timgLen = $(this.editorObj.getBody()).find(\".big_face\").size() //大表情数量\r\n\t\tif(imgLen>10){\r\n\t\t\talert(\"特殊表情不能超过10张,请修改后在发!\")\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis.publish_empty_filter()\r\n\r\n\t\tvar content = $.trim(this.editorObj.getContent())\r\n\t\tcontent = this.publish_filter(content)\r\n\r\n\t\treturn content\r\n\t},\r\n\tpublic_filter_img:function(){//发布前过滤一遍内容\r\n\t\tvar imgCount=0\r\n\t\t//过滤行情图片添加链接\r\n\t\t//\r\n\t\t$(this.editorObj.getBody()).find(\"img\").each(function(){\r\n\t\t\tif($(this).hasClass(\"face\")||$(this).hasClass(\"xeditor_hqimg\")){//表情图片忽略\r\n\t\t\t\t$(this).attr(\"data-link\",\"http://xx.dfcfw.com/xx/xx/xx/xx.png src_app src_wap src_wp\")//为了app老版本bug\r\n\t\t\t}\r\n\t\t\tif($(this).hasClass(\"face\")){//表情图片忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t++imgCount\r\n\t\t})\r\n\r\n\t\t//删除异常情况图片删除按钮带入\r\n\t\t$(this.editorObj.getBody()).find(\".icon-delete\").each(function(){\r\n\t\t\tif($(this).html()==\"\"){\r\n\t\t\t\t$(this).remove()\r\n\t\t\t}else{\r\n\t\t\t\tvar inner = $(this).html()\r\n\t\t\t\t$(this).replaceWith(inner)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t\r\n\t\treturn imgCount\r\n\t},\r\n\tpublish_filter:function(content){\r\n\t\t// console.log(\"before filter \"+content)\r\n\r\n\t\t//将颜色过滤成class\r\n\t\t// 正则过滤开始 注意,*请勿用\r\n\t\t// var colorReg = new RegExp('color=\"#ff0000\"','ig');\r\n\t\tcontent = content.replace(/(color=\"#ff0000\")/ig,'class=\"xeditor_red\" $1')\r\n\t\tcontent = content.replace(/(color=\"#009900\")/ig,'class=\"xeditor_green\" $1')\r\n\t\tcontent = content.replace(/(color=\"#196199\")/ig,'class=\"xeditor_blue\" $1')\r\n\t\tcontent = content.replace(/(color=\"#00b7ef\")/ig,'class=\"xeditor_skyblue\" $1')\r\n\t\t// content = content.replace(/color=\".+?\"/ig,'')\r\n\t\t//过滤空的P变成一个\r\n\t\tcontent = content = content.replace(/(

<\\/p>)+/ig,'')\r\n\t\t//过滤多个换行\r\n\t\tcontent = content.replace(/\\r\\n/gi, '');\r\n\t\tif(helper.browser.isIE()){\r\n\t\t\tcontent = content.replace(/(

<\\/p>)/gi, '');\r\n\t\t}\r\n\t\tcontent = content.replace(/(

 <\\/P>)+/gi, '$1');\r\n\t\tcontent = content.replace(/

<\\/font><\\/p>/ig,'


')\r\n\t\tcontent = content.replace(/

\\s?<\\/span><\\/p>/ig,'


')\r\n\t\tcontent = content.replace(/(

<\\/p>)+/gi, '$1');\r\n\t\tcontent = content.replace(/()+/gi, '$1');\r\n\r\n\t\t\r\n\t\t//过滤多个空格\r\n\t\tcontent = content.replace(/( \\s?){3,}/gi,'$1$1')\r\n\t\tcontent = content.replace(/ \\s?/gi,'\\u3000')\r\n\t\tcontent = content.replace(/(\\u3000){3,}/gi,'\\u3000\\u3000')\r\n\t\t// console.log(content)\r\n\r\n\t\t//处理图片\r\n\t\t//处理ie8给图片加上width和height问题\r\n\t\tif(helper.browser.isIE()){\r\n\t\t\tcontent = content.replace(/width=.+?height=.+?\\sclass/ig,'class')\r\n\t\t}\r\n\t\t//匹配只有src的图片情况\r\n\t\tcontent = content.replace(/\"\"/ig,'\"\"')\r\n\r\n\t\t//行情图片\r\n\t\t// content = content.replace(/()/gi, '$1');\r\n\t\tvar imgReg = /()/ig\r\n\t\tcontent = content.replace(imgReg, '$1');\r\n\t\t// class=\"xeditor_hqimg\" alt=\"K图 000001_1\" \r\n\t\t// 处理class alt src顺序的图片(IE)\r\n\t\timgReg = /(\"K图\\s(\\d{6})_(\\d{1})\")/ig\r\n\t\tcontent = content.replace(imgReg, '$1');\r\n// console.log(content)\t\t\r\n\r\n\t\t//在上面替换后的基础下摘除指数的进行额外处理\r\n\t\t//\"K图\r\n\t\tcontent = content.replace(/(mk=\"1\".+?)\\/000001.html/ig, '$1/zs000001.html');//指数单独处理\r\n\t\t// console.log(content)\r\n\t\t\r\n\t\t//普通图片加超链\r\n\t\t//var matches = content.match(/(\"?\"?)/ig)\r\n\t\t// console.log(matches)\r\n\t\t//content = content.replace(/(\"?\"?)/ig,'$1')//chrome\r\n\t\t\r\n\r\n\t\t// 处理class alt src顺序的图片(IE)\r\n\t\tcontent = content.replace(/(\"?\"?)/ig,'$1')\r\n// console.log(content)\r\n\t\t//img标签统一加上x_img的class\r\n\t\tcontent = content.replace(/class=\"?xeditor_img\"?/ig,'class=\"x_img xeditor_img\"')\r\n\t\tcontent = content.replace(/class=\"?xeditor_hqimg\"?/ig,'class=\"x_img xeditor_hqimg\"')\r\n\r\n\t\t// content = content.replace(/(\"?\"?)/ig,'$1')\r\n\t\t//content = content.replace(/(\"?\"?)/ig,'$1')//ie8\r\n\t\t// content = content.replace(/()/ig,'$1')\r\n\t\tif(!helper.env.isRelease)\r\n\t\t\tconsole.log(content)\r\n\r\n\r\n\t\tcontent=content.replace(/&/ig,'&');//去掉 \r\n\t\tcontent = '

'+content+'
'\r\n\t\t// console.log(\"after filter \"+content)\r\n\t\treturn content\r\n\t},\r\n\tpublish_success:function(data){\r\n\r\n\t},\r\n\tpublish_failed:function(data){\r\n\t\tswitch(data.error_code){\r\n\t\t\tcase 22://需要登录\r\n\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\talert(data.me);\r\n\t},\r\n\tlaunchIn:function(wrapId,editorObj,opt){\r\n\t\tvar that = this\r\n\t\tthis.btn_publish = $(wrapId)\r\n\t\tthis.editorObj = editorObj\r\n\t\tthis.btn_publish.click(function(){\r\n\t\t\tif(opt.beforeSend){\r\n\t\t\t\tvar canNext = opt.beforeSend()\r\n\t\t\t\tif(!canNext){\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tlog.public_before_filter(that.editorObj)\r\n\t\t\t\tvar content = that.publish_check()\r\n\t\t\t\tlog.public_afater_filter(that.editorObj)\r\n\t\t\t if(content!==false){\r\n\t\t\t \t\r\n\t\t\t\t\tvar title = '';\r\n\t\t\t\t\tif($(\"#xeditor_title\").is(':visible')){\r\n\t\t\t\t\t\ttitle = $.trim($(\"#xeditor_title\").val())\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// alert((\"#xeditor_title\").is(':visible'))\r\n\t\t\t\t // alert(content)\r\n\t\t\t\t if(opt.onSend){\r\n\t\t\t\t \tvar sendOK = opt.onSend({title:title,content:content})\r\n\t\t\t\t \tif(sendOK){\r\n\t\t\t\t \t\tdraft.clean()\r\n\t\t\t\t \t}\r\n\t\t\t\t }else{\r\n\t\t\t\t \t$(\"#btn_publish\").attr(\"disabled\", true).text(\"发布中...\").css(\"opacity\",\"0.6\")\r\n\t\t\t\t\t\thelper.net.send(\"postopt/api/post/postarticleweb\",{//\"http://10.228.130.129:8081/api/post/postarticleweb\",{\r\n\t\t\t\t\t code:window.code,\r\n\t\t\t\t\t title:title,\r\n\t\t\t\t\t text:content,\r\n\t\t\t\t\t yid:''\r\n\t\t\t\t\t }).success(function(data){\r\n\t\t\t\t\t \t$(\"#btn_publish\").attr(\"disabled\", false).text(\"发 布\").css(\"opacity\",\"1\")\r\n\t\t\t\t\t if (data.rc) {\r\n\t\t\t\t\t that.publish_success(data);\r\n\t\t\t\t\t } else {\r\n\t\t\t\t\t that.publish_failed(data);\r\n\t\t\t\t\t }\r\n\t\t\t\t\t }).error(function(data){\r\n\t\t\t\t\t \t$(\"#btn_publish\").attr(\"disabled\", false).text(\"发 布\").css(\"opacity\",\"1\")\r\n\t\t\t\t\t alert('服务出现异常,请稍后再试');\r\n\t\t\t\t\t })\r\n\t\t\t\t }\r\n\r\n\t\t\t \t//$(this).addClass('editor_disabled_btn').text('提交中')\r\n\t\t\t }else{\r\n\t\t\t\t \r\n\t\t\t }\t\r\n\t\t\t},5)\r\n\t\t\t\r\n\t\t \r\n\t\t return false\r\n\t\t})\r\n\t}\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/publish/publish.js\n// module id = 11\n// module chunks = 0","var helper = require(\"../helper/helper\")\r\nvar hbs = require(\"./draft.hbs\")\r\nvar title = require(\"../title/title\")\r\nvar config = require(\"../../config\")\r\n\r\nvar xeditor_draft_interval=3000\r\n\r\nvar lastSaveTitle=\"\"\r\nvar lastSaveContent=\"\"\r\nvar saveKeyPre=\"xeditor_draft\"\r\nvar emptyContent = '


'\r\nmodule.exports = {\r\n\tsaveKey:\"\",\r\n\tsaveKeyContent:\"\",\r\n\tsaveKeyTitle:\"\",\r\n\tlaunchIn:function(wrapId,editorObj,saveKey){\r\n\t\tthis.saveKey = saveKey\r\n\t\tif(typeof(localStorage)!=\"undefined\"){ //高浏览器按key保存\r\n\t\t\tthis.saveKeyContent = saveKeyPre+\"_content_\"+saveKey\r\n\t\t\tthis.saveKeyTitle = saveKeyPre+\"_title_\"+saveKey\r\n\t\t}else{\r\n\t\t\tthis.saveKeyContent = saveKeyPre+\"_content\"\r\n\t\t\tthis.saveKeyTitle = saveKeyPre+\"_title\"\r\n\t\t}\r\n\t\t$(wrapId).html(hbs())\r\n\t\tvar that = this\r\n\t\t$(\".xeditor-draft-delete\").on('click',function(){\r\n\t\t\t// alert(\"draft click\")\r\n\t\t\tthat.clean(editorObj)\r\n\t\t})\r\n\t\tlastSaveContent = helper.storage.getItem(this.saveKeyContent)\r\n\t\tlastSaveTitle = helper.storage.getItem(this.saveKeyTitle)\r\n\r\n\t\tsetTimeout(function(){\r\n\t\t\tif(lastSaveContent){\r\n\t\t\t\t// console.log(lastSaveContent)\r\n\t\t\t\teditorObj.val(lastSaveContent)\r\n\t\t\t\thelper.editor.checkHeight()\r\n\t\t\t}\r\n\t\t\tif(lastSaveTitle){\r\n\t\t\t\t// console.log(lastSaveTitle)\r\n\t\t\t\t$(\"#xeditor_title\").val(lastSaveTitle)\r\n\t\t\t}\r\n\r\n\t\t\tthat.autoSave(editorObj)\t\r\n\t\t},10)\r\n\t},\r\n\tchangeSaveKey:function(mode){\r\n\t\tswitch(mode){\r\n\t\t\tcase \"fullscreen\":\r\n\t\t\t\tif(typeof(localStorage)!=\"undefined\") //高浏览器按key保存\r\n\t\t\t\t\tthis.saveKeyContent = saveKeyPre+\"_long_content_\"+this.saveKey\r\n\t\t\t\telse\r\n\t\t\t\t\tthis.saveKeyContent = saveKeyPre+\"_long_content_\"\r\n\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tif(typeof(localStorage)!=\"undefined\")\r\n\t\t\t\t\tthis.saveKeyContent = saveKeyPre+\"_content_\"+this.saveKey\r\n\t\t\t\telse\r\n\t\t\t\t\tthis.saveKeyContent = saveKeyPre+\"_content_\"\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t},\r\n\tsave:function(editorObj){\r\n\t\t// console.log(\"save \"+this.saveKeyContent)\r\n\t\tif(this.needSaveContent(editorObj)){\r\n\t\t\tlastSaveContent = editorObj.getContent()\r\n\t\t\thelper.storage.setItem(this.saveKeyContent,lastSaveContent)\r\n\t\t\tvar saveTime = helper.time.timeFormat.call(new Date(),\"hh:mm:ss\")\r\n\t\t\t\r\n\t\t\tif(helper.opt.outdraft && !helper.editor.isFullscreen){\r\n\t\t\t\t$(helper.opt.outdraft).show().find(\".xeditor_draft_save_time\").text(saveTime)\r\n\t\t\t}else{\r\n\t\t\t\tif(!helper.opt.outdraft || helper.editor.isFullscreen)\r\n\t\t\t\t\t$(\"#xeditor_draft\").show().find(\".xeditor_draft_save_time\").text(saveTime)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(this.needSaveTitle()){\r\n\t\t\tlastSaveTitle = $(\"#xeditor_title\").val()\r\n\t\t\thelper.storage.setItem(this.saveKeyTitle,lastSaveTitle)\r\n\t\t\tvar saveTime = helper.time.timeFormat.call(new Date(),\"hh:mm:ss\")\r\n\t\t\t$(\"#xeditor_draft\").show().find(\".xeditor_draft_save_time\").text(saveTime)\r\n\t\t\tif(helper.opt.outdraft){\r\n\t\t\t\t$(helper.opt.outdraft).show().find(\".xeditor_draft_save_time\").text(saveTime)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tload:function(editorObj,enforce){\r\n\t\t\r\n\t\tlastSaveContent = helper.storage.getItem(this.saveKeyContent)\r\n\t\tlastSaveTitle = helper.storage.getItem(this.saveKeyTitle)\r\n\r\n\t\tif(enforce){\r\n\r\n\t\t\t// console.log(\"load \"+this.saveKeyContent+\" \"+helper.storage.getItem(this.saveKeyContent))\r\n\t\t\teditorObj.val(lastSaveContent==null?emptyContent:lastSaveContent)\r\n\t\t\thelper.editor.checkHeight()\r\n\t\t}else{\r\n\t\t\tif(lastSaveContent){\r\n\t\t\t\t// console.log(lastSaveContent)\r\n\t\t\t\teditorObj.val(lastSaveContent)\r\n\t\t\t\thelper.editor.checkHeight()\r\n\t\t\t}\r\n\t\t\tif(lastSaveTitle){\r\n\t\t\t\t// console.log(lastSaveTitle)\r\n\t\t\t\t$(\"#xeditor_title\").val(lastSaveTitle)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tautoSave:function(editorObj){\r\n\t\tvar that = this\r\n\t\tthis.save(editorObj)\r\n\t\t\r\n\t\tsetTimeout(function(){\r\n\t\t\tthat.autoSave(editorObj)\r\n\t\t},xeditor_draft_interval)\r\n\t\t\r\n\t},\r\n\tneedSaveContent:function(editorObj){\r\n\t\tvar content = editorObj.getContent()\r\n\t\tif(lastSaveContent && content!=lastSaveContent){\r\n\t\t\treturn true\r\n\t\t}\r\n\t\telse if(!content || content==\"


\" || content==lastSaveContent||content==\"

\"+helper.opt.placeholder+\"

\"){\r\n\t\t\treturn false\r\n\t\t}else{\r\n\t\t\treturn true\r\n\t\t}\r\n\t},\r\n\tneedSaveTitle:function(editorObj){\r\n\t\tvar title = $(\"#xeditor_title\").val()\r\n\t\tif(lastSaveTitle && title!=lastSaveTitle){\r\n\t\t\treturn true\r\n\t\t}\r\n\t\telse if(title==lastSaveTitle){\r\n\t\t\treturn false\r\n\t\t}else{\r\n\t\t\treturn true\r\n\t\t}\r\n\t},\r\n\tclean:function(editorObj){\r\n\t\t// console.log(this.saveKeyContent)\r\n\t\thelper.storage.delItem(this.saveKeyContent)\r\n\t\t// console.log(helper.opt.outdraft,helper.editor.isFullscreen)\r\n\t\tlastSaveContent=\"\"\r\n\t\tlastSaveTitle=\"\"\r\n\r\n\t\tif(helper.opt.outdraft && !helper.editor.isFullscreen){\r\n\t\t\t$(helper.opt.outdraft).hide()\r\n\t\t}else{\r\n\t\t\t// if(!helper.opt.outdraft || helper.editor.isFullscreen){\r\n\t\t\t\r\n\t\t}\r\n\t\tif($(\"#xeditor_title\").is(':visible')){\r\n\t\t\thelper.storage.delItem(this.saveKeyTitle)\r\n\t\t\t$(\"#xeditor_draft\").hide()\r\n\t\t\ttitle.clean()\r\n\t\t}\r\n\t\t\r\n \r\n if(editorObj){\r\n\t\t\t$(editorObj.getBody()).html(\"\")//清空内容\r\n\t\t\tif(!helper.editor.isFullscreen){\r\n\t\t\t\thelper.editor.setHeight(config.INIT_HEIGHT)\r\n\t\t\t}\r\n }\r\n\t}\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/draft/draft.js\n// module id = 12\n// module chunks = 0","define(function () {\n\t'use strict';\n\n\tvar plugins = {};\n\n\t/**\n\t * Plugin Manager class\n\t * @class PluginManager\n\t * @name PluginManager\n\t */\n\tvar PluginManager = function (thisObj) {\n\t\t/**\n\t\t * Alias of this\n\t\t *\n\t\t * @private\n\t\t * @type {Object}\n\t\t */\n\t\tvar base = this;\n\n\t\t/**\n\t\t * Array of all currently registered plugins\n\t\t *\n\t\t * @type {Array}\n\t\t * @private\n\t\t */\n\t\tvar registeredPlugins = [];\n\n\n\t\t/**\n\t\t * Changes a signals name from \"name\" into \"signalName\".\n\t\t *\n\t\t * @param {String} signal\n\t\t * @return {String}\n\t\t * @private\n\t\t */\n\t\tvar formatSignalName = function (signal) {\n\t\t\treturn 'signal' + signal.charAt(0).toUpperCase() + signal.slice(1);\n\t\t};\n\n\t\t/**\n\t\t * Calls handlers for a signal\n\t\t *\n\t\t * @see call()\n\t\t * @see callOnlyFirst()\n\t\t * @param {Array} args\n\t\t * @param {Boolean} returnAtFirst\n\t\t * @return {Mixed}\n\t\t * @private\n\t\t */\n\t\tvar callHandlers = function (args, returnAtFirst) {\n\t\t\targs = [].slice.call(args);\n\n\t\t\tvar\tidx, ret,\n\t\t\t\tsignal = formatSignalName(args.shift());\n\n\t\t\tfor (idx = 0; idx < registeredPlugins.length; idx++) {\n\t\t\t\tif (signal in registeredPlugins[idx]) {\n\t\t\t\t\tret = registeredPlugins[idx][signal].apply(thisObj, args);\n\n\t\t\t\t\tif (returnAtFirst) {\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Calls all handlers for the passed signal\n\t\t *\n\t\t * @param {String} signal\n\t\t * @param {...String} args\n\t\t * @return {Void}\n\t\t * @function\n\t\t * @name call\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.call = function () {\n\t\t\tcallHandlers(arguments, false);\n\t\t};\n\n\t\t/**\n\t\t * Calls the first handler for a signal, and returns the\n\t\t *\n\t\t * @param {String} signal\n\t\t * @param {...String} args\n\t\t * @return {Mixed} The result of calling the handler\n\t\t * @function\n\t\t * @name callOnlyFirst\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.callOnlyFirst = function () {\n\t\t\treturn callHandlers(arguments, true);\n\t\t};\n\n\t\t/**\n\t\t * Checks if a signal has a handler\n\t\t *\n\t\t * @param {String} signal\n\t\t * @return {Boolean}\n\t\t * @function\n\t\t * @name hasHandler\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.hasHandler = function (signal) {\n\t\t\tvar i = registeredPlugins.length;\n\t\t\tsignal = formatSignalName(signal);\n\n\t\t\twhile (i--) {\n\t\t\t\tif (signal in registeredPlugins[i]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t * Checks if the plugin exists in plugins\n\t\t *\n\t\t * @param {String} plugin\n\t\t * @return {Boolean}\n\t\t * @function\n\t\t * @name exists\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.exists = function (plugin) {\n\t\t\tif (plugin in plugins) {\n\t\t\t\tplugin = plugins[plugin];\n\n\t\t\t\treturn typeof plugin === 'function' &&\n\t\t\t\t\ttypeof plugin.prototype === 'object';\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t * Checks if the passed plugin is currently registered.\n\t\t *\n\t\t * @param {String} plugin\n\t\t * @return {Boolean}\n\t\t * @function\n\t\t * @name isRegistered\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.isRegistered = function (plugin) {\n\t\t\tif (base.exists(plugin)) {\n\t\t\t\tvar idx = registeredPlugins.length;\n\n\t\t\t\twhile (idx--) {\n\t\t\t\t\tif (registeredPlugins[idx] instanceof plugins[plugin]) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t * Registers a plugin to receive signals\n\t\t *\n\t\t * @param {String} plugin\n\t\t * @return {Boolean}\n\t\t * @function\n\t\t * @name register\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.register = function (plugin) {\n\t\t\tif (!base.exists(plugin) || base.isRegistered(plugin)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tplugin = new plugins[plugin]();\n\t\t\tregisteredPlugins.push(plugin);\n\n\t\t\tif ('init' in plugin) {\n\t\t\t\tplugin.init.call(thisObj);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * Deregisters a plugin.\n\t\t *\n\t\t * @param {String} plugin\n\t\t * @return {Boolean}\n\t\t * @function\n\t\t * @name deregister\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.deregister = function (plugin) {\n\t\t\tvar\tremovedPlugin,\n\t\t\t\tpluginIdx = registeredPlugins.length,\n\t\t\t\tremoved = false;\n\n\t\t\tif (!base.isRegistered(plugin)) {\n\t\t\t\treturn removed;\n\t\t\t}\n\n\t\t\twhile (pluginIdx--) {\n\t\t\t\tif (registeredPlugins[pluginIdx] instanceof plugins[plugin]) {\n\t\t\t\t\tremovedPlugin = registeredPlugins.splice(pluginIdx, 1)[0];\n\t\t\t\t\tremoved = true;\n\n\t\t\t\t\tif ('destroy' in removedPlugin) {\n\t\t\t\t\t\tremovedPlugin.destroy.call(thisObj);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn removed;\n\t\t};\n\n\t\t/**\n\t\t * Clears all plugins and removes the owner reference.\n\t\t *\n\t\t * Calling any functions on this object after calling\n\t\t * destroy will cause a JS error.\n\t\t *\n\t\t * @name destroy\n\t\t * @memberOf PluginManager.prototype\n\t\t */\n\t\tbase.destroy = function () {\n\t\t\tvar i = registeredPlugins.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tif ('destroy' in registeredPlugins[i]) {\n\t\t\t\t\tregisteredPlugins[i].destroy.call(thisObj);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tregisteredPlugins = [];\n\t\t\tthisObj = null;\n\t\t};\n\t};\n\n\tPluginManager.plugins = plugins;\n\n\treturn PluginManager;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/PluginManager.js\n// module id = 13\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\tvar dom = require('./dom');\n\tvar escape = require('./escape');\n\tvar browser = require('./browser');\n\n\tvar IE_VER = browser.ie;\n\n\t// In IE < 11 a BR at the end of a block level element\n\t// causes a line break. In all other browsers it's collapsed.\n\tvar IE_BR_FIX = IE_VER && IE_VER < 11;\n\n\n\tvar _nodeToHtml = function (node) {\n\t\treturn $('

', node.ownerDocument).append(node).html();\n\t};\n\n\t/**\n\t * Gets the text, start/end node and offset for\n\t * length chars left or right of the passed node\n\t * at the specified offset.\n\t *\n\t * @param {Node} node\n\t * @param {Number} offset\n\t * @param {Boolean} isLeft\n\t * @param {Number} length\n\t * @return {Object}\n\t * @private\n\t */\n\tvar outerText = function (range, isLeft, length) {\n\t\tvar nodeValue, remaining, start, end, node,\n\t\t\ttext = '',\n\t\t\tnext = range.startContainer,\n\t\t\toffset = range.startOffset;\n\n\t\t// Handle cases where node is a paragraph and offset\n\t\t// refers to the index of a text node.\n\t\t// 3 = text node\n\t\tif (next && next.nodeType !== 3) {\n\t\t\tnext = next.childNodes[offset];\n\t\t\toffset = 0;\n\t\t}\n\n\t\tstart = end = offset;\n\n\t\twhile (length > text.length && next && next.nodeType === 3) {\n\t\t\tnodeValue = next.nodeValue;\n\t\t\tremaining = length - text.length;\n\n\t\t\t// If not the first node, start and end should be at their\n\t\t\t// max values as will be updated when getting the text\n\t\t\tif (node) {\n\t\t\t\tend = nodeValue.length;\n\t\t\t\tstart = 0;\n\t\t\t}\n\n\t\t\tnode = next;\n\n\t\t\tif (isLeft) {\n\t\t\t\tstart = Math.max(end - remaining, 0);\n\t\t\t\toffset = start;\n\n\t\t\t\ttext = nodeValue.substr(start, end - start) + text;\n\t\t\t\tnext = node.previousSibling;\n\t\t\t} else {\n\t\t\t\tend = Math.min(remaining, nodeValue.length);\n\t\t\t\toffset = start + end;\n\n\t\t\t\ttext += nodeValue.substr(start, end);\n\t\t\t\tnext = node.nextSibling;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tnode: node || next,\n\t\t\toffset: offset,\n\t\t\ttext: text\n\t\t};\n\t};\n\n\tvar RangeHelper = function (w, d) {\n\t\tvar\t_createMarker, _isOwner, _prepareInput,\n\t\t\tdoc = d || w.contentDocument || w.document,\n\t\t\twin = w,\n\t\t\tisW3C = !!w.getSelection,\n\t\t\tstartMarker = 'sceditor-start-marker',\n\t\t\tendMarker = 'sceditor-end-marker',\n\t\t\tCHARACTER = 'character', // Used to improve minification\n\t\t\tbase = this;\n\n\t\t/**\n\t\t *

Inserts HTML into the current range replacing any selected\n\t\t * text.

\n\t\t *\n\t\t *

If endHTML is specified the selected contents will be put between\n\t\t * html and endHTML. If there is nothing selected html and endHTML are\n\t\t * just concatenate together.

\n\t\t *\n\t\t * @param {string} html\n\t\t * @param {string} endHTML\n\t\t * @return False on fail\n\t\t * @function\n\t\t * @name insertHTML\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.insertHTML = function (html, endHTML) {\n\t\t\tvar\tnode, div,\n\t\t\t\trange = base.selectedRange();\n\n\t\t\tif (!range) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (isW3C) {\n\t\t\t\tif (endHTML) {\n\t\t\t\t\thtml += base.selectedHtml() + endHTML;\n\t\t\t\t}\n\n\t\t\t\tdiv = doc.createElement('p');\n\t\t\t\tnode = doc.createDocumentFragment();\n\t\t\t\tdiv.innerHTML = html;\n\n\t\t\t\twhile (div.firstChild) {\n\t\t\t\t\tnode.appendChild(div.firstChild);\n\t\t\t\t}\n\n\t\t\t\tbase.insertNode(node);\n\t\t\t} else {\n\t\t\t\trange.pasteHTML(_prepareInput(html, endHTML, true));\n\t\t\t\tbase.restoreRange();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Prepares HTML to be inserted by adding a zero width space\n\t\t * if the last child is empty and adding the range start/end\n\t\t * markers to the last child.\n\t\t *\n\t\t * @param {Node|string} node\n\t\t * @param {Node|string} endNode\n\t\t * @param {boolean} returnHtml\n\t\t * @return {Node|string}\n\t\t * @private\n\t\t */\n\t\t_prepareInput = function (node, endNode, returnHtml) {\n\t\t\tvar lastChild, $lastChild,\n\t\t\t\tdiv = doc.createElement('div'),\n\t\t\t\t$div = $(div);\n\n\t\t\tif (typeof node === 'string') {\n\t\t\t\tif (endNode) {\n\t\t\t\t\tnode += base.selectedHtml() + endNode;\n\t\t\t\t}\n\n\t\t\t\t$div.html(node);\n\t\t\t} else {\n\t\t\t\t$div.append(node);\n\n\t\t\t\tif (endNode) {\n\t\t\t\t\t$div\n\t\t\t\t\t\t.append(base.selectedRange().extractContents())\n\t\t\t\t\t\t.append(endNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!(lastChild = div.lastChild)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twhile (!dom.isInline(lastChild.lastChild, true)) {\n\t\t\t\tlastChild = lastChild.lastChild;\n\t\t\t}\n\n\t\t\tif (dom.canHaveChildren(lastChild)) {\n\t\t\t\t$lastChild = $(lastChild);\n\n\t\t\t\t// IE <= 8 and Webkit won't allow the cursor to be placed\n\t\t\t\t// inside an empty tag, so add a zero width space to it.\n\t\t\t\tif (!lastChild.lastChild) {\n\t\t\t\t\t$lastChild.append('\\u200B');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Needed so IE <= 8 can place the cursor after emoticons and images\n\t\t\tif (IE_VER && IE_VER < 9 && $(lastChild).is('img')) {\n\t\t\t\t$div.append('\\u200B');\n\t\t\t}\n\n\t\t\tbase.removeMarkers();\n\n\t\t\t// Append marks to last child so when restored cursor will be in\n\t\t\t// the right place\n\t\t\t($lastChild || $div)\n\t\t\t\t.append(_createMarker(startMarker))\n\t\t\t\t.append(_createMarker(endMarker));\n\n\t\t\tif (returnHtml) {\n\t\t\t\treturn $div.html();\n\t\t\t}\n\n\t\t\treturn $(doc.createDocumentFragment()).append($div.contents())[0];\n\t\t};\n\n\t\t/**\n\t\t *

The same as insertHTML except with DOM nodes instead

\n\t\t *\n\t\t *

Warning: the nodes must belong to the\n\t\t * document they are being inserted into. Some browsers\n\t\t * will throw exceptions if they don't.

\n\t\t *\n\t\t * @param {Node} node\n\t\t * @param {Node} endNode\n\t\t * @return False on fail\n\t\t * @function\n\t\t * @name insertNode\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.insertNode = function (node, endNode) {\n\t\t\tif (isW3C) {\n\t\t\t\tvar\tinput = _prepareInput(node, endNode),\n\t\t\t\t\trange = base.selectedRange(),\n\t\t\t\t\tparent = range.commonAncestorContainer;\n\n\t\t\t\tif (!input) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trange.deleteContents();\n\n\t\t\t\t// FF allows
to be selected but inserting a node\n\t\t\t\t// into
will cause it not to be displayed so must\n\t\t\t\t// insert before the
in FF.\n\t\t\t\t// 3 = TextNode\n\t\t\t\tif (parent && parent.nodeType !== 3 &&\n\t\t\t\t\t!dom.canHaveChildren(parent)) {\n\t\t\t\t\tparent.parentNode.insertBefore(input, parent);\n\t\t\t\t} else {\n\t\t\t\t\trange.insertNode(input);\n\t\t\t\t}\n\n\t\t\t\tbase.restoreRange();\n\t\t\t} else {\n\t\t\t\tbase.insertHTML(\n\t\t\t\t\t_nodeToHtml(node),\n\t\t\t\t\tendNode ? _nodeToHtml(endNode) : null\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t *

Clones the selected Range

\n\t\t *\n\t\t *

IE <= 8 will return a TextRange, all other browsers\n\t\t * will return a Range object.

\n\t\t *\n\t\t * @return {Range|TextRange}\n\t\t * @function\n\t\t * @name cloneSelected\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.cloneSelected = function () {\n\t\t\tvar range = base.selectedRange();\n\n\t\t\tif (range) {\n\t\t\t\treturn isW3C ? range.cloneRange() : range.duplicate();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t *

Gets the selected Range

\n\t\t *\n\t\t *

IE <= 8 will return a TextRange, all other browsers\n\t\t * will return a Range object.

\n\t\t *\n\t\t * @return {Range|TextRange}\n\t\t * @function\n\t\t * @name selectedRange\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.selectedRange = function () {\n\t\t\tvar\trange, firstChild,\n\t\t\t\tsel = isW3C ? win.getSelection() : doc.selection;\n\n\t\t\tif (!sel) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// When creating a new range, set the start to the first child\n\t\t\t// element of the body element to avoid errors in FF.\n\t\t\tif (sel.getRangeAt && sel.rangeCount <= 0) {\n\t\t\t\tfirstChild = doc.body;\n\t\t\t\twhile (firstChild.firstChild) {\n\t\t\t\t\tfirstChild = firstChild.firstChild;\n\t\t\t\t}\n\n\t\t\t\trange = doc.createRange();\n\t\t\t\t// Must be setStartBefore otherwise it can cause infinite\n\t\t\t\t// loops with lists in WebKit. See issue 442\n\t\t\t\trange.setStartBefore(firstChild);\n\n\t\t\t\tsel.addRange(range);\n\t\t\t}\n\n\t\t\tif (isW3C && sel.rangeCount > 0) {\n\t\t\t\trange = sel.getRangeAt(0);\n\t\t\t}\n\n\t\t\tif (!isW3C && sel.type !== 'Control') {\n\t\t\t\trange = sel.createRange();\n\t\t\t}\n\n\t\t\t// IE fix to make sure only return selections that\n\t\t\t// are part of the WYSIWYG iframe\n\t\t\treturn _isOwner(range) ? range : null;\n\t\t};\n\n\t\t/**\n\t\t * Checks if an IE TextRange range belongs to\n\t\t * this document or not.\n\t\t *\n\t\t * Returns true if the range isn't an IE range or\n\t\t * if the range is null.\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_isOwner = function (range) {\n\t\t\tvar parent;\n\n\t\t\tif (range && !isW3C) {\n\t\t\t\tparent = range.parentElement();\n\t\t\t}\n\n\t\t\t// IE fix to make sure only return selections\n\t\t\t// that are part of the WYSIWYG iframe\n\t\t\treturn parent ?\n\t\t\t\tparent.ownerDocument === doc :\n\t\t\t\ttrue;\n\t\t};\n\n\t\t/**\n\t\t * Gets if there is currently a selection\n\t\t *\n\t\t * @return {boolean}\n\t\t * @function\n\t\t * @name hasSelection\n\t\t * @since 1.4.4\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.hasSelection = function () {\n\t\t\tvar\tsel = isW3C ? win.getSelection() : doc.selection;\n\n\t\t\tif (isW3C || !sel) {\n\t\t\t\treturn sel && sel.rangeCount > 0;\n\t\t\t}\n\n\t\t\treturn sel.type !== 'None' && _isOwner(sel.createRange());\n\t\t};\n\n\t\t/**\n\t\t * Gets the currently selected HTML\n\t\t *\n\t\t * @return {string}\n\t\t * @function\n\t\t * @name selectedHtml\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.selectedHtml = function () {\n\t\t\tvar\tdiv,\n\t\t\t\trange = base.selectedRange();\n\n\t\t\tif (range) {\n\n\t\t\t\t// IE9+ and all other browsers\n\t\t\t\tif (isW3C) {\n\t\t\t\t\tdiv = doc.createElement('p');\n\t\t\t\t\tdiv.appendChild(range.cloneContents());\n\n\t\t\t\t\treturn div.innerHTML;\n\t\t\t\t// IE < 9\n\t\t\t\t} else if (range.text !== '' && range.htmlText) {\n\t\t\t\t\treturn range.htmlText;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\t/**\n\t\t * Gets the parent node of the selected contents in the range\n\t\t *\n\t\t * @return {HTMLElement}\n\t\t * @function\n\t\t * @name parentNode\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.parentNode = function () {\n\t\t\tvar range = base.selectedRange();\n\n\t\t\tif (range) {\n\t\t\t\treturn range.parentElement ?\n\t\t\t\t\trange.parentElement() :\n\t\t\t\t\trange.commonAncestorContainer;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Gets the first block level parent of the selected\n\t\t * contents of the range.\n\t\t *\n\t\t * @return {HTMLElement}\n\t\t * @function\n\t\t * @name getFirstBlockParent\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\t/**\n\t\t * Gets the first block level parent of the selected\n\t\t * contents of the range.\n\t\t *\n\t\t * @param {Node} n The element to get the first block level parent from\n\t\t * @return {HTMLElement}\n\t\t * @function\n\t\t * @name getFirstBlockParent^2\n\t\t * @since 1.4.1\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.getFirstBlockParent = function (n) {\n\t\t\tvar func = function (node) {\n\t\t\t\tif (!dom.isInline(node, true)) {\n\t\t\t\t\treturn node;\n\t\t\t\t}\n\n\t\t\t\tnode = node ? node.parentNode : null;\n\n\t\t\t\treturn node ? func(node) : node;\n\t\t\t};\n\n\t\t\treturn func(n || base.parentNode());\n\t\t};\n\n\t\t/**\n\t\t * Inserts a node at either the start or end of the current selection\n\t\t *\n\t\t * @param {Bool} start\n\t\t * @param {Node} node\n\t\t * @function\n\t\t * @name insertNodeAt\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.insertNodeAt = function (start, node) {\n\t\t\tvar\tcurrentRange = base.selectedRange(),\n\t\t\t\trange = base.cloneSelected();\n\n\t\t\tif (!range) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\trange.collapse(start);\n\n\t\t\tif (isW3C) {\n\t\t\t\trange.insertNode(node);\n\t\t\t} else {\n\t\t\t\trange.pasteHTML(_nodeToHtml(node));\n\t\t\t}\n\n\t\t\t// Reselect the current range.\n\t\t\t// Fixes issue with Chrome losing the selection. Issue#82\n\t\t\tbase.selectRange(currentRange);\n\t\t};\n\n\t\t/**\n\t\t * Creates a marker node\n\t\t *\n\t\t * @param {string} id\n\t\t * @return {Node}\n\t\t * @private\n\t\t */\n\t\t_createMarker = function (id) {\n\t\t\tbase.removeMarker(id);\n\n\t\t\tvar marker = doc.createElement('span');\n\t\t\tmarker.id = id;\n\t\t\tmarker.style.lineHeight = '0';\n\t\t\tmarker.style.display = 'none';\n\t\t\tmarker.className = 'sceditor-selection sceditor-ignore';\n\t\t\tmarker.innerHTML = ' ';\n\n\t\t\treturn marker;\n\t\t};\n\n\t\t/**\n\t\t * Inserts start/end markers for the current selection\n\t\t * which can be used by restoreRange to re-select the\n\t\t * range.\n\t\t *\n\t\t * @memberOf RangeHelper.prototype\n\t\t * @function\n\t\t * @name insertMarkers\n\t\t */\n\t\tbase.insertMarkers = function () {\n\t\t\tbase.insertNodeAt(true, _createMarker(startMarker));\n\t\t\tbase.insertNodeAt(false, _createMarker(endMarker));\n\t\t};\n\n\t\t/**\n\t\t * Gets the marker with the specified ID\n\t\t *\n\t\t * @param {string} id\n\t\t * @return {Node}\n\t\t * @function\n\t\t * @name getMarker\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.getMarker = function (id) {\n\t\t\treturn doc.getElementById(id);\n\t\t};\n\n\t\t/**\n\t\t * Removes the marker with the specified ID\n\t\t *\n\t\t * @param {string} id\n\t\t * @function\n\t\t * @name removeMarker\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.removeMarker = function (id) {\n\t\t\tvar marker = base.getMarker(id);\n\n\t\t\tif (marker) {\n\t\t\t\tmarker.parentNode.removeChild(marker);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Removes the start/end markers\n\t\t *\n\t\t * @function\n\t\t * @name removeMarkers\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.removeMarkers = function () {\n\t\t\tbase.removeMarker(startMarker);\n\t\t\tbase.removeMarker(endMarker);\n\t\t};\n\n\t\t/**\n\t\t * Saves the current range location. Alias of insertMarkers()\n\t\t *\n\t\t * @function\n\t\t * @name saveRage\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.saveRange = function () {\n\t\t\tbase.insertMarkers();\n\t\t};\n\n\t\t/**\n\t\t * Select the specified range\n\t\t *\n\t\t * @param {Range|TextRange} range\n\t\t * @function\n\t\t * @name selectRange\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.selectRange = function (range) {\n\t\t\tif (isW3C) {\n\t\t\t\tvar lastChild;\n\t\t\t\tvar sel = win.getSelection();\n\t\t\t\tvar container = range.endContainer;\n\n\t\t\t\t// Check if cursor is set after a BR when the BR is the only\n\t\t\t\t// child of the parent. In Firefox this causes a line break\n\t\t\t\t// to occur when something is typed. See issue #321\n\t\t\t\tif (!IE_BR_FIX && range.collapsed && container &&\n\t\t\t\t\t!dom.isInline(container, true)) {\n\n\t\t\t\t\tlastChild = container.lastChild;\n\t\t\t\t\twhile (lastChild && $(lastChild).is('.sceditor-ignore')) {\n\t\t\t\t\t\tlastChild = lastChild.previousSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($(lastChild).is('br')) {\n\t\t\t\t\t\tvar rng = doc.createRange();\n\t\t\t\t\t\trng.setEndAfter(lastChild);\n\t\t\t\t\t\trng.collapse(false);\n\n\t\t\t\t\t\tif (base.compare(range, rng)) {\n\t\t\t\t\t\t\trange.setStartBefore(lastChild);\n\t\t\t\t\t\t\trange.collapse(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (sel) {\n\t\t\t\t\tbase.clear();\n\t\t\t\t\tsel.addRange(range);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trange.select();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Restores the last range saved by saveRange() or insertMarkers()\n\t\t *\n\t\t * @function\n\t\t * @name restoreRange\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.restoreRange = function () {\n\t\t\tvar\tmarker, isCollapsed, previousSibling,\n\t\t\t\trange = base.selectedRange(),\n\t\t\t\tstart = base.getMarker(startMarker),\n\t\t\t\tend = base.getMarker(endMarker);\n\n\t\t\tif (!start || !end || !range) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tisCollapsed = start.nextSibling === end;\n\n\t\t\tif (!isW3C) {\n\t\t\t\trange = doc.body.createTextRange();\n\t\t\t\tmarker = doc.body.createTextRange();\n\n\t\t\t\t// IE < 9 cannot set focus after a BR so need to insert\n\t\t\t\t// a dummy char after it to allow the cursor to be placed\n\t\t\t\tpreviousSibling = start.previousSibling;\n\t\t\t\tif (start.nextSibling === end && (!previousSibling ||\n\t\t\t\t\t!dom.isInline(previousSibling, true) ||\n\t\t\t\t\t$(previousSibling).is('br'))) {\n\t\t\t\t\t$(start).before('\\u200B');\n\t\t\t\t}\n\n\t\t\t\tmarker.moveToElementText(start);\n\t\t\t\trange.setEndPoint('StartToStart', marker);\n\t\t\t\trange.moveStart(CHARACTER, 0);\n\n\t\t\t\tmarker.moveToElementText(end);\n\t\t\t\trange.setEndPoint('EndToStart', marker);\n\t\t\t\trange.moveEnd(CHARACTER, 0);\n\t\t\t} else {\n\t\t\t\trange = doc.createRange();\n\n\t\t\t\trange.setStartBefore(start);\n\t\t\t\trange.setEndAfter(end);\n\t\t\t}\n\n\t\t\tif (isCollapsed) {\n\t\t\t\trange.collapse(true);\n\t\t\t}\n\n\t\t\tbase.selectRange(range);\n\t\t\tbase.removeMarkers();\n\t\t};\n\n\t\t/**\n\t\t * Selects the text left and right of the current selection\n\t\t *\n\t\t * @param {int} left\n\t\t * @param {int} right\n\t\t * @since 1.4.3\n\t\t * @function\n\t\t * @name selectOuterText\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.selectOuterText = function (left, right) {\n\t\t\tvar start, end,\n\t\t\t\trange = base.cloneSelected();\n\n\t\t\tif (!range) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\trange.collapse(false);\n\n\t\t\tif (!isW3C) {\n\t\t\t\trange.moveStart(CHARACTER, 0 - left);\n\t\t\t\trange.moveEnd(CHARACTER, right);\n\t\t\t} else {\n\t\t\t\tstart = outerText(range, true, left);\n\t\t\t\tend = outerText(range, false, right);\n\n\t\t\t\trange.setStart(start.node, start.offset);\n\t\t\t\trange.setEnd(end.node, end.offset);\n\t\t\t}\n\n\t\t\tbase.selectRange(range);\n\t\t};\n\n\t\t/**\n\t\t * Gets the text left or right of the current selection\n\t\t *\n\t\t * @param {boolean} before\n\t\t * @param {number} length\n\t\t * @since 1.4.3\n\t\t * @function\n\t\t * @name selectOuterText\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\tbase.getOuterText = function (before, length) {\n\t\t\tvar\trange = base.cloneSelected();\n\n\t\t\tif (!range) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\trange.collapse(!before);\n\n\t\t\tif (!isW3C) {\n\t\t\t\tif (before) {\n\t\t\t\t\trange.moveStart(CHARACTER, 0 - length);\n\t\t\t\t} else {\n\t\t\t\t\trange.moveEnd(CHARACTER, length);\n\t\t\t\t}\n\n\t\t\t\treturn range.text;\n\t\t\t}\n\n\t\t\treturn outerText(range, before, length).text;\n\t\t};\n\n\t\t/**\n\t\t * Replaces keywords with values based on the current caret position\n\t\t *\n\t\t * @param {Array} keywords\n\t\t * @param {boolean} includeAfter If to include the text after the\n\t\t * current caret position or just\n\t\t * text before\n\t\t * @param {boolean} keywordsSorted If the keywords array is pre\n\t\t * sorted shortest to longest\n\t\t * @param {number} longestKeyword Length of the longest keyword\n\t\t * @param {boolean} requireWhitespace If the key must be surrounded\n\t\t * by whitespace\n\t\t * @param {string} keypressChar If this is being called from\n\t\t * a keypress event, this should be\n\t\t * set to the pressed character\n\t\t * @return {boolean}\n\t\t * @function\n\t\t * @name replaceKeyword\n\t\t * @memberOf RangeHelper.prototype\n\t\t */\n\t\t/*jshint maxparams: false*/\n\t\tbase.replaceKeyword = function (\n\t\t\tkeywords,\n\t\t\tincludeAfter,\n\t\t\tkeywordsSorted,\n\t\t\tlongestKeyword,\n\t\t\trequireWhitespace,\n\t\t\tkeypressChar\n\t\t) {\n\t\t\tif (!keywordsSorted) {\n\t\t\t\tkeywords.sort(function (a, b) {\n\t\t\t\t\treturn a[0].length - b[0].length;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar outerText, matchPos, startIndex, leftLen,\n\t\t\t\tcharsLeft, keyword, keywordLen,\n\t\t\t\twhitespaceRegex = '[\\\\s\\xA0\\u2002\\u2003\\u2009]',\n\t\t\t\tkeywordIdx = keywords.length,\n\t\t\t\twhitespaceLen = requireWhitespace ? 1 : 0,\n\t\t\t\tmaxKeyLen = longestKeyword ||\n\t\t\t\t\tkeywords[keywordIdx - 1][0].length;\n\n\t\t\tif (requireWhitespace) {\n\t\t\t\t// requireWhitespace doesn't work with textRanges as they\n\t\t\t\t// select text on the other side of elements causing\n\t\t\t\t// space-img-key to match when it shouldn't.\n\t\t\t\tif (!isW3C) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tmaxKeyLen++;\n\t\t\t}\n\n\t\t\tkeypressChar = keypressChar || '';\n\t\t\touterText = base.getOuterText(true, maxKeyLen);\n\t\t\tleftLen = outerText.length;\n\t\t\touterText += keypressChar;\n\n\t\t\tif (includeAfter) {\n\t\t\t\touterText += base.getOuterText(false, maxKeyLen);\n\t\t\t}\n\n\t\t\twhile (keywordIdx--) {\n\t\t\t\tkeyword = keywords[keywordIdx][0];\n\t\t\t\tkeywordLen = keyword.length;\n\t\t\t\tstartIndex = Math.max(0, leftLen - keywordLen - whitespaceLen);\n\n\t\t\t\tif (requireWhitespace) {\n\t\t\t\t\tmatchPos = outerText\n\t\t\t\t\t\t.substr(startIndex)\n\t\t\t\t\t\t.search(new RegExp(\n\t\t\t\t\t\t\t'(?:' + whitespaceRegex + ')' +\n\t\t\t\t\t\t\tescape.regex(keyword) +\n\t\t\t\t\t\t\t'(?=' + whitespaceRegex + ')'\n\t\t\t\t\t\t));\n\t\t\t\t} else {\n\t\t\t\t\tmatchPos = outerText.indexOf(keyword, startIndex);\n\t\t\t\t}\n\n\t\t\t\tif (matchPos > -1) {\n\t\t\t\t\t// Add the length of the text that was removed by substr()\n\t\t\t\t\t// when matching and also add 1 for the whitespace\n\t\t\t\t\tif (requireWhitespace) {\n\t\t\t\t\t\tmatchPos += startIndex + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Make sure the match is between before and\n\t\t\t\t\t// after, not just entirely in one side or the other\n\t\t\t\t\tif (matchPos <= leftLen &&\n\t\t\t\t\t\tmatchPos + keywordLen + whitespaceLen >= leftLen) {\n\t\t\t\t\t\tcharsLeft = leftLen - matchPos;\n\n\t\t\t\t\t\t// If the keypress char is white space then it should\n\t\t\t\t\t\t// not be replaced, only chars that are part of the\n\t\t\t\t\t\t// key should be replaced.\n\t\t\t\t\t\tbase.selectOuterText(\n\t\t\t\t\t\t\tcharsLeft,\n\t\t\t\t\t\t\tkeywordLen - charsLeft -\n\t\t\t\t\t\t\t\t(/^\\S/.test(keypressChar) ? 1 : 0)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tbase.insertHTML(keywords[keywordIdx][1]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t * Compares two ranges.\n\t\t *\n\t\t * If rangeB is undefined it will be set to\n\t\t * the current selected range\n\t\t *\n\t\t * @param {Range|TextRange} rangeA\n\t\t * @param {Range|TextRange} rangeB\n\t\t * @return {boolean}\n\t\t */\n\t\tbase.compare = function (rangeA, rangeB) {\n\t\t\tvar\tEND_TO_END = isW3C ? Range.END_TO_END : 'EndToEnd',\n\t\t\t\tSTART_TO_START = isW3C ? Range.START_TO_START : 'StartToStart',\n\t\t\t\tcomparePoints = isW3C ?\n\t\t\t\t\t'compareBoundaryPoints' :\n\t\t\t\t\t'compareEndPoints';\n\n\t\t\tif (!rangeB) {\n\t\t\t\trangeB = base.selectedRange();\n\t\t\t}\n\n\t\t\tif (!rangeA || !rangeB) {\n\t\t\t\treturn !rangeA && !rangeB;\n\t\t\t}\n\n\t\t\treturn _isOwner(rangeA) && _isOwner(rangeB) &&\n\t\t\t\trangeA[comparePoints](END_TO_END, rangeB) === 0 &&\n\t\t\t\trangeA[comparePoints](START_TO_START, rangeB) === 0;\n\t\t};\n\n\t\t/**\n\t\t * Removes any current selection\n\t\t *\n\t\t * @since 1.4.6\n\t\t */\n\t\tbase.clear = function () {\n\t\t\tvar sel = isW3C ? win.getSelection() : doc.selection;\n\n\t\t\tif (sel) {\n\t\t\t\tif (sel.removeAllRanges) {\n\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t} else if (sel.empty) {\n\t\t\t\t\tsel.empty();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\treturn RangeHelper;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/RangeHelper.js\n// module id = 14\n// module chunks = 0","define(function () {\n\t'use strict';\n\n\t/**\n\t * HTML templates used by the editor and default commands\n\t * @type {Object}\n\t * @private\n\t */\n\tvar _templates = {\n\t\thtml:\n\t\t\t'' +\n\t\t\t'' +\n\t\t\t\t'' +\n// TODO: move these styles into the CSS file\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t\t'' +\n\t\t\t\t'' +\n\t\t\t\t'

' +\n\t\t\t'',\n\n\t\ttoolbarButton: '' +\n\t\t\t'
',\n\n\t\temoticon: '',\n\n\t\tfontOpt: '{font}',\n\n\t\tsizeOpt: '{size}',\n\n\t\tpastetext:\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
',\n\n\t\ttable:\n\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t'
',\n\n\t\timage:\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
',\n\n\t\temail:\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
',\n\n\t\tlink:\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
',\n\n\t\tyoutubeMenu:\n\t\t\t'
' +\n\t\t\t\t'
' +\n\t\t\t'
' +\n\t\t\t\t'
',\n\n\t\tyoutube:\n\t\t\t''\n\t};\n\n\t/**\n\t *

Replaces any params in a template with the passed params.

\n\t *\n\t *

If createHtml is passed it will use jQuery to create the HTML. The\n\t * same as doing: $(editor.tmpl(\"html\", {params...}));

\n\t *\n\t * @param {string} name\n\t * @param {Object} params\n\t * @param {Boolean} createHtml\n\t * @private\n\t */\n\treturn function (name, params, createHtml) {\n\t\tvar template = _templates[name];\n\n\t\t$.each(params, function (name, val) {\n\t\t\ttemplate = template.replace(\n\t\t\t\tnew RegExp('\\\\{' + name + '\\\\}', 'g'), val\n\t\t\t);\n\t\t});\n\n\t\tif (createHtml) {\n\t\t\ttemplate = $(template);\n\t\t}\n\n\t\treturn template;\n\t};\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/lib/templates.js\n// module id = 15\n// module chunks = 0","\"use strict\";\r\nvar env = {\r\n isTest:false, //69测试环境\r\n isUAT:false,\t\t//UAT环境\r\n isRelease:false, //生产环境\r\n isDevelop:false //本机开发环境\r\n}\r\n\r\nvar locationHref = window.location.href;\r\nif( locationHref.indexOf(\"gubadevelop.eastmoney.com\")>=0 || locationHref.indexOf(\"gubademo.eastmoney.com\")>=0 || locationHref.indexOf(\"gubaf10.eastmoney.com\")>=0 || locationHref.indexOf(\"gubatest.eastmoney.com\")>=0 ){\r\n env.isTest = true;\r\n}else if(locationHref.indexOf(\"guba-test.eastmoney.com\")>=0||locationHref.indexOf(\"guba3.eastmoney.com\")>=0){\r\n env.isUAT = true;\r\n}else if(locationHref.indexOf(\"guba.eastmoney.com\")>=0||locationHref.indexOf(\"guba2huidu.eastmoney.com\")>=0){\r\n env.isRelease = true;\r\n}else{\r\n env.isDevelop = true;\r\n}\r\n\r\nmodule.exports = env;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/env.js\n// module id = 16\n// module chunks = 0","var lastHeight = 250\r\n\r\nvar editor = {\r\n config:null,\r\n editorObj:null,\r\n isFullscreen:false,\r\n maxHeight:500,\r\n init:function(editor,config){\r\n this.editorObj = editor\r\n this.config = config\r\n },\r\n updateSize:function(minHeight){\r\n var that = this\r\n setTimeout(function(){\r\n // console.log(that.editorObj.getBody())\r\n // console.log(,that.editorObj.height())\r\n // editorObj.height(lastHeight)\r\n\r\n // console.log(contentHeight,height)\r\n // if(minHeight && minHeight>0){\r\n // if(that.editorObj.height()this.editorObj.height()){\r\n if($(this.editorObj.getBody()[0]).height()>this.config.INIT_HEIGHT){\r\n this.updateToMaxHeight()\r\n return true\r\n }else{\r\n return false\r\n }\r\n },\r\n checkHeight:function(){\r\n // console.log(\"check height\")\r\n // this.editorObj.getRangeHelper().saveRange();\r\n var content = this.editorObj.getBody()[0].innerHTML\r\n var matches = content.match(/

=0 || pLen>4 || $(this.editorObj.getBody()[0]).height()>this.config.INIT_HEIGHT){//有图片\r\n this.updateToMaxHeight()\r\n }else{\r\n if(!this.isFullscreen)\r\n this.setHeight(this.config.INIT_HEIGHT)\r\n this.updateSize()\r\n }\r\n // var that = this\r\n // setTimeout(function(){\r\n // that.editorObj.getRangeHelper().restoreRange()\r\n // },10)\r\n \r\n },\r\n setHeight:function(height){\r\n this.editorObj.height(height)\r\n try{\r\n if(height>=this.maxHeight)\r\n this.editorObj.getBody()[0].style.height=(this.maxHeight+\"px\")\r\n else{\r\n this.editorObj.getBody()[0].style.height=\"auto\"\r\n }\r\n }catch(e){\r\n\r\n }\r\n this.editorObj.expandToContent()\r\n },\r\n getImgCount:function(){\r\n var imgCount=0\r\n\t\t//过滤行情图片添加链接\r\n\t\t//\r\n\t\t$(this.editorObj.getBody()).find(\"img\").each(function(){\r\n\t\t\tif($(this).hasClass(\"face\")){//表情图片忽略\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t++imgCount\r\n })\r\n return imgCount\r\n }\r\n};\r\n\r\nmodule.exports = editor\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/editor.js\n// module id = 17\n// module chunks = 0","// var urler = require(\"./url.js\")\r\nvar cookie = require('./cookie')\r\nvar env = require('./env')\r\n//jsonp 和 ajax 请求封装\r\n$.support.cors = true;//IE9兼容\r\n\r\nfunction SimplePromise(){\r\n this.request = null\r\n this.successCall = null\r\n this.success = function(cb){\r\n this.successCall=cb;\r\n return this;\r\n }\r\n this.errorCall = null\r\n this.error = function(cb){\r\n this.errorCall=cb;\r\n return this;\r\n }\r\n}\r\n\r\nfunction sendGubawebapi(url,param,josnPcbName){\r\n \r\n // var env = helper.isRelease?\"//iguba.eastmoney.com\":\"//igubatest.eastmoney.com\",\r\n\r\n var urlmain = \"http://iguba.eastmoney.com/gubaapi/v3/\"\r\n var params = {\r\n pi: 'ecp',\r\n isweb: true,\r\n deviceid: 'wenda',\r\n version: '3.1.1',\r\n product: 'Guba',\r\n plat: 'Web'\r\n };\r\n for(var prob in param){\r\n params[prob] = param[prob]\r\n }\r\n return jsonp(urlmain+url, params, 'jsonp',josnPcbName);\r\n}\r\n\r\nfunction jsonp(url,param,dataType,josnPcbName){\r\n var promise = new SimplePromise()\r\n var dataType = dataType?dataType:'jsonp';\r\n var url = url\r\n var jsonpCallback = josnPcbName?josnPcbName:\"\"\r\n var opt = {\r\n type: \"GET\",\r\n url: url,\r\n dataType: dataType,\r\n data: param,\r\n success: function (data) {\r\n if(promise.successCall){//业务逻辑成功\r\n promise.successCall(data);\r\n }\r\n },\r\n error : function (){\r\n }\r\n }\r\n if(jsonpCallback){\r\n opt.jsonpCallback=jsonpCallback\r\n }\r\n $.ajax(opt);\r\n\r\n\r\n return promise\r\n}\r\n\r\n\r\nfunction send(route,param){\r\n var realUrl = ''\r\n // param[\"AppId\"]=\"EM_PC_Web\"\r\n // if(route)\r\n var paramObj = {}\r\n param = $.extend(param,{plat:'web',version:'1',product:'guba'})\r\n var paramStr = $.param( param );\r\n paramObj = {\r\n \"param\":paramStr\r\n }\r\n // if(!env.isRelease){\r\n // route = \"http://gubaapi-dev.eastmoney.com/\"+route\r\n // // route = \"http://10.228.130.129:8081/\"+route\r\n // }\r\n if(env.isDevelop){//本机情况下发送可以支持跨域的后台\r\n // realUrl = \"//localhost:1307/GetData.aspx\"\r\n realUrl = \"//gubademo.eastmoney.com/interface/GetData.aspx\"\r\n paramObj.path = route\r\n paramObj.origin = window.location.origin\r\n }else{\r\n if(env.isUAT){\r\n route = \"http://gbapi-test.eastmoney.com/\"+route\r\n }else{\r\n\r\n }\r\n realUrl = \"/interface/GetData.aspx\"\r\n paramObj.path = route\r\n }\r\n \r\n return ajax(realUrl,paramObj);\r\n}\r\n\r\nfunction ajax(url,param){\r\n var promise = new SimplePromise()\r\n var url = url\r\n var method = \"POST\"\r\n\r\n $.ajax({\r\n type: method,\r\n url: url,\r\n dataType: \"json\",\r\n data: param,\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data) {\r\n if(promise.successCall){//业务逻辑成功\r\n promise.successCall(data);\r\n }\r\n },\r\n error : function (res){\r\n console.log(res)\r\n if(promise.errorCall){//接口调用失败\r\n promise.errorCall(res);\r\n }\r\n }\r\n });\r\n\r\n return promise\r\n}\r\n\r\n\r\n\r\nmodule.exports = {\r\n send:send,\r\n ajax:ajax,\r\n jsonp:jsonp,\r\n sendGubawebapi:sendGubawebapi\r\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/net.js\n// module id = 18\n// module chunks = 0","//cookie操作简单封装\r\nvar cookie = {\r\n\tget:function(name)\r\n\t{\r\n\t\tvar arr=null;\r\n\t\tvar reg=new RegExp(\"(^| )\"+name+\"=([^;]*)(;|$)\");\r\n\t\tif(name == \"topicHistory\"){\r\n\t\t\t// alert(document.cookie.match(reg))\r\n\t\t}\r\n\t\tif(arr=document.cookie.match(reg)){\r\n\t\t\treturn decodeURIComponent(arr[2]);\r\n\t\t}else{\r\n\t\t\treturn null;\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * 写cookie\r\n\t * @param {[type]} name [description]\r\n\t * @param {[type]} value [description]\r\n\t * //s20是代表20秒\r\n\t\t//h是指小时,如12小时则是:h12\r\n\t\t//d是天数,30天则:d30\r\n\t\t//不传,表示关闭浏览器就失效\r\n\t */\r\n\tset:function(name,value,time,domain)\r\n\t{\r\n\t\t//var domain = window.location.hostname;\r\n\t var domain = domain?domain:\".eastmoney.com\";\r\n\t //var domain=window.location.hostname;\r\n\t\t// if(helper.bridge.isHybrid()){\r\n\t // \tdomain=window.location.hostname;\r\n\t // }\r\n\t \t// alert(domain);\r\n\t var exp = new Date();\r\n\r\n\t if(time){\r\n\t\t var strsec = this.getsec(time);\r\n\t\t exp.setTime(exp.getTime() + strsec*1);\r\n\t\t document.cookie = name + \"=\"+ encodeURIComponent(value) + \";domain=\"+domain+\";path=/;expires=\" + exp.toGMTString();\r\n\t }else{\r\n\t \tdocument.cookie = name + \"=\"+ encodeURIComponent(value) + \";domain=\"+domain+\";path=/\";\r\n\t }\r\n\t},\r\n\tgetsec:function(str)\r\n\t{\r\n\t var str1=str.substring(1,str.length)*1;\r\n\t var str2=str.substring(0,1);\r\n\t if (str2==\"s\")\r\n\t {\r\n\t return str1*1000;\r\n\t }\r\n\t else if (str2==\"h\")\r\n\t {\r\n\t return str1*60*60*1000;\r\n\t }\r\n\t else if (str2==\"d\")\r\n\t {\r\n\t return str1*24*60*60*1000;\r\n\t }\r\n\t},\r\n\tremoveCookie: function (key, options) {\r\n\t\tif (this.get(key) === undefined) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Must not alter options, thus extending a fresh object...\r\n\t\tthis.get(key, '', $.extend({}, options, { expires: -1 }));\r\n\t\treturn !this.get(key);\r\n\t}\r\n}\r\n\r\nmodule.exports = {\r\n\tget: cookie.get,\r\n\tset: cookie.set,\r\n\tgetsec: cookie.getsec,\r\n\tremoveCookie:cookie.removeCookie\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/cookie.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar VERSION = '4.0.12';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 7;\n\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4wLjEyJztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/base.js\n// module id = 20\n// module chunks = 0","var hbs = require(\"./title.hbs\")\r\nvar placeholder = require(\"./../placeholder/index\")\r\nvar config = require(\"../../config\")\r\nrequire(\"./title.css\")\r\n\r\nmodule.exports = {\r\n wrapId:\"\",\r\n launch:function(wrapId){\r\n this.wrapId = wrapId\r\n var maxTitle = config.MAX_TITLE\r\n $(wrapId).html(hbs({maxTitle:maxTitle}))\r\n\r\n var titleInputObj = $(wrapId).find(\".xeditor_title\")\r\n /**\r\n * 监听标题字数\r\n */\r\n var xeditor_title_limit_now = $(wrapId).find(\".xeditor_title_limit_now\");\r\n function listen_title() {\r\n var count = $.trim(titleInputObj.val()).length;\r\n if(count<=maxTitle)\r\n xeditor_title_limit_now.text(count);\r\n }\r\n\r\n titleInputObj.on('input propertychange', function () {\r\n listen_title();\r\n });\r\n\r\n setTimeout(function(){\r\n listen_title();\r\n },50)\r\n\r\n return titleInputObj;\r\n },\r\n\r\n clean:function(){\r\n $(\"#xeditor_title\").val(\"\")//清空标题\r\n $(this.wrapId).find(\".xeditor_title_limit_now\").text(0)//清空字数\r\n }\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/title/title.js\n// module id = 21\n// module chunks = 0","var publish = require(\"../publish/publish\")\r\nvar helper = require(\"../helper/helper\")\r\nvar config = require(\"../../config\")\r\nvar draft = require(\"../draft/draft\")\r\nvar resizeLock = null\r\n\r\nfunction initScreen(){\r\n\tvar editorW = 800\r\n\tvar editorH = $(\"#xeditor_editor_body_wrap\").height()-100//helper.editor.editorObj.height()+300\r\n\t$(\"#xeditor_editor_body_wrap\").width(editorW)\r\n\t// $(\"#xeditor_editor_body_wrap\").height(editorH)\r\n\tvar windowW = $(window).width()\r\n\tvar windowH = $(window).height()\r\n\tvar offsetX = (windowW-editorW)/2\r\n\tvar offsetY = (windowH-editorH)/2-50\r\n\t$(\".xeditor_fullscreen_mask\").width(windowW+800)\r\n\t$(\".xeditor_fullscreen_mask\").height($(window).scrollTop()+windowH+1500)\r\n\t$(\".xeditor_fullscreen_mask\").css({\"left\":\"-666px\",\"top\":\"-1500px\"})\r\n\t$(\".xeditor_editor_body_wrap\").css({\"left\":offsetX+\"px\",\"top\":offsetY+\"px\"})\t\r\n}\r\n\r\nfunction onResize(){\r\n\tvar editorW = 800\r\n\tvar editorH = $(\"#xeditor_editor_body_wrap\").height()-100//helper.editor.editorObj.height()+300\r\n\tvar windowW = $(window).width()\r\n\tvar windowH = $(window).height()-50\r\n\t$(\".xeditor_fullscreen_mask\").width(windowW+800)\r\n\t$(\".xeditor_fullscreen_mask\").height($(window).scrollTop()+windowH+1500)\r\n\tvar offsetX = (windowW-editorW)/2\r\n\tvar offsetY = (windowH-editorH)/2\r\n\t$(\".xeditor_editor_body_wrap\").css({\"left\":offsetX+\"px\",\"top\":offsetY+\"px\"})\r\n}\r\n\r\nvar hasInit = false\r\nvar bodyOverflow=null\r\nvar fullscreen = {\r\n\tshow:function(editorObj){\r\n\t\tif(!hasInit){\r\n\t\t\tvar that = this\r\n\t\t\t$(\"#xeditor-icon-smallscreen\").click(function(){\r\n\t\t\t\tif(helper.opt.canExitFullScreen){\r\n\t\t\t\t\tif(helper.opt.canExitFullScreen(helper.editor.editorObj.getBody()[0].textContent,publish.contentIsEmpty(false))){\r\n\t\t\t\t\t\tthat.hide()\r\n\t\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\t\tthat.hide()\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t\thasInit=true\r\n\t\t}\r\n\t\tif(helper.opt.mode==\"simple\"){\t\t//股吧专用模式,点开全屏需要独立\r\n\t\t\t$(\"#editor_title\").show();\r\n\t\t\t$(\".editor_icons\").show();\r\n\t\t\t$(\".xeditor_bottom\").show();\r\n\t\t\tdraft.save(helper.editor.editorObj);\r\n\t\t\tdraft.changeSaveKey(\"fullscreen\");\r\n\t\t\tdraft.load(helper.editor.editorObj,true);\r\n\t\t}\r\n\t\tif(helper.opt.onEnterFullScreen){\r\n\t\t\thelper.opt.onEnterFullScreen()\r\n\t\t}\r\n\t\thelper.editor.isFullscreen=true\r\n\t\tvar windowH = $(window).height()\r\n\t\tif(windowH/2-50=0){\r\n\teditor.launchIn(\"#xeditor\",{saveKey:\"cjztb\",mode:\"simple\",placeholder:\"请输入内容\"})\r\n\r\n\t// editor.launchIn(\"#xeditor_fullscreen\",{saveKey:\"cjztb\"})\r\n}\r\n\r\nwindow.xeditor = editor\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/xeditor.js\n// module id = 23\n// module chunks = 0","var DEFAULT_VERSION = 8.0;\nvar ua = navigator.userAgent.toLowerCase();\nvar isIE = ua.indexOf(\"msie\")>-1;\nvar ieVersion;\nif(isIE){\n ieVersion = ua.match(/msie ([\\d.]+)/)[1];\n}\n\nif(isIE && ieVersion==\"8.0\"){\n\n //ie8模拟模式bug\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n\n }\n}\n\nif (!Object.keys) {//ie 7 support\n Object.keys = function(obj) {\n var keys = [];\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n keys.push(i);\n }\n }\n\n return keys;\n };\n\n\n}\nif (!Function.prototype.bind) {\n Function.prototype.bind = function (oThis) {\n if (typeof this !== \"function\") {\n // closest thing possible to the ECMAScript 5 internal IsCallable function\n throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function () {},\n fBound = function () {\n return fToBind.apply(this instanceof fNOP && oThis\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n fNOP.prototype = this.prototype;\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\nif (!Array.prototype.filter)\n{\n Array.prototype.filter = function(fun /*, thisp */)\n {\n \"use strict\";\n\n if (this === void 0 || this === null)\n throw new TypeError();\n\n var t = Object(this);\n var len = t.length >>> 0;\n if (typeof fun !== \"function\")\n throw new TypeError();\n\n var res = [];\n var thisp = arguments[1];\n for (var i = 0; i < len; i++)\n {\n if (i in t)\n {\n var val = t[i]; // in case fun mutates this\n if (fun.call(thisp, val, i, t))\n res.push(val);\n }\n }\n\n return res;\n };\n}\n// ES5 15.2.3.8\n// http://es5.github.com/#x15.2.3.8\nif (!Object.seal) {\n Object.seal = function seal(object) {\n if (Object(object) !== object) {\n throw new TypeError('Object.seal can only be called on Objects.');\n }\n // this is misleading and breaks feature-detection, but\n // allows \"securable\" code to \"gracefully\" degrade to working\n // but insecure code.\n return object;\n };\n}\n\n//startsWith\nif (typeof String.prototype.startsWith != 'function') {\n String.prototype.startsWith = function (prefix){\n return this.slice(0, prefix.length) === prefix;\n };\n}\n\n//endsWith\nif (typeof String.prototype.endsWith != 'function') {\n String.prototype.endsWith = function(suffix) {\n return this.indexOf(suffix, this.length - suffix.length) !== -1;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ie8.js\n// module id = 24\n// module chunks = 0","require(\"./zmt_editor/zmt_editor\")\r\nvar commands = require(\"./command/import\")\r\nvar clearFormat = require('./modules/clearFormat/clearFormat');\r\nvar helper = require(\"./modules/helper/helper\")\r\nvar title = require(\"./modules/title/title\")\r\nvar draft = require(\"./modules/draft/draft\")\r\nvar publish = require(\"./modules/publish/publish\")\r\nvar fullscreen = require(\"./modules/fullscreen/fullscreen\")\r\nvar config = require(\"./config\")\r\nvar hbs = require(\"./xeditor.hbs\")\r\n\r\n\r\n\r\nrequire(\"../sprite/sprite_editor.css\")\r\n\r\n\r\nvar zweditor = null\r\nvar keypressLock=null\r\n\r\nmodule.exports = {\r\n clean:function(){\r\n draft.clean()\r\n if(!helper.opt.outdraft || helper.editor.isFullscreen){\r\n\t\t\t$(\"#xeditor_title\").val(\"\")//清空标题\r\n\t\t}\r\n \r\n if(zweditor){\r\n $(zweditor.getBody()).html(\"\")//清空内容\r\n }\r\n },\r\n focus:function(){\r\n zweditor.focus()\r\n },\r\n insert:function(html){\r\n zweditor.insert(html)\r\n },\r\n insertImg:function(url){\r\n helper.dom.createImage(url,\"xeditor_img\",zweditor,null,\"\")\r\n },\r\n insertFace:function(url,title,type){\r\n zweditor.getBody().trigger(\"focus\")\r\n setTimeout(function(){\r\n if(!type){ //普通表情\r\n if($.browser.mozilla&&publish.contentIsEmpty()){\r\n zweditor.insert('

\"'+title+'\"

')\r\n }else{\r\n zweditor.insert('\"'+title+'\"')\r\n }\r\n }else{//大表情\r\n zweditor.insert('\"'+title+'\"')\r\n setTimeout(function(){\r\n helper.editor.updateToMaxHeight() //只要插入大表情,统一到最大\r\n },100)\r\n }\r\n },50)\r\n\r\n },\r\n fullscreen:function(){\r\n $(\"#xeditor-command-fullscreen\").click()\r\n },\r\n toExitFullscreen:function(){\r\n fullscreen.hide();\r\n },\r\n getEditorObj:function(){\r\n return zweditor\r\n },\r\n launchIn:function(wrapId,opt){\r\n var that = this\r\n // console.log(wrapId)\r\n if(typeof(wrapId)!=\"undefined\"){\r\n if(!helper.isSelector(wrapId)){\r\n wrapId = '#'+wrapId\r\n }\r\n }else{\r\n wrapId = '#xeditor'\r\n }\r\n helper.opt = opt\r\n // console.log(helper.isSelector(wrapId))\r\n var html = hbs({\"title\":opt.fTitle?opt.fTitle:\"发表新主题\"})\r\n $(wrapId).html(html)\r\n // console.log($(\"#xeditor\"))\r\n setTimeout(function(){\r\n\r\n var editor_config = {\r\n style: config.STYLE,\r\n // plugins: 'xhtml',\r\n emoticonsEnabled: false,\r\n resizeEnabled: true,\r\n toolbar: \"emoticon,image,quotation,bold,italic,underline,font_color,orderedlist,bulletlist,justifyleft,justifycenter,justifyright,horizontalrule,removeformat,fullscreen\",\r\n // toolbar:\"font_color,removeformat\",\r\n colors: '#000000,#FF0000,#009900,#196199,#00B7EF',\r\n toolbarContainer: $('#editor_icons_list').eq(0),\r\n autoExpand:false,//产品需求是,超过4行,变高到最大值\r\n width:\"100%\",\r\n resizeMaxHeight:config.MAX_HEIGHT,\r\n height:config.INIT_HEIGHT,\r\n disableBlockRemove:true, //空block元素删除时一起移除\r\n enablePasteFiltering:false\r\n }\r\n if(!opt.face || opt.face!=\"normal\"){\r\n editor_config.toolbar = \"face,image,quotation,bold,italic,underline,font_color,orderedlist,bulletlist,justifyleft,justifycenter,justifyright,horizontalrule,removeformat,fullscreen\"\r\n }\r\n\r\n /**\r\n * 编辑器绑定\r\n */\r\n zweditor = $(\"#article_text\").sceditor(editor_config).sceditor('instance');\r\n \r\n that.zweditor = zweditor\r\n helper.editor.maxHeight = config.MAX_HEIGHT\r\n helper.editor.init(zweditor,config)\r\n //发布\r\n publish.launchIn(\"#btn_publish\",zweditor,opt)\r\n // console.log(zweditor.getBody)\r\n zweditor.getBody().css(\"minHeight\",config.INIT_HEIGHT+\"px\")\r\n // helper.editor.setHeight(config.INIT_HEIGHT)\r\n // zweditor.document.execCommand(\"2D-Position\",\"true\",\"true\")\r\n zweditor.getBody().on('paste', function () {\r\n setTimeout(function () {\r\n clearFormat(zweditor);\r\n // setTimeout(function(){//图片需要撑大一下内容\r\n // // console.log(_this.expandToContent)\r\n // helper.editor.checkHeight()\r\n // zweditor.expandToContent();\r\n // },10)\r\n keypressLock = setTimeout(function(){\r\n helper.editor.checkHeight()\r\n },100)\r\n }, 100);\r\n });\r\n\r\n // //回车监听\r\n // zweditor.getBody().on('keypress', function (e) {\r\n \r\n // });\r\n //删除监听\r\n zweditor.getBody().on('keydown', function (e) {\r\n if(opt.placeholder && $(zweditor.getBody()[0]).find(\"#placeholder\").size()>0){\r\n $(zweditor.getBody()[0]).find(\"#placeholder\").remove()\r\n }\r\n if(!helper.editor.isFullscreen){\r\n if(e.keyCode==8 || e.keyCode==46){\r\n setTimeout(function(){\r\n if(publish.contentIsEmpty()){\r\n if(!helper.editor.isFullscreen){\r\n helper.editor.setHeight(config.INIT_HEIGHT)\r\n }\r\n }\r\n },10)\r\n }\r\n }\r\n if(keypressLock){\r\n clearTimeout(keypressLock)\r\n keypressLock=null\r\n }\r\n // console.log(e)\r\n keypressLock = setTimeout(function(){\r\n helper.editor.checkHeight()\r\n },100)\r\n });\r\n zweditor.getBody().on('mousedown', function (e) {\r\n if(opt.placeholder && $(zweditor.getBody()[0]).find(\"#placeholder\").size()>0){\r\n $(zweditor.getBody()[0]).find(\"#placeholder\").remove()\r\n }\r\n });\r\n zweditor.getBody().on('keyup', function (e) {\r\n if($(zweditor.getBody()[0]).html()==''){\r\n zweditor.insert('

')\r\n }\r\n });\r\n // console.log(opt)\r\n if(opt.placeholder){\r\n \r\n //placeholder\r\n zweditor.getBody().on('focus', function (e) {\r\n // console.log('focus1')\r\n if(publish.contentIsEmpty(false)){\r\n // console.log('focus2')\r\n $(zweditor.getBody()[0]).html('

')\r\n }\r\n });\r\n zweditor.getBody().on('blur', function (e) {\r\n // console.log(publish.contentIsEmpty(false))\r\n // console.log('blur1')\r\n if(publish.contentIsEmpty(false)){\r\n // console.log('blur2')\r\n $(zweditor.getBody()[0]).html(helper.dom.getPlaceholder(opt.placeholder))\r\n }\r\n });\r\n if(publish.contentIsEmpty()){\r\n setTimeout(function(){\r\n $(zweditor.getBody()[0]).html(helper.dom.getPlaceholder(opt.placeholder))\r\n // zweditor.blur()\r\n },10)\r\n }\r\n }\r\n\r\n \r\n //一些配置\r\n var allow_image = $(\"#xeditor\").data(\"allow_image\")\r\n if(allow_image==1){\r\n config.ALLOW_IMAGE = 1\r\n }\r\n\r\n if(helper.browser.isIE()){\r\n $(zweditor.document).on('click', function (e) {\r\n zweditor.focus()\r\n });\r\n }\r\n\r\n //绑定图片事件\r\n helper.dom.bindImageEvent(zweditor)\r\n\r\n //草稿\r\n draft.launchIn(\"#xeditor_draft_wrap\",zweditor,opt.saveKey)\r\n \r\n\r\n /*\r\n 标题\r\n */\r\n title.launch(\"#editor_title\")\r\n //初始化图片command\r\n commands.image.launch(zweditor)\r\n\r\n \r\n\r\n if(opt.mode == \"simple\"){\r\n $(\"#editor_title\").hide();\r\n $(\".editor_icons\").hide();\r\n $(\".xeditor_bottom\").hide();\r\n }\r\n \r\n },10)\r\n \r\n\r\n \r\n // $('#publish_btn').click(function(){\r\n // publish()\r\n // })\r\n // console.log(zweditor)\r\n \r\n }\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/editor.js\n// module id = 25\n// module chunks = 0","/**\n * 自媒体编辑器\n * SCEditor\n * http://www.sceditor.com/\n *\n * Copyright (C) 2014, Sam Clarke (samclarke.com)\n *\n * SCEditor is licensed under the MIT license:\n *\thttp://www.opensource.org/licenses/mit-license.php\n *\n * @fileoverview SCEditor - A lightweight WYSIWYG BBCode and HTML editor\n * @author Sam Clarke\n * @requires jQuery\n */\nrequire(\"./zmt_editor.css\")\ndefine(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\tvar SCEditor = require('./lib/SCEditor');\n\tvar PluginManager = require('./lib/PluginManager');\n\tvar browser = require('./lib/browser');\n\tvar escape = require('./lib/escape');\n\n\n\t// For backwards compatibility\n\t$.sceditor = SCEditor;\n\n\tSCEditor.commands = require('./lib/defaultCommands');\n\tSCEditor.defaultOptions = require('./lib/defaultOptions');\n\tSCEditor.RangeHelper = require('./lib/RangeHelper');\n\tSCEditor.dom = require('./lib/dom');\n\n\tSCEditor.ie = browser.ie;\n\tSCEditor.ios = browser.ios;\n\tSCEditor.isWysiwygSupported = browser.isWysiwygSupported;\n\n\tSCEditor.regexEscape = escape.regex;\n\tSCEditor.escapeEntities = escape.entities;\n\tSCEditor.escapeUriScheme = escape.uriScheme;\n\n\tSCEditor.PluginManager = PluginManager;\n\tSCEditor.plugins = PluginManager.plugins;\n\n\n\t/**\n\t * Creates an instance of sceditor on all textareas\n\t * matched by the jQuery selector.\n\t *\n\t * If options is set to \"state\" it will return bool value\n\t * indicating if the editor has been initialised on the\n\t * matched textarea(s). If there is only one textarea\n\t * it will return the bool value for that textarea.\n\t * If more than one textarea is matched it will\n\t * return an array of bool values for each textarea.\n\t *\n\t * If options is set to \"instance\" it will return the\n\t * current editor instance for the textarea(s). Like the\n\t * state option, if only one textarea is matched this will\n\t * return just the instance for that textarea. If more than\n\t * one textarea is matched it will return an array of\n\t * instances each textarea.\n\t *\n\t * @param {Object|String} options Should either be an Object of options or\n\t * the strings \"state\" or \"instance\"\n\t * @return {this|Array|jQuery.sceditor|Bool}\n\t */\n\t$.fn.sceditor = function (options) {\n\t\tvar\t$this, instance,\n\t\t\tret = [];\n\n\t\toptions = options || {};\n\n\t\tif (!options.runWithoutWysiwygSupport && !browser.isWysiwygSupported) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.each(function () {\n\t\t\t$this = this.jquery ? this : $(this);\n\t\t\tinstance = $this.data('sceditor');\n\n\t\t\t// Don't allow the editor to be initialised\n\t\t\t// on it's own source editor\n\t\t\tif ($this.parents('.sceditor-container').length > 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Add state of instance to ret if that is what options is set to\n\t\t\tif (options === 'state') {\n\t\t\t\tret.push(!!instance);\n\t\t\t} else if (options === 'instance') {\n\t\t\t\tret.push(instance);\n\t\t\t} else if (!instance) {\n\t\t\t\t/*jshint -W031*/\n\t\t\t\t(new SCEditor(this, options));\n\t\t\t}\n\t\t});\n\n\t\t// If nothing in the ret array then must be init so return this\n\t\tif (!ret.length) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn ret.length === 1 ? ret[0] : $(ret);\n\t};\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/zmt_editor/zmt_editor.js\n// module id = 26\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\tvar PluginManager = require('./PluginManager');\n\tvar RangeHelper = require('./RangeHelper');\n\tvar dom = require('./dom');\n\tvar escape = require('./escape');\n\tvar browser = require('./browser');\n\tvar _tmpl = require('./templates');\n\n\tvar globalWin = window;\n\tvar globalDoc = document;\n\tvar $globalWin = $(globalWin);\n\tvar $globalDoc = $(globalDoc);\n\n\tvar IE_VER = browser.ie;\n\n\t// In IE < 11 a BR at the end of a block level element\n\t// causes a line break. In all other browsers it's collapsed.\n\tvar IE_BR_FIX = IE_VER && IE_VER < 11;\n\n\n\t/**\n\t * SCEditor - A lightweight WYSIWYG editor\n\t *\n\t * @param {Element} el The textarea to be converted\n\t * @return {Object} options\n\t * @class sceditor\n\t * @name jQuery.sceditor\n\t */\n\tvar SCEditor = function (el, options) {\n\t\t/**\n\t\t * Alias of this\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar base = this;\n\n\t\t/**\n\t\t * The textarea element being replaced\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar original = el.get ? el.get(0) : el;\n\t\tvar $original = $(original);\n\n\t\t/**\n\t\t * The div which contains the editor and toolbar\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $editorContainer;\n\n\t\t/**\n\t\t * The editors toolbar\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $toolbar;\n\n\t\t/**\n\t\t * The editors iframe which should be in design mode\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $wysiwygEditor;\n\t\tvar wysiwygEditor;\n\n\t\t/**\n\t\t * The WYSIWYG editors body element\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $wysiwygBody;\n\t\tvar wysiwygBody;\n\n\t\t/**\n\t\t * The WYSIWYG editors document\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $wysiwygDoc;\n\t\tvar wysiwygDocument;\n\n\t\t/**\n\t\t * The editors textarea for viewing source\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $sourceEditor;\n\t\tvar sourceEditor;\n\n\t\t/**\n\t\t * The current dropdown\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar $dropdown;\n\n\t\t/**\n\t\t * Store the last cursor position. Needed for IE because it forgets\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar lastRange;\n\n\t\t/**\n\t\t * The editors locale\n\t\t *\n\t\t * @private\n\t\t */\n\t\tvar locale;\n\n\t\t/**\n\t\t * Stores a cache of preloaded images\n\t\t *\n\t\t * @private\n\t\t * @type {Array}\n\t\t */\n\t\tvar preLoadCache = [];\n\n\t\t/**\n\t\t * The editors rangeHelper instance\n\t\t *\n\t\t * @type {jQuery.sceditor.rangeHelper}\n\t\t * @private\n\t\t */\n\t\tvar rangeHelper;\n\n\t\t/**\n\t\t * Tags which require the new line fix\n\t\t *\n\t\t * @type {Array}\n\t\t * @private\n\t\t */\n\t\tvar requireNewLineFix = [];\n\n\t\t/**\n\t\t * An array of button state handlers\n\t\t *\n\t\t * @type {Array}\n\t\t * @private\n\t\t */\n\t\tvar btnStateHandlers = [];\n\n\t\t/**\n\t\t * Plugin manager instance\n\t\t *\n\t\t * @type {jQuery.sceditor.PluginManager}\n\t\t * @private\n\t\t */\n\t\tvar pluginManager;\n\n\t\t/**\n\t\t * The current node containing the selection/caret\n\t\t *\n\t\t * @type {Node}\n\t\t * @private\n\t\t */\n\t\tvar currentNode;\n\n\t\t/**\n\t\t * The first block level parent of the current node\n\t\t *\n\t\t * @type {node}\n\t\t * @private\n\t\t */\n\t\tvar currentBlockNode;\n\n\t\t/**\n\t\t * The current node selection/caret\n\t\t *\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tvar currentSelection;\n\n\t\t/**\n\t\t * Used to make sure only 1 selection changed\n\t\t * check is called every 100ms.\n\t\t *\n\t\t * Helps improve performance as it is checked a lot.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @private\n\t\t */\n\t\tvar isSelectionCheckPending;\n\n\t\t/**\n\t\t * If content is required (equivalent to the HTML5 required attribute)\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @private\n\t\t */\n\t\tvar isRequired;\n\n\t\t/**\n\t\t * The inline CSS style element. Will be undefined\n\t\t * until css() is called for the first time.\n\t\t *\n\t\t * @type {HTMLElement}\n\t\t * @private\n\t\t */\n\t\tvar inlineCss;\n\n\t\t/**\n\t\t * Object containing a list of shortcut handlers\n\t\t *\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tvar shortcutHandlers = {};\n\n\t\t/**\n\t\t * An array of all the current emoticons.\n\t\t *\n\t\t * Only used or populated when emoticonsCompat is enabled.\n\t\t *\n\t\t * @type {Array}\n\t\t * @private\n\t\t */\n\t\tvar currentEmoticons = [];\n\n\t\t/**\n\t\t * Cache of the current toolbar buttons\n\t\t *\n\t\t * @type {Object}\n\t\t * @private\n\t\t */\n\t\tvar toolbarButtons = {};\n\n\t\t/**\n\t\t * If the current autoUpdate action is canceled.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @private\n\t\t */\n\t\tvar autoUpdateCanceled;\n\n\t\t/**\n\t\t * Private functions\n\t\t * @private\n\t\t */\n\t\tvar\tinit,\n\t\t\treplaceEmoticons,\n\t\t\thandleCommand,\n\t\t\tsaveRange,\n\t\t\tinitEditor,\n\t\t\tinitPlugins,\n\t\t\tinitLocale,\n\t\t\tinitToolBar,\n\t\t\tinitOptions,\n\t\t\tinitEvents,\n\t\t\tinitCommands,\n\t\t\tinitResize,\n\t\t\tinitEmoticons,\n\t\t\tgetWysiwygDoc,\n\t\t\thandlePasteEvt,\n\t\t\thandlePasteData,\n\t\t\thandleKeyDown,\n\t\t\thandleBackSpace,\n\t\t\thandleKeyPress,\n\t\t\thandleFormReset,\n\t\t\thandleMouseDown,\n\t\t\thandleEvent,\n\t\t\thandleDocumentClick,\n\t\t\thandleWindowResize,\n\t\t\tupdateToolBar,\n\t\t\tupdateActiveButtons,\n\t\t\tsourceEditorSelectedText,\n\t\t\tappendNewLine,\n\t\t\tcheckSelectionChanged,\n\t\t\tcheckNodeChanged,\n\t\t\tautofocus,\n\t\t\temoticonsKeyPress,\n\t\t\temoticonsCheckWhitespace,\n\t\t\tcurrentStyledBlockNode,\n\t\t\ttriggerValueChanged,\n\t\t\tvalueChangedBlur,\n\t\t\tvalueChangedKeyUp,\n\t\t\tautoUpdate;\n\n\t\t/**\n\t\t * All the commands supported by the editor\n\t\t * @name commands\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.commands = $.extend(\n\t\t\ttrue,\n\t\t\t{},\n\t\t\t(options.commands || SCEditor.commands)\n\t\t);\n\n\t\t/**\n\t\t * Options for this editor instance\n\t\t * @name opts\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.opts = options = $.extend({}, SCEditor.defaultOptions, options);\n\n\n\t\t/**\n\t\t * Creates the editor iframe and textarea\n\t\t * @private\n\t\t */\n\t\tinit = function () {\n\t\t\t$original.data('sceditor', base);\n\n\t\t\t// Clone any objects in options\n\t\t\t$.each(options, function (key, val) {\n\t\t\t\tif ($.isPlainObject(val)) {\n\t\t\t\t\toptions[key] = $.extend(true, {}, val);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Load locale\n\t\t\tif (options.locale && options.locale !== 'en') {\n\t\t\t\tinitLocale();\n\t\t\t}\n\n\t\t\t$editorContainer = $('
')\n\t\t\t\t.insertAfter($original)\n\t\t\t\t.css('z-index', options.zIndex);\n\n\t\t\t//edit by ling到处给外部\n\t\t\tbase.editorContainer = $editorContainer\n\t\t\t// Add IE version to the container to allow IE specific CSS\n\t\t\t// fixes without using CSS hacks or conditional comments\n\t\t\tif (IE_VER) {\n\t\t\t\t$editorContainer.addClass('ie ie' + IE_VER);\n\t\t\t}\n\n\t\t\tisRequired = !!$original.attr('required');\n\t\t\t$original.removeAttr('required');\n\n\t\t\t// create the editor\n\t\t\tinitPlugins();\n\t\t\tinitEmoticons();\n\t\t\tinitToolBar();\n\t\t\tinitEditor(!!options.startInSourceMode);\n\t\t\tinitCommands();\n\t\t\tinitOptions();\n\t\t\tinitEvents();\n\n\t\t\t// force into source mode if is a browser that can't handle\n\t\t\t// full editing\n\t\t\tif (!browser.isWysiwygSupported) {\n\t\t\t\tbase.toggleSourceMode();\n\t\t\t}\n\n\t\t\tupdateActiveButtons();\n\n\t\t\tvar loaded = function () {\n\t\t\t\t$globalWin.off('load', loaded);\n\n\t\t\t\tif (options.autofocus) {\n\t\t\t\t\tautofocus();\n\t\t\t\t}\n\n\t\t\t\tif (options.autoExpand) {\n\t\t\t\t\tbase.expandToContent();\n\t\t\t\t}\n\n\t\t\t\t// Page width might have changed after CSS is loaded so\n\t\t\t\t// call handleWindowResize to update any % based dimensions\n\t\t\t\thandleWindowResize();\n\n\t\t\t\tpluginManager.call('ready');\n\t\t\t};\n\t\t\t$globalWin.on('load', loaded);\n\t\t\tif (globalDoc.readyState && globalDoc.readyState === 'complete') {\n\t\t\t\tloaded();\n\t\t\t}\n\t\t};\n\n\t\tinitPlugins = function () {\n\t\t\tvar plugins = options.plugins;\n\n\t\t\tplugins = plugins ? plugins.toString().split(',') : [];\n\t\t\tpluginManager = new PluginManager(base);\n\n\t\t\t$.each(plugins, function (idx, plugin) {\n\t\t\t\tpluginManager.register($.trim(plugin));\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Init the locale variable with the specified locale if possible\n\t\t * @private\n\t\t * @return void\n\t\t */\n\t\tinitLocale = function () {\n\t\t\tvar lang;\n\n\t\t\tlocale = SCEditor.locale[options.locale];\n\n\t\t\tif (!locale) {\n\t\t\t\tlang = options.locale.split('-');\n\t\t\t\tlocale = SCEditor.locale[lang[0]];\n\t\t\t}\n\n\t\t\t// Locale DateTime format overrides any specified in the options\n\t\t\tif (locale && locale.dateFormat) {\n\t\t\t\toptions.dateFormat = locale.dateFormat;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Creates the editor iframe and textarea\n\t\t * @param {boolean} startInSourceMode Force loading the editor in this\n\t\t *\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmode\n\t\t * @private\n\t\t */\n\t\tinitEditor = function (startInSourceMode) {\n\t\t\tvar doc, tabIndex;\n\n\t\t\t$sourceEditor = $('');\n\t\t\t$wysiwygEditor = $(\n\t\t\t\t''\n\t\t\t);\n\n\t\t\t/* This needs to be done right after they are created because,\n\t\t\t * for any reason, the user may not want the value to be tinkered\n\t\t\t * by any filters.\n\t\t\t */\n\t\t\tif (startInSourceMode) {\n\t\t\t\t$editorContainer.addClass('sourceMode');\n\t\t\t\t$wysiwygEditor.hide();\n\t\t\t} else {\n\t\t\t\t$editorContainer.addClass('wysiwygMode');\n\t\t\t\t$sourceEditor.hide();\n\t\t\t}\n\n\t\t\tif (!options.spellcheck) {\n\t\t\t\t$sourceEditor.attr('spellcheck', 'false');\n\t\t\t}\n\n\t\t\t/*jshint scripturl: true*/\n\t\t\tif (globalWin.location.protocol === 'https:') {\n\t\t\t\t$wysiwygEditor.attr('src', 'javascript:false');\n\t\t\t}\n\n\t\t\t// Add the editor to the container\n\t\t\t$editorContainer.append($wysiwygEditor).append($sourceEditor);\n\t\t\twysiwygEditor = $wysiwygEditor[0];\n\t\t\tsourceEditor = $sourceEditor[0];\n\n\t\t\tbase.dimensions(\n\t\t\t\toptions.width || $original.width(),\n\t\t\t\toptions.height || $original.height()\n\t\t\t);\n\n\t\t\tdoc = getWysiwygDoc();\n\t\t\tdoc.open();\n\t\t\tdoc.write(_tmpl('html', {\n\t\t\t\t// Add IE version class to the HTML element so can apply\n\t\t\t\t// conditional styling without CSS hacks\n\t\t\t\tattrs: IE_VER ? ' class=\"xeditor_content ie ie' + IE_VER + '\"' : ' class=\"xeditor_content\"',//edit by ling add class\n\t\t\t\tspellcheck: options.spellcheck ? '' : 'spellcheck=\"false\"',\n\t\t\t\tcharset: options.charset,\n\t\t\t\tstyle: options.style\n\t\t\t}));\n\t\t\tdoc.close();\n\n\t\t\t$wysiwygDoc = $(doc);\n\t\t\t$wysiwygBody = $(doc.body);\n\t\t\twysiwygBody = $wysiwygBody[0];\n\t\t\twysiwygDocument = $wysiwygDoc[0];\n\t\t\tbase.document = wysiwygDocument;\n\t\t\tbase.body = wysiwygBody;\n\t\t\tbase.window = globalWin;\n\n\t\t\tbase.readOnly(!!options.readOnly);\n\n\t\t\t// iframe overflow fix for iOS, also fixes an IE issue with the\n\t\t\t// editor not getting focus when clicking inside\n\t\t\tif (browser.ios || IE_VER) {\n\t\t\t\t$wysiwygBody.height('100%');\n\n\t\t\t\tif (!IE_VER) {\n\t\t\t\t\t$wysiwygBody.on('touchend', base.focus);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttabIndex = $original.attr('tabindex');\n\t\t\t$sourceEditor.attr('tabindex', tabIndex);\n\t\t\t$wysiwygEditor.attr('tabindex', tabIndex);\n\n\t\t\trangeHelper = new RangeHelper(wysiwygEditor.contentWindow);\n\n\t\t\t// load any textarea value into the editor\n\t\t\tbase.val($original.hide().val());\n\t\t};\n\n\t\t/**\n\t\t * Initialises options\n\t\t * @private\n\t\t */\n\t\tinitOptions = function () {\n\t\t\t// auto-update original textbox on blur if option set to true\n\t\t\tif (options.autoUpdate) {\n\t\t\t\t$wysiwygBody.on('blur', autoUpdate);\n\t\t\t\t$sourceEditor.on('blur', autoUpdate);\n\t\t\t}\n\n\t\t\tif (options.rtl === null) {\n\t\t\t\toptions.rtl = $sourceEditor.css('direction') === 'rtl';\n\t\t\t}\n\n\t\t\tbase.rtl(!!options.rtl);\n\n\t\t\tif (options.autoExpand) {\n\t\t\t\t$wysiwygDoc.on('keyup', base.expandToContent);\n\t\t\t}\n\n\t\t\tif (options.resizeEnabled) {\n\t\t\t\tinitResize();\n\t\t\t}\n\n\t\t\t$editorContainer.attr('id', options.id);\n\t\t\tbase.emoticons(options.emoticonsEnabled);\n\t\t};\n\n\t\t/**\n\t\t * Initialises events\n\t\t * @private\n\t\t */\n\t\tinitEvents = function () {\n\t\t\tvar CHECK_SELECTION_EVENTS = IE_VER ?\n\t\t\t\t'selectionchange' :\n\t\t\t\t'keyup focus blur contextmenu mouseup touchend click';\n\n\t\t\tvar EVENTS_TO_FORWARD = 'keydown keyup keypress ' +\n\t\t\t\t'focus blur contextmenu';\n\n\t\t\t$globalDoc.click(handleDocumentClick);\n\n\t\t\t$(original.form)\n\t\t\t\t.on('reset', handleFormReset)\n\t\t\t\t.submit(base.updateOriginal);\n\n\t\t\t$globalWin.on('resize orientationChanged', handleWindowResize);\n\n\t\t\t$wysiwygBody\n\t\t\t\t.keypress(handleKeyPress)\n\t\t\t\t.keydown(handleKeyDown)\n\t\t\t\t.keydown(handleBackSpace)\n\t\t\t\t.keyup(appendNewLine)\n\t\t\t\t.blur(valueChangedBlur)\n\t\t\t\t.keyup(valueChangedKeyUp)\n\t\t\t\t.on('paste', handlePasteEvt)\n\t\t\t\t.on(CHECK_SELECTION_EVENTS, checkSelectionChanged)\n\t\t\t\t.on(EVENTS_TO_FORWARD, handleEvent);\n\n\t\t\tif (options.emoticonsCompat && globalWin.getSelection) {\n\t\t\t\t$wysiwygBody.keyup(emoticonsCheckWhitespace);\n\t\t\t}\n\n\t\t\t$sourceEditor\n\t\t\t\t.blur(valueChangedBlur)\n\t\t\t\t.keyup(valueChangedKeyUp)\n\t\t\t\t.keydown(handleKeyDown)\n\t\t\t\t.on(EVENTS_TO_FORWARD, handleEvent);\n\n\t\t\t$wysiwygDoc\n\t\t\t\t.mousedown(handleMouseDown)\n\t\t\t\t.blur(valueChangedBlur)\n\t\t\t\t.on(CHECK_SELECTION_EVENTS, checkSelectionChanged)\n\t\t\t\t.on('beforedeactivate keyup mouseup', saveRange)\n\t\t\t\t.keyup(appendNewLine)\n\t\t\t\t.focus(function () {\n\t\t\t\t\tlastRange = null;\n\t\t\t\t});\n\n\t\t\t$editorContainer\n\t\t\t\t.on('selectionchanged', checkNodeChanged)\n\t\t\t\t.on('selectionchanged', updateActiveButtons)\n\t\t\t\t.on('selectionchanged valuechanged nodechanged', handleEvent);\n\t\t};\n\n\t\t/**\n\t\t * Creates the toolbar and appends it to the container\n\t\t * @private\n\t\t */\n\t\tinitToolBar = function () {\n\t\t\tvar\t$group,\n\t\t\t\tcommands = base.commands,\n\t\t\t\texclude = (options.toolbarExclude || '').split(','),\n\t\t\t\tgroups = options.toolbar.split('|');\n\n\t\t\t$toolbar = $('
');\n\n\t\t\t$.each(groups, function (idx, group) {\n\t\t\t\t$group = $('
');\n\n\t\t\t\t$.each(group.split(','), function (idx, commandName) {\n\t\t\t\t\tvar\t$button, shortcut,\n\t\t\t\t\t\tcommand = commands[commandName];\n\n\t\t\t\t\t// The commandName must be a valid command and not excluded\n\t\t\t\t\tif (!command || $.inArray(commandName, exclude) > -1) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tshortcut = command.shortcut;\n\t\t\t\t\t$button = _tmpl('toolbarButton', {\n\t\t\t\t\t\tname: commandName,\n\t\t\t\t\t\tdispName: base._(command.name ||\n\t\t\t\t\t\t\t\tcommand.tooltip || commandName)\n\t\t\t\t\t}, true);\n\n\t\t\t\t\t$button\n\t\t\t\t\t\t.data('sceditor-txtmode', !!command.txtExec)\n\t\t\t\t\t\t.data('sceditor-wysiwygmode', !!command.exec)\n\t\t\t\t\t\t.toggleClass('disabled', !command.exec)\n\t\t\t\t\t\t.mousedown(function () {\n\t\t\t\t\t\t\t// IE < 8 supports unselectable attribute\n\t\t\t\t\t\t\t// so don't need this\n\t\t\t\t\t\t\tif (!IE_VER || IE_VER < 9) {\n\t\t\t\t\t\t\t\tautoUpdateCanceled = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.click(function () {\n\t\t\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\t\t\tif (!$this.hasClass('disabled')) {\n\t\t\t\t\t\t\t\thandleCommand($this, command);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tupdateActiveButtons();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\tif (command.tooltip) {\n\t\t\t\t\t\t$button.attr(\n\t\t\t\t\t\t\t'title',\n\t\t\t\t\t\t\tbase._(command.tooltip) +\n\t\t\t\t\t\t\t\t(shortcut ? ' (' + shortcut + ')' : '')\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (shortcut) {\n\t\t\t\t\t\tbase.addShortcut(shortcut, commandName);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (command.state) {\n\t\t\t\t\t\tbtnStateHandlers.push({\n\t\t\t\t\t\t\tname: commandName,\n\t\t\t\t\t\t\tstate: command.state\n\t\t\t\t\t\t});\n\t\t\t\t\t// exec string commands can be passed to queryCommandState\n\t\t\t\t\t} else if (typeof command.exec === 'string') {\n\t\t\t\t\t\tbtnStateHandlers.push({\n\t\t\t\t\t\t\tname: commandName,\n\t\t\t\t\t\t\tstate: command.exec\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t$group.append($button);\n\t\t\t\t\ttoolbarButtons[commandName] = $button;\n\t\t\t\t});\n\n\t\t\t\t// Exclude empty groups\n\t\t\t\tif ($group[0].firstChild) {\n\t\t\t\t\t$toolbar.append($group);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Append the toolbar to the toolbarContainer option if given\n\t\t\t$(options.toolbarContainer || $editorContainer).append($toolbar);\n\t\t};\n\n\t\t/**\n\t\t * Creates an array of all the key press functions\n\t\t * like emoticons, ect.\n\t\t * @private\n\t\t */\n\t\tinitCommands = function () {\n\t\t\t$.each(base.commands, function (name, cmd) {\n\t\t\t\tif (cmd.forceNewLineAfter && $.isArray(cmd.forceNewLineAfter)) {\n\t\t\t\t\trequireNewLineFix = $.merge(\n\t\t\t\t\t\trequireNewLineFix,\n\t\t\t\t\t\tcmd.forceNewLineAfter\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tappendNewLine();\n\t\t};\n\n\t\t/**\n\t\t * Creates the resizer.\n\t\t * @private\n\t\t */\n\t\tinitResize = function () {\n\t\t\tvar\tminHeight, maxHeight, minWidth, maxWidth,\n\t\t\t\tmouseMoveFunc, mouseUpFunc,\n\t\t\t\t$grip = $('
'),\n\t\t\t\t// Cover is used to cover the editor iframe so document\n\t\t\t\t// still gets mouse move events\n\t\t\t\t$cover = $('
'),\n\t\t\t\tmoveEvents = 'touchmove mousemove',\n\t\t\t\tendEvents = 'touchcancel touchend mouseup',\n\t\t\t\tstartX = 0,\n\t\t\t\tstartY = 0,\n\t\t\t\tnewX = 0,\n\t\t\t\tnewY = 0,\n\t\t\t\tstartWidth = 0,\n\t\t\t\tstartHeight = 0,\n\t\t\t\torigWidth = $editorContainer.width(),\n\t\t\t\torigHeight = $editorContainer.height(),\n\t\t\t\tisDragging = false,\n\t\t\t\trtl = base.rtl();\n\n\t\t\tminHeight = options.resizeMinHeight || origHeight / 1.5;\n\t\t\tmaxHeight = options.resizeMaxHeight || origHeight * 2.5;\n\t\t\tminWidth = options.resizeMinWidth || origWidth / 1.25;\n\t\t\tmaxWidth = options.resizeMaxWidth || origWidth * 1.25;\n\n\t\t\tmouseMoveFunc = function (e) {\n\t\t\t\t// iOS uses window.event\n\t\t\t\tif (e.type === 'touchmove') {\n\t\t\t\t\te = globalWin.event;\n\t\t\t\t\tnewX = e.changedTouches[0].pageX;\n\t\t\t\t\tnewY = e.changedTouches[0].pageY;\n\t\t\t\t} else {\n\t\t\t\t\tnewX = e.pageX;\n\t\t\t\t\tnewY = e.pageY;\n\t\t\t\t}\n\n\t\t\t\tvar\tnewHeight = startHeight + (newY - startY),\n\t\t\t\t\tnewWidth = rtl ?\n\t\t\t\t\t\tstartWidth - (newX - startX) :\n\t\t\t\t\t\tstartWidth + (newX - startX);\n\n\t\t\t\tif (maxWidth > 0 && newWidth > maxWidth) {\n\t\t\t\t\tnewWidth = maxWidth;\n\t\t\t\t}\n\t\t\t\tif (minWidth > 0 && newWidth < minWidth) {\n\t\t\t\t\tnewWidth = minWidth;\n\t\t\t\t}\n\t\t\t\tif (!options.resizeWidth) {\n\t\t\t\t\tnewWidth = false;\n\t\t\t\t}\n\n\t\t\t\tif (maxHeight > 0 && newHeight > maxHeight) {\n\t\t\t\t\tnewHeight = maxHeight;\n\t\t\t\t}\n\t\t\t\tif (minHeight > 0 && newHeight < minHeight) {\n\t\t\t\t\tnewHeight = minHeight;\n\t\t\t\t}\n\t\t\t\tif (!options.resizeHeight) {\n\t\t\t\t\tnewHeight = false;\n\t\t\t\t}\n\n\t\t\t\tif (newWidth || newHeight) {\n\t\t\t\t\tbase.dimensions(newWidth, newHeight);\n\n\t\t\t\t\t// The resize cover will not fill the container\n\t\t\t\t\t// in IE6 unless a height is specified.\n\t\t\t\t\tif (IE_VER < 7) {\n\t\t\t\t\t\t$editorContainer.height(newHeight);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t};\n\n\t\t\tmouseUpFunc = function (e) {\n\t\t\t\tif (!isDragging) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tisDragging = false;\n\n\t\t\t\t$cover.hide();\n\t\t\t\t$editorContainer.removeClass('resizing').height('auto');\n\t\t\t\t$globalDoc.off(moveEvents, mouseMoveFunc);\n\t\t\t\t$globalDoc.off(endEvents, mouseUpFunc);\n\n\t\t\t\te.preventDefault();\n\t\t\t};\n\n\t\t\t$editorContainer.append($grip);\n\t\t\t$editorContainer.append($cover.hide());\n\n\t\t\t$grip.on('touchstart mousedown', function (e) {\n\t\t\t\t// iOS uses window.event\n\t\t\t\tif (e.type === 'touchstart') {\n\t\t\t\t\te = globalWin.event;\n\t\t\t\t\tstartX = e.touches[0].pageX;\n\t\t\t\t\tstartY = e.touches[0].pageY;\n\t\t\t\t} else {\n\t\t\t\t\tstartX = e.pageX;\n\t\t\t\t\tstartY = e.pageY;\n\t\t\t\t}\n\n\t\t\t\tstartWidth = $editorContainer.width();\n\t\t\t\tstartHeight = $editorContainer.height();\n\t\t\t\tisDragging = true;\n\n\t\t\t\t$editorContainer.addClass('resizing');\n\t\t\t\t$cover.show();\n\t\t\t\t$globalDoc.on(moveEvents, mouseMoveFunc);\n\t\t\t\t$globalDoc.on(endEvents, mouseUpFunc);\n\n\t\t\t\t// The resize cover will not fill the container in\n\t\t\t\t// IE6 unless a height is specified.\n\t\t\t\tif (IE_VER < 7) {\n\t\t\t\t\t$editorContainer.height(startHeight);\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Prefixes and preloads the emoticon images\n\t\t * @private\n\t\t */\n\t\tinitEmoticons = function () {\n\t\t\tvar\temoticon,\n\t\t\t\temoticons = options.emoticons,\n\t\t\t\troot = options.emoticonsRoot;\n\n\t\t\tif (!$.isPlainObject(emoticons) || !options.emoticonsEnabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$.each(emoticons, function (idx, val) {\n\t\t\t\t$.each(val, function (key, url) {\n\t\t\t\t\t// Prefix emoticon root to emoticon urls\n\t\t\t\t\tif (root) {\n\t\t\t\t\t\turl = {\n\t\t\t\t\t\t\turl: root + (url.url || url),\n\t\t\t\t\t\t\ttooltip: url.tooltip || key\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\temoticons[idx][key] = url;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Preload the emoticon\n\t\t\t\t\temoticon = globalDoc.createElement('img');\n\t\t\t\t\temoticon.src = url.url || url;\n\t\t\t\t\tpreLoadCache.push(emoticon);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Autofocus the editor\n\t\t * @private\n\t\t */\n\t\tautofocus = function () {\n\t\t\tvar\trange, txtPos,\n\t\t\t\tdoc = $wysiwygDoc[0],\n\t\t\t\tbody = $wysiwygBody[0],\n\t\t\t\tnode = body.firstChild,\n\t\t\t\tfocusEnd = !!options.autofocusEnd;\n\n\t\t\t// Can't focus invisible elements\n\t\t\tif (!$editorContainer.is(':visible')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (base.sourceMode()) {\n\t\t\t\ttxtPos = focusEnd ? sourceEditor.value.length : 0;\n\n\t\t\t\tif (sourceEditor.setSelectionRange) {\n\t\t\t\t\tsourceEditor.setSelectionRange(txtPos, txtPos);\n\t\t\t\t} else {\n\t\t\t\t\trange = sourceEditor.createTextRange();\n\t\t\t\t\trange.moveEnd('character', txtPos);\n\t\t\t\t\trange.collapse(false);\n\t\t\t\t\trange.select();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdom.removeWhiteSpace(body);\n\n\t\t\tif (focusEnd) {\n\t\t\t\tif (!(node = body.lastChild)) {\n\t\t\t\t\tnode = doc.createElement('p');\n\t\t\t\t\t$wysiwygBody.append(node);\n\t\t\t\t}\n\n\t\t\t\twhile (node.lastChild) {\n\t\t\t\t\tnode = node.lastChild;\n\n\t\t\t\t\t// IE < 11 should place the cursor after the
as\n\t\t\t\t\t// it will show it as a newline. IE >= 11 and all\n\t\t\t\t\t// other browsers should place the cursor before.\n\t\t\t\t\tif (!IE_BR_FIX && $(node).is('br') &&\n\t\t\t\t\t\tnode.previousSibling) {\n\t\t\t\t\t\tnode = node.previousSibling;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (doc.createRange) {\n\t\t\t\trange = doc.createRange();\n\n\t\t\t\tif (!dom.canHaveChildren(node)) {\n\t\t\t\t\trange.setStartBefore(node);\n\n\t\t\t\t\tif (focusEnd) {\n\t\t\t\t\t\trange.setStartAfter(node);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\trange.selectNodeContents(node);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trange = body.createTextRange();\n\t\t\t\trange.moveToElementText(node.nodeType !== 3 ?\n\t\t\t\t\tnode : node.parentNode);\n\t\t\t}\n\n\t\t\trange.collapse(!focusEnd);\n\t\t\trangeHelper.selectRange(range);\n\t\t\tcurrentSelection = range;\n\n\t\t\tif (focusEnd) {\n\t\t\t\t$wysiwygDoc.scrollTop(body.scrollHeight);\n\t\t\t\t$wysiwygBody.scrollTop(body.scrollHeight);\n\t\t\t}\n\n\t\t\tbase.focus();\n\t\t};\n\n\t\t/**\n\t\t * Gets if the editor is read only\n\t\t *\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name readOnly\n\t\t * @return {Boolean}\n\t\t */\n\t\t/**\n\t\t * Sets if the editor is read only\n\t\t *\n\t\t * @param {boolean} readOnly\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name readOnly^2\n\t\t * @return {this}\n\t\t */\n\t\tbase.readOnly = function (readOnly) {\n\t\t\tif (typeof readOnly !== 'boolean') {\n\t\t\t\treturn $sourceEditor.attr('readonly') === 'readonly';\n\t\t\t}\n\n\t\t\t$wysiwygBody[0].contentEditable = !readOnly;\n\n\t\t\tif (!readOnly) {\n\t\t\t\t$sourceEditor.removeAttr('readonly');\n\t\t\t} else {\n\t\t\t\t$sourceEditor.attr('readonly', 'readonly');\n\t\t\t}\n\n\t\t\tupdateToolBar(readOnly);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Gets if the editor is in RTL mode\n\t\t *\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name rtl\n\t\t * @return {Boolean}\n\t\t */\n\t\t/**\n\t\t * Sets if the editor is in RTL mode\n\t\t *\n\t\t * @param {boolean} rtl\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name rtl^2\n\t\t * @return {this}\n\t\t */\n\t\tbase.rtl = function (rtl) {\n\t\t\tvar dir = rtl ? 'rtl' : 'ltr';\n\n\t\t\tif (typeof rtl !== 'boolean') {\n\t\t\t\treturn $sourceEditor.attr('dir') === 'rtl';\n\t\t\t}\n\n\t\t\t$wysiwygBody.attr('dir', dir);\n\t\t\t$sourceEditor.attr('dir', dir);\n\n\t\t\t$editorContainer\n\t\t\t\t.removeClass('rtl')\n\t\t\t\t.removeClass('ltr')\n\t\t\t\t.addClass(dir);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Updates the toolbar to disable/enable the appropriate buttons\n\t\t * @private\n\t\t */\n\t\tupdateToolBar = function (disable) {\n\t\t\tvar mode = base.inSourceMode() ? 'txtmode' : 'wysiwygmode';\n\n\t\t\t$.each(toolbarButtons, function (idx, $button) {\n\t\t\t\tif (disable === true || !$button.data('sceditor-' + mode)) {\n\t\t\t\t\t$button.addClass('disabled');\n\t\t\t\t} else {\n\t\t\t\t\t$button.removeClass('disabled');\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Gets the width of the editor in pixels\n\t\t *\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name width\n\t\t * @return {int}\n\t\t */\n\t\t/**\n\t\t * Sets the width of the editor\n\t\t *\n\t\t * @param {int} width Width in pixels\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name width^2\n\t\t * @return {this}\n\t\t */\n\t\t/**\n\t\t * Sets the width of the editor\n\t\t *\n\t\t * The saveWidth specifies if to save the width. The stored width can be\n\t\t * used for things like restoring from maximized state.\n\t\t *\n\t\t * @param {int} width Width in pixels\n\t\t * @param {boolean}\t[saveWidth=true] If to store the width\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name width^3\n\t\t * @return {this}\n\t\t */\n\t\tbase.width = function (width, saveWidth) {\n\t\t\tif (!width && width !== 0) {\n\t\t\t\treturn $editorContainer.width();\n\t\t\t}\n\n\t\t\tbase.dimensions(width, null, saveWidth);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Returns an object with the properties width and height\n\t\t * which are the width and height of the editor in px.\n\t\t *\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name dimensions\n\t\t * @return {object}\n\t\t */\n\t\t/**\n\t\t *

Sets the width and/or height of the editor.

\n\t\t *\n\t\t *

If width or height is not numeric it is ignored.

\n\t\t *\n\t\t * @param {int}\twidth\tWidth in px\n\t\t * @param {int}\theight\tHeight in px\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name dimensions^2\n\t\t * @return {this}\n\t\t */\n\t\t/**\n\t\t *

Sets the width and/or height of the editor.

\n\t\t *\n\t\t *

If width or height is not numeric it is ignored.

\n\t\t *\n\t\t *

The save argument specifies if to save the new sizes.\n\t\t * The saved sizes can be used for things like restoring from\n\t\t * maximized state. This should normally be left as true.

\n\t\t *\n\t\t * @param {int}\t\twidth\t\tWidth in px\n\t\t * @param {int}\t\theight\t\tHeight in px\n\t\t * @param {boolean}\t[save=true]\tIf to store the new sizes\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name dimensions^3\n\t\t * @return {this}\n\t\t */\n\t\tbase.dimensions = function (width, height, save) {\n\t\t\t// IE6 & IE7 add 2 pixels to the source mode textarea\n\t\t\t// height which must be ignored.\n\t\t\t// Doesn't seem to be any way to fix it with only CSS\n\t\t\tvar ieBorder = IE_VER < 8 || globalDoc.documentMode < 8 ? 2 : 0;\n\t\t\tvar undef;\n\n\t\t\t// set undefined width/height to boolean false\n\t\t\twidth = (!width && width !== 0) ? false : width;\n\t\t\theight = (!height && height !== 0) ? false : height;\n\n\t\t\tif (width === false && height === false) {\n\t\t\t\treturn { width: base.width(), height: base.height() };\n\t\t\t}\n\n\t\t\tif ($wysiwygEditor.data('outerWidthOffset') === undef) {\n\t\t\t\tbase.updateStyleCache();\n\t\t\t}\n\n\t\t\tif (width !== false) {\n\t\t\t\tif (save !== false) {\n\t\t\t\t\toptions.width = width;\n\t\t\t\t}\n// This is the problem\n\t\t\t\tif (height === false) {\n\t\t\t\t\theight = $editorContainer.height();\n\t\t\t\t\tsave = false;\n\t\t\t\t}\n\n\t\t\t\t$editorContainer.width(width);\n\t\t\t\tif (width && width.toString().indexOf('%') > -1) {\n\t\t\t\t\twidth = $editorContainer.width();\n\t\t\t\t}\n\n\t\t\t\t$wysiwygEditor.width(\n\t\t\t\t\twidth - $wysiwygEditor.data('outerWidthOffset')\n\t\t\t\t);\n\n\t\t\t\t$sourceEditor.width(\n\t\t\t\t\twidth - $sourceEditor.data('outerWidthOffset')\n\t\t\t\t);\n\n\t\t\t\t// Fix overflow issue with iOS not\n\t\t\t\t// breaking words unless a width is set\n\t\t\t\tif (browser.ios && $wysiwygBody) {\n\t\t\t\t\t$wysiwygBody.width(\n\t\t\t\t\t\twidth - $wysiwygEditor.data('outerWidthOffset') -\n\t\t\t\t\t\t($wysiwygBody.outerWidth(true) - $wysiwygBody.width())\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (height !== false) {\n\t\t\t\tif (save !== false) {\n\t\t\t\t\toptions.height = height;\n\t\t\t\t}\n\n\t\t\t\t// Convert % based heights to px\n\t\t\t\tif (height && height.toString().indexOf('%') > -1) {\n\t\t\t\t\theight = $editorContainer.height(height).height();\n\t\t\t\t\t$editorContainer.height('auto');\n\t\t\t\t}\n\n\t\t\t\theight -= !options.toolbarContainer ?\n\t\t\t\t\t$toolbar.outerHeight(true) : 0;\n\n\t\t\t\t$wysiwygEditor.height(\n\t\t\t\t\theight - $wysiwygEditor.data('outerHeightOffset')\n\t\t\t\t);\n\n\t\t\t\t$sourceEditor.height(\n\t\t\t\t\theight - ieBorder - $sourceEditor.data('outerHeightOffset')\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Updates the CSS styles cache.\n\t\t *\n\t\t * This shouldn't be needed unless changing the editors theme.\n\t\t *F\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name updateStyleCache\n\t\t * @return {int}\n\t\t */\n\t\tbase.updateStyleCache = function () {\n\t\t\t// caching these improves FF resize performance\n\t\t\t$wysiwygEditor.data(\n\t\t\t\t'outerWidthOffset',\n\t\t\t\t$wysiwygEditor.outerWidth(true) - $wysiwygEditor.width()\n\t\t\t);\n\t\t\t$sourceEditor.data(\n\t\t\t\t'outerWidthOffset',\n\t\t\t\t$sourceEditor.outerWidth(true) - $sourceEditor.width()\n\t\t\t);\n\n\t\t\t$wysiwygEditor.data(\n\t\t\t\t'outerHeightOffset',\n\t\t\t\t$wysiwygEditor.outerHeight(true) - $wysiwygEditor.height()\n\t\t\t);\n\t\t\t$sourceEditor.data(\n\t\t\t\t'outerHeightOffset',\n\t\t\t\t$sourceEditor.outerHeight(true) - $sourceEditor.height()\n\t\t\t);\n\t\t};\n\n\t\t/**\n\t\t * Gets the height of the editor in px\n\t\t *\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name height\n\t\t * @return {int}\n\t\t */\n\t\t/**\n\t\t * Sets the height of the editor\n\t\t *\n\t\t * @param {int} height Height in px\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name height^2\n\t\t * @return {this}\n\t\t */\n\t\t/**\n\t\t * Sets the height of the editor\n\t\t *\n\t\t * The saveHeight specifies if to save the height.\n\t\t *\n\t\t * The stored height can be used for things like\n\t\t * restoring from maximized state.\n\t\t *\n\t\t * @param {int} height Height in px\n\t\t * @param {boolean} [saveHeight=true] If to store the height\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name height^3\n\t\t * @return {this}\n\t\t */\n\t\tbase.height = function (height, saveHeight) {\n\t\t\tif (!height && height !== 0) {\n\t\t\t\treturn $editorContainer.height();\n\t\t\t}\n\n\t\t\tbase.dimensions(null, height, saveHeight);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Gets if the editor is maximised or not\n\t\t *\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name maximize\n\t\t * @return {boolean}\n\t\t */\n\t\t/**\n\t\t * Sets if the editor is maximised or not\n\t\t *\n\t\t * @param {boolean} maximize If to maximise the editor\n\t\t * @since 1.4.1\n\t\t * @function\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @name maximize^2\n\t\t * @return {this}\n\t\t */\n\t\tbase.maximize = function (maximize) {\n\t\t\tif (typeof maximize === 'undefined') {\n\t\t\t\treturn $editorContainer.is('.sceditor-maximize');\n\t\t\t}\n\n\t\t\tmaximize = !!maximize;\n\n\t\t\t// IE 6 fix\n\t\t\tif (IE_VER < 7) {\n\t\t\t\t$('html, body').toggleClass('sceditor-maximize', maximize);\n\t\t\t}\n\n\t\t\t$editorContainer.toggleClass('sceditor-maximize', maximize);\n\t\t\tbase.width(maximize ? '100%' : options.width, false);\n\t\t\tbase.height(maximize ? '100%' : options.height, false);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Expands the editors height to the height of it's content\n\t\t *\n\t\t * Unless ignoreMaxHeight is set to true it will not expand\n\t\t * higher than the maxHeight option.\n\t\t *\n\t\t * @since 1.3.5\n\t\t * @param {Boolean} [ignoreMaxHeight=false]\n\t\t * @function\n\t\t * @name expandToContent\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @see #resizeToContent\n\t\t */\n\t\tbase.expandToContent = function (ignoreMaxHeight) {\n\t\t\tvar\tcurrentHeight = $editorContainer.height(),\n\t\t\t\tpadding = (currentHeight - $wysiwygEditor.height()),\n\t\t\t\theight = $wysiwygBody[0].scrollHeight ||\n\t\t\t\t\t$wysiwygDoc[0].documentElement.scrollHeight,\n\t\t\t\tmaxHeight = options.resizeMaxHeight ||\n\t\t\t\t\t((options.height || $original.height()) * 2);\n\n\t\t\theight += padding;\n\n\t\t\tif ((ignoreMaxHeight === true || height <= maxHeight) &&\n\t\t\t\theight > currentHeight) {\n\t\t\t\tbase.height(height);\n\t\t\t}else if(ignoreMaxHeight!==true && height >= maxHeight){//edit by ling\n\t\t\t\t// if(!$wysiwygBody.hasClass(\"show_scroll_y\")){\n\t\t\t\t// \t$wysiwygBody.addClass(\"show_scroll_y\")\n\t\t\t\t// }\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Destroys the editor, removing all elements and\n\t\t * event handlers.\n\t\t *\n\t\t * Leaves only the original textarea.\n\t\t *\n\t\t * @function\n\t\t * @name destroy\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.destroy = function () {\n\t\t\t// Don't destroy if the editor has already been destroyed\n\t\t\tif (!pluginManager) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpluginManager.destroy();\n\n\t\t\trangeHelper = null;\n\t\t\tlastRange = null;\n\t\t\tpluginManager = null;\n\n\t\t\tif ($dropdown) {\n\t\t\t\t$dropdown.off().remove();\n\t\t\t}\n\n\t\t\t$globalDoc.off('click', handleDocumentClick);\n\t\t\t$globalWin.off('resize orientationChanged', handleWindowResize);\n\n\t\t\t$(original.form)\n\t\t\t\t.off('reset', handleFormReset)\n\t\t\t\t.off('submit', base.updateOriginal);\n\n\t\t\t$wysiwygBody.off();\n\t\t\t$wysiwygDoc.off().find('*').remove();\n\n\t\t\t$sourceEditor.off().remove();\n\t\t\t$toolbar.remove();\n\t\t\t$editorContainer.off().find('*').off().remove();\n\t\t\t$editorContainer.remove();\n\n\t\t\t$original\n\t\t\t\t.removeData('sceditor')\n\t\t\t\t.removeData('sceditorbbcode')\n\t\t\t\t.show();\n\n\t\t\tif (isRequired) {\n\t\t\t\t$original.attr('required', 'required');\n\t\t\t}\n\t\t};\n\n\n\t\t/**\n\t\t * Creates a menu item drop down\n\t\t *\n\t\t * @param {HTMLElement} menuItem The button to align the dropdown with\n\t\t * @param {string} name Used for styling the dropdown, will be\n\t\t * a class sceditor-name\n\t\t * @param {HTMLElement} content The HTML content of the dropdown\n\t\t * @param {bool} ieFix If to add the unselectable attribute\n\t\t * to all the contents elements. Stops\n\t\t * IE from deselecting the text in the\n\t\t * editor\n\t\t * @function\n\t\t * @name createDropDown\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.createDropDown = function (menuItem, name, content, ieFix) {\n\t\t\t// first click for create second click for close\n\t\t\tvar\tdropDownCss,\n\t\t\t\tcssClass = 'sceditor-' + name,\n\t\t\t\tonlyclose = $dropdown && $dropdown.is('.' + cssClass);\n\n\t\t\t// Will re-focus the editor. This is needed for IE\n\t\t\t// as it has special logic to save/restore the selection\n\t\t\tbase.closeDropDown(true);\n\n\t\t\tif (onlyclose) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// IE needs unselectable attr to stop it from\n\t\t\t// unselecting the text in the editor.\n\t\t\t// SCEditor can cope if IE does unselect the\n\t\t\t// text it's just not nice.\n\t\t\tif (ieFix !== false) {\n\t\t\t\t$(content)\n\t\t\t\t\t.find(':not(input,textarea)')\n\t\t\t\t\t.filter(function () {\n\t\t\t\t\t\treturn this.nodeType === 1;\n\t\t\t\t\t})\n\t\t\t\t\t.attr('unselectable', 'on');\n\t\t\t}\n\n\t\t\tdropDownCss = {\n\t\t\t\ttop: menuItem.offset().top,\n\t\t\t\tleft: menuItem.offset().left,\n\t\t\t\tmarginTop: menuItem.outerHeight()\n\t\t\t};\n\t\t\t$.extend(dropDownCss, options.dropDownCss);\n\n\t\t\t$dropdown = $('
')\n\t\t\t\t.css(dropDownCss)\n\t\t\t\t.append(content)\n\t\t\t\t.appendTo($('body'))\n\t\t\t\t.on('click focusin', function (e) {\n\t\t\t\t\t// stop clicks within the dropdown from being handled\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\n\t\t\t// If try to focus the first input immediately IE will\n\t\t\t// place the cursor at the start of the editor instead\n\t\t\t// of focusing on the input.\n\t\t\tsetTimeout(function () {\n\t\t\t\tif ($dropdown) {\n\t\t\t\t\t$dropdown.find('input,textarea').first().focus();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Handles any document click and closes the dropdown if open\n\t\t * @private\n\t\t */\n\t\thandleDocumentClick = function (e) {\n\t\t\t// ignore right clicks\n\t\t\tif (e.which !== 3 && $dropdown) {\n\t\t\t\tautoUpdate();\n\n\t\t\t\tbase.closeDropDown();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Handles the WYSIWYG editors paste event\n\t\t * @private\n\t\t */\n\t\thandlePasteEvt = function (e) {\n\t\t\treturn;\n\t\t\tvar\thtml, handlePaste, scrollTop,\n\t\t\t\telm = $wysiwygBody[0],\n\t\t\t\tdoc = $wysiwygDoc[0],\n\t\t\t\tcheckCount = 0,\n\t\t\t\tpastearea = globalDoc.createElement('div'),\n\t\t\t\tprePasteContent = doc.createDocumentFragment(),\n\t\t\t\tclipboardData = e ? e.clipboardData : false;\n\t\t\t// if( typeof(clipboardData) == \"undefined\" ){\n\t\t\t// \tclipboardData = e && e.originalEvent && e.originalEvent.clipboardData\n\t\t\t// }\n\t\t\t// console.log(clipboardData)\n\t\t\tif (options.disablePasting) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t// console.log(pastearea)\n\t\t\tif (!options.enablePasteFiltering) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trangeHelper.saveRange();\n\t\t\tglobalDoc.body.appendChild(pastearea);\n\n\t\t\tif (clipboardData && clipboardData.getData) {\n\t\t\t\tif ((html = clipboardData.getData('text/html')) ||\n\t\t\t\t\t(html = clipboardData.getData('text/plain'))) {\n\t\t\t\t\tpastearea.innerHTML = html;\n\t\t\t\t\thandlePasteData(elm, pastearea);\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Save the scroll position so can be restored\n\t\t\t// when contents is restored\n\t\t\tscrollTop = $wysiwygBody.scrollTop() || $wysiwygDoc.scrollTop();\n\n\t\t\twhile (elm.firstChild) {\n\t\t\t\tprePasteContent.appendChild(elm.firstChild);\n\t\t\t}\n\n// try make pastearea contenteditable and redirect to that? Might work.\n// Check the tests if still exist, if not re-0create\n\t\t\thandlePaste = function (elm, pastearea) {\n\t\t\t\tif (elm.childNodes.length > 0 || checkCount > 25) {\n\t\t\t\t\twhile (elm.firstChild) {\n\t\t\t\t\t\tpastearea.appendChild(elm.firstChild);\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (prePasteContent.firstChild) {\n\t\t\t\t\t\telm.appendChild(prePasteContent.firstChild);\n\t\t\t\t\t}\n\n\t\t\t\t\t$wysiwygBody.scrollTop(scrollTop);\n\t\t\t\t\t$wysiwygDoc.scrollTop(scrollTop);\n\n\t\t\t\t\tif (pastearea.childNodes.length > 0) {\n\t\t\t\t\t\thandlePasteData(elm, pastearea);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trangeHelper.restoreRange();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Allow max 25 checks before giving up.\n\t\t\t\t\t// Needed in case an empty string is pasted or\n\t\t\t\t\t// something goes wrong.\n\t\t\t\t\tcheckCount++;\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\thandlePaste(elm, pastearea);\n\t\t\t\t\t}, 20);\n\t\t\t\t}\n\t\t\t};\n\t\t\thandlePaste(elm, pastearea);\n\n\t\t\tbase.focus();\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * Gets the pasted data, filters it and then inserts it.\n\t\t * @param {Element} elm\n\t\t * @param {Element} pastearea\n\t\t * @private\n\t\t */\n\t\thandlePasteData = function (elm, pastearea) {\n\t\t\t// fix any invalid nesting\n\t\t\tdom.fixNesting(pastearea);\n// TODO: Trigger custom paste event to allow filtering\n// (pre and post converstion?)\n\t\t\tvar pasteddata = pastearea.innerHTML;\n\n\t\t\tif (pluginManager.hasHandler('toSource')) {\n\t\t\t\tpasteddata = pluginManager.callOnlyFirst(\n\t\t\t\t\t'toSource', pasteddata, $(pastearea)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpastearea.parentNode.removeChild(pastearea);\n\n\t\t\tif (pluginManager.hasHandler('toWysiwyg')) {\n\t\t\t\tpasteddata = pluginManager.callOnlyFirst(\n\t\t\t\t\t'toWysiwyg', pasteddata, true\n\t\t\t\t);\n\t\t\t}\n\n\t\t\trangeHelper.restoreRange();\n\t\t\tbase.wysiwygEditorInsertHtml(pasteddata, null, true);\n\t\t};\n\n\t\t/**\n\t\t * Closes any currently open drop down\n\t\t *\n\t\t * @param {bool} [focus=false] If to focus the editor\n\t\t * after closing the drop down\n\t\t * @function\n\t\t * @name closeDropDown\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.closeDropDown = function (focus) {\n\t\t\tif ($dropdown) {\n\t\t\t\t$dropdown.off().remove();\n\t\t\t\t$dropdown = null;\n\t\t\t}\n\n\t\t\tif (focus === true) {\n\t\t\t\tbase.focus();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Gets the WYSIWYG editors document\n\t\t * @private\n\t\t */\n\t\tgetWysiwygDoc = function () {\n\t\t\tif (wysiwygEditor.contentDocument) {\n\t\t\t\treturn wysiwygEditor.contentDocument;\n\t\t\t}\n\n\t\t\tif (wysiwygEditor.contentWindow &&\n\t\t\t\twysiwygEditor.contentWindow.document) {\n\t\t\t\treturn wysiwygEditor.contentWindow.document;\n\t\t\t}\n\n\t\t\treturn wysiwygEditor.document;\n\t\t};\n\n\n\t\t/**\n\t\t *

Inserts HTML into WYSIWYG editor.

\n\t\t *\n\t\t *

If endHtml is specified, any selected text will be placed\n\t\t * between html and endHtml. If there is no selected text html\n\t\t * and endHtml will just be concatenate together.

\n\t\t *\n\t\t * @param {string} html\n\t\t * @param {string} [endHtml=null]\n\t\t * @param {boolean} [overrideCodeBlocking=false] If to insert the html\n\t\t * into code tags, by\n\t\t * default code tags only\n\t\t * support text.\n\t\t * @function\n\t\t * @name wysiwygEditorInsertHtml\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.wysiwygEditorInsertHtml = function (\n\t\t\thtml, endHtml, overrideCodeBlocking\n\t\t) {\n\t\t\tvar\t$marker, scrollTop, scrollTo,\n\t\t\t\teditorHeight = $wysiwygEditor.height();\n\n\t\t\tbase.focus();\n\n// TODO: This code tag should be configurable and\n// should maybe convert the HTML into text instead\n\t\t\t// Don't apply to code elements\n\t\t\tif (!overrideCodeBlocking && ($(currentBlockNode).is('code') ||\n\t\t\t\t$(currentBlockNode).parents('code').length !== 0)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Insert the HTML and save the range so the editor can be scrolled\n\t\t\t// to the end of the selection. Also allows emoticons to be replaced\n\t\t\t// without affecting the cursor position\n\t\t\trangeHelper.insertHTML(html, endHtml);\n\t\t\trangeHelper.saveRange();\n\t\t\treplaceEmoticons($wysiwygBody[0]);\n\n\t\t\t// Scroll the editor after the end of the selection\n\t\t\t$marker = $wysiwygBody.find('#sceditor-end-marker').show();\n\t\t\tscrollTop = $wysiwygBody.scrollTop() || $wysiwygDoc.scrollTop();\n\t\t\tscrollTo = (dom.getOffset($marker[0]).top +\n\t\t\t\t($marker.outerHeight(true) * 1.5)) - editorHeight;\n\t\t\t$marker.hide();\n\n\t\t\t// Only scroll if marker isn't already visible\n\t\t\tif (scrollTo > scrollTop || scrollTo + editorHeight < scrollTop) {\n\t\t\t\t$wysiwygBody.scrollTop(scrollTo);\n\t\t\t\t$wysiwygDoc.scrollTop(scrollTo);\n\t\t\t}\n\n\t\t\ttriggerValueChanged(false);\n\t\t\trangeHelper.restoreRange();\n\n\t\t\t// Add a new line after the last block element\n\t\t\t// so can always add text after it\n\t\t\tappendNewLine();\n\t\t};\n\n\t\t/**\n\t\t * Like wysiwygEditorInsertHtml except it will convert any HTML\n\t\t * into text before inserting it.\n\t\t *\n\t\t * @param {String} text\n\t\t * @param {String} [endText=null]\n\t\t * @function\n\t\t * @name wysiwygEditorInsertText\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.wysiwygEditorInsertText = function (text, endText) {\n\t\t\tbase.wysiwygEditorInsertHtml(\n\t\t\t\tescape.entities(text), escape.entities(endText)\n\t\t\t);\n\t\t};\n\n\t\t/**\n\t\t *

Inserts text into the WYSIWYG or source editor depending on which\n\t\t * mode the editor is in.

\n\t\t *\n\t\t *

If endText is specified any selected text will be placed between\n\t\t * text and endText. If no text is selected text and endText will\n\t\t * just be concatenate together.

\n\t\t *\n\t\t * @param {String} text\n\t\t * @param {String} [endText=null]\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @name insertText\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.insertText = function (text, endText) {\n\t\t\tif (base.inSourceMode()) {\n\t\t\t\tbase.sourceEditorInsertText(text, endText);\n\t\t\t} else {\n\t\t\t\tbase.wysiwygEditorInsertText(text, endText);\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t *

Like wysiwygEditorInsertHtml but inserts text into the\n\t\t * source mode editor instead.

\n\t\t *\n\t\t *

If endText is specified any selected text will be placed between\n\t\t * text and endText. If no text is selected text and endText will\n\t\t * just be concatenate together.

\n\t\t *\n\t\t *

The cursor will be placed after the text param. If endText is\n\t\t * specified the cursor will be placed before endText, so passing:
\n\t\t *\n\t\t * '[b]', '[/b]'

\n\t\t *\n\t\t *

Would cause the cursor to be placed:
\n\t\t *\n\t\t * [b]Selected text|[/b]

\n\t\t *\n\t\t * @param {String} text\n\t\t * @param {String} [endText=null]\n\t\t * @since 1.4.0\n\t\t * @function\n\t\t * @name sourceEditorInsertText\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.sourceEditorInsertText = function (text, endText) {\n\t\t\tvar range, scrollTop, currentValue,\n\t\t\t\tstartPos = sourceEditor.selectionStart,\n\t\t\t\tendPos = sourceEditor.selectionEnd;\n\n\t\t\tscrollTop = sourceEditor.scrollTop;\n\t\t\tsourceEditor.focus();\n\n\t\t\t// All browsers except IE < 9\n\t\t\tif (typeof startPos !== 'undefined') {\n\t\t\t\tcurrentValue = sourceEditor.value;\n\n\t\t\t\tif (endText) {\n\t\t\t\t\ttext += currentValue.substring(startPos, endPos) + endText;\n\t\t\t\t}\n\n\t\t\t\tsourceEditor.value = currentValue.substring(0, startPos) +\n\t\t\t\t\ttext +\n\t\t\t\t\tcurrentValue.substring(endPos, currentValue.length);\n\n\t\t\t\tsourceEditor.selectionStart = (startPos + text.length) -\n\t\t\t\t\t(endText ? endText.length : 0);\n\t\t\t\tsourceEditor.selectionEnd = sourceEditor.selectionStart;\n\t\t\t// IE < 9\n\t\t\t} else {\n\t\t\t\trange = globalDoc.selection.createRange();\n\n\t\t\t\tif (endText) {\n\t\t\t\t\ttext += range.text + endText;\n\t\t\t\t}\n\n\t\t\t\trange.text = text;\n\n\t\t\t\tif (endText) {\n\t\t\t\t\trange.moveEnd('character', 0 - endText.length);\n\t\t\t\t}\n\n\t\t\t\trange.moveStart('character', range.End - range.Start);\n\t\t\t\trange.select();\n\t\t\t}\n\n\t\t\tsourceEditor.scrollTop = scrollTop;\n\t\t\tsourceEditor.focus();\n\n\t\t\ttriggerValueChanged();\n\t\t};\n\n\t\t/**\n\t\t * Gets the current instance of the rangeHelper class\n\t\t * for the editor.\n\t\t *\n\t\t * @return jQuery.sceditor.rangeHelper\n\t\t * @function\n\t\t * @name getRangeHelper\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.getRangeHelper = function () {\n\t\t\treturn rangeHelper;\n\t\t};\n\n\t\t/**\n\t\t * Gets the source editors textarea.\n\t\t *\n\t\t * This shouldn't be used to insert text\n\t\t *\n\t\t * @return {jQuery}\n\t\t * @function\n\t\t * @since 1.4.5\n\t\t * @name sourceEditorCaret\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.sourceEditorCaret = function (position) {\n\t\t\tvar range,\n\t\t\t\tret = {};\n\n\t\t\tsourceEditor.focus();\n\n\t\t\t// All browsers except IE <= 8\n\t\t\tif (typeof sourceEditor.selectionStart !== 'undefined') {\n\t\t\t\tif (position) {\n\t\t\t\t\tsourceEditor.selectionStart = position.start;\n\t\t\t\t\tsourceEditor.selectionEnd = position.end;\n\t\t\t\t} else {\n\t\t\t\t\tret.start = sourceEditor.selectionStart;\n\t\t\t\t\tret.end = sourceEditor.selectionEnd;\n\t\t\t\t}\n\n\t\t\t// IE8 and below\n\t\t\t} else {\n\t\t\t\trange = globalDoc.selection.createRange();\n\n\t\t\t\tif (position) {\n\t\t\t\t\trange.moveEnd('character', position.end);\n\t\t\t\t\trange.moveStart('character', position.start);\n\t\t\t\t\trange.select();\n\t\t\t\t} else {\n\t\t\t\t\tret.start = range.Start;\n\t\t\t\t\tret.end = range.End;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn position ? this : ret;\n\t\t};\n\n\t\t/**\n\t\t *

Gets the value of the editor.

\n\t\t *\n\t\t *

If the editor is in WYSIWYG mode it will return the filtered\n\t\t * HTML from it (converted to BBCode if using the BBCode plugin).\n\t\t * It it's in Source Mode it will return the unfiltered contents\n\t\t * of the source editor (if using the BBCode plugin this will be\n\t\t * BBCode again).

\n\t\t *\n\t\t * @since 1.3.5\n\t\t * @return {string}\n\t\t * @function\n\t\t * @name val\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\t/**\n\t\t *

Sets the value of the editor.

\n\t\t *\n\t\t *

If filter set true the val will be passed through the filter\n\t\t * function. If using the BBCode plugin it will pass the val to\n\t\t * the BBCode filter to convert any BBCode into HTML.

\n\t\t *\n\t\t * @param {String} val\n\t\t * @param {Boolean} [filter=true]\n\t\t * @return {this}\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @name val^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.val = function (val, filter) {\n\t\t\tif (typeof val !== 'string') {\n\t\t\t\treturn base.inSourceMode() ?\n\t\t\t\t\tbase.getSourceEditorValue(false) :\n\t\t\t\t\tbase.getWysiwygEditorValue(filter);\n\t\t\t}\n\t\t\t\n\t\t\tif (!base.inSourceMode()) {\n\t\t\t\tif (filter !== false &&\n\t\t\t\t\tpluginManager.hasHandler('toWysiwyg')) {\n\t\t\t\t\tval = pluginManager.callOnlyFirst('toWysiwyg', val);\n\t\t\t\t}\n\n\t\t\t\tbase.setWysiwygEditorValue(val);\n\t\t\t} else {\n\t\t\t\tbase.setSourceEditorValue(val);\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * edit by ling\n\t\t * 上面那个val获取内容如果有图片,回去请求图片...\n\t\t */\n\t\tbase.getContent = function(){\n\t\t\treturn $(base.getBody()).html()\n\t\t};\n\t\t/**\n\t\t *

Inserts HTML/BBCode into the editor

\n\t\t *\n\t\t *

If end is supplied any selected text will be placed between\n\t\t * start and end. If there is no selected text start and end\n\t\t * will be concatenate together.

\n\t\t *\n\t\t *

If the filter param is set to true, the HTML/BBCode will be\n\t\t * passed through any plugin filters. If using the BBCode plugin\n\t\t * this will convert any BBCode into HTML.

\n\t\t *\n\t\t * @param {String} start\n\t\t * @param {String} [end=null]\n\t\t * @param {Boolean} [filter=true]\n\t\t * @param {Boolean} [convertEmoticons=true] If to convert emoticons\n\t\t * @return {this}\n\t\t * @since 1.3.5\n\t\t * @function\n\t\t * @name insert\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\t/**\n\t\t *

Inserts HTML/BBCode into the editor

\n\t\t *\n\t\t *

If end is supplied any selected text will be placed between\n\t\t * start and end. If there is no selected text start and end\n\t\t * will be concatenate together.

\n\t\t *\n\t\t *

If the filter param is set to true, the HTML/BBCode will be\n\t\t * passed through any plugin filters. If using the BBCode plugin\n\t\t * this will convert any BBCode into HTML.

\n\t\t *\n\t\t *

If the allowMixed param is set to true, HTML any will not be\n\t\t * escaped

\n\t\t *\n\t\t * @param {String} start\n\t\t * @param {String} [end=null]\n\t\t * @param {Boolean} [filter=true]\n\t\t * @param {Boolean} [convertEmoticons=true] If to convert emoticons\n\t\t * @param {Boolean} [allowMixed=false]\n\t\t * @return {this}\n\t\t * @since 1.4.3\n\t\t * @function\n\t\t * @name insert^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.insert = function (\n\t\t\t/*jshint maxparams: false */\n\t\t\tstart, end, filter, convertEmoticons, allowMixed\n\t\t) {\n\t\t\tif (base.inSourceMode()) {\n\t\t\t\tbase.sourceEditorInsertText(start, end);\n\t\t\t\treturn base;\n\t\t\t}\n\n\t\t\t// Add the selection between start and end\n\t\t\tif (end) {\n\t\t\t\tvar\thtml = rangeHelper.selectedHtml(),\n\t\t\t\t\t$div = $('
').appendTo($('body')).hide().html(html);\n\n\t\t\t\tif (filter !== false && pluginManager.hasHandler('toSource')) {\n\t\t\t\t\thtml = pluginManager.callOnlyFirst('toSource', html, $div);\n\t\t\t\t}\n\n\t\t\t\t$div.remove();\n\n\t\t\t\tstart += html + end;\n\t\t\t}\n// TODO: This filter should allow empty tags as it's inserting.\n\t\t\tif (filter !== false && pluginManager.hasHandler('toWysiwyg')) {\n\t\t\t\tstart = pluginManager.callOnlyFirst('toWysiwyg', start, true);\n\t\t\t}\n\n\t\t\t// Convert any escaped HTML back into HTML if mixed is allowed\n\t\t\tif (filter !== false && allowMixed === true) {\n\t\t\t\tstart = start.replace(/</g, '<')\n\t\t\t\t\t.replace(/>/g, '>')\n\t\t\t\t\t.replace(/&/g, '&');\n\t\t\t}\n\n\t\t\tbase.wysiwygEditorInsertHtml(start);\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Gets the WYSIWYG editors HTML value.\n\t\t *\n\t\t * If using a plugin that filters the Ht Ml like the BBCode plugin\n\t\t * it will return the result of the filtering (BBCode) unless the\n\t\t * filter param is set to false.\n\t\t *\n\t\t * @param {bool} [filter=true]\n\t\t * @return {string}\n\t\t * @function\n\t\t * @name getWysiwygEditorValue\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.getWysiwygEditorValue = function (filter) {\n\t\t\tvar\thtml;\n\t\t\t// Create a tmp node to store contents so it can be modified\n\t\t\t// without affecting anything else.\n\t\t\t\n\t\t\tvar $tmp = $('
')\n\t\t\t\t.appendTo(document.body)\n\t\t\t\t.append($($wysiwygBody[0].childNodes).clone());\n\n\t\t\t// var $tmp = $('
')\n\t\t\t// \t.appendTo(document.body)\n\t\t\t// \t.append($($wysiwygBody[0].childNodes).html());\n\n\n\n\t\t\t//return false;\n\t\t\tdom.fixNesting($tmp[0]);\n\n\t\t\thtml = $tmp.html();\n\t\t\t\n\t\t\t// filter the HTML and DOM through any plugins\n\t\t\tif (filter !== false && pluginManager.hasHandler('toSource')) {\n\t\t\t\thtml = pluginManager.callOnlyFirst('toSource', html, $tmp);\n\t\t\t}\n\n\t\t\t$tmp.remove();\n\n\t\t\treturn html;\n\t\t};\n\n\t\t/**\n\t\t * Gets the WYSIWYG editor's iFrame Body.\n\t\t *\n\t\t * @return {jQuery}\n\t\t * @function\n\t\t * @since 1.4.3\n\t\t * @name getBody\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.getBody = function () {\n\t\t\treturn $wysiwygBody;\n\t\t};\n\n\t\t/**\n\t\t * Gets the WYSIWYG editors container area (whole iFrame).\n\t\t *\n\t\t * @return {Node}\n\t\t * @function\n\t\t * @since 1.4.3\n\t\t * @name getContentAreaContainer\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.getContentAreaContainer = function () {\n\t\t\treturn $wysiwygEditor;\n\t\t};\n\n\t\t/**\n\t\t * Gets the text editor value\n\t\t *\n\t\t * If using a plugin that filters the text like the BBCode plugin\n\t\t * it will return the result of the filtering which is BBCode to\n\t\t * HTML so it will return HTML. If filter is set to false it will\n\t\t * just return the contents of the source editor (BBCode).\n\t\t *\n\t\t * @param {bool} [filter=true]\n\t\t * @return {string}\n\t\t * @function\n\t\t * @since 1.4.0\n\t\t * @name getSourceEditorValue\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.getSourceEditorValue = function (filter) {\n\t\t\tvar val = $sourceEditor.val();\n\n\t\t\tif (filter !== false && pluginManager.hasHandler('toWysiwyg')) {\n\t\t\t\tval = pluginManager.callOnlyFirst('toWysiwyg', val);\n\t\t\t}\n\n\t\t\treturn val;\n\t\t};\n\n\t\t/**\n\t\t * Sets the WYSIWYG HTML editor value. Should only be the HTML\n\t\t * contained within the body tags\n\t\t *\n\t\t * @param {string} value\n\t\t * @function\n\t\t * @name setWysiwygEditorValue\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.setWysiwygEditorValue = function (value) {\n\t\t\tif (!value) {\n\t\t\t\tvalue = '

' + (IE_VER ? '' : '
') + '

';\n\t\t\t}\n\n\t\t\t$wysiwygBody[0].innerHTML = value;\n\t\t\treplaceEmoticons($wysiwygBody[0]);\n\n\t\t\tappendNewLine();\n\t\t\ttriggerValueChanged();\n\t\t};\n\n\t\t/**\n\t\t * Sets the text editor value\n\t\t *\n\t\t * @param {string} value\n\t\t * @function\n\t\t * @name setSourceEditorValue\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.setSourceEditorValue = function (value) {\n\t\t\t$sourceEditor.val(value);\n\n\t\t\ttriggerValueChanged();\n\t\t};\n\n\t\t/**\n\t\t * Updates the textarea that the editor is replacing\n\t\t * with the value currently inside the editor.\n\t\t *\n\t\t * @function\n\t\t * @name updateOriginal\n\t\t * @since 1.4.0\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.updateOriginal = function () {\n\t\t\t$original.val(base.val());\n\t\t};\n\n\t\t/**\n\t\t * Replaces any emoticon codes in the passed HTML\n\t\t * with their emoticon images\n\t\t * @private\n\t\t */\n\t\treplaceEmoticons = function (node) {\n// TODO: Make this tag configurable.\n\t\t\tif (!options.emoticonsEnabled || $(node).parents('code').length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\tdoc = node.ownerDocument,\n\t\t\t\twhitespace = '\\\\s|\\xA0|\\u2002|\\u2003|\\u2009| ',\n\t\t\t\temoticonCodes = [],\n\t\t\t\temoticonRegex = [],\n\t\t\t\temoticons = $.extend(\n\t\t\t\t\t{},\n\t\t\t\t\toptions.emoticons.more,\n\t\t\t\t\toptions.emoticons.dropdown,\n\t\t\t\t\toptions.emoticons.hidden\n\t\t\t\t);\n// TODO: cache the emoticonCodes and emoticonCodes objects and share them with\n// the AYT converstion\n\t\t\t$.each(emoticons, function (key) {\n\t\t\t\tif (options.emoticonsCompat) {\n\t\t\t\t\temoticonRegex[key] = new RegExp(\n\t\t\t\t\t\t'(>|^|' + whitespace + ')' +\n\t\t\t\t\t\tescape.regex(key) +\n\t\t\t\t\t\t'($|<|' + whitespace + ')'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\temoticonCodes.push(key);\n\t\t\t});\n// TODO: tidy below\n\t\t\tvar convertEmoticons = function (node) {\n\t\t\t\tnode = node.firstChild;\n\n\t\t\t\twhile (node) {\n\t\t\t\t\tvar\tparts, key, emoticon, parsedHtml,\n\t\t\t\t\t\temoticonIdx, nextSibling, matchPos,\n\t\t\t\t\t\tnodeParent = node.parentNode,\n\t\t\t\t\t\tnodeValue = node.nodeValue;\n\n\t\t\t\t\t// All none textnodes\n\t\t\t\t\tif (node.nodeType !== 3) {\n// TODO: Make this tag configurable.\n\t\t\t\t\t\tif (!$(node).is('code')) {\n\t\t\t\t\t\t\tconvertEmoticons(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (nodeValue) {\n\t\t\t\t\t\temoticonIdx = emoticonCodes.length;\n\t\t\t\t\t\twhile (emoticonIdx--) {\n\t\t\t\t\t\t\tkey = emoticonCodes[emoticonIdx];\n\t\t\t\t\t\t\tmatchPos = options.emoticonsCompat ?\n\t\t\t\t\t\t\t\tnodeValue.search(emoticonRegex[key]) :\n\t\t\t\t\t\t\t\tnodeValue.indexOf(key);\n\n\t\t\t\t\t\t\tif (matchPos > -1) {\n\t\t\t\t\t\t\t\tnextSibling = node.nextSibling;\n\t\t\t\t\t\t\t\temoticon = emoticons[key];\n\t\t\t\t\t\t\t\tparts = nodeValue\n\t\t\t\t\t\t\t\t\t.substr(matchPos).split(key);\n\t\t\t\t\t\t\t\tnodeValue = nodeValue\n\t\t\t\t\t\t\t\t\t.substr(0, matchPos) + parts.shift();\n\t\t\t\t\t\t\t\tnode.nodeValue = nodeValue;\n\n\t\t\t\t\t\t\t\tparsedHtml = dom.parseHTML(_tmpl('emoticon', {\n\t\t\t\t\t\t\t\t\tkey: key,\n\t\t\t\t\t\t\t\t\turl: emoticon.url || emoticon,\n\t\t\t\t\t\t\t\t\ttooltip: emoticon.tooltip || key\n\t\t\t\t\t\t\t\t}), doc);\n\n\t\t\t\t\t\t\t\tnodeParent.insertBefore(\n\t\t\t\t\t\t\t\t\tparsedHtml[0],\n\t\t\t\t\t\t\t\t\tnextSibling\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tnodeParent.insertBefore(\n\t\t\t\t\t\t\t\t\tdoc.createTextNode(parts.join(key)),\n\t\t\t\t\t\t\t\t\tnextSibling\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconvertEmoticons(node);\n\n\t\t\tif (options.emoticonsCompat) {\n\t\t\t\tcurrentEmoticons = $wysiwygBody\n\t\t\t\t\t.find('img[data-sceditor-emoticon]');\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * If the editor is in source code mode\n\t\t *\n\t\t * @return {bool}\n\t\t * @function\n\t\t * @name inSourceMode\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.inSourceMode = function () {\n\t\t\treturn $editorContainer.hasClass('sourceMode');\n\t\t};\n\n\t\t/**\n\t\t * Gets if the editor is in sourceMode\n\t\t *\n\t\t * @return boolean\n\t\t * @function\n\t\t * @name sourceMode\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\t/**\n\t\t * Sets if the editor is in sourceMode\n\t\t *\n\t\t * @param {bool} enable\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name sourceMode^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.sourceMode = function (enable) {\n\t\t\tvar inSourceMode = base.inSourceMode();\n\n\t\t\tif (typeof enable !== 'boolean') {\n\t\t\t\treturn inSourceMode;\n\t\t\t}\n\n\t\t\tif ((inSourceMode && !enable) || (!inSourceMode && enable)) {\n\t\t\t\tbase.toggleSourceMode();\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Switches between the WYSIWYG and source modes\n\t\t *\n\t\t * @function\n\t\t * @name toggleSourceMode\n\t\t * @since 1.4.0\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.toggleSourceMode = function () {\n\t\t\tvar sourceMode = base.inSourceMode();\n\n\t\t\t// don't allow switching to WYSIWYG if doesn't support it\n\t\t\tif (!browser.isWysiwygSupported && sourceMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!sourceMode) {\n\t\t\t\trangeHelper.saveRange();\n\t\t\t\trangeHelper.clear();\n\t\t\t}\n\n\t\t\tbase.blur();\n\n\t\t\tif (sourceMode) {\n\t\t\t\tbase.setWysiwygEditorValue(base.getSourceEditorValue());\n\t\t\t} else {\n\t\t\t\tbase.setSourceEditorValue(base.getWysiwygEditorValue());\n\t\t\t}\n\n\t\t\tlastRange = null;\n\t\t\t$sourceEditor.toggle();\n\t\t\t$wysiwygEditor.toggle();\n\t\t\t$editorContainer\n\t\t\t\t.toggleClass('wysiwygMode', sourceMode)\n\t\t\t\t.toggleClass('sourceMode', !sourceMode);\n\n\t\t\tupdateToolBar();\n\t\t\tupdateActiveButtons();\n\t\t};\n\n\t\t/**\n\t\t * Gets the selected text of the source editor\n\t\t * @return {String}\n\t\t * @private\n\t\t */\n\t\tsourceEditorSelectedText = function () {\n\t\t\tsourceEditor.focus();\n\n\t\t\tif (typeof sourceEditor.selectionStart !== 'undefined') {\n\t\t\t\treturn sourceEditor.value.substring(\n\t\t\t\t\tsourceEditor.selectionStart,\n\t\t\t\t\tsourceEditor.selectionEnd\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn globalDoc.selection.createRange().text;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Handles the passed command\n\t\t * @private\n\t\t */\n\t\thandleCommand = function (caller, cmd) {\n\t\t\t// check if in text mode and handle text commands\n\t\t\tif (base.inSourceMode()) {\n\t\t\t\tif (cmd.txtExec) {\n\t\t\t\t\tif ($.isArray(cmd.txtExec)) {\n\t\t\t\t\t\tbase.sourceEditorInsertText.apply(base, cmd.txtExec);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcmd.txtExec.call(\n\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\tcaller,\n\t\t\t\t\t\t\tsourceEditorSelectedText()\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (cmd.exec) {\n\t\t\t\tif ($.isFunction(cmd.exec)) {\n\t\t\t\t\tcmd.exec.call(base, caller);\n\t\t\t\t} else {\n\t\t\t\t\tbase.execCommand(\n\t\t\t\t\t\tcmd.exec,\n\t\t\t\t\t\tcmd.hasOwnProperty('execParam') ?\n\t\t\t\t\t\t\tcmd.execParam : null\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Saves the current range. Needed for IE because it forgets\n\t\t * where the cursor was and what was selected\n\t\t * @private\n\t\t */\n\t\tsaveRange = function () {\n\t\t\t/* this is only needed for IE */\n\t\t\tif (IE_VER) {\n\t\t\t\tlastRange = rangeHelper.selectedRange();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Executes a command on the WYSIWYG editor\n\t\t *\n\t\t * @param {String} command\n\t\t * @param {String|Boolean} [param]\n\t\t * @function\n\t\t * @name execCommand\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.execCommand = function (command, param) {\n\t\t\tvar\texecuted = false,\n\t\t\t\tcommandObj = base.commands[command],\n\t\t\t\t$parentNode = $(rangeHelper.parentNode());\n\n\t\t\tbase.focus();\n\n// TODO: make configurable\n\t\t\t// don't apply any commands to code elements\n\t\t\tif ($parentNode.is('code') ||\n\t\t\t\t$parentNode.parents('code').length !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\texecuted = $wysiwygDoc[0].execCommand(command, false, param);\n\t\t\t} catch (ex) {}\n\n\t\t\t// show error if execution failed and an error message exists\n\t\t\tif (!executed && commandObj && commandObj.errorMessage) {\n\t\t\t\t/*global alert:false*/\n\t\t\t\talert(base._(commandObj.errorMessage));\n\t\t\t}\n\n\t\t\tupdateActiveButtons();\n\t\t};\n\n\t\t/**\n\t\t * Checks if the current selection has changed and triggers\n\t\t * the selectionchanged event if it has.\n\t\t *\n\t\t * In browsers other than IE, it will check at most once every 100ms.\n\t\t * This is because only IE has a selection changed event.\n\t\t * @private\n\t\t */\n\t\tcheckSelectionChanged = function () {\n\t\t\tfunction check () {\n\t\t\t\t// rangeHelper could be null if editor was destroyed\n\t\t\t\t// before the timeout had finished\n\t\t\t\tif (rangeHelper && !rangeHelper.compare(currentSelection)) {\n\t\t\t\t\tcurrentSelection = rangeHelper.cloneSelected();\n\n\t\t\t\t\t// edit by ling If the selection is in an inline wrap it in a block.\n\t\t\t\t\t// Fixes #331\n\t\t\t\t\tif (currentSelection && currentSelection.collapsed) {\n\t\t\t\t\t\tvar parent$$1 = currentSelection.startContainer;\n\t\t\t\t\t\tvar offset = currentSelection.startOffset;\n\n\t\t\t\t\t\t// Handle if selection is placed before/after an element\n\t\t\t\t\t\tif (offset && parent$$1.nodeType !== 3) {\n\t\t\t\t\t\t\tparent$$1 = parent$$1.childNodes[offset];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twhile (parent$$1 && parent$$1.parentNode !== wysiwygBody) {\n\t\t\t\t\t\t\tparent$$1 = parent$$1.parentNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (parent$$1 && dom.isInline(parent$$1, true)) {\n\t\t\t\t\t\t\trangeHelper.saveRange();\n\t\t\t\t\t\t\tdom.wrapInlines(wysiwygBody, wysiwygDocument);\n\t\t\t\t\t\t\trangeHelper.restoreRange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t$editorContainer.trigger($.Event('selectionchanged'));\n\t\t\t\t}\n\n\t\t\t\tisSelectionCheckPending = false;\n\t\t\t}\n\n\t\t\tif (isSelectionCheckPending) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tisSelectionCheckPending = true;\n\n\t\t\t// In IE, this is only called on the selectionchange event so no\n\t\t\t// need to limit checking as it should always be valid to do.\n\t\t\tif (IE_VER) {\n\t\t\t\tcheck();\n\t\t\t} else {\n\t\t\t\tsetTimeout(check, 100);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Checks if the current node has changed and triggers\n\t\t * the nodechanged event if it has\n\t\t * @private\n\t\t */\n\t\tcheckNodeChanged = function () {\n\t\t\t// check if node has changed\n\t\t\tvar\toldNode,\n\t\t\t\tnode = rangeHelper.parentNode();\n\n\t\t\tif (currentNode !== node) {\n\t\t\t\toldNode = currentNode;\n\t\t\t\tcurrentNode = node;\n\t\t\t\tcurrentBlockNode = rangeHelper.getFirstBlockParent(node);\n\n\t\t\t\t$editorContainer.trigger($.Event('nodechanged', {\n\t\t\t\t\toldNode: oldNode,\n\t\t\t\t\tnewNode: currentNode\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t *

Gets the current node that contains the selection/caret in\n\t\t * WYSIWYG mode.

\n\t\t *\n\t\t *

Will be null in sourceMode or if there is no selection.

\n\t\t * @return {Node}\n\t\t * @function\n\t\t * @name currentNode\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase.currentNode = function () {\n\t\t\treturn currentNode;\n\t\t};\n\n\t\t/**\n\t\t *

Gets the first block level node that contains the\n\t\t * selection/caret in WYSIWYG mode.

\n\t\t *\n\t\t *

Will be null in sourceMode or if there is no selection.

\n\t\t * @return {Node}\n\t\t * @function\n\t\t * @name currentBlockNode\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.4\n\t\t */\n\t\tbase.currentBlockNode = function () {\n\t\t\treturn currentBlockNode;\n\t\t};\n\n\t\t/**\n\t\t * Updates if buttons are active or not\n\t\t * @private\n\t\t */\n\t\tupdateActiveButtons = function (e) {\n\t\t\tvar firstBlock, parent;\n\t\t\tvar activeClass = 'active';\n\t\t\tvar doc = $wysiwygDoc[0];\n\t\t\tvar isSource = base.sourceMode();\n\n\t\t\tif (base.readOnly()) {\n\t\t\t\t$toolbar.find(activeClass).removeClass(activeClass);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!isSource) {\n\t\t\t\tparent = e ? e.newNode : rangeHelper.parentNode();\n\t\t\t\tfirstBlock = rangeHelper.getFirstBlockParent(parent);\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < btnStateHandlers.length; i++) {\n\t\t\t\tvar state = 0;\n\t\t\t\tvar $btn = toolbarButtons[btnStateHandlers[i].name];\n\t\t\t\tvar stateFn = btnStateHandlers[i].state;\n\t\t\t\tvar isDisabled = (isSource && !$btn.data('sceditor-txtmode')) ||\n\t\t\t\t\t\t\t(!isSource && !$btn.data('sceditor-wysiwygmode'));\n\n\t\t\t\tif (typeof stateFn === 'string') {\n\t\t\t\t\tif (!isSource) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tstate = doc.queryCommandEnabled(stateFn) ? 0 : -1;\n\n\t\t\t\t\t\t\t/*jshint maxdepth: false*/\n\t\t\t\t\t\t\tif (state > -1) {\n\t\t\t\t\t\t\t\tstate = doc.queryCommandState(stateFn) ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (ex) {}\n\t\t\t\t\t}\n\t\t\t\t} else if (!isDisabled) {\n\t\t\t\t\tstate = stateFn.call(base, parent, firstBlock);\n\t\t\t\t}\n\n\t\t\t\t$btn\n\t\t\t\t\t.toggleClass('disabled', isDisabled || state < 0)\n\t\t\t\t\t.toggleClass(activeClass, state > 0);\n\n\t\t\t\t//edit by ling\n\t\t\t\tvar name = btnStateHandlers[i].name\n\t\t\t\tvar emActiveClass = \"xeditor-icon-\"+name+\"-active\"\n\t\t\t\tvar emClass = \"xeditor-icon-\"+name\n\t\t\t\tif(state>0){\n\t\t\t\t\tif(!$btn.find(\"em\").hasClass(emActiveClass))\n\t\t\t\t\t\t$btn.find(\"em\").addClass(emActiveClass)\n\t\t\t\t\tif($btn.find(\"em\").hasClass(emClass)){\n\t\t\t\t\t\t$btn.find(\"em\").removeClass(emClass)\t\t\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tif(!$btn.find(\"em\").hasClass(emClass)){\n\t\t\t\t\t\t$btn.find(\"em\").addClass(emClass)\t\t\n\t\t\t\t\t}\n\t\t\t\t\tif($btn.find(\"em\").hasClass(emActiveClass)){\n\t\t\t\t\t\t$btn.find(\"em\").removeClass(emActiveClass)\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Handles any key press in the WYSIWYG editor\n\t\t *\n\t\t * @private\n\t\t */\n\t\thandleKeyPress = function (e) {\n\t\t\tvar\t$closestTag, br, brParent, lastChild;\n\n// TODO: improve this so isn't set list, probably should just use\n// dom.hasStyling to all block parents and if one does insert a br\n\t\t\tvar DUPLICATED_TAGS = 'code,blockquote,pre';\n\t\t\tvar LIST_TAGS = 'li,ul,ol';\n\n\t\t\t// FF bug: https://bugzilla.mozilla.org/show_bug.cgi?id=501496\n\t\t\tif (e.originalEvent.defaultPrevented) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbase.closeDropDown();\n\n\t\t\t$closestTag = $(currentBlockNode)\n\t\t\t\t.closest(DUPLICATED_TAGS + ',' + LIST_TAGS)\n\t\t\t\t.first();\n\t\t\t\t\n\t\t\t// \"Fix\" (OK it's a cludge) for blocklevel elements being\n\t\t\t// duplicated in some browsers when enter is pressed instead\n\t\t\t// of inserting a newline\n\t\t\tif (e.which === 13 && $closestTag.length &&\n\t\t\t\t\t!$closestTag.is(LIST_TAGS)) {\n\t\t\t\t\t\t\n\t\t\t\tlastRange = null;\n\n\t\t\t\tbr = $wysiwygDoc[0].createElement('br');\n\t\t\t\trangeHelper.insertNode(br);\n\n\t\t\t\t// Last
of a block will be collapsed unless it is\n\t\t\t\t// IE < 11 so need to make sure the
that was inserted\n\t\t\t\t// isn't the last node of a block.\n\t\t\t\tif (!IE_BR_FIX) {\n\t\t\t\t\tbrParent = br.parentNode;\n\t\t\t\t\tlastChild = brParent.lastChild;\n\n\t\t\t\t\t// Sometimes an empty next node is created after the
\n\t\t\t\t\tif (lastChild && lastChild.nodeType === 3 &&\n\t\t\t\t\t\tlastChild.nodeValue === '') {\n\t\t\t\t\t\tbrParent.removeChild(lastChild);\n\t\t\t\t\t\tlastChild = brParent.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If this is the last BR of a block and the previous\n\t\t\t\t\t// sibling is inline then will need an extra BR. This\n\t\t\t\t\t// is needed because the last BR of a block will be\n\t\t\t\t\t// collapsed. Fixes issue #248\n\t\t\t\t\tif (!dom.isInline(brParent, true) && lastChild === br &&\n\t\t\t\t\t\tdom.isInline(br.previousSibling)) {\n\t\t\t\t\t\trangeHelper.insertHTML('
');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Makes sure that if there is a code or quote tag at the\n\t\t * end of the editor, that there is a new line after it.\n\t\t *\n\t\t * If there wasn't a new line at the end you wouldn't be able\n\t\t * to enter any text after a code/quote tag\n\t\t * @return {void}\n\t\t * @private\n\t\t */\n\t\tappendNewLine = function () {\n\t\t\tvar name, requiresNewLine, paragraph,\n\t\t\t\tbody = $wysiwygBody[0];\n\n\t\t\tdom.rTraverse(body, function (node) {\n\t\t\t\tname = node.nodeName.toLowerCase();\n// TODO: Replace requireNewLineFix with just a block level fix for any\n// block that has styling and any block that isn't a plain

or

\n\t\t\t\tif ($.inArray(name, requireNewLineFix) > -1) {\n\t\t\t\t\trequiresNewLine = true;\n\t\t\t\t}\n// TODO: tidy this up\n\t\t\t\t// find the last non-empty text node or line break.\n\t\t\t\tif ((node.nodeType === 3 && !/^\\s*$/.test(node.nodeValue)) ||\n\t\t\t\t\tname === 'br' || (IE_BR_FIX && !node.firstChild &&\n\t\t\t\t\t!dom.isInline(node, false))) {\n\n\t\t\t\t\t// this is the last text or br node, if its in a code or\n\t\t\t\t\t// quote tag then add a newline to the end of the editor\n\t\t\t\t\tif (requiresNewLine) {\n\t\t\t\t\t\tparagraph = $wysiwygDoc[0].createElement('p');\n\t\t\t\t\t\tparagraph.className = 'sceditor-nlf';\n\t\t\t\t\t\tparagraph.innerHTML = !IE_BR_FIX ? '
' : '';\n\t\t\t\t\t\tbody.appendChild(paragraph);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Handles form reset event\n\t\t * @private\n\t\t */\n\t\thandleFormReset = function () {\n\t\t\tbase.val($original.val());\n\t\t};\n\n\t\t/**\n\t\t * Handles any mousedown press in the WYSIWYG editor\n\t\t * @private\n\t\t */\n\t\thandleMouseDown = function () {\n\t\t\tbase.closeDropDown();\n\t\t\tlastRange = null;\n\t\t};\n\n\t\t/**\n\t\t * Handles the window resize event. Needed to resize then editor\n\t\t * when the window size changes in fluid designs.\n\t\t * @ignore\n\t\t */\n\t\thandleWindowResize = function () {\n\t\t\tvar\theight = options.height,\n\t\t\t\twidth = options.width;\n\n\t\t\tif (!base.maximize()) {\n\t\t\t\tif ((height && height.toString().indexOf('%') > -1) ||\n\t\t\t\t\t(width && width.toString().indexOf('%') > -1)) {\n\t\t\t\t\tbase.dimensions(width, height);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tbase.dimensions('100%', '100%', false);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Translates the string into the locale language.\n\t\t *\n\t\t * Replaces any {0}, {1}, {2}, ect. with the params provided.\n\t\t *\n\t\t * @param {string} str\n\t\t * @param {...String} args\n\t\t * @return {string}\n\t\t * @function\n\t\t * @name _\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\tbase._ = function () {\n\t\t\tvar\tundef,\n\t\t\t\targs = arguments;\n\n\t\t\tif (locale && locale[args[0]]) {\n\t\t\t\targs[0] = locale[args[0]];\n\t\t\t}\n\n\t\t\treturn args[0].replace(/\\{(\\d+)\\}/g, function (str, p1) {\n\t\t\t\treturn args[p1 - 0 + 1] !== undef ?\n\t\t\t\t\targs[p1 - 0 + 1] :\n\t\t\t\t\t'{' + p1 + '}';\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Passes events on to any handlers\n\t\t * @private\n\t\t * @return void\n\t\t */\n\t\thandleEvent = function (e) {\n\t\t\t// Send event to all plugins\n\t\t\tpluginManager.call(e.type + 'Event', e, base);\n\n\t\t\t// convert the event into a custom event to send\n\t\t\tvar prefix = e.target === sourceEditor ? 'scesrc' : 'scewys';\n\t\t\tvar customEvent = $.Event(e);\n\t\t\tcustomEvent.type = prefix + e.type;\n\n\t\t\t$editorContainer.trigger(customEvent, base);\n\t\t};\n\n\t\t/**\n\t\t *

Binds a handler to the specified events

\n\t\t *\n\t\t *

This function only binds to a limited list of\n\t\t * supported events.
\n\t\t * The supported events are:\n\t\t *

    \n\t\t *
  • keyup
  • \n\t\t *
  • keydown
  • \n\t\t *
  • Keypress
  • \n\t\t *
  • blur
  • \n\t\t *
  • focus
  • \n\t\t *
  • nodechanged
    \n\t\t * When the current node containing the selection changes\n\t\t * in WYSIWYG mode
  • \n\t\t *
  • contextmenu
  • \n\t\t *
  • selectionchanged
  • \n\t\t *
  • valuechanged
  • \n\t\t *
\n\t\t *

\n\t\t *\n\t\t *

The events param should be a string containing the event(s)\n\t\t * to bind this handler to. If multiple, they should be separated\n\t\t * by spaces.

\n\t\t *\n\t\t * @param {String} events\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource if to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name bind\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.bind = function (events, handler, excludeWysiwyg, excludeSource) {\n\t\t\tevents = events.split(' ');\n\n\t\t\tvar i = events.length;\n\t\t\twhile (i--) {\n\t\t\t\tif ($.isFunction(handler)) {\n\t\t\t\t\t// Use custom events to allow passing the instance as the\n\t\t\t\t\t// 2nd argument.\n\t\t\t\t\t// Also allows unbinding without unbinding the editors own\n\t\t\t\t\t// event handlers.\n\t\t\t\t\tif (!excludeWysiwyg) {\n\t\t\t\t\t\t$editorContainer.on('scewys' + events[i], handler);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!excludeSource) {\n\t\t\t\t\t\t$editorContainer.on('scesrc' + events[i], handler);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Start sending value changed events\n\t\t\t\t\tif (events[i] === 'valuechanged') {\n\t\t\t\t\t\ttriggerValueChanged.hasHandler = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Unbinds an event that was bound using bind().\n\t\t *\n\t\t * @param {String} events\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude unbinding this\n\t\t * handler from the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource if to exclude unbinding this\n\t\t * handler from the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name unbind\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t * @see bind\n\t\t */\n\t\tbase.unbind = function (\n\t\t\tevents, handler, excludeWysiwyg, excludeSource\n\t\t) {\n\t\t\tevents = events.split(' ');\n\n\t\t\tvar i = events.length;\n\t\t\twhile (i--) {\n\t\t\t\tif ($.isFunction(handler)) {\n\t\t\t\t\tif (!excludeWysiwyg) {\n\t\t\t\t\t\t$editorContainer.off('scewys' + events[i], handler);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!excludeSource) {\n\t\t\t\t\t\t$editorContainer.off('scesrc' + events[i], handler);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Blurs the editors input area\n\t\t *\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name blur\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.3.6\n\t\t */\n\t\t/**\n\t\t * Adds a handler to the editors blur event\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource if to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name blur^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.blur = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\tif ($.isFunction(handler)) {\n\t\t\t\tbase.bind('blur', handler, excludeWysiwyg, excludeSource);\n\t\t\t} else if (!base.sourceMode()) {\n\t\t\t\t$wysiwygBody.blur();\n\t\t\t} else {\n\t\t\t\t$sourceEditor.blur();\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Focuses the editors input area\n\t\t *\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name focus\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t */\n\t\t/**\n\t\t * Adds an event handler to the focus event\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource if to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name focus^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.focus = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\tif ($.isFunction(handler)) {\n\t\t\t\tbase.bind('focus', handler, excludeWysiwyg, excludeSource);\n\t\t\t} else if (!base.inSourceMode()) {\n\t\t\t\tvar container,\n\t\t\t\t\trng = rangeHelper.selectedRange();\n\n\t\t\t\t// Fix FF bug where it shows the cursor in the wrong place\n\t\t\t\t// if the editor hasn't had focus before. See issue #393\n\t\t\t\tif (!currentSelection && !rangeHelper.hasSelection()) {\n\t\t\t\t\tautofocus();\n\t\t\t\t}\n\n\t\t\t\t// Check if cursor is set after a BR when the BR is the only\n\t\t\t\t// child of the parent. In Firefox this causes a line break\n\t\t\t\t// to occur when something is typed. See issue #321\n\t\t\t\tif (!IE_BR_FIX && rng && rng.endOffset === 1 && rng.collapsed) {\n\t\t\t\t\tcontainer = rng.endContainer;\n\n\t\t\t\t\tif (container && container.childNodes.length === 1 &&\n\t\t\t\t\t\t$(container.firstChild).is('br')) {\n\t\t\t\t\t\trng.setStartBefore(container.firstChild);\n\t\t\t\t\t\trng.collapse(true);\n\t\t\t\t\t\trangeHelper.selectRange(rng);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\twysiwygEditor.contentWindow.focus();\n\t\t\t\t$wysiwygBody[0].focus();\n\n\t\t\t\t// Needed for IE < 9\n\t\t\t\tif (lastRange) {\n\t\t\t\t\trangeHelper.selectRange(lastRange);\n\n\t\t\t\t\t// remove the stored range after being set.\n\t\t\t\t\t// If the editor loses focus it should be\n\t\t\t\t\t// saved again.\n\t\t\t\t\tlastRange = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsourceEditor.focus();\n\t\t\t}\n\n\t\t\tupdateActiveButtons();\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Adds a handler to the key down event\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource If to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name keyDown\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.keyDown = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\treturn base.bind('keydown', handler, excludeWysiwyg, excludeSource);\n\t\t};\n\n\t\t/**\n\t\t * Adds a handler to the key press event\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource If to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name keyPress\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.keyPress = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\treturn base\n\t\t\t\t.bind('keypress', handler, excludeWysiwyg, excludeSource);\n\t\t};\n\n\t\t/**\n\t\t * Adds a handler to the key up event\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource If to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name keyUp\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.keyUp = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\treturn base.bind('keyup', handler, excludeWysiwyg, excludeSource);\n\t\t};\n\n\t\t/**\n\t\t *

Adds a handler to the node changed event.

\n\t\t *\n\t\t *

Happens whenever the node containing the selection/caret\n\t\t * changes in WYSIWYG mode.

\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name nodeChanged\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.nodeChanged = function (handler) {\n\t\t\treturn base.bind('nodechanged', handler, false, true);\n\t\t};\n\n\t\t/**\n\t\t *

Adds a handler to the selection changed event

\n\t\t *\n\t\t *

Happens whenever the selection changes in WYSIWYG mode.

\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name selectionChanged\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.1\n\t\t */\n\t\tbase.selectionChanged = function (handler) {\n\t\t\treturn base.bind('selectionchanged', handler, false, true);\n\t\t};\n\n\t\t/**\n\t\t *

Adds a handler to the value changed event

\n\t\t *\n\t\t *

Happens whenever the current editor value changes.

\n\t\t *\n\t\t *

Whenever anything is inserted, the value changed or\n\t\t * 1.5 secs after text is typed. If a space is typed it will\n\t\t * cause the event to be triggered immediately instead of\n\t\t * after 1.5 seconds

\n\t\t *\n\t\t * @param {Function} handler\n\t\t * @param {Boolean} excludeWysiwyg If to exclude adding this handler\n\t\t * to the WYSIWYG editor\n\t\t * @param {Boolean} excludeSource If to exclude adding this handler\n\t\t * to the source editor\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name valueChanged\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.5\n\t\t */\n\t\tbase.valueChanged = function (handler, excludeWysiwyg, excludeSource) {\n\t\t\treturn base\n\t\t\t\t.bind('valuechanged', handler, excludeWysiwyg, excludeSource);\n\t\t};\n\n\t\t/**\n\t\t * Emoticons keypress handler\n\t\t * @private\n\t\t */\n\t\temoticonsKeyPress = function (e) {\n\t\t\tvar\treplacedEmoticon,\n\t\t\t\tcachePos = 0,\n\t\t\t\temoticonsCache = base.emoticonsCache,\n\t\t\t\tcurChar = String.fromCharCode(e.which);\n// TODO: Make configurable\n\t\t\tif ($(currentBlockNode).is('code') ||\n\t\t\t\t$(currentBlockNode).parents('code').length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!emoticonsCache) {\n\t\t\t\temoticonsCache = [];\n\n\t\t\t\t$.each($.extend(\n\t\t\t\t\t{},\n\t\t\t\t\toptions.emoticons.more,\n\t\t\t\t\toptions.emoticons.dropdown,\n\t\t\t\t\toptions.emoticons.hidden\n\t\t\t\t), function (key, url) {\n\t\t\t\t\temoticonsCache[cachePos++] = [\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t_tmpl('emoticon', {\n\t\t\t\t\t\t\tkey: key,\n\t\t\t\t\t\t\turl: url.url || url,\n\t\t\t\t\t\t\ttooltip: url.tooltip || key\n\t\t\t\t\t\t})\n\t\t\t\t\t];\n\t\t\t\t});\n\n\t\t\t\temoticonsCache.sort(function (a, b) {\n\t\t\t\t\treturn a[0].length - b[0].length;\n\t\t\t\t});\n\n\t\t\t\tbase.emoticonsCache = emoticonsCache;\n\t\t\t\tbase.longestEmoticonCode =\n\t\t\t\t\temoticonsCache[emoticonsCache.length - 1][0].length;\n\t\t\t}\n\n\t\t\treplacedEmoticon = rangeHelper.replaceKeyword(\n\t\t\t\tbase.emoticonsCache,\n\t\t\t\ttrue,\n\t\t\t\ttrue,\n\t\t\t\tbase.longestEmoticonCode,\n\t\t\t\toptions.emoticonsCompat,\n\t\t\t\tcurChar\n\t\t\t);\n\n\t\t\tif (replacedEmoticon && options.emoticonsCompat) {\n\t\t\t\tcurrentEmoticons = $wysiwygBody\n\t\t\t\t\t.find('img[data-sceditor-emoticon]');\n\n\t\t\t\treturn /^\\s$/.test(curChar);\n\t\t\t}\n\n\t\t\treturn !replacedEmoticon;\n\t\t};\n\n\t\t/**\n\t\t * Makes sure emoticons are surrounded by whitespace\n\t\t * @private\n\t\t */\n\t\temoticonsCheckWhitespace = function () {\n\t\t\tif (!currentEmoticons.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\tprev, next, parent, range, previousText, rangeStartContainer,\n\t\t\t\tcurrentBlock = base.currentBlockNode(),\n\t\t\t\trangeStart = false,\n\t\t\t\tnoneWsRegex = /[^\\s\\xA0\\u2002\\u2003\\u2009\\u00a0]+/;\n\n\t\t\tcurrentEmoticons = $.map(currentEmoticons, function (emoticon) {\n\t\t\t\t// Ignore emoticons that have been removed from DOM\n\t\t\t\tif (!emoticon || !emoticon.parentNode) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif (!$.contains(currentBlock, emoticon)) {\n\t\t\t\t\treturn emoticon;\n\t\t\t\t}\n\n\t\t\t\tprev = emoticon.previousSibling;\n\t\t\t\tnext = emoticon.nextSibling;\n\t\t\t\tpreviousText = prev.nodeValue;\n\n\t\t\t\t// For IE's HTMLPhraseElement\n\t\t\t\tif (previousText === null) {\n\t\t\t\t\tpreviousText = prev.innerText || '';\n\t\t\t\t}\n\n\t\t\t\tif ((!prev || !noneWsRegex.test(prev.nodeValue.slice(-1))) &&\n\t\t\t\t\t(!next || !noneWsRegex.test((next.nodeValue || '')[0]))) {\n\t\t\t\t\treturn emoticon;\n\t\t\t\t}\n\n\t\t\t\tparent = emoticon.parentNode;\n\t\t\t\trange = rangeHelper.cloneSelected();\n\t\t\t\trangeStartContainer = range.startContainer;\n\t\t\t\tpreviousText = previousText +\n\t\t\t\t\t$(emoticon).data('sceditor-emoticon');\n\n\t\t\t\t// Store current caret position\n\t\t\t\tif (rangeStartContainer === next) {\n\t\t\t\t\trangeStart = previousText.length + range.startOffset;\n\t\t\t\t} else if (rangeStartContainer === currentBlock &&\n\t\t\t\t\tcurrentBlock.childNodes[range.startOffset] === next) {\n\t\t\t\t\trangeStart = previousText.length;\n\t\t\t\t} else if (rangeStartContainer === prev) {\n\t\t\t\t\trangeStart = range.startOffset;\n\t\t\t\t}\n\n\t\t\t\tif (!next || next.nodeType !== 3) {\n\t\t\t\t\tnext = parent.insertBefore(\n\t\t\t\t\t\tparent.ownerDocument.createTextNode(''), next\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tnext.insertData(0, previousText);\n\t\t\t\tparent.removeChild(prev);\n\t\t\t\tparent.removeChild(emoticon);\n\n\t\t\t\t// Need to update the range starting\n\t\t\t\t// position if it has been modified\n\t\t\t\tif (rangeStart !== false) {\n\t\t\t\t\trange.setStart(next, rangeStart);\n\t\t\t\t\trange.collapse(true);\n\t\t\t\t\trangeHelper.selectRange(range);\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Gets if emoticons are currently enabled\n\t\t * @return {boolean}\n\t\t * @function\n\t\t * @name emoticons\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.2\n\t\t */\n\t\t/**\n\t\t * Enables/disables emoticons\n\t\t *\n\t\t * @param {boolean} enable\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name emoticons^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.2\n\t\t */\n\t\tbase.emoticons = function (enable) {\n\t\t\tif (!enable && enable !== false) {\n\t\t\t\treturn options.emoticonsEnabled;\n\t\t\t}\n\n\t\t\toptions.emoticonsEnabled = enable;\n\n\t\t\tif (enable) {\n\t\t\t\t$wysiwygBody.keypress(emoticonsKeyPress);\n\n\t\t\t\tif (!base.sourceMode()) {\n\t\t\t\t\trangeHelper.saveRange();\n\n\t\t\t\t\treplaceEmoticons($wysiwygBody[0]);\n\t\t\t\t\tcurrentEmoticons = $wysiwygBody\n\t\t\t\t\t\t.find('img[data-sceditor-emoticon]');\n\t\t\t\t\ttriggerValueChanged(false);\n\n\t\t\t\t\trangeHelper.restoreRange();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$wysiwygBody\n\t\t\t\t\t.find('img[data-sceditor-emoticon]')\n\t\t\t\t\t.replaceWith(function () {\n\t\t\t\t\t\treturn $(this).data('sceditor-emoticon');\n\t\t\t\t\t});\n\n\t\t\t\tcurrentEmoticons = [];\n\t\t\t\t$wysiwygBody.off('keypress', emoticonsKeyPress);\n\n\t\t\t\ttriggerValueChanged();\n\t\t\t}\n\n\t\t\treturn base;\n\t\t};\n\n\t\t/**\n\t\t * Gets the current WYSIWYG editors inline CSS\n\t\t *\n\t\t * @return {string}\n\t\t * @function\n\t\t * @name css\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.3\n\t\t */\n\t\t/**\n\t\t * Sets inline CSS for the WYSIWYG editor\n\t\t *\n\t\t * @param {string} css\n\t\t * @return {this}\n\t\t * @function\n\t\t * @name css^2\n\t\t * @memberOf jQuery.sceditor.prototype\n\t\t * @since 1.4.3\n\t\t */\n\t\tbase.css = function (css) {\n\t\t\tif (!inlineCss) {\n\t\t\t\tinlineCss = $('\\r\\n\\r\\n
\\r\\n\t
\\r\\n\t\t
\\r\\n\t\t\t提示\\r\\n\t\t\t×\\r\\n\t\t
\\r\\n\t\t
content
\\r\\n\t
\\r\\n\t
\\r\\n
\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/modal/modal.hbs\n// module id = 45\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars.runtime.js\n// module id = 46\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUNBQXVDLGdDQUFnQzs7OzsyQkFDOUMsZ0JBQWdCOzs7O29DQUNQLDBCQUEwQjs7Ozt5QkFDckMsY0FBYzs7OzswQkFDYixlQUFlOzs7OzZCQUNaLGtCQUFrQjs7OzsyQkFDcEIsZ0JBQWdCOzs7O0FBRWxDLFNBQVMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO0FBQy9DLHlDQUEyQixRQUFRLENBQUMsQ0FBQztBQUNyQywyQkFBYSxRQUFRLENBQUMsQ0FBQztBQUN2QixvQ0FBc0IsUUFBUSxDQUFDLENBQUM7QUFDaEMseUJBQVcsUUFBUSxDQUFDLENBQUM7QUFDckIsMEJBQVksUUFBUSxDQUFDLENBQUM7QUFDdEIsNkJBQWUsUUFBUSxDQUFDLENBQUM7QUFDekIsMkJBQWEsUUFBUSxDQUFDLENBQUM7Q0FDeEIiLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWdpc3RlckJsb2NrSGVscGVyTWlzc2luZyBmcm9tICcuL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcnO1xuaW1wb3J0IHJlZ2lzdGVyRWFjaCBmcm9tICcuL2hlbHBlcnMvZWFjaCc7XG5pbXBvcnQgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJJZiBmcm9tICcuL2hlbHBlcnMvaWYnO1xuaW1wb3J0IHJlZ2lzdGVyTG9nIGZyb20gJy4vaGVscGVycy9sb2cnO1xuaW1wb3J0IHJlZ2lzdGVyTG9va3VwIGZyb20gJy4vaGVscGVycy9sb29rdXAnO1xuaW1wb3J0IHJlZ2lzdGVyV2l0aCBmcm9tICcuL2hlbHBlcnMvd2l0aCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRIZWxwZXJzKGluc3RhbmNlKSB7XG4gIHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJFYWNoKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJIZWxwZXJNaXNzaW5nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJJZihpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyTG9nKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb29rdXAoaW5zdGFuY2UpO1xuICByZWdpc3RlcldpdGgoaW5zdGFuY2UpO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers.js\n// module id = 47\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBc0QsVUFBVTs7cUJBRWpELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQ3pCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdFLGVBQU8sR0FBRyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQztPQUN4Qjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGNyZWF0ZUZyYW1lLCBpc0FycmF5fSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdibG9ja0hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgbGV0IGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgICAgb3B0aW9ucyA9IHtkYXRhOiBkYXRhfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js\n// module id = 48\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else {\n var priorKey = undefined;\n\n for (var key in context) {\n if (context.hasOwnProperty(key)) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n }\n }\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQUErRSxVQUFVOzt5QkFDbkUsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksQ0FBQyxPQUFPLEVBQUU7QUFDWixZQUFNLDJCQUFjLDZCQUE2QixDQUFDLENBQUM7S0FDcEQ7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7UUFDZixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDekIsQ0FBQyxHQUFHLENBQUM7UUFDTCxHQUFHLEdBQUcsRUFBRTtRQUNSLElBQUksWUFBQTtRQUNKLFdBQVcsWUFBQSxDQUFDOztBQUVoQixRQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixpQkFBVyxHQUFHLHlCQUFrQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pGOztBQUVELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsVUFBSSxHQUFHLG1CQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQzs7QUFFRCxhQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN6QyxVQUFJLElBQUksRUFBRTtBQUNSLFlBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQ2pCLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ25CLFlBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztBQUN6QixZQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7O0FBRW5CLFlBQUksV0FBVyxFQUFFO0FBQ2YsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3hDO09BQ0Y7O0FBRUQsU0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzdCLFlBQUksRUFBRSxJQUFJO0FBQ1YsbUJBQVcsRUFBRSxtQkFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDL0UsQ0FBQyxDQUFDO0tBQ0o7O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNO0FBQ0wsWUFBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixhQUFLLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtBQUN2QixjQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7QUFJL0IsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0w7U0FDRjtBQUNELFlBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQix1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3RDO09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXBwZW5kQ29udGV4dFBhdGgsIGJsb2NrUGFyYW1zLCBjcmVhdGVGcmFtZSwgaXNBcnJheSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dFBhdGg7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5pZHNbMF0pICsgJy4nO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7IGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7IH1cblxuICAgIGlmIChvcHRpb25zLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dFtmaWVsZF0sIGZpZWxkXSwgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQgJiYgdHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBpZiAoaSBpbiBjb250ZXh0KSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgZm9yIChsZXQga2V5IGluIGNvbnRleHQpIHtcbiAgICAgICAgICBpZiAoY29udGV4dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBXZSdyZSBydW5uaW5nIHRoZSBpdGVyYXRpb25zIG9uZSBzdGVwIG91dCBvZiBzeW5jIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgICBpZiAocHJpb3JLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmlvcktleSA9IGtleTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js\n// module id = 49\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFBYyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDdkY7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js\n// module id = 50\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBa0MsVUFBVTs7cUJBRTdCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLGtCQUFXLFdBQVcsQ0FBQyxFQUFFO0FBQUUsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUU7Ozs7O0FBS3RFLFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFdBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQztHQUN2SCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJpZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNFbXB0eSwgaXNGdW5jdGlvbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignaWYnLCBmdW5jdGlvbihjb25kaXRpb25hbCwgb3B0aW9ucykge1xuICAgIGlmIChpc0Z1bmN0aW9uKGNvbmRpdGlvbmFsKSkgeyBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7IH1cblxuICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcmVuZGVyIHRoZSBwb3NpdGl2ZSBwYXRoIGlmIHRoZSB2YWx1ZSBpcyB0cnV0aHkgYW5kIG5vdCBlbXB0eS5cbiAgICAvLyBUaGUgYGluY2x1ZGVaZXJvYCBvcHRpb24gbWF5IGJlIHNldCB0byB0cmVhdCB0aGUgY29uZHRpb25hbCBhcyBwdXJlbHkgbm90IGVtcHR5IGJhc2VkIG9uIHRoZVxuICAgIC8vIGJlaGF2aW9yIG9mIGlzRW1wdHkuIEVmZmVjdGl2ZWx5IHRoaXMgZGV0ZXJtaW5lcyBpZiAwIGlzIGhhbmRsZWQgYnkgdGhlIHBvc2l0aXZlIHBhdGggb3IgbmVnYXRpdmUuXG4gICAgaWYgKCghb3B0aW9ucy5oYXNoLmluY2x1ZGVaZXJvICYmICFjb25kaXRpb25hbCkgfHwgaXNFbXB0eShjb25kaXRpb25hbCkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZuKHRoaXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3VubGVzcycsIGZ1bmN0aW9uKGNvbmRpdGlvbmFsLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnNbJ2lmJ10uY2FsbCh0aGlzLCBjb25kaXRpb25hbCwge2ZuOiBvcHRpb25zLmludmVyc2UsIGludmVyc2U6IG9wdGlvbnMuZm4sIGhhc2g6IG9wdGlvbnMuaGFzaH0pO1xuICB9KTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js\n// module id = 51\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVMsSUFBSSxDQUFDLENBQUM7R0FDeEIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIGxldCBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZyguLi4gYXJncyk7XG4gIH0pO1xufVxuIl19\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js\n// module id = 52\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field) {\n return obj && obj[field];\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQ3JELFdBQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUMxQixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJsb29rdXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignbG9va3VwJywgZnVuY3Rpb24ob2JqLCBmaWVsZCkge1xuICAgIHJldHVybiBvYmogJiYgb2JqW2ZpZWxkXTtcbiAgfSk7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUErRSxVQUFVOztxQkFFMUUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3pELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFBRSxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUFFOztBQUUxRCxRQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVwQixRQUFJLENBQUMsZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNyQixVQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3hCLFVBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQy9CLFlBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO09BQ2hGOztBQUVELGFBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtBQUNqQixZQUFJLEVBQUUsSUFBSTtBQUNWLG1CQUFXLEVBQUUsbUJBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7T0FDaEUsQ0FBQyxDQUFDO0tBQ0osTUFBTTtBQUNMLGFBQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QjtHQUNGLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6IndpdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FwcGVuZENvbnRleHRQYXRoLCBibG9ja1BhcmFtcywgY3JlYXRlRnJhbWUsIGlzRW1wdHksIGlzRnVuY3Rpb259IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHsgY29udGV4dCA9IGNvbnRleHQuY2FsbCh0aGlzKTsgfVxuXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghaXNFbXB0eShjb250ZXh0KSkge1xuICAgICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhbY29udGV4dF0sIFtkYXRhICYmIGRhdGEuY29udGV4dFBhdGhdKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js\n// module id = 54\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG5cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/decorators.js\n// module id = 55\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXFCLFVBQVU7O3FCQUVoQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVyRGVjb3JhdG9yKCdpbmxpbmUnLCBmdW5jdGlvbihmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIGxldCByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcGFydGlhbHMgc3RhY2sgZnJhbWUgcHJpb3IgdG8gZXhlYy5cbiAgICAgICAgbGV0IG9yaWdpbmFsID0gY29udGFpbmVyLnBhcnRpYWxzO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBleHRlbmQoe30sIG9yaWdpbmFsLCBwcm9wcy5wYXJ0aWFscyk7XG4gICAgICAgIGxldCByZXQgPSBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3JpZ2luYWw7XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHByb3BzLnBhcnRpYWxzW29wdGlvbnMuYXJnc1swXV0gPSBvcHRpb25zLmZuO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n if (!console[method]) {\n // eslint-disable-line no-console\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFzQixTQUFTOztBQUUvQixJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEVBQUU7QUFDL0UsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQyxVQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOztBQUNwQixjQUFNLEdBQUcsS0FBSyxDQUFDO09BQ2hCOzt3Q0FQbUIsT0FBTztBQUFQLGVBQU87OztBQVEzQixhQUFPLENBQUMsTUFBTSxPQUFDLENBQWYsT0FBTyxFQUFZLE9BQU8sQ0FBQyxDQUFDO0tBQzdCO0dBQ0Y7Q0FDRixDQUFDOztxQkFFYSxNQUFNIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5kZXhPZn0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWwpIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIGlmICghY29uc29sZVttZXRob2RdKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/logger.js\n// module id = 57\n// module chunks = 0","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/safe-string.js\n// module id = 58\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var result = env.VM.invokePartial.call(this, partial, context, options);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, options);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name) {\n if (!(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj);\n }\n return obj[name];\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n if (depths[i] && depths[i][name] != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n merge: function merge(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n container.helpers = container.merge(options.helpers, env.helpers);\n\n if (templateSpec.usePartial) {\n container.partials = container.merge(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = container.merge(options.decorators, env.decorators);\n }\n } else {\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBQzhCLFFBQVE7O0FBRWxFLFNBQVMsYUFBYSxDQUFDLFlBQVksRUFBRTtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN2RCxlQUFlLDBCQUFvQixDQUFDOztBQUUxQyxNQUFJLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUN4QyxRQUFJLGdCQUFnQixHQUFHLGVBQWUsRUFBRTtBQUN0QyxVQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1VBQ25ELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVELFlBQU0sMkJBQWMseUZBQXlGLEdBQ3ZHLHFEQUFxRCxHQUFHLGVBQWUsR0FBRyxtREFBbUQsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoSyxNQUFNOztBQUVMLFlBQU0sMkJBQWMsd0ZBQXdGLEdBQ3RHLGlEQUFpRCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNuRjtHQUNGO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcs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QUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUYsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHsgQ09NUElMRVJfUkVWSVNJT04sIFJFVklTSU9OX0NIQU5HRVMsIGNyZWF0ZUZyYW1lIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChjb21waWxlclJldmlzaW9uICE9PSBjdXJyZW50UmV2aXNpb24pIHtcbiAgICBpZiAoY29tcGlsZXJSZXZpc2lvbiA8IGN1cnJlbnRSZXZpc2lvbikge1xuICAgICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcHJlY29tcGlsZXIgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgcnVudGltZVZlcnNpb25zICsgJykgb3IgZG93bmdyYWRlIHlvdXIgcnVudGltZSB0byBhbiBvbGRlciB2ZXJzaW9uICgnICsgY29tcGlsZXJWZXJzaW9ucyArICcpLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICsgY29tcGlsZXJJbmZvWzFdICsgJykuJyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZSh0ZW1wbGF0ZVNwZWMsIGVudikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWVudikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdGVtcGxhdGUgb2JqZWN0OiAnICsgdHlwZW9mIHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICB0ZW1wbGF0ZVNwZWMubWFpbi5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWMubWFpbl9kO1xuXG4gIC8vIE5vdGU6IFVzaW5nIGVudi5WTSByZWZlcmVuY2VzIHJhdGhlciB0aGFuIGxvY2FsIHZhciByZWZlcmVuY2VzIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIHRvIGFsbG93XG4gIC8vIGZvciBleHRlcm5hbCB1c2VycyB0byBvdmVycmlkZSB0aGVzZSBhcyBwc3VlZG8tc3VwcG9ydGVkIEFQSXMuXG4gIGVudi5WTS5jaGVja1JldmlzaW9uKHRlbXBsYXRlU3BlYy5jb21waWxlcik7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBlbnYuY29tcGlsZSkge1xuICAgICAgb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdID0gZW52LmNvbXBpbGUocGFydGlhbCwgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucywgZW52KTtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXShjb250ZXh0LCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUaGUgcGFydGlhbCAnICsgb3B0aW9ucy5uYW1lICsgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSnVzdCBhZGQgd2F0ZXJcbiAgbGV0IGNvbnRhaW5lciA9IHtcbiAgICBzdHJpY3Q6IGZ1bmN0aW9uKG9iaiwgbmFtZSkge1xuICAgICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqW25hbWVdO1xuICAgIH0sXG4gICAgbG9va3VwOiBmdW5jdGlvbihkZXB0aHMsIG5hbWUpIHtcbiAgICAgIGNvbnN0IGxlbiA9IGRlcHRocy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGlmIChkZXB0aHNbaV0gJiYgZGVwdGhzW2ldW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2U6IGZ1bmN0aW9uKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIGxldCBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgKHBhcmFtICE9PSBjb21tb24pKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0LyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuICcnICsgdGVtcGxhdGVTcGVjLm1haW4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICB9XG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0LmlzVG9wID0gdHJ1ZTtcblxuICByZXQuX3NldHVwID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLmhlbHBlcnMsIGVudi5oZWxwZXJzKTtcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZShvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gY29udGFpbmVyLm1lcmdlKG9wdGlvbnMuZGVjb3JhdG9ycywgZW52LmRlY29yYXRvcnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIGZuLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKGRlcHRocyAmJiBjb250ZXh0ICE9IGRlcHRoc1swXSAmJiAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihjb250YWluZXIsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLCBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtcyAmJiBbb3B0aW9ucy5ibG9ja1BhcmFtc10uY29uY2F0KGJsb2NrUGFyYW1zKSxcbiAgICAgICAgY3VycmVudERlcHRocyk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuXG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IHJldHVybiAnJzsgfVxuXG5mdW5jdGlvbiBpbml0RGF0YShjb250ZXh0LCBkYXRhKSB7XG4gIGlmICghZGF0YSB8fCAhKCdyb290JyBpbiBkYXRhKSkge1xuICAgIGRhdGEgPSBkYXRhID8gY3JlYXRlRnJhbWUoZGF0YSkgOiB7fTtcbiAgICBkYXRhLnJvb3QgPSBjb250ZXh0O1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKSB7XG4gIGlmIChmbi5kZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvcHMgPSB7fTtcbiAgICBwcm9nID0gZm4uZGVjb3JhdG9yKHByb2csIHByb3BzLCBjb250YWluZXIsIGRlcHRocyAmJiBkZXB0aHNbMF0sIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG4iXX0=\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/runtime.js\n// module id = 59\n// module chunks = 0","/* global window */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOztBQUVsQyxNQUFJLElBQUksR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEdBQUcsTUFBTSxHQUFHLE1BQU07TUFDdEQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7O0FBRWxDLFlBQVUsQ0FBQyxVQUFVLEdBQUcsWUFBVztBQUNqQyxRQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO0FBQ2xDLFVBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQy9CO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIHdpbmRvdyAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oSGFuZGxlYmFycykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBsZXQgcm9vdCA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93LFxuICAgICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /usr/local/lib/node_modules/latte/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js\n// module id = 60\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 61\n// module chunks = 0","var Handlebars = require(\"/usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"\\r\\n\\r\\n\\r\\n
\\r\\n\t
\\r\\n\t\t\\r\\n\t\t×\\r\\n\t\t
\\r\\n\t\t
发布成功!
\\r\\n\t
\\r\\n\t
\\r\\n
\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/modal/sendOk.hbs\n// module id = 62\n// module chunks = 0","var Handlebars = require(\"/usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
\\r\\n\t
股票代码:
\\r\\n\t
  • 分时
  • 日K
  • 周K
  • 月K
\\r\\n\t
\\r\\n\t
注:为提高实战参考价值,以上图片动态行情实时生产,便于观测该股最新表现。
\\r\\n
\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/insert_stock_img/insert_stock_img.hbs\n// module id = 63\n// module chunks = 0","var helper = require(\"../modules/helper/helper\")\r\nvar faceDialog = require(\"../modules/face_dialog/face_dialog\")\r\n\r\n/**\r\n * 编辑器 插入图片\r\n */\r\n$.sceditor.command.set(\"face\", {\r\n exec: function (target) {\r\n // this.focus()\r\n faceDialog.show(target,this)\r\n \r\n // console.log(\"face\")\r\n // var _this = this;\r\n // // choose_img({\r\n // // zw_img:false\r\n // // }, function (img_url) {\r\n // // _this.insert('\"\"');\r\n // // });\r\n // new choose_mutilImg({}, function (imgArr) {\r\n // // console.log(imgArr)\r\n // var html = [];\r\n // for (var i = 0; i < imgArr.length; i++) {\r\n // html.push('\"\"')\r\n // }\r\n // console.log(html)\r\n // _this.insert(html.join(''));\r\n // })\r\n //this.insert(\"a\");\r\n },\r\n txtExec: function () {\r\n //this.insert(\"a\");\r\n },\r\n tooltip: \"插入表情\"\r\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/command/face.js\n// module id = 64\n// module chunks = 0","/**\r\n * 编辑器 表情图\r\n */\r\nvar hbs = require('./face_dialog.hbs')\r\nvar defaultFaceConfig = require('./face_config')\r\nvar faceConfig = null\r\nvar helper = require('./../helper/helper')\r\nvar publish = require('./../publish/publish')\r\n\r\nvar htmlObj = null\r\nvar hasShow = false\r\nfunction init(btn,editor){\r\n var html = hbs({config:faceConfig})\r\n htmlObj = $(html)\r\n $(btn).parent().append(htmlObj)\r\n var that = this\r\n\r\n $('body').click(function(e){\r\n var target = $(e.target)\r\n if(target.parents('#insert_face').size()>0){\r\n\r\n }else{\r\n hide()\r\n }\r\n // console.log(e.target)\r\n })\r\n\r\n $(\"#tab_face\").click()\r\n\r\n helper.editor.editorObj.getBody().on('click',function(){\r\n hide()\r\n })\r\n \r\n // console.log(faceConfig)\r\n setTimeout(function(){\r\n $.Huitab(\"#tab_face .tabBar div\",\"#tab_face .tabContent\",\"current\",\"click\",\"0\");\r\n // #tab_demo 父级id\r\n // #tab_demo .tabBar span 控制条\r\n // #tab_demo .tabCon 内容区\r\n // click 事件 点击切换,可以换成mousemove 移动鼠标切换\r\n // 1\t默认第2个tab为当前状态(从0开始)\r\n //绑定表情点击\r\n $(\"#insert_face .face_div\").click(function(){\r\n var imgObj = $(this).find(\"img\")\r\n var src = imgObj.attr(\"src\")\r\n var title = imgObj.attr(\"title\")\r\n var curTab = $('#tab_face .tabBar .current').index()\r\n // var imgClass = \"face\"\r\n if(!helper.browser.isIE()){\r\n editor.getBody().trigger(\"focus\")\r\n }else{\r\n }\r\n \r\n setTimeout(function(){\r\n if(helper.browser.isIE()){\r\n editor.getBody().trigger(\"focus\")\r\n }\r\n if(curTab>0){\r\n // editor.insert('
')\r\n editor.insert('\"'+title+'\"')\r\n // editor.insert('
')\r\n setTimeout(function(){\r\n helper.editor.updateToMaxHeight() //只要插入大表情,统一到最大\r\n },100)\r\n }else{\r\n if($.browser.mozilla&&publish.contentIsEmpty()){\r\n editor.insert('

\"'+title+'\"

')\r\n }else{\r\n editor.insert('\"'+title+'\"')\r\n }\r\n // editor.insert('\"'+title+'\"')\r\n } \r\n },50)\r\n \r\n // console.log(curTab)\r\n //\"微笑\"\r\n \r\n setTimeout(function(){\r\n hide()\r\n },10)\r\n })\r\n\r\n $(\"#insert_face #btn_close\").click(function(){\r\n hide()\r\n })\r\n },0)\r\n\r\n htmlObj = $(\"#insert_face\")\r\n}\r\n\r\nfunction mergeFaceConfig(config){\r\n var len = config.face.length\r\n for(var i=0;i\"\n + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"\t\t\t
\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.list : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t
\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.helperMissing, alias5=\"function\";\n\n return \"\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\\\"\"\n\\r\\n\t\t\t\t\t
\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"
\\r\\n\t
\\r\\n\t
×
\\r\\n\t
\\r\\n\t\t
\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.config : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t
\\r\\n\t\t
\\r\\n\t\t
\\r\\n\"\n + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.config : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(3, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t
\\r\\n\t
\\r\\n
\\r\\n\\r\\n\";\n},\"useData\":true,\"useDepths\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/face_dialog/face_dialog.hbs\n// module id = 66\n// module chunks = 0","module.exports = [\r\n {\r\n name:\"default\",\r\n title:\"默认表情\",\r\n size:30,\r\n list:[\r\n {\r\n title:'微笑',\r\n src:'https://gbres.dfcfw.com/face/emot/emot01.png'\r\n },\r\n {\r\n title:'大笑',\r\n src:'https://gbres.dfcfw.com/face/emot/emot02.png'\r\n },\r\n {\r\n title:'鼓掌',\r\n src:'https://gbres.dfcfw.com/face/emot/emot03.png'\r\n },\r\n // {\r\n // title:'不说了',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot04.png'\r\n // },\r\n {\r\n title:'为什么',\r\n src:'https://gbres.dfcfw.com/face/emot/emot05.png'\r\n },\r\n {\r\n title:'哭',\r\n src:'https://gbres.dfcfw.com/face/emot/emot06.png'\r\n },\r\n // {\r\n // title:'不屑',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot07.png'\r\n // },\r\n {\r\n title:'怒',\r\n src:'https://gbres.dfcfw.com/face/emot/emot08.png'\r\n },\r\n {\r\n title:'滴汗',\r\n src:'https://gbres.dfcfw.com/face/emot/emot09.png'\r\n },\r\n {\r\n title:'拜神',\r\n src:'https://gbres.dfcfw.com/face/emot/emot10.png'\r\n },\r\n {\r\n title:'胜利',\r\n src:'https://gbres.dfcfw.com/face/emot/emot11.png'\r\n },\r\n {\r\n title:'亏大了',\r\n src:'https://gbres.dfcfw.com/face/emot/emot12.png'\r\n },\r\n {\r\n title:'赚大了',\r\n src:'https://gbres.dfcfw.com/face/emot/emot13.png'\r\n },\r\n {\r\n title:'牛',\r\n src:'https://gbres.dfcfw.com/face/emot/emot14.png'\r\n },\r\n {\r\n title:'俏皮',\r\n src:'https://gbres.dfcfw.com/face/emot/emot15.png'\r\n },\r\n {\r\n title:'傲',\r\n src:'https://gbres.dfcfw.com/face/emot/emot16.png'\r\n },\r\n {\r\n title:'好困惑',\r\n src:'https://gbres.dfcfw.com/face/emot/emot17.png'\r\n },\r\n {\r\n title:'兴奋',\r\n src:'https://gbres.dfcfw.com/face/emot/emot18.png'\r\n },\r\n {\r\n title:'赞',\r\n src:'https://gbres.dfcfw.com/face/emot/emot19.png'\r\n },\r\n // {\r\n // title:'不赞',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot20.png'\r\n // },\r\n {\r\n title:'摊手',\r\n src:'https://gbres.dfcfw.com/face/emot/emot21.png'\r\n },\r\n // {\r\n // title:'好逊',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot22.png'\r\n // },\r\n // {\r\n // title:'失望',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot23.png'\r\n // },\r\n {\r\n title:'加油',\r\n src:'https://gbres.dfcfw.com/face/emot/emot24.png'\r\n },\r\n {\r\n title:'困顿',\r\n src:'https://gbres.dfcfw.com/face/emot/emot25.png'\r\n },\r\n {\r\n title:'想一下',\r\n src:'https://gbres.dfcfw.com/face/emot/emot26.png'\r\n },\r\n {\r\n title:'围观',\r\n src:'https://gbres.dfcfw.com/face/emot/emot27.png'\r\n },\r\n {\r\n title:'献花',\r\n src:'https://gbres.dfcfw.com/face/emot/emot28.png'\r\n },\r\n // {\r\n // title:'大便',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot29.png'\r\n // },\r\n {\r\n title:'爱心',\r\n src:'https://gbres.dfcfw.com/face/emot/emot30.png'\r\n },\r\n // {\r\n // title:'心碎',\r\n // src:'https://gbres.dfcfw.com/face/emot/emot31.png'\r\n // },\r\n {\r\n title:'毛估估',\r\n src:'https://gbres.dfcfw.com/face/emot/emot32.png'\r\n },\r\n {\r\n title:'成交',\r\n src:'https://gbres.dfcfw.com/face/emot/emot33.png'\r\n },\r\n {\r\n title:'财力',\r\n src:'https://gbres.dfcfw.com/face/emot/emot34.png'\r\n },\r\n {\r\n title:'护城河',\r\n src:'https://gbres.dfcfw.com/face/emot/emot35.png'\r\n },\r\n {\r\n title:'复盘',\r\n src:'https://gbres.dfcfw.com/face/emot/emot36.png'\r\n },\r\n {\r\n title:'买入',\r\n src:'https://gbres.dfcfw.com/face/emot/emot37.png'\r\n },\r\n {\r\n title:'卖出',\r\n src:'https://gbres.dfcfw.com/face/emot/emot38.png'\r\n },\r\n {\r\n title:'满仓',\r\n src:'https://gbres.dfcfw.com/face/emot/emot39.png'\r\n },\r\n {\r\n title:'空仓',\r\n src:'https://gbres.dfcfw.com/face/emot/emot40.png'\r\n },\r\n {\r\n title:'抄底',\r\n src:'https://gbres.dfcfw.com/face/emot/emot41.png'\r\n },\r\n {\r\n title:'看多',\r\n src:'https://gbres.dfcfw.com/face/emot/emot42.png'\r\n },\r\n {\r\n title:'看空',\r\n src:'https://gbres.dfcfw.com/face/emot/emot43.png'\r\n },\r\n {\r\n title:'加仓',\r\n src:'https://gbres.dfcfw.com/face/emot/emot44.png'\r\n },\r\n {\r\n title:'减仓',\r\n src:'https://gbres.dfcfw.com/face/emot/emot45.png'\r\n }\r\n ]\r\n }\r\n // {\r\n // name:\"财经小牛\",\r\n // size:50,\r\n // list:[\r\n // {\r\n // title:\"是底部?\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb01.png\"\r\n // },\r\n // {\r\n // title:\"被套牢\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb02.png\"\r\n // },\r\n // {\r\n // title:\"宝宝委屈\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb03.png\"\r\n // },\r\n // {\r\n // title:\"开盘啦\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb04.png\"\r\n // },\r\n // {\r\n // title:\"感觉身体被掏空\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb05.png\"\r\n // },\r\n // {\r\n // title:\"求内幕\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb06.png\"\r\n // },\r\n // {\r\n // title:\"哟吼!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb07.png\"\r\n // },\r\n // {\r\n // title:\"求个牛股\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb08.png\"\r\n // },\r\n // {\r\n // title:\"涨疯了!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb09.png\"\r\n // },\r\n // {\r\n // title:\"散户必胜!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb10.png\"\r\n // },\r\n // {\r\n // title:\"接盘侠!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb11.png\"\r\n // },\r\n // {\r\n // title:\"NO\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb12.png\"\r\n // },\r\n // {\r\n // title:\"发财啦\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb13.png\"\r\n // },\r\n // {\r\n // title:\"思考?\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb14.png\"\r\n // },\r\n // {\r\n // title:\"生气\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb15.png\"\r\n // },\r\n // {\r\n // title:\"买买买\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_nzb/nzb16.png\"\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // name:\"菜刀豆\",\r\n // size:50,\r\n // list:[\r\n // {\r\n // title:\"发财啦!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd01.png\"\r\n // },\r\n // {\r\n // title:\"耶!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd02.png\"\r\n // },\r\n // {\r\n // title:\"生气!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd03.png\"\r\n // },\r\n // {\r\n // title:\"牛!\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd04.png\"\r\n // },\r\n // {\r\n // title:\"不明白?\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd05.png\"\r\n // },\r\n // {\r\n // title:\"呵呵\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd06.png\"\r\n // },\r\n // {\r\n // title:\"抠鼻\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd07.png\"\r\n // },\r\n // {\r\n // title:\"亲亲\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd08.png\"\r\n // },\r\n // {\r\n // title:\"发懵\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd09.png\"\r\n // },\r\n // {\r\n // title:\"嘻嘻\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd10.png\"\r\n // },\r\n // {\r\n // title:\"吐血\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd11.png\"\r\n // },\r\n // {\r\n // title:\"大哭\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd12.png\"\r\n // },\r\n // {\r\n // title:\"鄙视\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd13.png\"\r\n // },\r\n // {\r\n // title:\"害羞\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd14.png\"\r\n // },\r\n // {\r\n // title:\"俏皮\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd15.png\"\r\n // },\r\n // {\r\n // title:\"震惊\",\r\n // src:\"https://gbfek.dfcfw.com/face/emot_cdd/cdd16.png\"\r\n // }\r\n // ]\r\n // }\r\n]\r\n\r\n\r\n// '微笑':'https://gbres.dfcfw.com/face/emot/emot01.png',\r\n// '大笑':'https://gbres.dfcfw.com/face/emot/emot02.png',\r\n// '鼓掌':'https://gbres.dfcfw.com/face/emot/emot03.png',\r\n// '不说了':'https://gbres.dfcfw.com/face/emot/emot04.png',\r\n// '为什么':'https://gbres.dfcfw.com/face/emot/emot05.png',\r\n// '哭':'https://gbres.dfcfw.com/face/emot/emot06.png',\r\n// '不屑':'https://gbres.dfcfw.com/face/emot/emot07.png',\r\n// '怒':'https://gbres.dfcfw.com/face/emot/emot08.png',\r\n// '滴汗':'https://gbres.dfcfw.com/face/emot/emot09.png',\r\n// '拜神':'https://gbres.dfcfw.com/face/emot/emot10.png',\r\n// '胜利':'https://gbres.dfcfw.com/face/emot/emot11.png',\r\n// '亏大了':'https://gbres.dfcfw.com/face/emot/emot12.png',\r\n// '赚大了':'https://gbres.dfcfw.com/face/emot/emot13.png',\r\n// '牛':'https://gbres.dfcfw.com/face/emot/emot14.png',\r\n// '俏皮':'https://gbres.dfcfw.com/face/emot/emot15.png',\r\n// '傲':'https://gbres.dfcfw.com/face/emot/emot16.png',\r\n// '好困惑':'https://gbres.dfcfw.com/face/emot/emot17.png',\r\n// '兴奋':'https://gbres.dfcfw.com/face/emot/emot18.png',\r\n// '赞':'https://gbres.dfcfw.com/face/emot/emot19.png',\r\n// '不赞':'https://gbres.dfcfw.com/face/emot/emot20.png',\r\n// '摊手':'https://gbres.dfcfw.com/face/emot/emot21.png',\r\n// '好逊':'https://gbres.dfcfw.com/face/emot/emot22.png',\r\n// '失望':'https://gbres.dfcfw.com/face/emot/emot23.png',\r\n// '加油':'https://gbres.dfcfw.com/face/emot/emot24.png',\r\n// '困顿':'https://gbres.dfcfw.com/face/emot/emot25.png',\r\n// '想一下':'https://gbres.dfcfw.com/face/emot/emot26.png',\r\n// '围观':'https://gbres.dfcfw.com/face/emot/emot27.png',\r\n// '献花':'https://gbres.dfcfw.com/face/emot/emot28.png',\r\n// '大便':'https://gbres.dfcfw.com/face/emot/emot29.png',\r\n// '爱心':'https://gbres.dfcfw.com/face/emot/emot30.png',\r\n// '心碎':'https://gbres.dfcfw.com/face/emot/emot31.png',\r\n// '毛估估':'https://gbres.dfcfw.com/face/emot/emot32.png',\r\n// '成交':'https://gbres.dfcfw.com/face/emot/emot33.png',\r\n// '财力':'https://gbres.dfcfw.com/face/emot/emot34.png',\r\n// '护城河':'https://gbres.dfcfw.com/face/emot/emot35.png',\r\n// '复盘':'https://gbres.dfcfw.com/face/emot/emot36.png',\r\n// '买入':'https://gbres.dfcfw.com/face/emot/emot37.png',\r\n// '卖出':'https://gbres.dfcfw.com/face/emot/emot38.png',\r\n// '满仓':'https://gbres.dfcfw.com/face/emot/emot39.png',\r\n// '空仓':'https://gbres.dfcfw.com/face/emot/emot40.png',\r\n// '抄底':'https://gbres.dfcfw.com/face/emot/emot41.png',\r\n// '看多':'https://gbres.dfcfw.com/face/emot/emot42.png',\r\n// '看空':'https://gbres.dfcfw.com/face/emot/emot43.png',\r\n// '加仓':'https://gbres.dfcfw.com/face/emot/emot44.png',\r\n// '减仓':'https://gbres.dfcfw.com/face/emot/emot45.png'\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/face_dialog/face_config.js\n// module id = 67\n// module chunks = 0","var Handlebars = require(\"/usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
您正在输入的内容已自动保存
\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/draft/draft.hbs\n// module id = 68\n// module chunks = 0","var Handlebars = require(\"/usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\\r\\n
0/\"\n + alias4(((helper = (helper = helpers.maxTitle || (depth0 != null ? depth0.maxTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"maxTitle\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/title/title.hbs\n// module id = 69\n// module chunks = 0","module.exports = function(){\r\n if('placeholder' in document.createElement('input')){\r\n return;\r\n }\r\n $('input[type=\"text\"]').each(function(){\r\n var placeholder = $(this).attr('placeholder');\r\n if(placeholder){\r\n $(this).attr('value',placeholder);\r\n $(this).focus(function(){\r\n if($(this).val() === placeholder){\r\n $(this).val(' ');\r\n }\r\n })\r\n\r\n $(this).blur(function(){\r\n if($(this).val() === ' '){\r\n $(this).val(placeholder);\r\n }\r\n })\r\n }\r\n\r\n })\r\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/placeholder/index.js\n// module id = 70\n// module chunks = 0","var net = require('./net')\r\nvar lastContentLength = 0\r\nvar lastContentText = \"\"\r\nvar FILTER_DIFF_LEN=100\r\nmodule.exports = {\r\n public_before_filter:function(editorObj){\r\n lastContentText = editorObj.getContent()\r\n lastContentLength = lastContentText.length\r\n },\r\n public_afater_filter:function(editorObj){\r\n try{\r\n var nowText = editorObj.getContent()\r\n var nowLen = nowText.length\r\n // console.log(lastContentLength,nowLen)\r\n if(nowLenFILTER_DIFF_LEN){\r\n var uid=\"\"\r\n if(typeof(user)!=\"undefined\" && user.id){\r\n uid = user.id\r\n }\r\n var paramObj = {\r\n uid:uid,\r\n before:encodeURIComponent(lastContentText),\r\n after:encodeURIComponent(nowText),\r\n tag:\"publish_filter\"\r\n }\r\n net.ajax('/interface/GetText.aspx',paramObj)\r\n }\r\n }catch(e){\r\n console.log(e)\r\n }\r\n\r\n\r\n lastContentText=\"\"\r\n lastContentLength=0\r\n }\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/helper/log.js\n// module id = 72\n// module chunks = 0","$.sceditor.command.set(\"clear\", {\r\n exec: function () {\r\n var range = this.getBody().createRange()\r\n var sec1 = this.getBody()[0]\r\n range.selectNode(sec1)\r\n \r\n this.getRangeHelper().clear()\r\n },\r\n txtExec: function () {\r\n },\r\n tooltip: \"颜色\"\r\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/command/clear.js\n// module id = 73\n// module chunks = 0","//全屏\r\nvar fullscreen = require(\"../modules/fullscreen/fullscreen\")\r\n$.sceditor.command.set(\"fullscreen\", {\r\n exec: function() {\r\n \tvar that = this\r\n \tfullscreen.show(this)\r\n\r\n },\r\n txtExec: function() {\r\n },\r\n tooltip: \"全屏\"\r\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/command/fullscreen.js\n// module id = 74\n// module chunks = 0","//插入h2\r\n$.sceditor.command.set(\"horizontalrule\", {\r\n exec: function() {\r\n // this is set to the editor instance\r\n this.insert('
');\r\n var _this = this\r\n setTimeout(function(){\r\n \t_this.expandToContent()\r\n })\r\n },\r\n txtExec: function() {\r\n // this is set to the editor instance\r\n // this.insert('a');\r\n },\r\n tooltip: \"分割线\"\r\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/command/horizontalrule.js\n// module id = 75\n// module chunks = 0","var Handlebars = require(\"/usr/local/lib/node_modules/latte/node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"\n + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n + \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\";\n},\"useData\":true});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/xeditor.hbs\n// module id = 76\n// module chunks = 0"],"sourceRoot":""}