{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///external \"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/styles/summernote-bs3.scss","webpack:///./src/js/bs3/ui.js","webpack:///./src/js/bs3/settings.js"],"names":["Renderer","constructor","markup","children","options","callback","render","$parent","$node","$","contents","html","className","addClass","data","each","k","v","attr","click","on","$container","find","forEach","child","length","append","create","arguments","Array","isArray","summernote","lang","extend","font","bold","italic","underline","clear","height","name","strikethrough","subscript","superscript","size","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","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","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","uniqueId","prefix","id","rect2bnd","rect","$document","top","scrollTop","scrollLeft","bottom","invertObject","inverted","key","hasOwnProperty","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","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","Object","keys","detachEvents","off","isCustomStyleTag","classList","blank","emptyPara","isBlock","isDiv","isBR","isSpan","isB","isU","isS","isI","isImg","isEmptyAnchor","Context","$note","ui","memos","modules","layoutInfo","initialize","createLayout","_initialize","hide","destroy","_destroy","removeData","removeLayout","disabled","isDisabled","code","dom","disable","buttons","plugins","module","initializeModule","removeModule","removeMemo","triggerEvent","isActivated","undefined","codable","editable","enable","callbacks","trigger","shouldInitialize","ModuleClass","withoutIntialize","createInvokeHandlerAndUpdateState","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","nativeRange","w3cRange","setStart","setEnd","Math","min","getPoints","getStartPoint","getEndPoint","nativeRng","selection","getSelection","rangeCount","removeAllRanges","addRange","scrollIntoView","offsetTop","abs","normalize","getVisiblePoint","isLeftToRight","block","isCollapsed","includeAncestor","fullyContains","leftEdgeNodes","expand","startAncestor","endAncestor","boundaryPoints","isSameContainer","deleteContents","rng","emptyParents","wrapBodyInlineWithPara","inlineSiblings","concat","para","insertNode","pasteHTML","contentsContainer","toString","getWordRange","findAfter","bookmark","s","path","e","paraBookmark","paras","getClientRects","wrappedRange","createFromSelection","createFromNode","anchorNode","getRangeAt","startContainer","startOffset","endContainer","endOffset","textRangeEnd","isTextNode","createFromNodeBefore","createFromNodeAfter","createFromBookmark","createFromParaBookmark","KEY_MAP","isEdit","keyCode","BACKSPACE","TAB","ENTER","SPACE","DELETE","isMove","LEFT","UP","RIGHT","DOWN","nameFromCode","readFileAsDataURL","file","Deferred","deferred","FileReader","onload","dataURL","resolve","onerror","err","reject","readAsDataURL","promise","createImage","$img","one","detach","css","display","appendTo","History","$editable","stack","stackOffset","makeSnapshot","range","emptyBookmark","applySnapshot","snapshot","rewind","recordUndo","commit","Style","jQueryCSS","$obj","propertyNames","propertyName","fromNode","properties","styleInfo","parseInt","stylePara","styleNodes","expandClosestSibling","onlyPartialContains","nodesInRange","tails","elem","$cont","queryCommandState","queryCommandValue","orderedTypes","isUnordered","lineHeight","toFixed","anchor","Bullet","insertOrderedList","toggleList","insertUnorderedList","clustereds","previousList","findList","wrapList","appendToPrevious","releaseList","listName","wrappedParas","diffLists","listNode","prevList","nextList","isEscapseToBody","releasedParas","headList","parentItem","newList","findNextSiblings","lastList","middleList","rootLists","rootList","listNodes","Typing","bullet","insertTab","tabsize","tab","insertParagraph","nextPara","blockquoteBreakingLevel","emptyAnchors","TableResultAction","where","domTable","_startPoint","_virtualTable","_actionCellList","setStartPoint","tagName","console","error","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","addRow","currentTr","trAttributes","recoverAttributes","vTable","actions","idCell","currentCell","tdAttributes","baseCellTr","isTopFromRowSpan","newTd","removeAttr","setAttribute","before","lastTrIndex","after","addCol","rowsGroup","actionIndex","resultStr","attrList","specified","deleteRow","cellPos","index","virtualPosition","virtualTable","hasRowspan","nextRow","cloneRow","removeAttribute","deleteCol","hasColspan","createTable","colCount","rowCount","tds","tdHTML","idxCol","trs","trHTML","idxRow","$table","tableClassName","deleteTable","KEY_BOGUS","Editor","$editor","editor","lastRange","typing","untab","formatPara","insertHorizontalRule","commands","sCmd","beforeCommand","execCommand","afterCommand","wrapCommand","fontStyling","fontSize","formatBlock","isLimited","getLastRange","setLastRange","insertText","textNode","onApplyCustomStyle","call","onFormatBlock","hrNode","createLink","linkInfo","linkUrl","linkText","isNewWindow","additionalTextLength","isTextChanged","onCreateLink","anchors","startRange","endRange","colorInfo","foreColor","backColor","insertTable","dim","dimension","removeMedia","restoreTarget","floatMe","toggleClass","resize","isDefaultPrevented","handleKeyMap","preventDefaultEditableShortCuts","spellCheck","airMode","outerWidth","maxHeight","minHeight","keyMap","metaKey","ctrlKey","altKey","shiftKey","keyName","eventName","pad","maxTextLength","saveRange","thenCollapse","restoreRange","saveTarget","clearTarget","currentStyle","styleFromNode","isPreventTrigger","normalizeContent","tabSize","insertImage","src","param","then","$image","show","insertImagesAsDataURL","files","filename","maximumImageFileSize","insertImagesOrCallback","onImageUpload","getSelectedText","currentRange","spans","firstSpan","getLinkInfo","$anchor","resizeTo","bKeepRatio","imageSize","newRatio","y","x","ratio","hasFocus","is","empty","Clipboard","pasteByEvent","bind","clipboardData","originalEvent","items","kind","getAsFile","Dropzone","$eventListener","documentEventHandlers","$dropzone","prependTo","disableDragAndDrop","attachDragAndDropEvent","$dropzoneMessage","onDragenter","isCodeview","hasEditorSize","add","onDragleave","removeClass","onDrop","dataTransfer","types","content","getData","substr","CodeView","$codable","sync","save","toggle","deactivate","activate","purify","codeviewFilter","codeviewFilterRegex","codeviewIframeFilter","whitelist","codeviewIframeWhitelistSrc","codeviewIframeWhitelistSrcBase","tag","RegExp","prettifyHtml","cmEditor","fromTextArea","codemirror","tern","server","TernServer","ternServer","cm","updateArgHints","getValue","setSize","toTextArea","isChange","EDITABLE_PADDING","Statusbar","$statusbar","statusbar","disableResizeEditor","stopPropagation","editableTop","onMouseMove","clientY","minheight","max","Fullscreen","$toolbar","toolbar","$window","$scrollbar","onResize","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","linkTargetBlank","wordRange","AutoSync","AutoReplace","PERIOD","COMMA","SEMICOLON","SLASH","previousKeydownCode","lastWord","jQuery","Node","Placeholder","inheritPlaceholder","isShow","Buttons","invertedKeyMap","representShortcut","editorMethod","button","o","addToolbarButtons","addImagePopoverButtons","addLinkPopoverButtons","addTablePopoverButtons","fontInstalledMap","fontNamesIgnoreCheck","isFontDeservedToAdd","colorPalette","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","eraser","addDefaultFonts","fontname","fontNames","dropdownCheck","checkClassName","menuCheck","fontSizes","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","build","groups","groupIdx","groupLen","group","groupName","$group","btn","updateCurrentStyle","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","zIndex","marginTop","updateFullscreen","updateCodeview","isIncludeCodeview","$btn","toggleBtn","LinkDialog","$body","dialogsInBody","disableLinkTarget","checkbox","checked","buttonClass","footer","$dialog","dialog","fade","dialogsFade","hideDialog","bindEnterKey","$input","toggleLinkBtn","$linkBtn","$linkText","$linkUrl","showLinkDialog","$openInNewWindow","onDialogShown","isNewWindowChecked","prop","onDialogHidden","state","showDialog","LinkPopover","popover","$popover","$content","href","ImageDialog","imageLimitation","unit","floor","log","readableSize","pow","showImageDialog","onImageLinkInsert","$imageInput","$imageUrl","$imageBtn","replaceWith","ImagePopover","posEditor","popatmouse","TablePopover","VideoDialog","createVideoNode","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","$videoUrl","$videoBtn","HelpDialog","createShortcutList","command","$row","showHelpDialog","AIR_MODE_POPOVER_X_OFFSET","AirPopover","relatedTarget","air","bnd","POPOVER_DIST","HintPopover","hint","direction","hintDirection","hints","hideArrow","selectItem","innerHeight","moveDown","$current","$next","$nextGroup","moveUp","$prev","$prevGroup","nodeFromItem","createItemTemplates","hintIdx","searchKeyword","search","createGroup","version","Codeview","styleWithSpan","textareaAutoSync","onBeforeCommand","onBlur","onBlurCodeview","onChange","onChangeCodeview","onEnter","onFocus","onImageUploadError","onInit","onKeydown","onKeyup","onMousedown","onMouseup","onPaste","onScroll","mode","htmlMode","lineNumbers","pc","mac","renderer","airEditor","airEditable","option","dataValue","dataOption","caret","rowSize","colSize","colorName","placement","iconClassName","isEnable","isActive","modal"],"mappings":"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","file":"summernote.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 },\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 },\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: 'Foreground 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 },\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 || isEdge) ? '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),\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","/**\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 * 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 (obj.hasOwnProperty(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 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 (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 } else {\n node = point.node;\n offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\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 * @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 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.ui = $.summernote.ui;\n this.$note = $note;\n\n this.memos = {};\n this.modules = {};\n this.layoutInfo = {};\n this.options = options;\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, this.options);\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 // 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 }\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.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 // 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 if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\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 // 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 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 const rng = this.wrapBodyInlineWithPara().deleteContents();\n const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\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 const contentsContainer = $('
').html(markup)[0];\n let childNodes = lists.from(contentsContainer.childNodes);\n const rng = this.wrapBodyInlineWithPara().deleteContents();\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 * 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 if (!wrappedRange && arguments.length === 1) {\n wrappedRange = this.createFromNode(arguments[0]);\n return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n }\n return wrappedRange;\n }\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\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 * @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($editable) {\n this.stack = [];\n this.stackOffset = -1;\n this.$editable = $editable;\n this.editable = $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}\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 styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\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\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(