{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///external {\"root\":\"jQuery\",\"commonjs2\":\"jquery\",\"commonjs\":\"jquery\",\"amd\":\"jquery\"}","webpack:///./src/js/base/renderer.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/js/base/summernote-en-US.js","webpack:///./src/js/base/core/env.js","webpack:///./src/js/base/core/func.js","webpack:///./src/js/base/core/lists.js","webpack:///./src/js/base/core/dom.js","webpack:///./src/js/base/Context.js","webpack:///./src/js/summernote.js","webpack:///./src/js/base/core/range.js","webpack:///./src/js/base/core/key.js","webpack:///./src/js/base/core/async.js","webpack:///./src/js/base/editing/History.js","webpack:///./src/js/base/editing/Style.js","webpack:///./src/js/base/editing/Bullet.js","webpack:///./src/js/base/editing/Typing.js","webpack:///./src/js/base/editing/Table.js","webpack:///./src/js/base/module/Editor.js","webpack:///./src/js/base/module/Clipboard.js","webpack:///./src/js/base/module/Dropzone.js","webpack:///./src/js/base/module/Codeview.js","webpack:///./src/js/base/module/Statusbar.js","webpack:///./src/js/base/module/Fullscreen.js","webpack:///./src/js/base/module/Handle.js","webpack:///./src/js/base/module/AutoLink.js","webpack:///./src/js/base/module/AutoSync.js","webpack:///./src/js/base/module/AutoReplace.js","webpack:///./src/js/base/module/Placeholder.js","webpack:///./src/js/base/module/Buttons.js","webpack:///./src/js/base/module/Toolbar.js","webpack:///./src/js/base/module/LinkDialog.js","webpack:///./src/js/base/module/LinkPopover.js","webpack:///./src/js/base/module/ImageDialog.js","webpack:///./src/js/base/module/ImagePopover.js","webpack:///./src/js/base/module/TablePopover.js","webpack:///./src/js/base/module/VideoDialog.js","webpack:///./src/js/base/module/HelpDialog.js","webpack:///./src/js/base/module/AirPopover.js","webpack:///./src/js/base/module/HintPopover.js","webpack:///./src/js/base/settings.js","webpack:///./src/js/lite/ui/TooltipUI.js","webpack:///./src/js/lite/ui/DropdownUI.js","webpack:///./src/js/lite/ui/ModalUI.js","webpack:///./src/js/lite/ui.js","webpack:///./src/js/lite/settings.js","webpack:///./src/styles/summernote-lite.scss"],"names":["Renderer","markup","children","options","callback","$parent","$node","$","contents","html","className","addClass","data","each","k","v","attr","click","on","$container","find","forEach","child","render","length","append","create","arguments","Array","isArray","summernote","lang","extend","font","bold","italic","underline","clear","height","name","strikethrough","subscript","superscript","size","sizeunit","image","insert","resizeFull","resizeHalf","resizeQuarter","resizeNone","floatLeft","floatRight","floatNone","shapeRounded","shapeCircle","shapeThumbnail","shapeNone","dragImageHere","dropImage","selectFromFiles","maximumFileSize","maximumFileSizeError","url","remove","original","video","videoLink","providers","link","unlink","edit","textToDisplay","openInNewWindow","useProtocol","table","addRowAbove","addRowBelow","addColLeft","addColRight","delRow","delCol","delTable","hr","style","p","blockquote","pre","h1","h2","h3","h4","h5","h6","lists","unordered","ordered","help","fullscreen","codeview","paragraph","outdent","indent","left","center","right","justify","color","recent","more","background","foreground","transparent","setTransparent","reset","resetToDefault","cpSelect","shortcut","shortcuts","close","textFormatting","action","paragraphFormatting","documentStyle","extraKeys","history","undo","redo","specialChar","select","output","noSelection","isSupportAmd","define","genericFontFamilies","validFontName","fontName","inArray","toLowerCase","isFontInstalled","testFontName","testText","testSize","canvas","document","createElement","context","getContext","originalWidth","measureText","width","userAgent","navigator","isMSIE","test","browserVersion","matches","exec","parseFloat","isEdge","hasCodeMirror","window","CodeMirror","isSupportTouch","MaxTouchPoints","msMaxTouchPoints","inputEventName","isMac","appVersion","indexOf","isFF","isPhantom","isWebkit","isChrome","isSafari","jqueryVersion","fn","jquery","isW3CRangeSupport","createRange","eq","itemA","itemB","eq2","peq2","propName","ok","fail","not","f","apply","and","fA","fB","item","self","a","invoke","obj","method","idCounter","resetUniqueId","uniqueId","prefix","id","rect2bnd","rect","$document","top","scrollTop","scrollLeft","bottom","invertObject","inverted","key","Object","prototype","hasOwnProperty","call","namespaceToCamel","namespace","split","map","substring","toUpperCase","join","debounce","func","wait","immediate","timeout","args","later","callNow","clearTimeout","setTimeout","isValidUrl","expression","head","array","last","initial","slice","tail","pred","idx","len","all","contains","sum","reduce","memo","from","collection","result","isEmpty","clusterBy","aTail","aLast","compact","aResult","push","unique","results","next","prev","NBSP_CHAR","String","fromCharCode","ZERO_WIDTH_NBSP_CHAR","isEditable","node","hasClass","isControlSizing","makePredByNodeName","nodeName","isText","nodeType","isElement","isVoid","isPara","isHeading","isPre","isLi","isPurePara","isTable","isData","isInline","isBodyContainer","isList","isHr","isBlockquote","isCell","isAnchor","isParaInline","ancestor","isBodyInline","isBody","isClosestSibling","nodeA","nodeB","nextSibling","previousSibling","withClosestSiblings","siblings","blankHTML","env","nodeLength","nodeValue","childNodes","deepestChildIsEmpty","firstElementChild","innerHTML","paddingBlankHTML","parentNode","singleChildAncestor","listAncestor","ancestors","el","lastAncestor","filter","commonAncestor","n","listPrev","nodes","listNext","listDescendant","descendants","fnWalk","current","wrap","wrapperName","parent","wrapper","insertBefore","appendChild","insertAfter","preceding","appendChildNodes","aChild","isLeftEdgePoint","point","offset","isRightEdgePoint","isEdgePoint","isLeftEdgeOf","position","isRightEdgeOf","isLeftEdgePointOf","isRightEdgePointOf","hasChildren","prevPoint","isSkipInnerOffset","nextPoint","isSamePoint","pointA","pointB","isVisiblePoint","leftNode","rightNode","prevPointUntil","nextPointUntil","isCharPoint","ch","charAt","isSpacePoint","walkPoint","startPoint","endPoint","handler","isSkipOffset","makeOffsetPath","reverse","fromOffsetPath","offsets","i","splitNode","isSkipPaddingBlankHTML","isNotSplitEdgePoint","isDiscardEmptySplits","splitText","childNode","clone","cloneNode","splitTree","root","splitPoint","topAncestor","splitRoot","container","pivot","createText","text","createTextNode","isRemoveChild","removeNode","removeChild","removeWhile","replace","newNode","cssText","isTextarea","value","stripLinebreaks","val","isNewlineOnBlock","regexTag","match","endSlash","isEndOfInlineContainer","isBlockNode","trim","posFromPlaceholder","placeholder","$placeholder","pos","outerHeight","attachEvents","events","keys","detachEvents","off","isCustomStyleTag","classList","blank","emptyPara","isBlock","isDiv","isBR","isSpan","isB","isU","isS","isI","isImg","isEmptyAnchor","Context","$note","memos","modules","layoutInfo","ui","ui_template","initialize","createLayout","_initialize","hide","_destroy","removeData","removeLayout","disabled","isDisabled","code","dom","disable","now","editor","buttons","plugins","module","initializeModule","removeModule","removeMemo","triggerEvent","isActivated","undefined","codable","editable","editing","callbacks","trigger","shouldInitialize","ModuleClass","withoutIntialize","destroy","event","createInvokeHandler","preventDefault","$target","target","closest","splits","hasSeparator","moduleName","methodName","type","isExternalAPICalled","hasInitOptions","langInfo","icons","tooltip","note","first","focus","textRangeToPoint","textRange","isStart","parentElement","tester","body","createTextRange","prevContainer","moveToElementText","compareEndPoints","textRangeStart","curTextNode","collapse","firstChild","pointTester","duplicate","setEndPoint","textCount","dummy","cont","pointToTextRange","textRangeInfo","isCollapseToStart","prevTextNodes","collapseToStart","info","moveStart","WrappedRange","sc","so","ec","eo","isOnEditable","makeIsOn","isOnList","isOnAnchor","isOnCell","isOnData","w3cRange","setStart","setEnd","Math","min","nativeRng","nativeRange","selection","getSelection","rangeCount","removeAllRanges","addRange","offsetTop","abs","getVisiblePoint","isLeftToRight","block","hasRightNode","hasLeftNode","getEndPoint","isCollapsed","getStartPoint","includeAncestor","fullyContains","leftEdgeNodes","startAncestor","endAncestor","boundaryPoints","getPoints","isSameContainer","rng","emptyParents","normalize","inlineSiblings","concat","para","wrapBodyInlineWithPara","deleteContents","contentsContainer","insertNode","toString","findAfter","isNotTextPoint","regex","index","s","path","e","paras","getClientRects","wrappedRange","createFromSelection","bodyElement","lastChild","createFromBodyElement","createFromNode","anchorNode","getRangeAt","startContainer","startOffset","endContainer","endOffset","textRangeEnd","isTextNode","createFromNodeBefore","createFromNodeAfter","createFromBookmark","bookmark","createFromParaBookmark","KEY_MAP","isEdit","keyCode","BACKSPACE","TAB","ENTER","SPACE","DELETE","isMove","LEFT","UP","RIGHT","DOWN","isNavigation","HOME","END","PAGEUP","PAGEDOWN","nameFromCode","readFileAsDataURL","file","Deferred","deferred","FileReader","onload","dataURL","resolve","onerror","err","reject","readAsDataURL","promise","createImage","$img","one","detach","css","display","appendTo","History","stack","stackOffset","$editable","range","emptyBookmark","snapshot","recordUndo","applySnapshot","makeSnapshot","historyLimit","shift","Style","$obj","propertyNames","propertyName","properties","styleInfo","jQueryCSS","fontSize","parseInt","expandClosestSibling","onlyPartialContains","nodesInRange","tails","elem","$cont","fromNode","queryCommandState","queryCommandValue","orderedTypes","isUnordered","lineHeight","toFixed","anchor","Bullet","toggleList","clustereds","previousList","findList","wrapList","appendToPrevious","releaseList","listName","paraBookmark","wrappedParas","diffLists","listNode","prevList","nextList","isEscapseToBody","releasedParas","headList","parentItem","newList","findNextSiblings","lastList","middleList","rootLists","rootList","listNodes","Typing","bullet","tabsize","tab","nextPara","blockquoteBreakingLevel","emptyAnchors","scrollIntoView","TableResultAction","where","domTable","_startPoint","_virtualTable","_actionCellList","setStartPoint","tagName","colPos","cellIndex","rowPos","rowIndex","setVirtualTablePosition","baseRow","baseCell","isRowSpan","isColSpan","isVirtualCell","objPosition","getActionCell","virtualTableCellObj","resultAction","virtualRowPosition","virtualColPosition","recoverCellIndex","newCellIndex","addCellInfoToVirtual","row","cell","cellHasColspan","colSpan","cellHasRowspan","rowSpan","isThisSelectedCell","rowspanNumber","attributes","rp","rowspanIndex","adjustStartPoint","colspanNumber","cp","cellspanIndex","isSelectedCell","createVirtualTable","rows","cells","getDeleteResultActionToCell","Column","SubtractSpanCount","Row","isVirtual","AddCell","RemoveCell","getAddResultActionToCell","SumSpanCount","Ignore","init","getActionList","fixedRow","fixedCol","actualPosition","canContinue","rowPosition","colPosition","requestAction","Add","Delete","Table","isShift","nextCell","currentTr","trAttributes","recoverAttributes","vTable","actions","idCell","currentCell","tdAttributes","baseCellTr","isTopFromRowSpan","newTd","removeAttr","setAttribute","before","lastTrIndex","after","rowsGroup","actionIndex","resultStr","attrList","specified","cellPos","virtualPosition","virtualTable","hasRowspan","nextRow","cloneRow","removeAttribute","hasColspan","colCount","rowCount","tds","tdHTML","idxCol","trs","trHTML","idxRow","$table","tableClassName","KEY_BOGUS","Editor","$editor","lastRange","typing","untab","insertParagraph","insertOrderedList","insertUnorderedList","formatPara","insertHorizontalRule","commands","sCmd","beforeCommand","execCommand","afterCommand","wrapCommand","fontStyling","unit","currentStyle","fontSizeUnit","formatBlock","isLimited","getLastRange","setLastRange","insertText","textNode","pasteHTML","onApplyCustomStyle","onFormatBlock","hrNode","stylePara","createLink","linkInfo","linkUrl","linkText","isNewWindow","checkProtocol","additionalTextLength","isTextChanged","onCreateLink","defaultProtocol","anchors","styleNodes","startRange","endRange","colorInfo","foreColor","backColor","insertTable","dim","dimension","createTable","removeMedia","restoreTarget","floatMe","toggleClass","resize","hasKeyShortCut","isDefaultPrevented","handleKeyMap","preventDefaultEditableShortCuts","recordEveryKeystroke","spellCheck","disableGrammar","airMode","overrideContextMenu","outerWidth","maxHeight","minHeight","keyMap","metaKey","ctrlKey","altKey","shiftKey","keyName","eventName","tabDisable","pad","maxTextLength","thenCollapse","commit","styleWithCSS","isPreventTrigger","normalizeContent","tabSize","insertTab","src","param","then","$image","show","files","filename","maximumImageFileSize","insertImage","onImageUpload","insertImagesAsDataURL","currentRange","spans","firstSpan","noteStatusOutput","expand","$anchor","addRow","addCol","deleteRow","deleteCol","deleteTable","bKeepRatio","imageSize","newRatio","y","x","ratio","is","hasFocus","Clipboard","pasteByEvent","bind","clipboardData","originalEvent","items","kind","getAsFile","getData","Dropzone","$eventListener","documentEventHandlers","$dropzone","prependTo","disableDragAndDrop","onDrop","attachDragAndDropEvent","$dropzoneMessage","onDragenter","isCodeview","hasEditorSize","add","onDragleave","removeClass","dataTransfer","types","content","substr","CodeView","$codable","save","deactivate","activate","codeviewFilter","codeviewFilterRegex","codeviewIframeFilter","whitelist","codeviewIframeWhitelistSrc","codeviewIframeWhitelistSrcBase","tag","RegExp","prettifyHtml","cmEditor","fromTextArea","codemirror","tern","server","TernServer","ternServer","cm","updateArgHints","getValue","setSize","toTextArea","purify","isChange","EDITABLE_PADDING","Statusbar","$statusbar","statusbar","disableResizeEditor","stopPropagation","editableTop","onMouseMove","clientY","minheight","max","Fullscreen","$toolbar","toolbar","$window","$scrollbar","onResize","resizeTo","h","setsize","isFullscreen","Handle","$editingArea","editingArea","we","update","$handle","disableResizeImage","posStart","clientX","isImage","$selection","w","origImageObj","Image","sizingText","defaultScheme","linkPattern","AutoLink","handleKeyup","handleKeydown","lastWordRange","keyword","urlText","linkTargetBlank","wordRange","getWordRange","AutoSync","AutoReplace","PERIOD","COMMA","SEMICOLON","SLASH","previousKeydownCode","lastWord","jQuery","Node","Placeholder","inheritPlaceholder","isShow","toggle","Buttons","invertedKeyMap","editorMethod","o","button","addToolbarButtons","addImagePopoverButtons","addLinkPopoverButtons","addTablePopoverButtons","fontInstalledMap","fontNamesIgnoreCheck","buttonGroup","icon","$button","currentTarget","$recentColor","colorButton","dropdownButtonContents","dropdown","$dropdown","$holder","palette","colors","colorsName","customColors","change","$chip","$picker","$palette","prepend","$color","$currentButton","magic","styleTags","title","template","styleIdx","styleLen","representShortcut","createInvokeHandlerAndUpdateState","eraser","addDefaultFonts","fontname","isFontDeservedToAdd","fontNames","dropdownCheck","checkClassName","menuCheck","fontSizes","fontSizeUnits","colorPalette","unorderedlist","orderedlist","justifyLeft","alignLeft","justifyCenter","alignCenter","justifyRight","alignRight","justifyFull","alignJustify","textHeight","lineHeights","$catcher","insertTableMaxSize","col","mousedown","tableMoveHandler","picture","minus","arrowsAlt","question","rollback","trash","rowAbove","rowBelow","colBefore","colAfter","rowRemove","colRemove","groups","groupIdx","groupLen","group","groupName","$group","btn","updateBtnStates","$item","isChecked","infos","selector","toggleBtnActive","PX_PER_EM","$dimensionDisplay","$highlighted","$unhighlighted","posOffset","offsetX","posCatcher","pageX","pageY","offsetY","c","ceil","r","Toolbar","isFollowing","followScroll","toolbarContainer","changeContainer","followingToolbar","editorHeight","editorWidth","toolbarHeight","statusbarHeight","otherBarHeight","otherStaticBar","currentOffset","editorOffsetTop","editorOffsetBottom","activateOffset","deactivateOffsetBottom","marginTop","zIndex","isIncludeCodeview","$btn","toggleBtn","LinkDialog","$body","dialogsInBody","disableLinkTarget","checkbox","checked","buttonClass","footer","$dialog","dialog","fade","dialogsFade","hideDialog","$input","$linkBtn","$linkText","$linkUrl","$openInNewWindow","$useProtocol","onDialogShown","toggleLinkBtn","bindEnterKey","isNewWindowChecked","prop","useProtocolChecked","onDialogHidden","state","showDialog","showLinkDialog","LinkPopover","popover","$popover","$content","href","containerOffset","ImageDialog","imageLimitation","floor","log","readableSize","pow","showImageDialog","onImageLinkInsert","$imageInput","$imageUrl","$imageBtn","replaceWith","ImagePopover","popatmouse","TablePopover","VideoDialog","ytRegExp","ytRegExpForStart","ytMatch","igRegExp","igMatch","vRegExp","vMatch","vimRegExp","vimMatch","dmRegExp","dmMatch","youkuRegExp","youkuMatch","qqRegExp","qqMatch","qqRegExp2","qqMatch2","mp4RegExp","mp4Match","oggRegExp","oggMatch","webmRegExp","webmMatch","fbRegExp","fbMatch","$video","youtubeId","start","ytMatchForStart","vid","encodeURIComponent","showVideoDialog","createVideoNode","$videoUrl","$videoBtn","HelpDialog","createShortcutList","command","$row","showHelpDialog","AIRMODE_POPOVER_X_OFFSET","AIRMODE_POPOVER_Y_OFFSET","AirPopover","hidable","onContextmenu","air","forcelyOpen","POPOVER_DIST","HintPopover","hint","direction","hintDirection","hints","matchingWord","hideArrow","innerHeight","$current","$next","selectItem","$nextGroup","$prev","$prevGroup","nodeFromItem","rangeCompute","hintSelect","hintIdx","moveUp","moveDown","search","searchKeyword","createItemTemplates","hintMode","getWordsRange","getWordsMatchRange","empty","bnd","createGroup","version","Codeview","toolbarPosition","tabDisabled","textareaAutoSync","onBeforeCommand","onBlur","onBlurCodeview","onChange","onChangeCodeview","onEnter","onFocus","onImageUploadError","onInit","onKeydown","onKeyup","onMousedown","onMouseup","onPaste","onScroll","mode","htmlMode","lineNumbers","pc","mac","TooltipUI","placement","$tooltip","showCallback","hideCallback","toggleCallback","targetOffset","nodeWidth","nodeHeight","tooltipWidth","tooltipHeight","DropdownUI","setEvent","stopImmediatePropagation","windowWidth","targetMarginRight","isOpened","ModalUI","$modal","$backdrop","which","renderer","airEditor","airEditable","$temp","$a","itemClick","caret","dropdownButton","opt","dropdownCheckButton","paragraphDropdownButton","tableDropdownButton","mousemove","rowSize","colSize","colorName","colorDropdownButton","currentClick","foreinput","getElementById","backinput","videoDialog","imageDialog","linkDialog","iconClassName","editorOptions","isEnable","isActive","check","$dom","getPopoverContent","getDialogBody"],"mappings":"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","file":"summernote-lite.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn "," \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 51);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import $ from 'jquery';\n\nclass Renderer {\n constructor(markup, children, options, callback) {\n this.markup = markup;\n this.children = children;\n this.options = options;\n this.callback = callback;\n }\n\n render($parent) {\n const $node = $(this.markup);\n\n if (this.options && this.options.contents) {\n $node.html(this.options.contents);\n }\n\n if (this.options && this.options.className) {\n $node.addClass(this.options.className);\n }\n\n if (this.options && this.options.data) {\n $.each(this.options.data, (k, v) => {\n $node.attr('data-' + k, v);\n });\n }\n\n if (this.options && this.options.click) {\n $node.on('click', this.options.click);\n }\n\n if (this.children) {\n const $container = $node.find('.note-children-container');\n this.children.forEach((child) => {\n child.render($container.length ? $container : $node);\n });\n }\n\n if (this.callback) {\n this.callback($node, this.options);\n }\n\n if (this.options && this.options.callback) {\n this.options.callback($node);\n }\n\n if ($parent) {\n $parent.append($node);\n }\n\n return $node;\n }\n}\n\nexport default {\n create: (markup, callback) => {\n return function() {\n const options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n let children = Array.isArray(arguments[0]) ? arguments[0] : [];\n if (options && options.children) {\n children = options.children;\n }\n return new Renderer(markup, children, options, callback);\n };\n },\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","import $ from 'jquery';\n\n$.summernote = $.summernote || {\n lang: {},\n};\n\n$.extend($.summernote.lang, {\n 'en-US': {\n font: {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n clear: 'Remove Font Style',\n height: 'Line Height',\n name: 'Font Family',\n strikethrough: 'Strikethrough',\n subscript: 'Subscript',\n superscript: 'Superscript',\n size: 'Font Size',\n sizeunit: 'Font Size Unit',\n },\n image: {\n image: 'Picture',\n insert: 'Insert Image',\n resizeFull: 'Resize full',\n resizeHalf: 'Resize half',\n resizeQuarter: 'Resize quarter',\n resizeNone: 'Original size',\n floatLeft: 'Float Left',\n floatRight: 'Float Right',\n floatNone: 'Remove float',\n shapeRounded: 'Shape: Rounded',\n shapeCircle: 'Shape: Circle',\n shapeThumbnail: 'Shape: Thumbnail',\n shapeNone: 'Shape: None',\n dragImageHere: 'Drag image or text here',\n dropImage: 'Drop image or Text',\n selectFromFiles: 'Select from files',\n maximumFileSize: 'Maximum file size',\n maximumFileSizeError: 'Maximum file size exceeded.',\n url: 'Image URL',\n remove: 'Remove Image',\n original: 'Original',\n },\n video: {\n video: 'Video',\n videoLink: 'Video Link',\n insert: 'Insert Video',\n url: 'Video URL',\n providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)',\n },\n link: {\n link: 'Link',\n insert: 'Insert Link',\n unlink: 'Unlink',\n edit: 'Edit',\n textToDisplay: 'Text to display',\n url: 'To what URL should this link go?',\n openInNewWindow: 'Open in new window',\n useProtocol: 'Use default protocol',\n },\n table: {\n table: 'Table',\n addRowAbove: 'Add row above',\n addRowBelow: 'Add row below',\n addColLeft: 'Add column left',\n addColRight: 'Add column right',\n delRow: 'Delete row',\n delCol: 'Delete column',\n delTable: 'Delete table',\n },\n hr: {\n insert: 'Insert Horizontal Rule',\n },\n style: {\n style: 'Style',\n p: 'Normal',\n blockquote: 'Quote',\n pre: 'Code',\n h1: 'Header 1',\n h2: 'Header 2',\n h3: 'Header 3',\n h4: 'Header 4',\n h5: 'Header 5',\n h6: 'Header 6',\n },\n lists: {\n unordered: 'Unordered list',\n ordered: 'Ordered list',\n },\n options: {\n help: 'Help',\n fullscreen: 'Full Screen',\n codeview: 'Code View',\n },\n paragraph: {\n paragraph: 'Paragraph',\n outdent: 'Outdent',\n indent: 'Indent',\n left: 'Align left',\n center: 'Align center',\n right: 'Align right',\n justify: 'Justify full',\n },\n color: {\n recent: 'Recent Color',\n more: 'More Color',\n background: 'Background Color',\n foreground: 'Text Color',\n transparent: 'Transparent',\n setTransparent: 'Set transparent',\n reset: 'Reset',\n resetToDefault: 'Reset to default',\n cpSelect: 'Select',\n },\n shortcut: {\n shortcuts: 'Keyboard shortcuts',\n close: 'Close',\n textFormatting: 'Text formatting',\n action: 'Action',\n paragraphFormatting: 'Paragraph formatting',\n documentStyle: 'Document Style',\n extraKeys: 'Extra keys',\n },\n help: {\n 'insertParagraph': 'Insert Paragraph',\n 'undo': 'Undoes the last command',\n 'redo': 'Redoes the last command',\n 'tab': 'Tab',\n 'untab': 'Untab',\n 'bold': 'Set a bold style',\n 'italic': 'Set a italic style',\n 'underline': 'Set a underline style',\n 'strikethrough': 'Set a strikethrough style',\n 'removeFormat': 'Clean a style',\n 'justifyLeft': 'Set left align',\n 'justifyCenter': 'Set center align',\n 'justifyRight': 'Set right align',\n 'justifyFull': 'Set full align',\n 'insertUnorderedList': 'Toggle unordered list',\n 'insertOrderedList': 'Toggle ordered list',\n 'outdent': 'Outdent on current paragraph',\n 'indent': 'Indent on current paragraph',\n 'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n 'formatH1': 'Change current block\\'s format as H1',\n 'formatH2': 'Change current block\\'s format as H2',\n 'formatH3': 'Change current block\\'s format as H3',\n 'formatH4': 'Change current block\\'s format as H4',\n 'formatH5': 'Change current block\\'s format as H5',\n 'formatH6': 'Change current block\\'s format as H6',\n 'insertHorizontalRule': 'Insert horizontal rule',\n 'linkDialog.show': 'Show Link Dialog',\n },\n history: {\n undo: 'Undo',\n redo: 'Redo',\n },\n specialChar: {\n specialChar: 'SPECIAL CHARACTERS',\n select: 'Select Special characters',\n },\n output: {\n noSelection: 'No Selection Made!',\n },\n },\n});\n","import $ from 'jquery';\nconst isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\nconst genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n\nfunction validFontName(fontName) {\n return ($.inArray(fontName.toLowerCase(), genericFontFamilies) === -1) ? `'${fontName}'` : fontName;\n}\n\nfunction isFontInstalled(fontName) {\n const testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n const testText = 'mmmmmmmmmmwwwww';\n const testSize = '200px';\n\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n\n context.font = testSize + \" '\" + testFontName + \"'\";\n const originalWidth = context.measureText(testText).width;\n\n context.font = testSize + ' ' + validFontName(fontName) + ', \"' + testFontName + '\"';\n const width = context.measureText(testText).width;\n\n return originalWidth !== width;\n}\n\nconst userAgent = navigator.userAgent;\nconst isMSIE = /MSIE|Trident/i.test(userAgent);\nlet browserVersion;\nif (isMSIE) {\n let matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n if (matches) {\n browserVersion = parseFloat(matches[1]);\n }\n matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n if (matches) {\n browserVersion = parseFloat(matches[1]);\n }\n}\n\nconst isEdge = /Edge\\/\\d+/.test(userAgent);\n\nlet hasCodeMirror = !!window.CodeMirror;\n\nconst isSupportTouch =\n (('ontouchstart' in window) ||\n (navigator.MaxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0));\n\n// [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\nconst inputEventName = (isMSIE) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\nexport default {\n isMac: navigator.appVersion.indexOf('Mac') > -1,\n isMSIE,\n isEdge,\n isFF: !isEdge && /firefox/i.test(userAgent),\n isPhantom: /PhantomJS/i.test(userAgent),\n isWebkit: !isEdge && /webkit/i.test(userAgent),\n isChrome: !isEdge && /chrome/i.test(userAgent),\n isSafari: !isEdge && /safari/i.test(userAgent) && (!/chrome/i.test(userAgent)),\n browserVersion,\n jqueryVersion: parseFloat($.fn.jquery),\n isSupportAmd,\n isSupportTouch,\n hasCodeMirror,\n isFontInstalled,\n isW3CRangeSupport: !!document.createRange,\n inputEventName,\n genericFontFamilies,\n validFontName,\n};\n","import $ from 'jquery';\n\n/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\nfunction eq(itemA) {\n return function(itemB) {\n return itemA === itemB;\n };\n}\n\nfunction eq2(itemA, itemB) {\n return itemA === itemB;\n}\n\nfunction peq2(propName) {\n return function(itemA, itemB) {\n return itemA[propName] === itemB[propName];\n };\n}\n\nfunction ok() {\n return true;\n}\n\nfunction fail() {\n return false;\n}\n\nfunction not(f) {\n return function() {\n return !f.apply(f, arguments);\n };\n}\n\nfunction and(fA, fB) {\n return function(item) {\n return fA(item) && fB(item);\n };\n}\n\nfunction self(a) {\n return a;\n}\n\nfunction invoke(obj, method) {\n return function() {\n return obj[method].apply(obj, arguments);\n };\n}\n\nlet idCounter = 0;\n\n/**\n * reset globally-unique id\n *\n */\nfunction resetUniqueId() {\n idCounter = 0;\n}\n\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\nfunction uniqueId(prefix) {\n const id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\nfunction rect2bnd(rect) {\n const $document = $(document);\n return {\n top: rect.top + $document.scrollTop(),\n left: rect.left + $document.scrollLeft(),\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\nfunction invertObject(obj) {\n const inverted = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n inverted[obj[key]] = key;\n }\n }\n return inverted;\n}\n\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\nfunction namespaceToCamel(namespace, prefix) {\n prefix = prefix || '';\n return prefix + namespace.split('.').map(function(name) {\n return name.substring(0, 1).toUpperCase() + name.substring(1);\n }).join('');\n}\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\nfunction debounce(func, wait, immediate) {\n let timeout;\n return function() {\n const context = this;\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\n\n/**\n *\n * @param {String} url\n * @return {Boolean}\n */\nfunction isValidUrl(url) {\n const expression = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/gi;\n return expression.test(url);\n}\n\nexport default {\n eq,\n eq2,\n peq2,\n ok,\n fail,\n self,\n not,\n and,\n invoke,\n resetUniqueId,\n uniqueId,\n rect2bnd,\n invertObject,\n namespaceToCamel,\n debounce,\n isValidUrl,\n};\n","import func from './func';\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\nfunction head(array) {\n return array[0];\n}\n\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\nfunction last(array) {\n return array[array.length - 1];\n}\n\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\nfunction initial(array) {\n return array.slice(0, array.length - 1);\n}\n\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\nfunction tail(array) {\n return array.slice(1);\n}\n\n/**\n * returns item of array\n */\nfunction find(array, pred) {\n for (let idx = 0, len = array.length; idx < len; idx++) {\n const item = array[idx];\n if (pred(item)) {\n return item;\n }\n }\n}\n\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\nfunction all(array, pred) {\n for (let idx = 0, len = array.length; idx < len; idx++) {\n if (!pred(array[idx])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * returns true if the value is present in the list.\n */\nfunction contains(array, item) {\n if (array && array.length && item) {\n if (array.indexOf) {\n return array.indexOf(item) !== -1;\n } else if (array.contains) {\n // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains`\n return array.contains(item);\n }\n }\n return false;\n}\n\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\nfunction sum(array, fn) {\n fn = fn || func.self;\n return array.reduce(function(memo, v) {\n return memo + fn(v);\n }, 0);\n}\n\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\nfunction from(collection) {\n const result = [];\n const length = collection.length;\n let idx = -1;\n while (++idx < length) {\n result[idx] = collection[idx];\n }\n return result;\n}\n\n/**\n * returns whether list is empty or not\n */\nfunction isEmpty(array) {\n return !array || !array.length;\n}\n\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\nfunction clusterBy(array, fn) {\n if (!array.length) { return []; }\n const aTail = tail(array);\n return aTail.reduce(function(memo, v) {\n const aLast = last(memo);\n if (fn(last(aLast), v)) {\n aLast[aLast.length] = v;\n } else {\n memo[memo.length] = [v];\n }\n return memo;\n }, [[head(array)]]);\n}\n\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\nfunction compact(array) {\n const aResult = [];\n for (let idx = 0, len = array.length; idx < len; idx++) {\n if (array[idx]) { aResult.push(array[idx]); }\n }\n return aResult;\n}\n\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\nfunction unique(array) {\n const results = [];\n\n for (let idx = 0, len = array.length; idx < len; idx++) {\n if (!contains(results, array[idx])) {\n results.push(array[idx]);\n }\n }\n\n return results;\n}\n\n/**\n * returns next item.\n * @param {Array} array\n */\nfunction next(array, item) {\n if (array && array.length && item) {\n const idx = array.indexOf(item);\n return idx === -1 ? null : array[idx + 1];\n }\n return null;\n}\n\n/**\n * returns prev item.\n * @param {Array} array\n */\nfunction prev(array, item) {\n if (array && array.length && item) {\n const idx = array.indexOf(item);\n return idx === -1 ? null : array[idx - 1];\n }\n return null;\n}\n\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\nexport default {\n head,\n last,\n initial,\n tail,\n prev,\n next,\n find,\n contains,\n all,\n sum,\n from,\n isEmpty,\n clusterBy,\n compact,\n unique,\n};\n","import $ from 'jquery';\nimport func from './func';\nimport lists from './lists';\nimport env from './env';\n\nconst NBSP_CHAR = String.fromCharCode(160);\nconst ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEditable(node) {\n return node && $(node).hasClass('note-editable');\n}\n\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isControlSizing(node) {\n return node && $(node).hasClass('note-control-sizing');\n}\n\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\nfunction makePredByNodeName(nodeName) {\n nodeName = nodeName.toUpperCase();\n return function(node) {\n return node && node.nodeName.toUpperCase() === nodeName;\n };\n}\n\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\nfunction isText(node) {\n return node && node.nodeType === 3;\n}\n\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\nfunction isElement(node) {\n return node && node.nodeType === 1;\n}\n\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\nfunction isVoid(node) {\n return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n if (isEditable(node)) {\n return false;\n }\n\n // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nconst isPre = makePredByNodeName('PRE');\n\nconst isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n return isPara(node) && !isLi(node);\n}\n\nconst isTable = makePredByNodeName('TABLE');\n\nconst isData = makePredByNodeName('DATA');\n\nfunction isInline(node) {\n return !isBodyContainer(node) &&\n !isList(node) &&\n !isHr(node) &&\n !isPara(node) &&\n !isTable(node) &&\n !isBlockquote(node) &&\n !isData(node);\n}\n\nfunction isList(node) {\n return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nconst isHr = makePredByNodeName('HR');\n\nfunction isCell(node) {\n return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nconst isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n return isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nconst isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n return isInline(node) && !!ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n return isInline(node) && !ancestor(node, isPara);\n}\n\nconst isBody = makePredByNodeName('BODY');\n\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\nfunction isClosestSibling(nodeA, nodeB) {\n return nodeA.nextSibling === nodeB ||\n nodeA.previousSibling === nodeB;\n}\n\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\nfunction withClosestSiblings(node, pred) {\n pred = pred || func.ok;\n\n const siblings = [];\n if (node.previousSibling && pred(node.previousSibling)) {\n siblings.push(node.previousSibling);\n }\n siblings.push(node);\n if (node.nextSibling && pred(node.nextSibling)) {\n siblings.push(node.nextSibling);\n }\n return siblings;\n}\n\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with  \n * - [workaround] IE11 and other browser works with bogus br\n */\nconst blankHTML = env.isMSIE && env.browserVersion < 11 ? ' ' : '
';\n\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\nfunction nodeLength(node) {\n if (isText(node)) {\n return node.nodeValue.length;\n }\n\n if (node) {\n return node.childNodes.length;\n }\n\n return 0;\n}\n\n/**\n * returns whether deepest child node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction deepestChildIsEmpty(node) {\n do {\n if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break;\n } while ((node = node.firstElementChild));\n\n return isEmpty(node);\n}\n\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEmpty(node) {\n const len = nodeLength(node);\n\n if (len === 0) {\n return true;\n } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n // ex)


,
\n return true;\n } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n // ex)

, \n return true;\n }\n\n return false;\n}\n\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\nfunction paddingBlankHTML(node) {\n if (!isVoid(node) && !nodeLength(node)) {\n node.innerHTML = blankHTML;\n }\n}\n\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction ancestor(node, pred) {\n while (node) {\n if (pred(node)) { return node; }\n if (isEditable(node)) { break; }\n\n node = node.parentNode;\n }\n return null;\n}\n\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction singleChildAncestor(node, pred) {\n node = node.parentNode;\n\n while (node) {\n if (nodeLength(node) !== 1) { break; }\n if (pred(node)) { return node; }\n if (isEditable(node)) { break; }\n\n node = node.parentNode;\n }\n return null;\n}\n\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listAncestor(node, pred) {\n pred = pred || func.fail;\n\n const ancestors = [];\n ancestor(node, function(el) {\n if (!isEditable(el)) {\n ancestors.push(el);\n }\n\n return pred(el);\n });\n return ancestors;\n}\n\n/**\n * find farthest ancestor predicate hit\n */\nfunction lastAncestor(node, pred) {\n const ancestors = listAncestor(node);\n return lists.last(ancestors.filter(pred));\n}\n\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\nfunction commonAncestor(nodeA, nodeB) {\n const ancestors = listAncestor(nodeA);\n for (let n = nodeB; n; n = n.parentNode) {\n if (ancestors.indexOf(n) > -1) return n;\n }\n return null; // difference document area\n}\n\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listPrev(node, pred) {\n pred = pred || func.fail;\n\n const nodes = [];\n while (node) {\n if (pred(node)) { break; }\n nodes.push(node);\n node = node.previousSibling;\n }\n return nodes;\n}\n\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listNext(node, pred) {\n pred = pred || func.fail;\n\n const nodes = [];\n while (node) {\n if (pred(node)) { break; }\n nodes.push(node);\n node = node.nextSibling;\n }\n return nodes;\n}\n\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listDescendant(node, pred) {\n const descendants = [];\n pred = pred || func.ok;\n\n // start DFS(depth first search) with node\n (function fnWalk(current) {\n if (node !== current && pred(current)) {\n descendants.push(current);\n }\n for (let idx = 0, len = current.childNodes.length; idx < len; idx++) {\n fnWalk(current.childNodes[idx]);\n }\n })(node);\n\n return descendants;\n}\n\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\nfunction wrap(node, wrapperName) {\n const parent = node.parentNode;\n const wrapper = $('<' + wrapperName + '>')[0];\n\n parent.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n\n return wrapper;\n}\n\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\nfunction insertAfter(node, preceding) {\n const next = preceding.nextSibling;\n let parent = preceding.parentNode;\n if (next) {\n parent.insertBefore(node, next);\n } else {\n parent.appendChild(node);\n }\n return node;\n}\n\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\nfunction appendChildNodes(node, aChild) {\n $.each(aChild, function(idx, child) {\n node.appendChild(child);\n });\n return node;\n}\n\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isLeftEdgePoint(point) {\n return point.offset === 0;\n}\n\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isRightEdgePoint(point) {\n return point.offset === nodeLength(point.node);\n}\n\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isEdgePoint(point) {\n return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgeOf(node, ancestor) {\n while (node && node !== ancestor) {\n if (position(node) !== 0) {\n return false;\n }\n node = node.parentNode;\n }\n\n return true;\n}\n\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgeOf(node, ancestor) {\n if (!ancestor) {\n return false;\n }\n while (node && node !== ancestor) {\n if (position(node) !== nodeLength(node.parentNode) - 1) {\n return false;\n }\n node = node.parentNode;\n }\n\n return true;\n}\n\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgePointOf(point, ancestor) {\n return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgePointOf(point, ancestor) {\n return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\nfunction position(node) {\n let offset = 0;\n while ((node = node.previousSibling)) {\n offset += 1;\n }\n return offset;\n}\n\nfunction hasChildren(node) {\n return !!(node && node.childNodes && node.childNodes.length);\n}\n\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction prevPoint(point, isSkipInnerOffset) {\n let node;\n let offset;\n\n if (point.offset === 0) {\n if (isEditable(point.node)) {\n return null;\n }\n\n node = point.node.parentNode;\n offset = position(point.node);\n } else if (hasChildren(point.node)) {\n node = point.node.childNodes[point.offset - 1];\n offset = nodeLength(node);\n } else {\n node = point.node;\n offset = isSkipInnerOffset ? 0 : point.offset - 1;\n }\n\n return {\n node: node,\n offset: offset,\n };\n}\n\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction nextPoint(point, isSkipInnerOffset) {\n let node, offset;\n\n if (isEmpty(point.node)) {\n return null;\n }\n\n if (nodeLength(point.node) === point.offset) {\n if (isEditable(point.node)) {\n return null;\n }\n\n node = point.node.parentNode;\n offset = position(point.node) + 1;\n } else if (hasChildren(point.node)) {\n node = point.node.childNodes[point.offset];\n offset = 0;\n if (isEmpty(node)) {\n return null;\n }\n } else {\n node = point.node;\n offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n\n if (isEmpty(node)) {\n return null;\n }\n }\n\n return {\n node: node,\n offset: offset,\n };\n}\n\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\nfunction isSamePoint(pointA, pointB) {\n return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isVisiblePoint(point) {\n if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n return true;\n }\n\n const leftNode = point.node.childNodes[point.offset - 1];\n const rightNode = point.node.childNodes[point.offset];\n if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n return true;\n }\n\n return false;\n}\n\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction prevPointUntil(point, pred) {\n while (point) {\n if (pred(point)) {\n return point;\n }\n\n point = prevPoint(point);\n }\n\n return null;\n}\n\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction nextPointUntil(point, pred) {\n while (point) {\n if (pred(point)) {\n return point;\n }\n\n point = nextPoint(point);\n }\n\n return null;\n}\n\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\nfunction isCharPoint(point) {\n if (!isText(point.node)) {\n return false;\n }\n\n const ch = point.node.nodeValue.charAt(point.offset - 1);\n return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n}\n\n/**\n * returns whether point has space or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\nfunction isSpacePoint(point) {\n if (!isText(point.node)) {\n return false;\n }\n\n const ch = point.node.nodeValue.charAt(point.offset - 1);\n return ch === ' ' || ch === NBSP_CHAR;\n}\n\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n let point = startPoint;\n\n while (point) {\n handler(point);\n\n if (isSamePoint(point, endPoint)) {\n break;\n }\n\n const isSkipOffset = isSkipInnerOffset &&\n startPoint.node !== point.node &&\n endPoint.node !== point.node;\n point = nextPoint(point, isSkipOffset);\n }\n}\n\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\nfunction makeOffsetPath(ancestor, node) {\n const ancestors = listAncestor(node, func.eq(ancestor));\n return ancestors.map(position).reverse();\n}\n\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\nfunction fromOffsetPath(ancestor, offsets) {\n let current = ancestor;\n for (let i = 0, len = offsets.length; i < len; i++) {\n if (current.childNodes.length <= offsets[i]) {\n current = current.childNodes[current.childNodes.length - 1];\n } else {\n current = current.childNodes[offsets[i]];\n }\n }\n return current;\n}\n\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @param {Boolean} [options.isDiscardEmptySplits] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitNode(point, options) {\n let isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n const isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n const isDiscardEmptySplits = options && options.isDiscardEmptySplits;\n\n if (isDiscardEmptySplits) {\n isSkipPaddingBlankHTML = true;\n }\n\n // edge case\n if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n if (isLeftEdgePoint(point)) {\n return point.node;\n } else if (isRightEdgePoint(point)) {\n return point.node.nextSibling;\n }\n }\n\n // split #text\n if (isText(point.node)) {\n return point.node.splitText(point.offset);\n } else {\n const childNode = point.node.childNodes[point.offset];\n const clone = insertAfter(point.node.cloneNode(false), point.node);\n appendChildNodes(clone, listNext(childNode));\n\n if (!isSkipPaddingBlankHTML) {\n paddingBlankHTML(point.node);\n paddingBlankHTML(clone);\n }\n\n if (isDiscardEmptySplits) {\n if (isEmpty(point.node)) {\n remove(point.node);\n }\n if (isEmpty(clone)) {\n remove(clone);\n return point.node.nextSibling;\n }\n }\n\n return clone;\n }\n}\n\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitTree(root, point, options) {\n // ex) [#text, ,

]\n const ancestors = listAncestor(point.node, func.eq(root));\n\n if (!ancestors.length) {\n return null;\n } else if (ancestors.length === 1) {\n return splitNode(point, options);\n }\n\n return ancestors.reduce(function(node, parent) {\n if (node === point.node) {\n node = splitNode(point, options);\n }\n\n return splitNode({\n node: parent,\n offset: node ? position(node) : nodeLength(parent),\n }, options);\n });\n}\n\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\nfunction splitPoint(point, isInline) {\n // find splitRoot, container\n // - inline: splitRoot is a child of paragraph\n // - block: splitRoot is a child of bodyContainer\n const pred = isInline ? isPara : isBodyContainer;\n const ancestors = listAncestor(point.node, pred);\n const topAncestor = lists.last(ancestors) || point.node;\n\n let splitRoot, container;\n if (pred(topAncestor)) {\n splitRoot = ancestors[ancestors.length - 2];\n container = topAncestor;\n } else {\n splitRoot = topAncestor;\n container = splitRoot.parentNode;\n }\n\n // if splitRoot is exists, split with splitTree\n let pivot = splitRoot && splitTree(splitRoot, point, {\n isSkipPaddingBlankHTML: isInline,\n isNotSplitEdgePoint: isInline,\n });\n\n // if container is point.node, find pivot with point.offset\n if (!pivot && container === point.node) {\n pivot = point.node.childNodes[point.offset];\n }\n\n return {\n rightNode: pivot,\n container: container,\n };\n}\n\nfunction create(nodeName) {\n return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n return document.createTextNode(text);\n}\n\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\nfunction remove(node, isRemoveChild) {\n if (!node || !node.parentNode) { return; }\n if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n const parent = node.parentNode;\n if (!isRemoveChild) {\n const nodes = [];\n for (let i = 0, len = node.childNodes.length; i < len; i++) {\n nodes.push(node.childNodes[i]);\n }\n\n for (let i = 0, len = nodes.length; i < len; i++) {\n parent.insertBefore(nodes[i], node);\n }\n }\n\n parent.removeChild(node);\n}\n\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\nfunction removeWhile(node, pred) {\n while (node) {\n if (isEditable(node) || !pred(node)) {\n break;\n }\n\n const parent = node.parentNode;\n remove(node);\n node = parent;\n }\n}\n\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\nfunction replace(node, nodeName) {\n if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n return node;\n }\n\n const newNode = create(nodeName);\n\n if (node.style.cssText) {\n newNode.style.cssText = node.style.cssText;\n }\n\n appendChildNodes(newNode, lists.from(node.childNodes));\n insertAfter(newNode, node);\n remove(node);\n\n return newNode;\n}\n\nconst isTextarea = makePredByNodeName('TEXTAREA');\n\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\nfunction value($node, stripLinebreaks) {\n const val = isTextarea($node[0]) ? $node.val() : $node.html();\n if (stripLinebreaks) {\n return val.replace(/[\\n\\r]/g, '');\n }\n return val;\n}\n\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\nfunction html($node, isNewlineOnBlock) {\n let markup = value($node);\n\n if (isNewlineOnBlock) {\n const regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n markup = markup.replace(regexTag, function(match, endSlash, name) {\n name = name.toUpperCase();\n const isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n !!endSlash;\n const isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n });\n markup = markup.trim();\n }\n\n return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n const $placeholder = $(placeholder);\n const pos = $placeholder.offset();\n const height = $placeholder.outerHeight(true); // include margin\n\n return {\n left: pos.left,\n top: pos.top + height,\n };\n}\n\nfunction attachEvents($node, events) {\n Object.keys(events).forEach(function(key) {\n $node.on(key, events[key]);\n });\n}\n\nfunction detachEvents($node, events) {\n Object.keys(events).forEach(function(key) {\n $node.off(key, events[key]);\n });\n}\n\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\nfunction isCustomStyleTag(node) {\n return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\nexport default {\n /** @property {String} NBSP_CHAR */\n NBSP_CHAR,\n /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n ZERO_WIDTH_NBSP_CHAR,\n /** @property {String} blank */\n blank: blankHTML,\n /** @property {String} emptyPara */\n emptyPara: `

${blankHTML}

`,\n makePredByNodeName,\n isEditable,\n isControlSizing,\n isText,\n isElement,\n isVoid,\n isPara,\n isPurePara,\n isHeading,\n isInline,\n isBlock: func.not(isInline),\n isBodyInline,\n isBody,\n isParaInline,\n isPre,\n isList,\n isTable,\n isData,\n isCell,\n isBlockquote,\n isBodyContainer,\n isAnchor,\n isDiv: makePredByNodeName('DIV'),\n isLi,\n isBR: makePredByNodeName('BR'),\n isSpan: makePredByNodeName('SPAN'),\n isB: makePredByNodeName('B'),\n isU: makePredByNodeName('U'),\n isS: makePredByNodeName('S'),\n isI: makePredByNodeName('I'),\n isImg: makePredByNodeName('IMG'),\n isTextarea,\n deepestChildIsEmpty,\n isEmpty,\n isEmptyAnchor: func.and(isAnchor, isEmpty),\n isClosestSibling,\n withClosestSiblings,\n nodeLength,\n isLeftEdgePoint,\n isRightEdgePoint,\n isEdgePoint,\n isLeftEdgeOf,\n isRightEdgeOf,\n isLeftEdgePointOf,\n isRightEdgePointOf,\n prevPoint,\n nextPoint,\n isSamePoint,\n isVisiblePoint,\n prevPointUntil,\n nextPointUntil,\n isCharPoint,\n isSpacePoint,\n walkPoint,\n ancestor,\n singleChildAncestor,\n listAncestor,\n lastAncestor,\n listNext,\n listPrev,\n listDescendant,\n commonAncestor,\n wrap,\n insertAfter,\n appendChildNodes,\n position,\n hasChildren,\n makeOffsetPath,\n fromOffsetPath,\n splitTree,\n splitPoint,\n create,\n createText,\n remove,\n removeWhile,\n replace,\n html,\n value,\n posFromPlaceholder,\n attachEvents,\n detachEvents,\n isCustomStyleTag,\n};\n","import $ from 'jquery';\nimport func from './core/func';\nimport lists from './core/lists';\nimport dom from './core/dom';\n\nexport default class Context {\n /**\n * @param {jQuery} $note\n * @param {Object} options\n */\n constructor($note, options) {\n this.$note = $note;\n\n this.memos = {};\n this.modules = {};\n this.layoutInfo = {};\n this.options = $.extend(true, {}, options);\n\n // init ui with options\n $.summernote.ui = $.summernote.ui_template(this.options);\n this.ui = $.summernote.ui;\n\n this.initialize();\n }\n\n /**\n * create layout and initialize modules and other resources\n */\n initialize() {\n this.layoutInfo = this.ui.createLayout(this.$note);\n this._initialize();\n this.$note.hide();\n return this;\n }\n\n /**\n * destroy modules and other resources and remove layout\n */\n destroy() {\n this._destroy();\n this.$note.removeData('summernote');\n this.ui.removeLayout(this.$note, this.layoutInfo);\n }\n\n /**\n * destory modules and other resources and initialize it again\n */\n reset() {\n const disabled = this.isDisabled();\n this.code(dom.emptyPara);\n this._destroy();\n this._initialize();\n\n if (disabled) {\n this.disable();\n }\n }\n\n _initialize() {\n // set own id\n this.options.id = func.uniqueId($.now());\n // set default container for tooltips, popovers, and dialogs\n this.options.container = this.options.container || this.layoutInfo.editor;\n\n // add optional buttons\n const buttons = $.extend({}, this.options.buttons);\n Object.keys(buttons).forEach((key) => {\n this.memo('button.' + key, buttons[key]);\n });\n\n const modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n // add and initialize modules\n Object.keys(modules).forEach((key) => {\n this.module(key, modules[key], true);\n });\n\n Object.keys(this.modules).forEach((key) => {\n this.initializeModule(key);\n });\n }\n\n _destroy() {\n // destroy modules with reversed order\n Object.keys(this.modules).reverse().forEach((key) => {\n this.removeModule(key);\n });\n\n Object.keys(this.memos).forEach((key) => {\n this.removeMemo(key);\n });\n // trigger custom onDestroy callback\n this.triggerEvent('destroy', this);\n }\n\n code(html) {\n const isActivated = this.invoke('codeview.isActivated');\n\n if (html === undefined) {\n this.invoke('codeview.sync');\n return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n } else {\n if (isActivated) {\n this.layoutInfo.codable.val(html);\n } else {\n this.layoutInfo.editable.html(html);\n }\n this.$note.val(html);\n this.triggerEvent('change', html, this.layoutInfo.editable);\n }\n }\n\n isDisabled() {\n return this.layoutInfo.editable.attr('contenteditable') === 'false';\n }\n\n enable() {\n this.layoutInfo.editable.attr('contenteditable', true);\n this.invoke('toolbar.activate', true);\n this.triggerEvent('disable', false);\n this.options.editing = true;\n }\n\n disable() {\n // close codeview if codeview is opend\n if (this.invoke('codeview.isActivated')) {\n this.invoke('codeview.deactivate');\n }\n this.layoutInfo.editable.attr('contenteditable', false);\n this.options.editing = false;\n this.invoke('toolbar.deactivate', true);\n\n this.triggerEvent('disable', true);\n }\n\n triggerEvent() {\n const namespace = lists.head(arguments);\n const args = lists.tail(lists.from(arguments));\n\n const callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n if (callback) {\n callback.apply(this.$note[0], args);\n }\n this.$note.trigger('summernote.' + namespace, args);\n }\n\n initializeModule(key) {\n const module = this.modules[key];\n module.shouldInitialize = module.shouldInitialize || func.ok;\n if (!module.shouldInitialize()) {\n return;\n }\n\n // initialize module\n if (module.initialize) {\n module.initialize();\n }\n\n // attach events\n if (module.events) {\n dom.attachEvents(this.$note, module.events);\n }\n }\n\n module(key, ModuleClass, withoutIntialize) {\n if (arguments.length === 1) {\n return this.modules[key];\n }\n\n this.modules[key] = new ModuleClass(this);\n\n if (!withoutIntialize) {\n this.initializeModule(key);\n }\n }\n\n removeModule(key) {\n const module = this.modules[key];\n if (module.shouldInitialize()) {\n if (module.events) {\n dom.detachEvents(this.$note, module.events);\n }\n\n if (module.destroy) {\n module.destroy();\n }\n }\n\n delete this.modules[key];\n }\n\n memo(key, obj) {\n if (arguments.length === 1) {\n return this.memos[key];\n }\n this.memos[key] = obj;\n }\n\n removeMemo(key) {\n if (this.memos[key] && this.memos[key].destroy) {\n this.memos[key].destroy();\n }\n\n delete this.memos[key];\n }\n\n /**\n * Some buttons need to change their visual style immediately once they get pressed\n */\n createInvokeHandlerAndUpdateState(namespace, value) {\n return (event) => {\n this.createInvokeHandler(namespace, value)(event);\n this.invoke('buttons.updateCurrentStyle');\n };\n }\n\n createInvokeHandler(namespace, value) {\n return (event) => {\n event.preventDefault();\n const $target = $(event.target);\n this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n };\n }\n\n invoke() {\n const namespace = lists.head(arguments);\n const args = lists.tail(lists.from(arguments));\n\n const splits = namespace.split('.');\n const hasSeparator = splits.length > 1;\n const moduleName = hasSeparator && lists.head(splits);\n const methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n\n const module = this.modules[moduleName || 'editor'];\n if (!moduleName && this[methodName]) {\n return this[methodName].apply(this, args);\n } else if (module && module[methodName] && module.shouldInitialize()) {\n return module[methodName].apply(module, args);\n }\n }\n}\n","import $ from 'jquery';\nimport env from './base/core/env';\nimport lists from './base/core/lists';\nimport Context from './base/Context';\n\n$.fn.extend({\n /**\n * Summernote API\n *\n * @param {Object|String}\n * @return {this}\n */\n summernote: function() {\n const type = $.type(lists.head(arguments));\n const isExternalAPICalled = type === 'string';\n const hasInitOptions = type === 'object';\n\n const options = $.extend({}, $.summernote.options, hasInitOptions ? lists.head(arguments) : {});\n\n // Update options\n options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n\n this.each((idx, note) => {\n const $note = $(note);\n if (!$note.data('summernote')) {\n const context = new Context($note, options);\n $note.data('summernote', context);\n $note.data('summernote').triggerEvent('init', context.layoutInfo);\n }\n });\n\n const $note = this.first();\n if ($note.length) {\n const context = $note.data('summernote');\n if (isExternalAPICalled) {\n return context.invoke.apply(context, lists.from(arguments));\n } else if (options.focus) {\n context.invoke('editor.focus');\n }\n }\n\n return this;\n },\n});\n","import $ from 'jquery';\nimport env from './env';\nimport func from './func';\nimport lists from './lists';\nimport dom from './dom';\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\nfunction textRangeToPoint(textRange, isStart) {\n let container = textRange.parentElement();\n let offset;\n\n const tester = document.body.createTextRange();\n let prevContainer;\n const childNodes = lists.from(container.childNodes);\n for (offset = 0; offset < childNodes.length; offset++) {\n if (dom.isText(childNodes[offset])) {\n continue;\n }\n tester.moveToElementText(childNodes[offset]);\n if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n break;\n }\n prevContainer = childNodes[offset];\n }\n\n if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n const textRangeStart = document.body.createTextRange();\n let curTextNode = null;\n textRangeStart.moveToElementText(prevContainer || container);\n textRangeStart.collapse(!prevContainer);\n curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n\n const pointTester = textRange.duplicate();\n pointTester.setEndPoint('StartToStart', textRangeStart);\n let textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n textCount -= curTextNode.nodeValue.length;\n curTextNode = curTextNode.nextSibling;\n }\n\n // [workaround] enforce IE to re-reference curTextNode, hack\n const dummy = curTextNode.nodeValue; // eslint-disable-line\n\n if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n textCount === curTextNode.nodeValue.length) {\n textCount -= curTextNode.nodeValue.length;\n curTextNode = curTextNode.nextSibling;\n }\n\n container = curTextNode;\n offset = textCount;\n }\n\n return {\n cont: container,\n offset: offset,\n };\n}\n\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\nfunction pointToTextRange(point) {\n const textRangeInfo = function(container, offset) {\n let node, isCollapseToStart;\n\n if (dom.isText(container)) {\n const prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n const prevContainer = lists.last(prevTextNodes).previousSibling;\n node = prevContainer || container.parentNode;\n offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n isCollapseToStart = !prevContainer;\n } else {\n node = container.childNodes[offset] || container;\n if (dom.isText(node)) {\n return textRangeInfo(node, 0);\n }\n\n offset = 0;\n isCollapseToStart = false;\n }\n\n return {\n node: node,\n collapseToStart: isCollapseToStart,\n offset: offset,\n };\n };\n\n const textRange = document.body.createTextRange();\n const info = textRangeInfo(point.node, point.offset);\n\n textRange.moveToElementText(info.node);\n textRange.collapse(info.collapseToStart);\n textRange.moveStart('character', info.offset);\n return textRange;\n}\n\n/**\n * Wrapped Range\n *\n * @constructor\n * @param {Node} sc - start container\n * @param {Number} so - start offset\n * @param {Node} ec - end container\n * @param {Number} eo - end offset\n */\nclass WrappedRange {\n constructor(sc, so, ec, eo) {\n this.sc = sc;\n this.so = so;\n this.ec = ec;\n this.eo = eo;\n\n // isOnEditable: judge whether range is on editable or not\n this.isOnEditable = this.makeIsOn(dom.isEditable);\n // isOnList: judge whether range is on list node or not\n this.isOnList = this.makeIsOn(dom.isList);\n // isOnAnchor: judge whether range is on anchor node or not\n this.isOnAnchor = this.makeIsOn(dom.isAnchor);\n // isOnCell: judge whether range is on cell node or not\n this.isOnCell = this.makeIsOn(dom.isCell);\n // isOnData: judge whether range is on data node or not\n this.isOnData = this.makeIsOn(dom.isData);\n }\n\n // nativeRange: get nativeRange from sc, so, ec, eo\n nativeRange() {\n if (env.isW3CRangeSupport) {\n const w3cRange = document.createRange();\n w3cRange.setStart(this.sc, this.sc.data && this.so > this.sc.data.length ? 0 : this.so);\n w3cRange.setEnd(this.ec, this.sc.data ? Math.min(this.eo, this.sc.data.length) : this.eo);\n\n return w3cRange;\n } else {\n const textRange = pointToTextRange({\n node: this.sc,\n offset: this.so,\n });\n\n textRange.setEndPoint('EndToEnd', pointToTextRange({\n node: this.ec,\n offset: this.eo,\n }));\n\n return textRange;\n }\n }\n\n getPoints() {\n return {\n sc: this.sc,\n so: this.so,\n ec: this.ec,\n eo: this.eo,\n };\n }\n\n getStartPoint() {\n return {\n node: this.sc,\n offset: this.so,\n };\n }\n\n getEndPoint() {\n return {\n node: this.ec,\n offset: this.eo,\n };\n }\n\n /**\n * select update visible range\n */\n select() {\n const nativeRng = this.nativeRange();\n if (env.isW3CRangeSupport) {\n const selection = document.getSelection();\n if (selection.rangeCount > 0) {\n selection.removeAllRanges();\n }\n selection.addRange(nativeRng);\n } else {\n nativeRng.select();\n }\n\n return this;\n }\n\n /**\n * Moves the scrollbar to start container(sc) of current range\n *\n * @return {WrappedRange}\n */\n scrollIntoView(container) {\n const height = $(container).height();\n if (container.scrollTop + height < this.sc.offsetTop) {\n container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n }\n\n return this;\n }\n\n /**\n * @return {WrappedRange}\n */\n normalize() {\n /**\n * @param {BoundaryPoint} point\n * @param {Boolean} isLeftToRight - true: prefer to choose right node\n * - false: prefer to choose left node\n * @return {BoundaryPoint}\n */\n const getVisiblePoint = function(point, isLeftToRight) {\n if (!point) {\n return point;\n }\n\n // Just use the given point [XXX:Adhoc]\n // - case 01. if the point is on the middle of the node\n // - case 02. if the point is on the right edge and prefer to choose left node\n // - case 03. if the point is on the left edge and prefer to choose right node\n // - case 04. if the point is on the right edge and prefer to choose right node but the node is void\n // - case 05. if the point is on the left edge and prefer to choose left node but the node is void\n // - case 06. if the point is on the block node and there is no children\n if (dom.isVisiblePoint(point)) {\n if (!dom.isEdgePoint(point) ||\n (dom.isRightEdgePoint(point) && !isLeftToRight) ||\n (dom.isLeftEdgePoint(point) && isLeftToRight) ||\n (dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling)) ||\n (dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling)) ||\n (dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n return point;\n }\n }\n\n // point on block's edge\n const block = dom.ancestor(point.node, dom.isBlock);\n let hasRightNode = false;\n\n if (!hasRightNode) {\n const prevPoint = dom.prevPoint(point) || { node: null };\n hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight;\n }\n\n let hasLeftNode = false;\n if (!hasLeftNode) {\n const nextPoint = dom.nextPoint(point) || { node: null };\n hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(nextPoint.node)) && isLeftToRight;\n }\n\n if (hasRightNode || hasLeftNode) {\n // returns point already on visible point\n if (dom.isVisiblePoint(point)) {\n return point;\n }\n // reverse direction\n isLeftToRight = !isLeftToRight;\n }\n\n const nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)\n : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n return nextPoint || point;\n };\n\n const endPoint = getVisiblePoint(this.getEndPoint(), false);\n const startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n return new WrappedRange(\n startPoint.node,\n startPoint.offset,\n endPoint.node,\n endPoint.offset\n );\n }\n\n /**\n * returns matched nodes on range\n *\n * @param {Function} [pred] - predicate function\n * @param {Object} [options]\n * @param {Boolean} [options.includeAncestor]\n * @param {Boolean} [options.fullyContains]\n * @return {Node[]}\n */\n nodes(pred, options) {\n pred = pred || func.ok;\n\n const includeAncestor = options && options.includeAncestor;\n const fullyContains = options && options.fullyContains;\n\n // TODO compare points and sort\n const startPoint = this.getStartPoint();\n const endPoint = this.getEndPoint();\n\n const nodes = [];\n const leftEdgeNodes = [];\n\n dom.walkPoint(startPoint, endPoint, function(point) {\n if (dom.isEditable(point.node)) {\n return;\n }\n\n let node;\n if (fullyContains) {\n if (dom.isLeftEdgePoint(point)) {\n leftEdgeNodes.push(point.node);\n }\n if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n node = point.node;\n }\n } else if (includeAncestor) {\n node = dom.ancestor(point.node, pred);\n } else {\n node = point.node;\n }\n\n if (node && pred(node)) {\n nodes.push(node);\n }\n }, true);\n\n return lists.unique(nodes);\n }\n\n /**\n * returns commonAncestor of range\n * @return {Element} - commonAncestor\n */\n commonAncestor() {\n return dom.commonAncestor(this.sc, this.ec);\n }\n\n /**\n * returns expanded range by pred\n *\n * @param {Function} pred - predicate function\n * @return {WrappedRange}\n */\n expand(pred) {\n const startAncestor = dom.ancestor(this.sc, pred);\n const endAncestor = dom.ancestor(this.ec, pred);\n\n if (!startAncestor && !endAncestor) {\n return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n }\n\n const boundaryPoints = this.getPoints();\n\n if (startAncestor) {\n boundaryPoints.sc = startAncestor;\n boundaryPoints.so = 0;\n }\n\n if (endAncestor) {\n boundaryPoints.ec = endAncestor;\n boundaryPoints.eo = dom.nodeLength(endAncestor);\n }\n\n return new WrappedRange(\n boundaryPoints.sc,\n boundaryPoints.so,\n boundaryPoints.ec,\n boundaryPoints.eo\n );\n }\n\n /**\n * @param {Boolean} isCollapseToStart\n * @return {WrappedRange}\n */\n collapse(isCollapseToStart) {\n if (isCollapseToStart) {\n return new WrappedRange(this.sc, this.so, this.sc, this.so);\n } else {\n return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n }\n }\n\n /**\n * splitText on range\n */\n splitText() {\n const isSameContainer = this.sc === this.ec;\n const boundaryPoints = this.getPoints();\n\n if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n this.ec.splitText(this.eo);\n }\n\n if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n boundaryPoints.sc = this.sc.splitText(this.so);\n boundaryPoints.so = 0;\n\n if (isSameContainer) {\n boundaryPoints.ec = boundaryPoints.sc;\n boundaryPoints.eo = this.eo - this.so;\n }\n }\n\n return new WrappedRange(\n boundaryPoints.sc,\n boundaryPoints.so,\n boundaryPoints.ec,\n boundaryPoints.eo\n );\n }\n\n /**\n * delete contents on range\n * @return {WrappedRange}\n */\n deleteContents() {\n if (this.isCollapsed()) {\n return this;\n }\n\n const rng = this.splitText();\n const nodes = rng.nodes(null, {\n fullyContains: true,\n });\n\n // find new cursor point\n const point = dom.prevPointUntil(rng.getStartPoint(), function(point) {\n return !lists.contains(nodes, point.node);\n });\n\n const emptyParents = [];\n $.each(nodes, function(idx, node) {\n // find empty parents\n const parent = node.parentNode;\n if (point.node !== parent && dom.nodeLength(parent) === 1) {\n emptyParents.push(parent);\n }\n dom.remove(node, false);\n });\n\n // remove empty parents\n $.each(emptyParents, function(idx, node) {\n dom.remove(node, false);\n });\n\n return new WrappedRange(\n point.node,\n point.offset,\n point.node,\n point.offset\n ).normalize();\n }\n\n /**\n * makeIsOn: return isOn(pred) function\n */\n makeIsOn(pred) {\n return function() {\n const ancestor = dom.ancestor(this.sc, pred);\n return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));\n };\n }\n\n /**\n * @param {Function} pred\n * @return {Boolean}\n */\n isLeftEdgeOf(pred) {\n if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n return false;\n }\n\n const node = dom.ancestor(this.sc, pred);\n return node && dom.isLeftEdgeOf(this.sc, node);\n }\n\n /**\n * returns whether range was collapsed or not\n */\n isCollapsed() {\n return this.sc === this.ec && this.so === this.eo;\n }\n\n /**\n * wrap inline nodes which children of body with paragraph\n *\n * @return {WrappedRange}\n */\n wrapBodyInlineWithPara() {\n if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n this.sc.innerHTML = dom.emptyPara;\n return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n }\n\n /**\n * [workaround] firefox often create range on not visible point. so normalize here.\n * - firefox: |

text

|\n * - chrome:

|text|

\n */\n const rng = this.normalize();\n if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n return rng;\n }\n\n // find inline top ancestor\n let topAncestor;\n if (dom.isInline(rng.sc)) {\n const ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n topAncestor = lists.last(ancestors);\n if (!dom.isInline(topAncestor)) {\n topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n }\n } else {\n topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n }\n\n if (topAncestor) {\n // siblings not in paragraph\n let inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n // wrap with paragraph\n if (inlineSiblings.length) {\n const para = dom.wrap(lists.head(inlineSiblings), 'p');\n dom.appendChildNodes(para, lists.tail(inlineSiblings));\n }\n }\n\n return this.normalize();\n }\n\n /**\n * insert node at current cursor\n *\n * @param {Node} node\n * @return {Node}\n */\n insertNode(node) {\n let rng = this;\n\n if (dom.isText(node) || dom.isInline(node)) {\n rng = this.wrapBodyInlineWithPara().deleteContents();\n }\n\n const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n if (info.rightNode) {\n info.rightNode.parentNode.insertBefore(node, info.rightNode);\n } else {\n info.container.appendChild(node);\n }\n\n return node;\n }\n\n /**\n * insert html at current cursor\n */\n pasteHTML(markup) {\n markup = $.trim(markup);\n\n const contentsContainer = $('
').html(markup)[0];\n let childNodes = lists.from(contentsContainer.childNodes);\n\n // const rng = this.wrapBodyInlineWithPara().deleteContents();\n const rng = this;\n\n if (rng.so >= 0) {\n childNodes = childNodes.reverse();\n }\n childNodes = childNodes.map(function(childNode) {\n return rng.insertNode(childNode);\n });\n if (rng.so > 0) {\n childNodes = childNodes.reverse();\n }\n return childNodes;\n }\n\n /**\n * returns text in range\n *\n * @return {String}\n */\n toString() {\n const nativeRng = this.nativeRange();\n return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n }\n\n /**\n * returns range for word before cursor\n *\n * @param {Boolean} [findAfter] - find after cursor, default: false\n * @return {WrappedRange}\n */\n getWordRange(findAfter) {\n let endPoint = this.getEndPoint();\n\n if (!dom.isCharPoint(endPoint)) {\n return this;\n }\n\n const startPoint = dom.prevPointUntil(endPoint, function(point) {\n return !dom.isCharPoint(point);\n });\n\n if (findAfter) {\n endPoint = dom.nextPointUntil(endPoint, function(point) {\n return !dom.isCharPoint(point);\n });\n }\n\n return new WrappedRange(\n startPoint.node,\n startPoint.offset,\n endPoint.node,\n endPoint.offset\n );\n }\n\n /**\n * returns range for words before cursor\n *\n * @param {Boolean} [findAfter] - find after cursor, default: false\n * @return {WrappedRange}\n */\n getWordsRange(findAfter) {\n var endPoint = this.getEndPoint();\n\n var isNotTextPoint = function(point) {\n return !dom.isCharPoint(point) && !dom.isSpacePoint(point);\n };\n\n if (isNotTextPoint(endPoint)) {\n return this;\n }\n\n var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint);\n\n if (findAfter) {\n endPoint = dom.nextPointUntil(endPoint, isNotTextPoint);\n }\n\n return new WrappedRange(\n startPoint.node,\n startPoint.offset,\n endPoint.node,\n endPoint.offset\n );\n }\n\n /**\n * returns range for words before cursor that match with a Regex\n *\n * example:\n * range: 'hi @Peter Pan'\n * regex: '/@[a-z ]+/i'\n * return range: '@Peter Pan'\n *\n * @param {RegExp} [regex]\n * @return {WrappedRange|null}\n */\n getWordsMatchRange(regex) {\n var endPoint = this.getEndPoint();\n\n var startPoint = dom.prevPointUntil(endPoint, function(point) {\n if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) {\n return true;\n }\n var rng = new WrappedRange(\n point.node,\n point.offset,\n endPoint.node,\n endPoint.offset\n );\n var result = regex.exec(rng.toString());\n return result && result.index === 0;\n });\n\n var rng = new WrappedRange(\n startPoint.node,\n startPoint.offset,\n endPoint.node,\n endPoint.offset\n );\n\n var text = rng.toString();\n var result = regex.exec(text);\n\n if (result && result[0].length === text.length) {\n return rng;\n } else {\n return null;\n }\n }\n\n /**\n * create offsetPath bookmark\n *\n * @param {Node} editable\n */\n bookmark(editable) {\n return {\n s: {\n path: dom.makeOffsetPath(editable, this.sc),\n offset: this.so,\n },\n e: {\n path: dom.makeOffsetPath(editable, this.ec),\n offset: this.eo,\n },\n };\n }\n\n /**\n * create offsetPath bookmark base on paragraph\n *\n * @param {Node[]} paras\n */\n paraBookmark(paras) {\n return {\n s: {\n path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n offset: this.so,\n },\n e: {\n path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n offset: this.eo,\n },\n };\n }\n\n /**\n * getClientRects\n * @return {Rect[]}\n */\n getClientRects() {\n const nativeRng = this.nativeRange();\n return nativeRng.getClientRects();\n }\n}\n\n/**\n * Data structure\n * * BoundaryPoint: a point of dom tree\n * * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\nexport default {\n /**\n * create Range Object From arguments or Browser Selection\n *\n * @param {Node} sc - start container\n * @param {Number} so - start offset\n * @param {Node} ec - end container\n * @param {Number} eo - end offset\n * @return {WrappedRange}\n */\n create: function(sc, so, ec, eo) {\n if (arguments.length === 4) {\n return new WrappedRange(sc, so, ec, eo);\n } else if (arguments.length === 2) { // collapsed\n ec = sc;\n eo = so;\n return new WrappedRange(sc, so, ec, eo);\n } else {\n let wrappedRange = this.createFromSelection();\n\n if (!wrappedRange && arguments.length === 1) {\n let bodyElement = arguments[0];\n if (dom.isEditable(bodyElement)) {\n bodyElement = bodyElement.lastChild;\n }\n return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML);\n }\n return wrappedRange;\n }\n },\n\n createFromBodyElement: function(bodyElement, isCollapseToStart = false) {\n var wrappedRange = this.createFromNode(bodyElement);\n return wrappedRange.collapse(isCollapseToStart);\n },\n\n createFromSelection: function() {\n let sc, so, ec, eo;\n if (env.isW3CRangeSupport) {\n const selection = document.getSelection();\n if (!selection || selection.rangeCount === 0) {\n return null;\n } else if (dom.isBody(selection.anchorNode)) {\n // Firefox: returns entire body as range on initialization.\n // We won't never need it.\n return null;\n }\n\n const nativeRng = selection.getRangeAt(0);\n sc = nativeRng.startContainer;\n so = nativeRng.startOffset;\n ec = nativeRng.endContainer;\n eo = nativeRng.endOffset;\n } else { // IE8: TextRange\n const textRange = document.selection.createRange();\n const textRangeEnd = textRange.duplicate();\n textRangeEnd.collapse(false);\n const textRangeStart = textRange;\n textRangeStart.collapse(true);\n\n let startPoint = textRangeToPoint(textRangeStart, true);\n let endPoint = textRangeToPoint(textRangeEnd, false);\n\n // same visible point case: range was collapsed.\n if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n endPoint.node.nextSibling === startPoint.node) {\n startPoint = endPoint;\n }\n\n sc = startPoint.cont;\n so = startPoint.offset;\n ec = endPoint.cont;\n eo = endPoint.offset;\n }\n\n return new WrappedRange(sc, so, ec, eo);\n },\n\n /**\n * @method\n *\n * create WrappedRange from node\n *\n * @param {Node} node\n * @return {WrappedRange}\n */\n createFromNode: function(node) {\n let sc = node;\n let so = 0;\n let ec = node;\n let eo = dom.nodeLength(ec);\n\n // browsers can't target a picture or void node\n if (dom.isVoid(sc)) {\n so = dom.listPrev(sc).length - 1;\n sc = sc.parentNode;\n }\n if (dom.isBR(ec)) {\n eo = dom.listPrev(ec).length - 1;\n ec = ec.parentNode;\n } else if (dom.isVoid(ec)) {\n eo = dom.listPrev(ec).length;\n ec = ec.parentNode;\n }\n\n return this.create(sc, so, ec, eo);\n },\n\n /**\n * create WrappedRange from node after position\n *\n * @param {Node} node\n * @return {WrappedRange}\n */\n createFromNodeBefore: function(node) {\n return this.createFromNode(node).collapse(true);\n },\n\n /**\n * create WrappedRange from node after position\n *\n * @param {Node} node\n * @return {WrappedRange}\n */\n createFromNodeAfter: function(node) {\n return this.createFromNode(node).collapse();\n },\n\n /**\n * @method\n *\n * create WrappedRange from bookmark\n *\n * @param {Node} editable\n * @param {Object} bookmark\n * @return {WrappedRange}\n */\n createFromBookmark: function(editable, bookmark) {\n const sc = dom.fromOffsetPath(editable, bookmark.s.path);\n const so = bookmark.s.offset;\n const ec = dom.fromOffsetPath(editable, bookmark.e.path);\n const eo = bookmark.e.offset;\n return new WrappedRange(sc, so, ec, eo);\n },\n\n /**\n * @method\n *\n * create WrappedRange from paraBookmark\n *\n * @param {Object} bookmark\n * @param {Node[]} paras\n * @return {WrappedRange}\n */\n createFromParaBookmark: function(bookmark, paras) {\n const so = bookmark.s.offset;\n const eo = bookmark.e.offset;\n const sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n const ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n\n return new WrappedRange(sc, so, ec, eo);\n },\n};\n","import lists from './lists';\nimport func from './func';\n\nconst KEY_MAP = {\n 'BACKSPACE': 8,\n 'TAB': 9,\n 'ENTER': 13,\n 'SPACE': 32,\n 'DELETE': 46,\n\n // Arrow\n 'LEFT': 37,\n 'UP': 38,\n 'RIGHT': 39,\n 'DOWN': 40,\n\n // Number: 0-9\n 'NUM0': 48,\n 'NUM1': 49,\n 'NUM2': 50,\n 'NUM3': 51,\n 'NUM4': 52,\n 'NUM5': 53,\n 'NUM6': 54,\n 'NUM7': 55,\n 'NUM8': 56,\n\n // Alphabet: a-z\n 'B': 66,\n 'E': 69,\n 'I': 73,\n 'J': 74,\n 'K': 75,\n 'L': 76,\n 'R': 82,\n 'S': 83,\n 'U': 85,\n 'V': 86,\n 'Y': 89,\n 'Z': 90,\n\n 'SLASH': 191,\n 'LEFTBRACKET': 219,\n 'BACKSLASH': 220,\n 'RIGHTBRACKET': 221,\n\n // Navigation\n 'HOME': 36,\n 'END': 35,\n 'PAGEUP': 33,\n 'PAGEDOWN': 34,\n};\n\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\nexport default {\n /**\n * @method isEdit\n *\n * @param {Number} keyCode\n * @return {Boolean}\n */\n isEdit: (keyCode) => {\n return lists.contains([\n KEY_MAP.BACKSPACE,\n KEY_MAP.TAB,\n KEY_MAP.ENTER,\n KEY_MAP.SPACE,\n KEY_MAP.DELETE,\n ], keyCode);\n },\n /**\n * @method isMove\n *\n * @param {Number} keyCode\n * @return {Boolean}\n */\n isMove: (keyCode) => {\n return lists.contains([\n KEY_MAP.LEFT,\n KEY_MAP.UP,\n KEY_MAP.RIGHT,\n KEY_MAP.DOWN,\n ], keyCode);\n },\n /**\n * @method isNavigation\n *\n * @param {Number} keyCode\n * @return {Boolean}\n */\n isNavigation: (keyCode) => {\n return lists.contains([\n KEY_MAP.HOME,\n KEY_MAP.END,\n KEY_MAP.PAGEUP,\n KEY_MAP.PAGEDOWN,\n ], keyCode);\n },\n /**\n * @property {Object} nameFromCode\n * @property {String} nameFromCode.8 \"BACKSPACE\"\n */\n nameFromCode: func.invertObject(KEY_MAP),\n code: KEY_MAP,\n};\n","import $ from 'jquery';\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\nexport function readFileAsDataURL(file) {\n return $.Deferred((deferred) => {\n $.extend(new FileReader(), {\n onload: (e) => {\n const dataURL = e.target.result;\n deferred.resolve(dataURL);\n },\n onerror: (err) => {\n deferred.reject(err);\n },\n }).readAsDataURL(file);\n }).promise();\n}\n\n/**\n * @method createImage\n *\n * create `` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\nexport function createImage(url) {\n return $.Deferred((deferred) => {\n const $img = $('');\n\n $img.one('load', () => {\n $img.off('error abort');\n deferred.resolve($img);\n }).one('error abort', () => {\n $img.off('load').detach();\n deferred.reject($img);\n }).css({\n display: 'none',\n }).appendTo(document.body).attr('src', url);\n }).promise();\n}\n","import range from '../core/range';\n\nexport default class History {\n constructor(context) {\n this.stack = [];\n this.stackOffset = -1;\n this.context = context;\n this.$editable = context.layoutInfo.editable;\n this.editable = this.$editable[0];\n }\n\n makeSnapshot() {\n const rng = range.create(this.editable);\n const emptyBookmark = { s: { path: [], offset: 0 }, e: { path: [], offset: 0 } };\n\n return {\n contents: this.$editable.html(),\n bookmark: ((rng && rng.isOnEditable()) ? rng.bookmark(this.editable) : emptyBookmark),\n };\n }\n\n applySnapshot(snapshot) {\n if (snapshot.contents !== null) {\n this.$editable.html(snapshot.contents);\n }\n if (snapshot.bookmark !== null) {\n range.createFromBookmark(this.editable, snapshot.bookmark).select();\n }\n }\n\n /**\n * @method rewind\n * Rewinds the history stack back to the first snapshot taken.\n * Leaves the stack intact, so that \"Redo\" can still be used.\n */\n rewind() {\n // Create snap shot if not yet recorded\n if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n this.recordUndo();\n }\n\n // Return to the first available snapshot.\n this.stackOffset = 0;\n\n // Apply that snapshot.\n this.applySnapshot(this.stack[this.stackOffset]);\n }\n\n /**\n * @method commit\n * Resets history stack, but keeps current editor's content.\n */\n commit() {\n // Clear the stack.\n this.stack = [];\n\n // Restore stackOffset to its original value.\n this.stackOffset = -1;\n\n // Record our first snapshot (of nothing).\n this.recordUndo();\n }\n\n /**\n * @method reset\n * Resets the history stack completely; reverting to an empty editor.\n */\n reset() {\n // Clear the stack.\n this.stack = [];\n\n // Restore stackOffset to its original value.\n this.stackOffset = -1;\n\n // Clear the editable area.\n this.$editable.html('');\n\n // Record our first snapshot (of nothing).\n this.recordUndo();\n }\n\n /**\n * undo\n */\n undo() {\n // Create snap shot if not yet recorded\n if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n this.recordUndo();\n }\n\n if (this.stackOffset > 0) {\n this.stackOffset--;\n this.applySnapshot(this.stack[this.stackOffset]);\n }\n }\n\n /**\n * redo\n */\n redo() {\n if (this.stack.length - 1 > this.stackOffset) {\n this.stackOffset++;\n this.applySnapshot(this.stack[this.stackOffset]);\n }\n }\n\n /**\n * recorded undo\n */\n recordUndo() {\n this.stackOffset++;\n\n // Wash out stack after stackOffset\n if (this.stack.length > this.stackOffset) {\n this.stack = this.stack.slice(0, this.stackOffset);\n }\n\n // Create new snapshot and push it to the end\n this.stack.push(this.makeSnapshot());\n\n // If the stack size reachs to the limit, then slice it\n if (this.stack.length > this.context.options.historyLimit) {\n this.stack.shift();\n this.stackOffset -= 1;\n }\n }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class Style {\n /**\n * @method jQueryCSS\n *\n * [workaround] for old jQuery\n * passing an array of style properties to .css()\n * will result in an object of property-value pairs.\n * (compability with version < 1.9)\n *\n * @private\n * @param {jQuery} $obj\n * @param {Array} propertyNames - An array of one or more CSS properties.\n * @return {Object}\n */\n jQueryCSS($obj, propertyNames) {\n if (env.jqueryVersion < 1.9) {\n const result = {};\n $.each(propertyNames, (idx, propertyName) => {\n result[propertyName] = $obj.css(propertyName);\n });\n return result;\n }\n return $obj.css(propertyNames);\n }\n\n /**\n * returns style object from node\n *\n * @param {jQuery} $node\n * @return {Object}\n */\n fromNode($node) {\n const properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n const styleInfo = this.jQueryCSS($node, properties) || {};\n\n const fontSize = $node[0].style.fontSize || styleInfo['font-size'];\n\n styleInfo['font-size'] = parseInt(fontSize, 10);\n styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/);\n\n return styleInfo;\n }\n\n /**\n * paragraph level style\n *\n * @param {WrappedRange} rng\n * @param {Object} styleInfo\n */\n stylePara(rng, styleInfo) {\n $.each(rng.nodes(dom.isPara, {\n includeAncestor: true,\n }), (idx, para) => {\n $(para).css(styleInfo);\n });\n }\n\n /**\n * insert and returns styleNodes on range.\n *\n * @param {WrappedRange} rng\n * @param {Object} [options] - options for styleNodes\n * @param {String} [options.nodeName] - default: `SPAN`\n * @param {Boolean} [options.expandClosestSibling] - default: `false`\n * @param {Boolean} [options.onlyPartialContains] - default: `false`\n * @return {Node[]}\n */\n styleNodes(rng, options) {\n rng = rng.splitText();\n\n const nodeName = (options && options.nodeName) || 'SPAN';\n const expandClosestSibling = !!(options && options.expandClosestSibling);\n const onlyPartialContains = !!(options && options.onlyPartialContains);\n\n if (rng.isCollapsed()) {\n return [rng.insertNode(dom.create(nodeName))];\n }\n\n let pred = dom.makePredByNodeName(nodeName);\n const nodes = rng.nodes(dom.isText, {\n fullyContains: true,\n }).map((text) => {\n return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n });\n\n if (expandClosestSibling) {\n if (onlyPartialContains) {\n const nodesInRange = rng.nodes();\n // compose with partial contains predication\n pred = func.and(pred, (node) => {\n return lists.contains(nodesInRange, node);\n });\n }\n\n return nodes.map((node) => {\n const siblings = dom.withClosestSiblings(node, pred);\n const head = lists.head(siblings);\n const tails = lists.tail(siblings);\n $.each(tails, (idx, elem) => {\n dom.appendChildNodes(head, elem.childNodes);\n dom.remove(elem);\n });\n return lists.head(siblings);\n });\n } else {\n return nodes;\n }\n }\n\n /**\n * get current style on cursor\n *\n * @param {WrappedRange} rng\n * @return {Object} - object contains style properties.\n */\n current(rng) {\n const $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n let styleInfo = this.fromNode($cont);\n\n // document.queryCommandState for toggle state\n // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n try {\n styleInfo = $.extend(styleInfo, {\n 'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n 'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n 'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n 'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n 'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n 'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n 'font-family': document.queryCommandValue('fontname') || styleInfo['font-family'],\n });\n } catch (e) {\n // eslint-disable-next-line\n }\n\n // list-style-type to list-style(unordered, ordered)\n if (!rng.isOnList()) {\n styleInfo['list-style'] = 'none';\n } else {\n const orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n const isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1;\n styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n }\n\n const para = dom.ancestor(rng.sc, dom.isPara);\n if (para && para.style['line-height']) {\n styleInfo['line-height'] = para.style.lineHeight;\n } else {\n const lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n styleInfo['line-height'] = lineHeight.toFixed(1);\n }\n\n styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n styleInfo.range = rng;\n\n return styleInfo;\n }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport func from '../core/func';\nimport dom from '../core/dom';\nimport range from '../core/range';\n\nexport default class Bullet {\n /**\n * toggle ordered list\n */\n insertOrderedList(editable) {\n this.toggleList('OL', editable);\n }\n\n /**\n * toggle unordered list\n */\n insertUnorderedList(editable) {\n this.toggleList('UL', editable);\n }\n\n /**\n * indent\n */\n indent(editable) {\n const rng = range.create(editable).wrapBodyInlineWithPara();\n\n const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n $.each(clustereds, (idx, paras) => {\n const head = lists.head(paras);\n if (dom.isLi(head)) {\n const previousList = this.findList(head.previousSibling);\n if (previousList) {\n paras\n .map(para => previousList.appendChild(para));\n } else {\n this.wrapList(paras, head.parentNode.nodeName);\n paras\n .map((para) => para.parentNode)\n .map((para) => this.appendToPrevious(para));\n }\n } else {\n $.each(paras, (idx, para) => {\n $(para).css('marginLeft', (idx, val) => {\n return (parseInt(val, 10) || 0) + 25;\n });\n });\n }\n });\n\n rng.select();\n }\n\n /**\n * outdent\n */\n outdent(editable) {\n const rng = range.create(editable).wrapBodyInlineWithPara();\n\n const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n $.each(clustereds, (idx, paras) => {\n const head = lists.head(paras);\n if (dom.isLi(head)) {\n this.releaseList([paras]);\n } else {\n $.each(paras, (idx, para) => {\n $(para).css('marginLeft', (idx, val) => {\n val = (parseInt(val, 10) || 0);\n return val > 25 ? val - 25 : '';\n });\n });\n }\n });\n\n rng.select();\n }\n\n /**\n * toggle list\n *\n * @param {String} listName - OL or UL\n */\n toggleList(listName, editable) {\n const rng = range.create(editable).wrapBodyInlineWithPara();\n\n let paras = rng.nodes(dom.isPara, { includeAncestor: true });\n const bookmark = rng.paraBookmark(paras);\n const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n // paragraph to list\n if (lists.find(paras, dom.isPurePara)) {\n let wrappedParas = [];\n $.each(clustereds, (idx, paras) => {\n wrappedParas = wrappedParas.concat(this.wrapList(paras, listName));\n });\n paras = wrappedParas;\n // list to paragraph or change list style\n } else {\n const diffLists = rng.nodes(dom.isList, {\n includeAncestor: true,\n }).filter((listNode) => {\n return !$.nodeName(listNode, listName);\n });\n\n if (diffLists.length) {\n $.each(diffLists, (idx, listNode) => {\n dom.replace(listNode, listName);\n });\n } else {\n paras = this.releaseList(clustereds, true);\n }\n }\n\n range.createFromParaBookmark(bookmark, paras).select();\n }\n\n /**\n * @param {Node[]} paras\n * @param {String} listName\n * @return {Node[]}\n */\n wrapList(paras, listName) {\n const head = lists.head(paras);\n const last = lists.last(paras);\n\n const prevList = dom.isList(head.previousSibling) && head.previousSibling;\n const nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n const listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n // P to LI\n paras = paras.map((para) => {\n return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n });\n\n // append to list(