{"version":3,"sources":["webpack:///./node_modules/devextreme-quill/dist/dx-quill.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__importDefault","this","mod","fast_diff_1","lodash_clonedeep_1","lodash_isequal_1","AttributeMap_1","Op_1","NULL_CHARACTER","String","fromCharCode","Delta","ops","Array","isArray","insert","arg","attributes","newOp","length","keys","push","delete","retain","index","lastOp","default","unshift","splice","chop","pop","filter","predicate","forEach","map","partition","passed","failed","op","reduce","initialValue","changeLength","elem","slice","start","end","Infinity","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","length_1","Math","min","thisOp","otherOp","rest","concat","diff","cursor","strings","Error","join","retDelta","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","indexOf","invert","base","inverted","baseIndex","length_2","baseOp","transform","priority","transformPosition","length_3","offset","length_4","nextType","Op","AttributeMap","__webpack_exports__","globalRegistry","expandConfig","overload","Quill","quill_delta__WEBPACK_IMPORTED_MODULE_0__","quill_delta__WEBPACK_IMPORTED_MODULE_0___default","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default","lodash_merge__WEBPACK_IMPORTED_MODULE_2__","lodash_merge__WEBPACK_IMPORTED_MODULE_2___default","parchment__WEBPACK_IMPORTED_MODULE_3__","_editor__WEBPACK_IMPORTED_MODULE_4__","_emitter__WEBPACK_IMPORTED_MODULE_5__","_module__WEBPACK_IMPORTED_MODULE_6__","_selection__WEBPACK_IMPORTED_MODULE_7__","_instances__WEBPACK_IMPORTED_MODULE_8__","_logger__WEBPACK_IMPORTED_MODULE_9__","_theme__WEBPACK_IMPORTED_MODULE_10__","_typeof","obj","constructor","_defineProperty","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","debug","uiClass","container","_this2","options","arguments","error","html","innerHTML","trim","classList","add","set","root","addContainer","scrollingContainer","emitter","ScrollBlot","registry","query","blotName","scroll","editor","selection","theme","keyboard","addModule","clipboard","history","uploader","init","on","events","EDITOR_CHANGE","type","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","source","mutations","oldRange","lastRange","newRange","getRange","selectionInfo","modify","update","contents","convert","text","setContents","clear","placeholder","setAttribute","readOnly","disable","allowReadOnlyEdits","limit","level","node","find","imports","path","_this","overwrite","attrName","register","warn","refNode","className","document","createElement","insertBefore","setRange","_this3","_overload2","deleteText","enable","modifier","enabled","scrollTop","focus","scrollIntoView","_this4","sources","API","range","getSelection","change","a","BLOCK","formatLine","format","formatText","setSelection","SILENT","formats","_this5","_overload4","_this6","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","_overload7","_overload8","getContents","getFormat","blot","leaf","Number","MAX_VALUE","lines","_overload9","_overload10","getHTML","_overload11","_overload12","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload14","insertText","isEnabled","_this$emitter","off","apply","_this$emitter2","_this$emitter3","once","_this9","_overload16","removeFormat","_this10","delete1","applied","applyDelta","delete2","_overload18","max","USER","_this11","userConfig","DEFAULTS","import","themeConfig","config","moduleConfig","moduleClass","toolbar","querySelector","shift","oldDelta","shiftRange","_this$emitter4","_this$emitter5","args","emit","_map2","pos","_map4","version","parchment","Scope","abstract_parent","blot_embed","blot_scroll","block","inline","blot_text","attributor","attributor_class","style","store","src_scope","_extendStatics","linked_list","LinkedList","head","tail","append","nodes","at","cur","contains","remove","prev","curNode","ret","inclusive","callback","forEachAt","_a","startNode","curIndex","curLength","memo","__extends","b","setPrototypeOf","__proto__","__","_super","ParchmentError","message","Registry","classes","tags","types","bubble","blots","has","parentNode","input","match","blotClass","Node","nodeType","TEXT_NODE","domNode","scope","ANY","Text","LEVEL","INLINE","HTMLElement","getAttribute","split","some","tagName","TYPE","definitions","definition","keyName","toUpperCase","tagNames","tag","WeakMap","shadow","ShadowBlot","parseInt","attach","clone","cloneNode","detach","parent","removeChild","deleteAt","isolate","formatAt","BLOT","wrap","ATTRIBUTE","statics","insertAt","def","ref","children","optimize","_context","requiredContainer","replaceWith","replacement","_force","_mutations","wrapper","appendChild","parent_extends","makeAttachedBlot","e","childNodes","child","replaceChild","ParentBlot","uiNode","build","attachUI","firstChild","reverse","childLength","descendant","criteria","descendants","lengthLeft","childIndex","enforceAllowedChildren","allowedChildren","BLOCK_BLOT","splitAfter","unwrap","childBlot","refBlot","refDomNode","nextSibling","moveChildren","targetParent","context","defaultChild","position","force","after","_length","addedNodes","removedNodes","mutation","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","sort","DOCUMENT_POSITION_FOLLOWING","container_extends","ContainerBlot","checkMerge","leaf_extends","LeafBlot","_domNode","_inclusive","INLINE_BLOT","Attributor","attributeBit","whitelist","item","canAdd","_node","replace","removeAttribute","class_extends","class_match","prefix","ClassAttributor","style_extends","camelize","parts","part","StyleAttributor","AttributorStore","attribute","styles","attr","copy","move","values","inline_extends","InlineBlot","toLowerCase","obj1","obj2","prop","isEqual","block_extends","BlockBlot","embed_extends","EmbedBlot","_scroll","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","observer","MutationObserver","observe","disconnect","mutationsMap","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","text_extends","TextBlot","createTextNode","data","splitText","eventemitter3__WEBPACK_IMPORTED_MODULE_0__","eventemitter3__WEBPACK_IMPORTED_MODULE_0___default","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__","_instances__WEBPACK_IMPORTED_MODULE_2__","_logger__WEBPACK_IMPORTED_MODULE_3__","_get","receiver","Reflect","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Date","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","eventName","addEventListener","_len","_key","querySelectorAll","_quill$emitter","quill","handleDOM","Emitter","_EventEmitter","subClass","superClass","_inherits","listeners","_debug$log","_get2","_len2","_key2","log","event","_len3","_key3","_ref","handler","SCROLL_BEFORE_UPDATE","SCROLL_BLOT_MOUNT","SCROLL_BLOT_UNMOUNT","SCROLL_OPTIMIZE","SELECTION_CHANGE","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default","lodash_isequal__WEBPACK_IMPORTED_MODULE_1__","lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default","quill_delta__WEBPACK_IMPORTED_MODULE_3__","quill_delta__WEBPACK_IMPORTED_MODULE_3___default","parchment__WEBPACK_IMPORTED_MODULE_4__","_selection__WEBPACK_IMPORTED_MODULE_5__","_blots_cursor__WEBPACK_IMPORTED_MODULE_6__","_blots_block__WEBPACK_IMPORTED_MODULE_7__","_blots_break__WEBPACK_IMPORTED_MODULE_8__","_blots_text__WEBPACK_IMPORTED_MODULE_9__","_toArray","_iterableToArray","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizedDelta","normalizeDelta","endsWith","_this$scroll$line2","batchEnd","leaves","_map","combineFormats","_this$scroll$line4","lineOffset","convertHTML","_this$scroll$line6","suffixLength","suffix","textBlot","_formats","oldValue","CONTENTS","oldText","newText","relativeSelectionInfo","diffDelta","convertListHTML","items","lastIndent","_endTag","getListType","_items","_items$","indent","_getListType4","previousType","endTag","isRoot","list","handleBreakLine","_blot$domNode","outerHTML","_outerHTML$split","_outerHTML$split2","linkedList","combined","merged","hasAttributes","attributesString","getBlotNodeAttributes","_ref2","amount","blockDelta","bubbleFormats","BlockEmbed","Block","parchment__WEBPACK_IMPORTED_MODULE_1__","_break__WEBPACK_IMPORTED_MODULE_2__","_inline__WEBPACK_IMPORTED_MODULE_3__","_text__WEBPACK_IMPORTED_MODULE_4__","_BlockBlot","cache","lineIndex","_EmbedBlot","_super2","BLOCK_ATTRIBUTE","Range","Selection","parchment__WEBPACK_IMPORTED_MODULE_0__","lodash_isequal__WEBPACK_IMPORTED_MODULE_2__","lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default","_emitter__WEBPACK_IMPORTED_MODULE_3__","_logger__WEBPACK_IMPORTED_MODULE_4__","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","composing","mouseDown","savedRange","lastNative","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","_startNode","_startOffset","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","_this$scroll$leaf","_this$scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_this$scroll$leaf3","_this$scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","rect","side","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","lastChild","_this5$scroll$leaf2","leafOffset","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_this$getRange","_this$getRange2","escapeText","_TextBlot","Break","_break__WEBPACK_IMPORTED_MODULE_1__","_text__WEBPACK_IMPORTED_MODULE_2__","Inline","_InlineBlot","selfIndex","order","otherIndex","compare","window","Module","global","argsTag","funcTag","genTag","mapTag","setTag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","freeModule","moduleExports","addMapEntry","pair","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","size","overArg","func","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Buffer","Uint8Array","getPrototype","objectCreate","propertyIsEnumerable","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","assignValue","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","stack","isObject","isArr","initCloneArray","copyArray","getTag","isFunc","buffer","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","symbol","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","initCloneByTag","stacked","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","arrayBuffer","newValue","getMapData","getValue","pairs","LARGE_ARRAY_SIZE","ArrayBuffer","resolve","ctorString","isLength","baseKeys","Code","CodeBlockContainer","CodeBlock","_blots_block__WEBPACK_IMPORTED_MODULE_0__","_blots_break__WEBPACK_IMPORTED_MODULE_1__","_blots_cursor__WEBPACK_IMPORTED_MODULE_2__","_blots_inline__WEBPACK_IMPORTED_MODULE_3__","_blots_text__WEBPACK_IMPORTED_MODULE_4__","_blots_container__WEBPACK_IMPORTED_MODULE_5__","_core_quill__WEBPACK_IMPORTED_MODULE_6__","_Container","innerText","code","_Block","_Inline","_super3","TAB","_core_emitter__WEBPACK_IMPORTED_MODULE_1__","_block__WEBPACK_IMPORTED_MODULE_2__","_break__WEBPACK_IMPORTED_MODULE_3__","_container__WEBPACK_IMPORTED_MODULE_4__","isLine","Scroll","_ScrollBlot","batch","handleDragStart","_this$line2","preventDefault","getLines","blotIndex","blotLength","levels","method","_console","console","namespace","logger","newLevel","Container","_ContainerBlot","_text__WEBPACK_IMPORTED_MODULE_1__","Cursor","savedLength","mergedTextBlot","prevTextBlot","prevTextLength","nextTextBlot","nextText","newTextNode","remapOffset","blots_break","blots_embed","blots_scroll","blots_text","modules_history","Delta_default","core_module","hasWindow","uploader_Uploader","_Module","Uploader","addDragOverHandler","addDropHandler","ua","navigator","userAgent","onDrop","caretRangeFromPoint","clientX","clientY","caretPositionFromPoint","offsetNode","upload","dataTransfer","files","uploads","file","mimetypes","imageBlot","promises","reader","FileReader","onload","readAsDataURL","all","then","images","image","updateContents","objectTag","typedArrayTags","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","nativeObjectToString","symToStringTag","SetCache","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","arrLength","seen","arrValue","othIndex","resIndex","arrayFilter","baseUnary","check","it","globalThis","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","ColorAttributor","ColorClass","ColorStyle","_StyleAttributor","hex","Keyboard","SHORTKEY","normalize","quill_delta__WEBPACK_IMPORTED_MODULE_2__","quill_delta__WEBPACK_IMPORTED_MODULE_2___default","_core_quill__WEBPACK_IMPORTED_MODULE_4__","_core_logger__WEBPACK_IMPORTED_MODULE_5__","_core_module__WEBPACK_IMPORTED_MODULE_6__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__","KEY_NAMES","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","alt","control","up","down","multiply","spacebar","del","subtract","esc","KEY_CODES","platform","bindings","addBinding","shiftKey","handleEnter","metaKey","ctrlKey","altKey","handleBackspace","handleDelete","handleDeleteRange","listen","evt","normalizeKeyName","which","isKeySupported","keyBinding","singleBinding","defaultPrevented","isComposing","raiseOnKeydownCallback","matches","_this3$quill$getLine2","getLine","_this3$quill$getLeaf2","getLeaf","leafStart","offsetStart","_ref3","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","onKeydown","curFormats","prevFormats","formatDelta","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","textContent","makeEmbedArrowHandler","_ref4","makeFormatHandler","shortKey","makeTableArrowHandler","cell","targetRow","targetCell","targetLine","table","bold","italic","underline","outdent","cutoff","_this$quill$getLine10","_this$quill$getLine12","header","getModule","_module$getTable2","getTable","row","tableSide","_delta","blockquote","_this$quill$getLine14","_this$quill$getLine16","numLines","DirectionAttribute","DirectionClass","DirectionStyle","require","thisArg","objectCtorString","allocUnsafe","nativeMax","nativeNow","now","baseCreate","assignMergeValue","baseAssignValue","fromRight","baseFor","iterable","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","srcValue","mergeFunc","safeGet","isCommon","isTyped","isPlainObject","isNew","keysIn","toPlainObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","count","lastCalled","stamp","shortOut","string","assigner","merge","guard","isIterateeCall","AlignAttribute","AlignClass","AlignStyle","Link","_sanitize","sanitize","url","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","BackgroundClass","BackgroundStyle","_color__WEBPACK_IMPORTED_MODULE_1__","FontStyle","FontClass","FontStyleAttributor","SizeClass","SizeStyle","Bold","History","getLastChangeIndex","_core_quill__WEBPACK_IMPORTED_MODULE_1__","_core_module__WEBPACK_IMPORTED_MODULE_2__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__","lastRecorded","ignoreChange","userOnly","record","undo","redo","inputType","dest","inverseDelta","changeDelta","undoDelta","timestamp","delay","maxStack","transformStack","remoteDelta","deleteLength","changeIndex","endsWithNewlineChange","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","f","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","Theme","ModuleClass","themes","g","fails","Embed","contentNode","childNode","leftGuard","rightGuard","prevLength","Clipboard","traverse","_blots_block__WEBPACK_IMPORTED_MODULE_2__","_core_quill__WEBPACK_IMPORTED_MODULE_3__","_core_logger__WEBPACK_IMPORTED_MODULE_4__","_core_module__WEBPACK_IMPORTED_MODULE_5__","_formats_align__WEBPACK_IMPORTED_MODULE_6__","_formats_background__WEBPACK_IMPORTED_MODULE_7__","_formats_code__WEBPACK_IMPORTED_MODULE_8__","_formats_color__WEBPACK_IMPORTED_MODULE_9__","_formats_direction__WEBPACK_IMPORTED_MODULE_10__","_formats_font__WEBPACK_IMPORTED_MODULE_11__","_formats_size__WEBPACK_IMPORTED_MODULE_12__","CLIPBOARD_CONFIG","isPre","preNodes","replacer","collapse","replaced","matchNewline","deltaEndsWith","applyFormat","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","fontStyle","textDecoration","strike","fontWeight","parseFloat","textIndent","composed","language","matchAlias","onCaptureCopy","onCapturePaste","matchers","selector","matcher","addMatcher","applyMatchers","applyTextMatchers","prepareTextMatching","element","ownerDocument","DOMParser","parseFromString","nodeMatches","_this$prepareMatching2","prepareMatching","elementMatchers","textMatchers","paste","isCut","clipboardData","_this$quill$selection","_this$quill$selection2","_this$onCopy","onCopy","setData","raiseCallback","getData","onPaste","getSemanticHTML","pastedDelta","_pair","_pair2","newDelta","endText","ELEMENT_NODE","childrenDelta","reducedDelta","webpackPolyfill","deprecate","paths","bitmap","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","toInteger","argument","SyntaxCodeBlock","Syntax","_blots_inline__WEBPACK_IMPORTED_MODULE_2__","_core_module__WEBPACK_IMPORTED_MODULE_4__","_blots_block__WEBPACK_IMPORTED_MODULE_5__","_blots_break__WEBPACK_IMPORTED_MODULE_6__","_blots_cursor__WEBPACK_IMPORTED_MODULE_7__","_blots_text__WEBPACK_IMPORTED_MODULE_8__","_formats_code__WEBPACK_IMPORTED_MODULE_9__","_clipboard__WEBPACK_IMPORTED_MODULE_10__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__","TokenAttributor","CodeToken","_CodeBlock","SyntaxCodeBlockContainer","_CodeBlockContainer","forceNext","emitMount","_highlight","cachedText","codeBlock","_super4","hljs","languages","highlightBlot","initListener","initTimer","select","label","option","highlight","timer","clearTimeout","interval","nodeText","ceil","floor","isNaN","PREFERRED_STRING","fn","val","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","IndexedObject","requireObjectCoercible","Iterator_1","Events","EE","addListener","listener","_events","_eventsCount","clearEvent","EventEmitter","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","j","removeAllListeners","prefixed","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","state","functionToString","inspectSource","EXISTS","IS_PURE","copyright","id","postfix","random","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","aFunction","variable","integer","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","wellKnownSymbol","ITERATOR","BUGGY_SAFARI_ITERATORS","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","activeXDocument","enumBugKeys","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","display","src","contentWindow","open","F","Properties","TO_STRING_TAG","TAG","that","CONSTRUCTOR","METHOD","core","align","direction","_ClassAttributor","IndentAttributor","blockquote_typeof","blockquote_classCallCheck","blockquote_setPrototypeOf","blockquote_createSuper","blockquote_isNativeReflectConstruct","blockquote_getPrototypeOf","blockquote_possibleConstructorReturn","blockquote_assertThisInitialized","Blockquote","blockquote_inherits","header_typeof","header_classCallCheck","header_defineProperties","header_setPrototypeOf","header_createSuper","header_isNativeReflectConstruct","header_getPrototypeOf","header_possibleConstructorReturn","header_assertThisInitialized","Header","header_inherits","list_defineProperties","list_createClass","list_get","list_getPrototypeOf","list_superPropBase","list_typeof","list_classCallCheck","list_inherits","list_setPrototypeOf","list_createSuper","list_isNativeReflectConstruct","list_possibleConstructorReturn","list_assertThisInitialized","ListContainer","list_ListItem","ListItem","ui","listEventHandler","background","color","font","italic_typeof","italic_classCallCheck","italic_setPrototypeOf","italic_createSuper","italic_isNativeReflectConstruct","italic_getPrototypeOf","italic_possibleConstructorReturn","italic_assertThisInitialized","Italic","_Bold","italic_inherits","formats_link","script_typeof","script_classCallCheck","script_defineProperties","script_get","script_getPrototypeOf","script_superPropBase","script_setPrototypeOf","script_createSuper","script_isNativeReflectConstruct","script_possibleConstructorReturn","script_assertThisInitialized","Script","script_inherits","script","strike_typeof","strike_classCallCheck","strike_setPrototypeOf","strike_createSuper","strike_isNativeReflectConstruct","strike_getPrototypeOf","strike_possibleConstructorReturn","strike_assertThisInitialized","Strike","strike_inherits","underline_typeof","underline_classCallCheck","underline_setPrototypeOf","underline_createSuper","underline_isNativeReflectConstruct","underline_getPrototypeOf","underline_possibleConstructorReturn","underline_assertThisInitialized","Underline","underline_inherits","formula_typeof","formula_classCallCheck","formula_defineProperties","formula_get","formula_getPrototypeOf","formula_superPropBase","formula_setPrototypeOf","formula_createSuper","formula_isNativeReflectConstruct","formula_possibleConstructorReturn","formula_assertThisInitialized","formula_Formula","_Embed","formula_inherits","Formula","katex","render","throwOnError","errorColor","formula","image_typeof","image_classCallCheck","image_defineProperties","image_get","image_getPrototypeOf","image_superPropBase","image_setPrototypeOf","image_createSuper","image_isNativeReflectConstruct","image_possibleConstructorReturn","image_assertThisInitialized","ATTRIBUTES","image_Image","image_inherits","Image","hasAttribute","execCommand","formats_image","video_typeof","video_classCallCheck","video_defineProperties","video_get","video_getPrototypeOf","video_superPropBase","video_setPrototypeOf","video_createSuper","video_isNativeReflectConstruct","video_possibleConstructorReturn","video_assertThisInitialized","video_ATTRIBUTES","video_Video","_BlockEmbed","video_inherits","Video","video","syntax","table_typeof","table_classCallCheck","table_defineProperties","table_createClass","table_get","table_getPrototypeOf","table_superPropBase","table_inherits","table_setPrototypeOf","table_createSuper","table_isNativeReflectConstruct","table_possibleConstructorReturn","table_assertThisInitialized","TableCell","rowOffset","tableId","TableRow","thisHead","thisTail","nextHead","nextTail","childFormats","TableBody","_Container2","TableContainer","_Container3","rows","maxColumns","fill","column","modules_table_typeof","table_slicedToArray","table_arrayWithHoles","table_iterableToArrayLimit","table_arrayLikeToArray","table_unsupportedIterableToArray","table_nonIterableRest","modules_table_classCallCheck","modules_table_defineProperties","modules_table_createClass","modules_table_setPrototypeOf","modules_table_createSuper","modules_table_isNativeReflectConstruct","modules_table_getPrototypeOf","modules_table_possibleConstructorReturn","modules_table_assertThisInitialized","modules_table","modules_table_inherits","Table","listenBalanceCells","balanceCells","_this$getTable2","deleteColumn","cellOffset","_this$quill$getLine","_this$quill$getLine2","_this$getTable8","insertColumn","_this$getTable10","insertRow","columns","balanceTables","old","diff_main","text1","text2","cursor_pos","_fix_unicode","editdiff","oldLength","newLength","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","prefixLength","oldPrefix","newPrefix","oldMiddle","newMiddle","make_edit_splice","oldSuffix","newSuffix","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","x","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","fix_unicode","pointer","count_delete","count_insert","text_delete","text_insert","previous_equality","ends_with_pair_start","stray","k","starts_with_pair_end","changes","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","charCodeAt","pointerend","is_surrogate_pair_end","charCode","str","before","tuples","remove_empty_tuples","keepNull","attrs","baseInverted","Iterator","retOp","substr","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","second","S","codeAt","$","createIteratorConstructor","setToStringTag","Iterators","IteratorsCore","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","nativePropertyIsEnumerable","NASHORN_BUG","1","V","classof","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toLength","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","feature","detection","POLYFILL","NATIVE","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","step","C","argumentsLength","mapfn","mapping","iteratorMethod","ENTRIES","returnMethod","ArrayPrototype","propertyKey","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","entryUnbind","addToUnscopables","endPos","UNSCOPABLES","notARegExp","correctIsRegExpLogic","nativeEndsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","isRegExp","MATCH","METHOD_NAME"],"mappings":"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","file":"vendors~22f511c5.5fdfbe4c5799f3c51dd7.bundle.js","sourcesContent":["/*!\n * DevExtreme-Quill Editor v.0.10.3\n * https://js.devexpress.com/\n * Copyright (c) 2020, Developer Express Inc.\n * Copyright (c) 2017, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Quill\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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 = 132);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar fast_diff_1 = __importDefault(__webpack_require__(85));\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(19));\nvar AttributeMap_1 = __importDefault(__webpack_require__(86));\nvar Op_1 = __importDefault(__webpack_require__(63));\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nvar Delta = /** @class */ (function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n var newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = lodash_clonedeep_1.default(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number') {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n };\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [];\n var failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + Op_1.default.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = Infinity; }\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_1);\n var otherOp = otherIter.next(length_1);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n }\n else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n };\n Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta\n .map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n var retDelta = new Delta();\n var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case fast_diff_1.default.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case fast_diff_1.default.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case fast_diff_1.default.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) { newline = '\\n'; }\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\n else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n Delta.prototype.invert = function (base) {\n var inverted = new Delta();\n this.reduce(function (baseIndex, op) {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || (op.retain && op.attributes)) {\n var length_2 = (op.delete || op.retain);\n var slice = base.slice(baseIndex, baseIndex + length_2);\n slice.forEach(function (baseOp) {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length_2;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n var other = arg;\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_3);\n var otherOp = otherIter.next(length_3);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n // We retain either their retain or insert\n delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n offset += length_4;\n }\n return index;\n };\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n}());\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return globalRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return expandConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return overload; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Quill; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3);\n/* harmony import */ var _module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(29);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(40);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"])('quill');\nvar globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_3__[\"Registry\"]();\nparchment__WEBPACK_IMPORTED_MODULE_3__[\"ParentBlot\"].uiClass = 'ql-ui';\n\nvar Quill = /*#__PURE__*/function () {\n _createClass(Quill, null, [{\n key: \"debug\",\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n\n _logger__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].level(limit);\n }\n }, {\n key: \"find\",\n value: function find(node) {\n return _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].get(node) || globalRegistry.find(node);\n }\n }, {\n key: \"import\",\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error(\"Cannot import \".concat(name, \". Are you sure it was registered?\"));\n }\n\n return this.imports[name];\n }\n }, {\n key: \"register\",\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register(\"formats/\".concat(name), path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(\"Overwriting \".concat(path, \" with\"), target);\n }\n\n this.imports[path] = target;\n\n if ((path.indexOf('blots/') === 0 || path.indexOf('formats/') === 0) && target.blotName !== 'abstract') {\n globalRegistry.register(target);\n }\n\n if (typeof target.register === 'function') {\n target.register(globalRegistry);\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].set(this.container, this);\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]();\n var ScrollBlot = this.options.registry.query(parchment__WEBPACK_IMPORTED_MODULE_3__[\"ScrollBlot\"].blotName);\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\n emitter: this.emitter\n });\n this.editor = new _editor__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"](this.scroll);\n this.selection = new _selection__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"b\"](this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.uploader = this.theme.addModule('uploader');\n this.theme.init();\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE, function (type) {\n if (type === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.SCROLL_UPDATE, function (source, mutations) {\n var oldRange = _this2.selection.lastRange;\n\n var _this2$selection$getR = _this2.selection.getRange(),\n _this2$selection$getR2 = _slicedToArray(_this2$selection$getR, 1),\n newRange = _this2$selection$getR2[0];\n\n var selectionInfo = oldRange && newRange ? {\n oldRange: oldRange,\n newRange: newRange\n } : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, selectionInfo);\n }, source);\n });\n var contents = this.clipboard.convert({\n html: \"\".concat(html, \"


\"),\n text: '\\n'\n });\n this.setContents(contents);\n this.history.clear();\n\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n\n if (this.options.readOnly) {\n this.disable();\n }\n\n this.allowReadOnlyEdits = false;\n }\n\n _createClass(Quill, [{\n key: \"addContainer\",\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: \"editReadOnly\",\n value: function editReadOnly(modifier) {\n this.allowReadOnlyEdits = true;\n var value = modifier();\n this.allowReadOnlyEdits = false;\n return value;\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n\n var change = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n if (range == null) return change;\n\n if (_this4.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n\n _this4.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT);\n\n return change;\n }, source);\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var bounds;\n\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: \"getContents\",\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n return this.editor.getContents(index, length);\n }\n }, {\n key: \"getFormat\",\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n }\n\n return this.editor.getFormat(index.index, index.length);\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: \"getLength\",\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: \"getLeaf\",\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: \"getLine\",\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: \"getLines\",\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n }\n\n return this.scroll.lines(index, length);\n }\n }, {\n key: \"getModule\",\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: \"getSelection\",\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n\n return this.selection.getRange()[0];\n }\n }, {\n key: \"getSemanticHTML\",\n value: function getSemanticHTML() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n return this.editor.getHTML(index, length);\n }\n }, {\n key: \"getText\",\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload11 = overload(index, length);\n\n var _overload12 = _slicedToArray(_overload11, 2);\n\n index = _overload12[0];\n length = _overload12[1];\n return this.editor.getText(index, length);\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload13 = overload(index, 0, name, value, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n formats = _overload14[2];\n source = _overload14[3];\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.scroll.isEnabled();\n }\n }, {\n key: \"off\",\n value: function off() {\n var _this$emitter;\n\n return (_this$emitter = this.emitter).off.apply(_this$emitter, arguments);\n }\n }, {\n key: \"on\",\n value: function on() {\n var _this$emitter2;\n\n return (_this$emitter2 = this.emitter).on.apply(_this$emitter2, arguments);\n }\n }, {\n key: \"once\",\n value: function once() {\n var _this$emitter3;\n\n return (_this$emitter3 = this.emitter).once.apply(_this$emitter3, arguments);\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: \"setContents\",\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n\n var length = _this10.getLength(); // Quill will set empty editor to \\n\n\n\n var delete1 = _this10.editor.deleteText(0, length); // delta always applied before existing content\n\n\n var applied = _this10.editor.applyDelta(delta); // Remove extra \\n from empty editor initialization\n\n\n var delete2 = _this10.editor.deleteText(_this10.getLength() - 1, 1);\n\n return delete1.compose(applied).compose(delete2);\n }, source);\n }\n }, {\n key: \"setSelection\",\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload17 = overload(index, length, source);\n\n var _overload18 = _slicedToArray(_overload17, 4);\n\n index = _overload18[0];\n length = _overload18[1];\n source = _overload18[3];\n this.selection.setRange(new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](Math.max(0, index), length), source);\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: \"setText\",\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER;\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n\n this.selection.update(source); // TODO this is usually undefined\n\n return change;\n }\n }, {\n key: \"updateContents\",\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n scrollingContainer: null,\n theme: 'default'\n};\nQuill.events = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events;\nQuill.sources = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources; // eslint-disable-next-line no-undef\n\nQuill.version = false ? undefined : \"0.10.3\";\nQuill.imports = {\n delta: quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a,\n parchment: parchment__WEBPACK_IMPORTED_MODULE_3__,\n 'core/module': _module__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"],\n 'core/theme': _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"]\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true,\n uploader: true\n }\n }, userConfig);\n\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"];\n } else {\n userConfig.theme = Quill.import(\"themes/\".concat(userConfig.theme));\n\n if (userConfig.theme == null) {\n throw new Error(\"Invalid theme \".concat(userConfig.theme, \". Did you register it?\"));\n }\n }\n\n var themeConfig = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import(\"modules/\".concat(name));\n\n if (moduleClass == null) {\n debug.error(\"Cannot load \".concat(name, \" module. Are you sure you registered it?\"));\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n\n return config;\n }, {}); // Special case toolbar shorthand\n\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n\n return config;\n }, {});\n return userConfig;\n} // Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\n\n\nfunction modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER && !this.allowReadOnlyEdits) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n\n if (range != null) {\n if (index === true) {\n index = range.index; // eslint-disable-line prefer-destructuring\n }\n\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n\n this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT);\n }\n\n if (change.length() > 0) {\n var _this$emitter4;\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE, change, oldDelta, source];\n\n (_this$emitter4 = this.emitter).emit.apply(_this$emitter4, [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter5;\n\n (_this$emitter5 = this.emitter).emit.apply(_this$emitter5, args);\n }\n }\n\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n } else {\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n }\n } else if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = 0;\n } // Handle format being object, two format name/value strings or excluded\n\n\n if (_typeof(name) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n } // Handle optional source\n\n\n source = source || _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start;\n var end;\n\n if (index instanceof quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER) return pos;\n\n if (length >= 0) {\n return pos + length;\n }\n\n return Math.max(index, pos + length);\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n\n return new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](start, end - start);\n}\n\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"ParentBlot\", function() { return /* reexport */ abstract_parent; });\n__webpack_require__.d(__webpack_exports__, \"ContainerBlot\", function() { return /* reexport */ container; });\n__webpack_require__.d(__webpack_exports__, \"LeafBlot\", function() { return /* reexport */ leaf; });\n__webpack_require__.d(__webpack_exports__, \"EmbedBlot\", function() { return /* reexport */ blot_embed; });\n__webpack_require__.d(__webpack_exports__, \"ScrollBlot\", function() { return /* reexport */ blot_scroll; });\n__webpack_require__.d(__webpack_exports__, \"BlockBlot\", function() { return /* reexport */ block; });\n__webpack_require__.d(__webpack_exports__, \"InlineBlot\", function() { return /* reexport */ inline; });\n__webpack_require__.d(__webpack_exports__, \"TextBlot\", function() { return /* reexport */ blot_text; });\n__webpack_require__.d(__webpack_exports__, \"Attributor\", function() { return /* reexport */ attributor; });\n__webpack_require__.d(__webpack_exports__, \"ClassAttributor\", function() { return /* reexport */ attributor_class; });\n__webpack_require__.d(__webpack_exports__, \"StyleAttributor\", function() { return /* reexport */ style; });\n__webpack_require__.d(__webpack_exports__, \"AttributorStore\", function() { return /* reexport */ store; });\n__webpack_require__.d(__webpack_exports__, \"Registry\", function() { return /* reexport */ registry; });\n__webpack_require__.d(__webpack_exports__, \"Scope\", function() { return /* reexport */ src_scope; });\n\n// CONCATENATED MODULE: ./node_modules/parchment/src/scope.ts\nvar Scope;\n\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope || (Scope = {}));\n\n/* harmony default export */ var src_scope = (Scope);\n// CONCATENATED MODULE: ./node_modules/parchment/src/collection/linked-list.ts\nvar LinkedList =\n/** @class */\nfunction () {\n function LinkedList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n LinkedList.prototype.append = function () {\n var nodes = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n\n this.insertBefore(nodes[0], null);\n\n if (nodes.length > 1) {\n var rest = nodes.slice(1);\n this.append.apply(this, rest);\n }\n };\n\n LinkedList.prototype.at = function (index) {\n var next = this.iterator();\n var cur = next();\n\n while (cur && index > 0) {\n index -= 1;\n cur = next();\n }\n\n return cur;\n };\n\n LinkedList.prototype.contains = function (node) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n if (cur === node) {\n return true;\n }\n\n cur = next();\n }\n\n return false;\n };\n\n LinkedList.prototype.indexOf = function (node) {\n var next = this.iterator();\n var cur = next();\n var index = 0;\n\n while (cur) {\n if (cur === node) {\n return index;\n }\n\n index += 1;\n cur = next();\n }\n\n return -1;\n };\n\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (node == null) {\n return;\n }\n\n this.remove(node);\n node.next = refNode;\n\n if (refNode != null) {\n node.prev = refNode.prev;\n\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n\n refNode.prev = node;\n\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n\n this.length += 1;\n };\n\n LinkedList.prototype.offset = function (target) {\n var index = 0;\n var cur = this.head;\n\n while (cur != null) {\n if (cur === target) {\n return index;\n }\n\n index += cur.length();\n cur = cur.next;\n }\n\n return -1;\n };\n\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) {\n return;\n }\n\n if (node.prev != null) {\n node.prev.next = node.next;\n }\n\n if (node.next != null) {\n node.next.prev = node.prev;\n }\n\n if (node === this.head) {\n this.head = node.next;\n }\n\n if (node === this.tail) {\n this.tail = node.prev;\n }\n\n this.length -= 1;\n };\n\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n } // TODO use yield when we can\n\n\n return function () {\n var ret = curNode;\n\n if (curNode != null) {\n curNode = curNode.next;\n }\n\n return ret;\n };\n };\n\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n var length = cur.length();\n\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n\n index -= length;\n cur = next();\n }\n\n return [null, 0];\n };\n\n LinkedList.prototype.forEach = function (callback) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n callback(cur);\n cur = next();\n }\n };\n\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) {\n return;\n }\n\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n\n var curIndex = index - offset;\n var next = this.iterator(startNode);\n var cur = next();\n\n while (cur && curIndex < index + length) {\n var curLength = cur.length();\n\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n\n curIndex += curLength;\n cur = next();\n }\n };\n\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n\n LinkedList.prototype.reduce = function (callback, memo) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n memo = callback(memo, cur);\n cur = next();\n }\n\n return memo;\n };\n\n return LinkedList;\n}();\n\n/* harmony default export */ var linked_list = (LinkedList);\n// CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar ParchmentError =\n/** @class */\nfunction (_super) {\n __extends(ParchmentError, _super);\n\n function ParchmentError(message) {\n var _this = this;\n\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return ParchmentError;\n}(Error);\n\n/* harmony default export */ var error = (ParchmentError);\n// CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n\n\nvar registry_Registry =\n/** @class */\nfunction () {\n function Registry() {\n this.attributes = {};\n this.classes = {};\n this.tags = {};\n this.types = {};\n }\n\n Registry.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n if (node == null) {\n return null;\n }\n\n if (this.blots.has(node)) {\n return this.blots.get(node) || null;\n }\n\n if (bubble) {\n return this.find(node.parentNode, bubble);\n }\n\n return null;\n };\n\n Registry.prototype.create = function (scroll, input, value) {\n var match = this.query(input);\n\n if (match == null) {\n throw new error(\"Unable to create \" + input + \" blot\");\n }\n\n var blotClass = match;\n var node = // @ts-ignore\n input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value);\n var blot = new blotClass(scroll, node, value);\n Registry.blots.set(blot.domNode, blot);\n return blot;\n };\n\n Registry.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return Registry.find(node, bubble);\n };\n\n Registry.prototype.query = function (query, scope) {\n var _this = this;\n\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n var match;\n\n if (typeof query === 'string') {\n match = this.types[query] || this.attributes[query]; // @ts-ignore\n } else if (query instanceof Text || query.nodeType === Node.TEXT_NODE) {\n match = this.types.text;\n } else if (typeof query === 'number') {\n if (query & src_scope.LEVEL & src_scope.BLOCK) {\n match = this.types.block;\n } else if (query & src_scope.LEVEL & src_scope.INLINE) {\n match = this.types.inline;\n }\n } else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n names.some(function (name) {\n match = _this.classes[name];\n\n if (match) {\n return true;\n }\n\n return false;\n });\n match = match || this.tags[query.tagName];\n }\n\n if (match == null) {\n return null;\n } // @ts-ignore\n\n\n if (scope & src_scope.LEVEL & match.scope && scope & src_scope.TYPE & match.scope) {\n return match;\n }\n\n return null;\n };\n\n Registry.prototype.register = function () {\n var _this = this;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n if (definitions.length > 1) {\n return definitions.map(function (d) {\n return _this.register(d);\n });\n }\n\n var definition = definitions[0];\n\n if (typeof definition.blotName !== 'string' && typeof definition.attrName !== 'string') {\n throw new error('Invalid definition');\n } else if (definition.blotName === 'abstract') {\n throw new error('Cannot register abstract class');\n }\n\n this.types[definition.blotName || definition.attrName] = definition;\n\n if (typeof definition.keyName === 'string') {\n this.attributes[definition.keyName] = definition;\n } else {\n if (definition.className != null) {\n this.classes[definition.className] = definition;\n }\n\n if (definition.tagName != null) {\n if (Array.isArray(definition.tagName)) {\n definition.tagName = definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n definition.tagName = definition.tagName.toUpperCase();\n }\n\n var tagNames = Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName];\n tagNames.forEach(function (tag) {\n if (_this.tags[tag] == null || definition.className == null) {\n _this.tags[tag] = definition;\n }\n });\n }\n }\n\n return definition;\n };\n\n Registry.blots = new WeakMap();\n return Registry;\n}();\n\n/* harmony default export */ var registry = (registry_Registry);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n\n\n\nvar shadow_ShadowBlot =\n/** @class */\nfunction () {\n function ShadowBlot(scroll, domNode) {\n this.scroll = scroll;\n this.domNode = domNode;\n registry.blots.set(domNode, this);\n this.prev = null;\n this.next = null;\n }\n\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new error('Blot definition missing tagName');\n }\n\n var node;\n\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n\n if (parseInt(value, 10).toString() === value) {\n value = parseInt(value, 10);\n }\n }\n\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n\n if (this.className) {\n node.classList.add(this.className);\n }\n\n return node;\n };\n\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function get() {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n\n ShadowBlot.prototype.attach = function () {// Nothing to do\n };\n\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return this.scroll.create(domNode);\n };\n\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null) {\n this.parent.removeChild(this);\n }\n\n registry.blots.delete(this.domNode);\n };\n\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n\n if (this.scroll.query(name, src_scope.BLOT) != null && value) {\n blot.wrap(name, value);\n } else if (this.scroll.query(name, src_scope.ATTRIBUTE) != null) {\n var parent = this.scroll.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref || undefined);\n };\n\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n\n if (target == null) {\n throw new Error('Attempt to isolate at end');\n }\n\n target.split(length);\n return target;\n };\n\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) {\n root = this.parent;\n }\n\n if (this.parent == null || this === root) {\n return 0;\n }\n\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n\n ShadowBlot.prototype.optimize = function (_context) {\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName);\n }\n };\n\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n\n this.detach();\n };\n\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (this.parent != null) {\n this.parent.insertBefore(replacement, this.next || undefined);\n this.remove();\n }\n\n return replacement;\n };\n\n ShadowBlot.prototype.split = function (index, _force) {\n return index === 0 ? this : this.next;\n };\n\n ShadowBlot.prototype.update = function (_mutations, _context) {// Nothing to do by default\n };\n\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next || undefined);\n }\n\n if (typeof wrapper.appendChild !== 'function') {\n throw new error(\"Cannot wrap \" + name);\n }\n\n wrapper.appendChild(this);\n return wrapper;\n };\n\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}();\n\n/* harmony default export */ var shadow = (shadow_ShadowBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/parent.ts\nvar parent_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nfunction makeAttachedBlot(node, scroll) {\n var blot = scroll.find(node);\n\n if (blot == null) {\n try {\n blot = scroll.create(node);\n } catch (e) {\n blot = scroll.create(src_scope.INLINE);\n Array.from(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n\n blot.attach();\n }\n }\n\n return blot;\n}\n\nvar parent_ParentBlot =\n/** @class */\nfunction (_super) {\n parent_extends(ParentBlot, _super);\n\n function ParentBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.uiNode = null;\n\n _this.build();\n\n return _this;\n }\n\n ParentBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n\n ParentBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n\n ParentBlot.prototype.attachUI = function (node) {\n if (this.uiNode != null) {\n this.uiNode.remove();\n }\n\n this.uiNode = node;\n\n if (ParentBlot.uiClass) {\n this.uiNode.classList.add(ParentBlot.uiClass);\n }\n\n this.uiNode.setAttribute('contenteditable', 'false');\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n };\n\n ParentBlot.prototype.build = function () {\n var _this = this;\n\n this.children = new linked_list(); // Need to be reversed for if DOM nodes already in order\n\n Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this.uiNode;\n }).reverse().forEach(function (node) {\n try {\n var child = makeAttachedBlot(node, _this.scroll);\n\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof error) {\n return;\n } else {\n throw err;\n }\n }\n });\n };\n\n ParentBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.deleteAt(offset, childLength);\n });\n };\n\n ParentBlot.prototype.descendant = function (criteria, index) {\n if (index === void 0) {\n index = 0;\n }\n\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ParentBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n\n ParentBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, childIndex, childLength) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n\n if (child instanceof ParentBlot) {\n descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return descendants;\n };\n\n ParentBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n\n _super.prototype.detach.call(this);\n };\n\n ParentBlot.prototype.enforceAllowedChildren = function () {\n var _this = this;\n\n var done = false;\n this.children.forEach(function (child) {\n if (done) {\n return;\n }\n\n var allowed = _this.statics.allowedChildren.some(function (def) {\n return child instanceof def;\n });\n\n if (allowed) {\n return;\n }\n\n if (child.statics.scope === src_scope.BLOCK_BLOT) {\n if (child.next != null) {\n _this.splitAfter(child);\n }\n\n if (child.prev != null) {\n _this.splitAfter(child.prev);\n }\n\n child.parent.unwrap();\n done = true;\n } else if (child instanceof ParentBlot) {\n child.unwrap();\n } else {\n child.remove();\n }\n });\n };\n\n ParentBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.formatAt(offset, childLength, name, value);\n });\n };\n\n ParentBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n this.appendChild(blot);\n }\n };\n\n ParentBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (childBlot.parent != null) {\n childBlot.parent.children.remove(childBlot);\n }\n\n var refDomNode = null;\n this.children.insertBefore(childBlot, refBlot || null);\n childBlot.parent = this;\n\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n\n if (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) {\n this.domNode.insertBefore(childBlot.domNode, refDomNode);\n }\n\n childBlot.attach();\n };\n\n ParentBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n\n ParentBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n\n ParentBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.enforceAllowedChildren();\n\n if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n }\n\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(child); // TODO double check if necessary\n // child.optimize(context);\n } else {\n this.remove();\n }\n }\n };\n\n ParentBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n\n var position = [[this, index]];\n\n if (child instanceof ParentBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n\n return position;\n };\n\n ParentBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n\n ParentBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (replacement instanceof ParentBlot) {\n this.moveChildren(replacement);\n }\n\n return _super.prototype.replaceWith.call(this, replacement);\n };\n\n ParentBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.clone();\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n this.children.forEachAt(index, this.length(), function (child, offset, _length) {\n var split = child.split(offset, force);\n\n if (split != null) {\n after.appendChild(split);\n }\n });\n return after;\n };\n\n ParentBlot.prototype.splitAfter = function (child) {\n var after = this.clone();\n\n while (child.next != null) {\n after.appendChild(child.next);\n }\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n return after;\n };\n\n ParentBlot.prototype.unwrap = function () {\n if (this.parent) {\n this.moveChildren(this.parent, this.next || undefined);\n }\n\n this.remove();\n };\n\n ParentBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null && // @ts-ignore\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n\n var blot = _this.scroll.find(node);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode === _this.domNode || node === _this.uiNode;\n }).sort(function (a, b) {\n if (a === b) {\n return 0;\n }\n\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n\n if (node.nextSibling != null) {\n refBlot = _this.scroll.find(node.nextSibling);\n }\n\n var blot = makeAttachedBlot(node, _this.scroll);\n\n if (blot.next !== refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n this.enforceAllowedChildren();\n };\n\n ParentBlot.uiClass = '';\n return ParentBlot;\n}(shadow);\n\n/* harmony default export */ var abstract_parent = (parent_ParentBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\nvar container_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar container_ContainerBlot =\n/** @class */\nfunction (_super) {\n container_extends(ContainerBlot, _super);\n\n function ContainerBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ContainerBlot.prototype.checkMerge = function () {\n return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n };\n\n ContainerBlot.prototype.deleteAt = function (index, length) {\n _super.prototype.deleteAt.call(this, index, length);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n _super.prototype.formatAt.call(this, index, length, name, value);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n _super.prototype.insertAt.call(this, index, value, def);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n if (this.children.length > 0 && this.next != null && this.checkMerge()) {\n this.next.moveChildren(this);\n this.next.remove();\n }\n };\n\n ContainerBlot.blotName = 'container';\n ContainerBlot.scope = src_scope.BLOCK_BLOT;\n return ContainerBlot;\n}(abstract_parent);\n\n/* harmony default export */ var container = (container_ContainerBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\nvar leaf_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar leaf_LeafBlot =\n/** @class */\nfunction (_super) {\n leaf_extends(LeafBlot, _super);\n\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LeafBlot.value = function (_domNode) {\n return true;\n };\n\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n\n return -1;\n };\n\n LeafBlot.prototype.position = function (index, _inclusive) {\n var childNodes = Array.from(this.parent.domNode.childNodes);\n var offset = childNodes.indexOf(this.domNode);\n\n if (index > 0) {\n offset += 1;\n }\n\n return [this.parent.domNode, offset];\n };\n\n LeafBlot.prototype.value = function () {\n var _a;\n\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n\n LeafBlot.scope = src_scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow);\n\n/* harmony default export */ var leaf = (leaf_LeafBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\n\nvar attributor_Attributor =\n/** @class */\nfunction () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = src_scope.TYPE & src_scope.ATTRIBUTE;\n this.scope = options.scope != null ? // Ignore type bits, force attribute bit\n options.scope & src_scope.LEVEL | attributeBit : src_scope.ATTRIBUTE;\n\n if (options.whitelist != null) {\n this.whitelist = options.whitelist;\n }\n }\n\n Attributor.keys = function (node) {\n return Array.from(node.attributes).map(function (item) {\n return item.name;\n });\n };\n\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n node.setAttribute(this.keyName, value);\n return true;\n };\n\n Attributor.prototype.canAdd = function (_node, value) {\n if (this.whitelist == null) {\n return true;\n }\n\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n\n if (this.canAdd(node, value) && value) {\n return value;\n }\n\n return '';\n };\n\n return Attributor;\n}();\n\n/* harmony default export */ var attributor = (attributor_Attributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\nvar class_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction class_match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\n\nvar ClassAttributor =\n/** @class */\nfunction (_super) {\n class_extends(ClassAttributor, _super);\n\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n\n ClassAttributor.prototype.remove = function (node) {\n var matches = class_match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n\n ClassAttributor.prototype.value = function (node) {\n var result = class_match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n\n return this.canAdd(node, value) ? value : '';\n };\n\n return ClassAttributor;\n}(attributor);\n\n/* harmony default export */ var attributor_class = (ClassAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\nvar style_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\n\nvar StyleAttributor =\n/** @class */\nfunction (_super) {\n style_extends(StyleAttributor, _super);\n\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n } // @ts-ignore\n\n\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n\n return StyleAttributor;\n}(attributor);\n\n/* harmony default export */ var style = (StyleAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n\n\n\n\n\nvar store_AttributorStore =\n/** @class */\nfunction () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n\n AttributorStore.prototype.build = function () {\n var _this = this;\n\n this.attributes = {};\n var blot = registry.find(this.domNode);\n\n if (blot == null) {\n return;\n }\n\n var attributes = attributor.keys(this.domNode);\n var classes = attributor_class.keys(this.domNode);\n var styles = style.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = blot.scroll.query(name, src_scope.ATTRIBUTE);\n\n if (attr instanceof attributor) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n\n target.format(key, value);\n });\n };\n\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n\n AttributorStore.prototype.values = function () {\n var _this = this;\n\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n\n return AttributorStore;\n}();\n\n/* harmony default export */ var store = (store_AttributorStore);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\nvar inline_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n // Shallow object comparison\n\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n } // @ts-ignore\n\n\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar inline_InlineBlot =\n/** @class */\nfunction (_super) {\n inline_extends(InlineBlot, _super);\n\n function InlineBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n InlineBlot.formats = function (domNode, scroll) {\n var match = scroll.query(InlineBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n\n return undefined;\n };\n\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof InlineBlot)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n var format = this.scroll.query(name, src_scope.INLINE);\n\n if (format == null) {\n return;\n }\n\n if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n\n InlineBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || this.scroll.query(name, src_scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n var formats = this.formats();\n\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n\n var next = this.next;\n\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n\n InlineBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n InlineBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n InlineBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n\n if (wrapper instanceof InlineBlot) {\n this.attributes.move(wrapper);\n }\n\n return wrapper;\n };\n\n InlineBlot.allowedChildren = [InlineBlot, leaf];\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = src_scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(abstract_parent);\n\n/* harmony default export */ var inline = (inline_InlineBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\nvar block_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\n\n\nvar block_BlockBlot =\n/** @class */\nfunction (_super) {\n block_extends(BlockBlot, _super);\n\n function BlockBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n BlockBlot.formats = function (domNode, scroll) {\n var match = scroll.query(BlockBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n };\n\n BlockBlot.prototype.format = function (name, value) {\n var format = this.scroll.query(name, src_scope.BLOCK);\n\n if (format == null) {\n return;\n } else if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n };\n\n BlockBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.scroll.query(name, src_scope.BLOCK) != null) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || this.scroll.query(value, src_scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n\n if (after != null) {\n var blot = this.scroll.create(value, def);\n after.parent.insertBefore(blot, after);\n } else {\n throw new Error('Attempt to insertAt after block boundaries');\n }\n }\n };\n\n BlockBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n BlockBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n BlockBlot.blotName = 'block';\n BlockBlot.scope = src_scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n BlockBlot.allowedChildren = [inline, BlockBlot, leaf];\n return BlockBlot;\n}(abstract_parent);\n\n/* harmony default export */ var block = (block_BlockBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\nvar embed_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nvar EmbedBlot =\n/** @class */\nfunction (_super) {\n embed_extends(EmbedBlot, _super);\n\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EmbedBlot.formats = function (_domNode, _scroll) {\n return undefined;\n };\n\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode, this.scroll);\n };\n\n return EmbedBlot;\n}(leaf);\n\n/* harmony default export */ var blot_embed = (EmbedBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\nvar scroll_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\n\nvar scroll_ScrollBlot =\n/** @class */\nfunction (_super) {\n scroll_extends(ScrollBlot, _super);\n\n function ScrollBlot(registry, node) {\n var _this = // @ts-ignore\n _super.call(this, null, node) || this;\n\n _this.registry = registry;\n _this.scroll = _this;\n\n _this.build();\n\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n\n _this.attach();\n\n return _this;\n }\n\n ScrollBlot.prototype.create = function (input, value) {\n return this.registry.create(this, input, value);\n };\n\n ScrollBlot.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return this.registry.find(node, bubble);\n };\n\n ScrollBlot.prototype.query = function (query, scope) {\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n return this.registry.query(query, scope);\n };\n\n ScrollBlot.prototype.register = function () {\n var _a;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n return (_a = this.registry).register.apply(_a, definitions);\n };\n\n ScrollBlot.prototype.build = function () {\n if (this.scroll == null) {\n return;\n }\n\n _super.prototype.build.call(this);\n };\n\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n\n this.observer.disconnect();\n };\n\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n\n _super.prototype.insertAt.call(this, index, value, def);\n };\n\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n\n if (mutations === void 0) {\n mutations = [];\n }\n\n if (context === void 0) {\n context = {};\n }\n\n _super.prototype.optimize.call(this, context);\n\n var mutationsMap = context.mutationsMap || new WeakMap(); // We must modify mutations directly, cannot make copy and then modify\n\n var records = Array.from(this.observer.takeRecords()); // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n\n var mark = function mark(blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n\n if (blot == null || blot === _this) {\n return;\n }\n\n if (blot.domNode.parentNode == null) {\n return;\n }\n\n if (!mutationsMap.has(blot.domNode)) {\n mutationsMap.set(blot.domNode, []);\n }\n\n if (markParent) {\n mark(blot.parent);\n }\n };\n\n var optimize = function optimize(blot) {\n // Post-order traversal\n if (!mutationsMap.has(blot.domNode)) {\n return;\n }\n\n if (blot instanceof abstract_parent) {\n blot.children.forEach(optimize);\n }\n\n mutationsMap.delete(blot.domNode);\n blot.optimize(context);\n };\n\n var remaining = mutations;\n\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n\n remaining.forEach(function (mutation) {\n var blot = _this.find(mutation.target, true);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(_this.find(mutation.previousSibling, false));\n Array.from(mutation.addedNodes).forEach(function (node) {\n var child = _this.find(node, false);\n\n mark(child, false);\n\n if (child instanceof abstract_parent) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = Array.from(this.observer.takeRecords());\n records = remaining.slice();\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n };\n\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n if (context === void 0) {\n context = {};\n }\n\n mutations = mutations || this.observer.takeRecords();\n var mutationsMap = new WeakMap();\n mutations.map(function (mutation) {\n var blot = registry.find(mutation.target, true);\n\n if (blot == null) {\n return null;\n }\n\n if (mutationsMap.has(blot.domNode)) {\n mutationsMap.get(blot.domNode).push(mutation);\n return null;\n } else {\n mutationsMap.set(blot.domNode, [mutation]);\n return blot;\n }\n }).forEach(function (blot) {\n if (blot != null && blot !== _this && mutationsMap.has(blot.domNode)) {\n blot.update(mutationsMap.get(blot.domNode) || [], context);\n }\n });\n context.mutationsMap = mutationsMap;\n\n if (mutationsMap.has(this.domNode)) {\n _super.prototype.update.call(this, mutationsMap.get(this.domNode), context);\n }\n\n this.optimize(mutations, context);\n };\n\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = block;\n ScrollBlot.allowedChildren = [block, container];\n ScrollBlot.scope = src_scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(abstract_parent);\n\n/* harmony default export */ var blot_scroll = (scroll_ScrollBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\nvar text_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar text_TextBlot =\n/** @class */\nfunction (_super) {\n text_extends(TextBlot, _super);\n\n function TextBlot(scroll, node) {\n var _this = _super.call(this, scroll, node) || this;\n\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n\n TextBlot.value = function (domNode) {\n return domNode.data;\n };\n\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n\n return -1;\n };\n\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.text = this.statics.value(this.domNode);\n\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n\n TextBlot.prototype.position = function (index, _inclusive) {\n if (_inclusive === void 0) {\n _inclusive = false;\n }\n\n return [this.domNode, index];\n };\n\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.scroll.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next || undefined);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n\n TextBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n\n TextBlot.prototype.value = function () {\n return this.text;\n };\n\n TextBlot.blotName = 'text';\n TextBlot.scope = src_scope.INLINE_BLOT;\n return TextBlot;\n}(leaf);\n\n/* harmony default export */ var blot_text = (text_TextBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])('quill:events');\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nif (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])()) {\n EVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n Array.from(document.querySelectorAll('.ql-container')).forEach(function (node) {\n var quill = _instances__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].get(node);\n\n if (quill && quill.emitter) {\n var _quill$emitter;\n\n (_quill$emitter = quill.emitter).handleDOM.apply(_quill$emitter, args);\n }\n });\n });\n });\n}\n\nvar Emitter = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n var _super = _createSuper(Emitter);\n\n function Emitter() {\n var _this;\n\n _classCallCheck(this, Emitter);\n\n _this = _super.call(this);\n _this.listeners = {};\n\n _this.on('error', debug.error);\n\n return _this;\n }\n\n _createClass(Emitter, [{\n key: \"emit\",\n value: function emit() {\n var _debug$log, _get2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n (_debug$log = debug.log).call.apply(_debug$log, [debug].concat(args));\n\n (_get2 = _get(_getPrototypeOf(Emitter.prototype), \"emit\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"handleDOM\",\n value: function handleDOM(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(void 0, [event].concat(args));\n }\n });\n }\n }, {\n key: \"listenDOM\",\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n\n return Emitter;\n}(eventemitter3__WEBPACK_IMPORTED_MODULE_0___default.a);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Emitter);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = /*#__PURE__*/function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: \"applyDelta\",\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n var normalizedDelta = normalizeDelta(delta);\n normalizedDelta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n\n if ((index >= scrollLength || _this.scroll.descendant(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* BlockEmbed */ \"a\"], index)[0]) && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n\n _this.scroll.insertAt(index, text);\n\n var _this$scroll$line = _this.scroll.line(index),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 2),\n line = _this$scroll$line2[0],\n offset = _this$scroll$line2[1];\n\n var formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(line));\n\n if (line instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n var _line$descendant = line.descendant(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()(formats, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(leaf));\n }\n\n attributes = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n\n if (key == null) return index;\n\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n\n scrollLength += length;\n }\n\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n normalizedDelta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n\n return index;\n }\n\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n this.scroll.optimize();\n return this.update(normalizedDelta);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).delete(length));\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n _this2.scroll.lines(index, Math.max(length, 1)).forEach(function (line) {\n line.format(format, formats[format]);\n });\n });\n this.scroll.optimize();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"getContents\",\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: \"getDelta\",\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n }\n }, {\n key: \"getFormat\",\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var lines = [];\n var leaves = [];\n\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n lines.push(blot);\n } else if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"]) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], index, length);\n }\n\n var _map = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blots.shift());\n\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blot), formats);\n }\n\n return formats;\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n lines = _map2[0];\n leaves = _map2[1];\n return _objectSpread(_objectSpread({}, lines), leaves);\n }\n }, {\n key: \"getHTML\",\n value: function getHTML(index, length) {\n var _this$scroll$line3 = this.scroll.line(index),\n _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 2),\n line = _this$scroll$line4[0],\n lineOffset = _this$scroll$line4[1];\n\n if (line.length() >= lineOffset + length) {\n return convertHTML(line, lineOffset, length, true);\n }\n\n return convertHTML(this.scroll, index, length, true);\n }\n }, {\n key: \"getText\",\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(text, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats)));\n }\n }, {\n key: \"isBlank\",\n value: function isBlank() {\n if (this.scroll.children.length === 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"].blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"];\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _this$scroll$line5 = this.scroll.line(index + length),\n _this$scroll$line6 = _slicedToArray(_this$scroll$line5, 2),\n line = _this$scroll$line6[0],\n offset = _this$scroll$line6[1];\n\n var suffixLength = 0;\n var suffix = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a();\n\n if (line != null) {\n suffixLength = line.length() - offset;\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(text).concat(suffix));\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: \"update\",\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var oldDelta = this.delta;\n\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = this.scroll.find(mutations[0].target);\n\n var _formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(textBlot);\n\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_blots_cursor__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].CONTENTS, '');\n var oldText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(oldValue);\n var newText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(textBlot.value());\n var relativeSelectionInfo = selectionInfo && {\n oldRange: shiftRange(selectionInfo.oldRange, -index),\n newRange: shiftRange(selectionInfo.newRange, -index)\n };\n var diffDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, _formats);\n }\n\n return delta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n\n if (!change || !lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default()(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, selectionInfo);\n }\n }\n\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction convertListHTML(items, lastIndent, types) {\n if (items.length === 0) {\n var _getListType = getListType(types.pop()),\n _getListType2 = _slicedToArray(_getListType, 1),\n _endTag = _getListType2[0];\n\n if (lastIndent <= 0) {\n return \"\");\n }\n\n return \"\").concat(convertListHTML([], lastIndent - 1, types));\n }\n\n var _items = _toArray(items),\n _items$ = _items[0],\n child = _items$.child,\n offset = _items$.offset,\n length = _items$.length,\n indent = _items$.indent,\n type = _items$.type,\n rest = _items.slice(1);\n\n var _getListType3 = getListType(type, child),\n _getListType4 = _slicedToArray(_getListType3, 2),\n tag = _getListType4[0],\n attribute = _getListType4[1];\n\n if (indent > lastIndent) {\n types.push(type);\n\n if (indent === lastIndent + 1) {\n return \"<\".concat(tag, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n return \"<\".concat(tag, \">
  • \").concat(convertListHTML(items, lastIndent + 1, types));\n }\n\n var previousType = types[types.length - 1];\n\n if (indent === lastIndent && type === previousType) {\n return \"
  • \").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n var _getListType5 = getListType(types.pop()),\n _getListType6 = _slicedToArray(_getListType5, 1),\n endTag = _getListType6[0];\n\n return \"\").concat(convertListHTML(items, lastIndent - 1, types));\n}\n\nfunction convertHTML(blot, index, length) {\n var isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (typeof blot.html === 'function') {\n return blot.html(index, length);\n }\n\n if (blot instanceof _blots_text__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"]) {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_9__[/* escapeText */ \"b\"])(blot.value().slice(index, index + length));\n }\n\n if (blot.children) {\n // TODO fix API\n if (blot.statics.blotName === 'list-container') {\n var items = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n var formats = child.formats();\n items.push({\n child: child,\n offset: offset,\n length: childLength,\n indent: formats.indent || 0,\n type: formats.list\n });\n });\n return convertListHTML(items, -1, []);\n }\n\n var parts = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n parts.push(convertHTML(child, offset, childLength));\n });\n handleBreakLine(blot.children, parts);\n\n if (isRoot || blot.statics.blotName === 'list') {\n return parts.join('');\n }\n\n var _blot$domNode = blot.domNode,\n outerHTML = _blot$domNode.outerHTML,\n innerHTML = _blot$domNode.innerHTML;\n\n var _outerHTML$split = outerHTML.split(\">\".concat(innerHTML, \"<\")),\n _outerHTML$split2 = _slicedToArray(_outerHTML$split, 2),\n start = _outerHTML$split2[0],\n end = _outerHTML$split2[1]; // TODO cleanup\n\n\n if (start === '\".concat(parts.join(''), \"<\").concat(end);\n }\n\n return \"\".concat(start, \">\").concat(parts.join(''), \"<\").concat(end);\n }\n\n return blot.domNode.outerHTML;\n}\n\nfunction handleBreakLine(linkedList, parts) {\n if (linkedList.length === 1 && linkedList.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"]) {\n parts.push('
    ');\n }\n}\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n\n return merged;\n }, {});\n}\n\nfunction getListType(type, child) {\n var tag = type === 'ordered' ? 'ol' : 'ul';\n var attributes = child ? \"\".concat(getBlotNodeAttributes(child)) : '';\n\n switch (type) {\n case 'checked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"checked\\\"\")];\n\n case 'unchecked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"unchecked\\\"\")];\n\n default:\n return [tag, attributes];\n }\n}\n\nfunction getBlotNodeAttributes(_ref) {\n var domNode = _ref.domNode;\n\n if (!domNode.hasAttributes()) {\n return '';\n }\n\n var attributes = domNode.attributes;\n var attributesString = ' ';\n\n for (var i = 0; i < attributes.length; i += 1) {\n var name = attributes[i].name;\n var value = attributes[i].value;\n\n if (name === 'class') {\n value = removeIndentClass(value);\n }\n\n if (value.length && name.indexOf('data-') === -1) {\n attributesString += \"\".concat(name, \"=\\\"\").concat(value, \"\\\"\");\n }\n }\n\n return attributesString.length > 1 ? attributesString : '';\n}\n\nfunction removeIndentClass(classString) {\n return classString.replace(/ql-indent-\\d/g, '').trim();\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (normalizedDelta, op) {\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return normalizedDelta.insert(text, op.attributes);\n }\n\n return normalizedDelta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n}\n\nfunction shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new _selection__WEBPACK_IMPORTED_MODULE_5__[/* Range */ \"a\"](index + amount, length);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Editor);\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return blockDelta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return bubbleFormats; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BlockEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return Block; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);\n/* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar NEWLINE_LENGTH = 1;\n\nvar Block = /*#__PURE__*/function (_BlockBlot) {\n _inherits(Block, _BlockBlot);\n\n var _super = _createSuper(Block);\n\n function Block(scroll, domNode) {\n var _this;\n\n _classCallCheck(this, Block);\n\n _this = _super.call(this, scroll, domNode);\n _this.cache = {};\n return _this;\n }\n\n _createClass(Block, [{\n key: \"delta\",\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = blockDelta(this);\n }\n\n return this.cache.delta;\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n _get(_getPrototypeOf(Block.prototype), \"deleteAt\", this).call(this, index, length);\n\n this.cache = {};\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n\n if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(_getPrototypeOf(Block.prototype), \"formatAt\", this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n\n this.cache = {};\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (def != null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, index, value, def);\n\n this.cache = {};\n return;\n }\n\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n\n this.cache = {};\n }\n\n var block = this;\n lines.reduce(function (lineIndex, line) {\n block = block.split(lineIndex, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n\n _get(_getPrototypeOf(Block.prototype), \"insertBefore\", this).call(this, blot, ref);\n\n if (head instanceof _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]) {\n head.remove();\n }\n\n this.cache = {};\n }\n }, {\n key: \"length\",\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(_getPrototypeOf(Block.prototype), \"length\", this).call(this) + NEWLINE_LENGTH;\n }\n\n return this.cache.length;\n }\n }, {\n key: \"moveChildren\",\n value: function moveChildren(target, ref) {\n _get(_getPrototypeOf(Block.prototype), \"moveChildren\", this).call(this, target, ref);\n\n this.cache = {};\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Block.prototype), \"optimize\", this).call(this, context);\n\n this.cache = {};\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Block.prototype), \"path\", this).call(this, index, true);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n _get(_getPrototypeOf(Block.prototype), \"removeChild\", this).call(this, child);\n\n this.cache = {};\n }\n }, {\n key: \"split\",\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n }\n\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n\n var next = _get(_getPrototypeOf(Block.prototype), \"split\", this).call(this, index, force);\n\n this.cache = {};\n return next;\n }\n }]);\n\n return Block;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"]);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"];\nBlock.allowedChildren = [_break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"], _inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n\nvar BlockEmbed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(BlockEmbed, _EmbedBlot);\n\n var _super2 = _createSuper(BlockEmbed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BlockEmbed, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"attach\", this).call(this);\n\n this.attributes = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"AttributorStore\"](this.domNode);\n }\n }, {\n key: \"delta\",\n value: function delta() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(this.value(), _objectSpread(_objectSpread({}, this.formats()), this.attributes.values()));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var attribute = this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_ATTRIBUTE);\n\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = this.scroll.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]);\n\nBlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return blot.descendants(parchment__WEBPACK_IMPORTED_MODULE_1__[\"LeafBlot\"]).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n }\n\n return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a()).insert('\\n', bubbleFormats(blot));\n}\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (blot == null) return formats;\n\n if (typeof blot.formats === 'function') {\n formats = _objectSpread(_objectSpread({}, formats), blot.formats());\n\n if (filter) {\n // exclude syntax highlighting from deltas and getFormat()\n delete formats['code-token'];\n }\n }\n\n if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n\n return bubbleFormats(blot.parent, formats, filter);\n}\n\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Selection; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = /*#__PURE__*/function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = this.scroll.create('cursor', this); // savedRange is last non-null range\n\n this.savedRange = new Range(0, 0);\n this.lastRange = this.savedRange;\n this.lastNative = null;\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown && !_this.composing) {\n setTimeout(_this.update.bind(_this, _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER), 1);\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n\n var native = _this.getNativeRange();\n\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n\n _this.emitter.once(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_UPDATE, function () {\n try {\n if (_this.root.contains(native.start.node) && _this.root.contains(native.end.node)) {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n }\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } catch (ignored) {// ignore\n }\n });\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n _startNode = _context$range.startNode,\n _startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(_startNode, _startOffset, endNode, endOffset);\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n });\n this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: \"handleComposition\",\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n\n _this2.scroll.batchStart();\n });\n this.root.addEventListener('compositionend', function () {\n _this2.scroll.batchEnd();\n\n _this2.composing = false;\n\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: \"handleDragging\",\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n\n _this3.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n });\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: \"format\",\n value: function format(_format, value) {\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(_format, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK)) return;\n\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = this.scroll.find(nativeRange.start.node, false);\n if (blot == null) return; // TODO Give blot ability to not split\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n\n this.cursor.attach();\n }\n\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node;\n\n var _this$scroll$leaf = this.scroll.leaf(index),\n _this$scroll$leaf2 = _slicedToArray(_this$scroll$leaf, 2),\n leaf = _this$scroll$leaf2[0],\n offset = _this$scroll$leaf2[1];\n\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n var range = document.createRange();\n\n if (length > 0) {\n range.setStart(node, offset);\n\n var _this$scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _this$scroll$leaf4 = _slicedToArray(_this$scroll$leaf3, 2);\n\n leaf = _this$scroll$leaf4[0];\n offset = _this$scroll$leaf4[1];\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n }\n\n var side = 'left';\n var rect;\n\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }, {\n key: \"getNativeRange\",\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return document.activeElement === this.root || contains(this.root, document.activeElement);\n }\n }, {\n key: \"normalizedToRange\",\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _this4.scroll.find(node, true);\n\n var index = blot.offset(_this4.scroll);\n\n if (offset === 0) {\n return index;\n }\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n return index + blot.index(node, offset);\n }\n\n return index + blot.length();\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: \"normalizeNative\",\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n\n if (node instanceof Text) {\n offset = node.data.length;\n } else if (node.childNodes.length > 0) {\n // Container case\n offset = node.childNodes.length;\n } else {\n // Embed case\n offset = node.childNodes.length + 1;\n }\n } else {\n break;\n }\n }\n\n position.node = node;\n position.offset = offset;\n });\n return range;\n }\n }, {\n key: \"rangeToNative\",\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n\n var _this5$scroll$leaf = _this5.scroll.leaf(index),\n _this5$scroll$leaf2 = _slicedToArray(_this5$scroll$leaf, 2),\n leaf = _this5$scroll$leaf2[0],\n leafOffset = _this5$scroll$leaf2[1];\n\n var _leaf$position5 = leaf.position(leafOffset, i !== 0),\n _leaf$position6 = _slicedToArray(_leaf$position5, 2),\n node = _leaf$position6[0],\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n\n if (args.length < 2) {\n return args.concat(args);\n }\n\n return args;\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _this$scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 1),\n first = _this$scroll$line2[0];\n\n var last = first;\n\n if (range.length > 0) {\n var _this$scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 1);\n\n last = _this$scroll$line4[0];\n }\n\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: \"setNativeRange\",\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n\n var selection = document.getSelection();\n if (selection == null) return;\n\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n\n var _ref = this.getNativeRange() || {},\n native = _ref.native;\n\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode.tagName === 'BR') {\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n startNode = startNode.parentNode;\n }\n\n if (endNode.tagName === 'BR') {\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n endNode = endNode.parentNode;\n }\n\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough for IE11\n }\n }\n }, {\n key: \"setRange\",\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n\n debug.info('setRange', range);\n\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n\n this.update(source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER;\n var oldRange = this.lastRange;\n\n var _this$getRange = this.getRange(),\n _this$getRange2 = _slicedToArray(_this$getRange, 2),\n lastRange = _this$getRange2[0],\n nativeRange = _this$getRange2[1];\n\n this.lastRange = lastRange;\n this.lastNative = nativeRange;\n\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n\n if (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(oldRange, this.lastRange)) {\n var _this$emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n var range = this.cursor.restore();\n\n if (range) {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }\n }\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SELECTION_CHANGE, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(this.lastRange), lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(oldRange), source];\n\n (_this$emitter = this.emitter).emit.apply(_this$emitter, [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter2;\n\n (_this$emitter2 = this.emitter).emit.apply(_this$emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode; // eslint-disable-line no-unused-expressions\n } catch (e) {\n return false;\n } // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n\n\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n\n return parent.contains(descendant);\n}\n\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return escapeText; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Text = /*#__PURE__*/function (_TextBlot) {\n _inherits(Text, _TextBlot);\n\n var _super = _createSuper(Text);\n\n function Text() {\n _classCallCheck(this, Text);\n\n return _super.apply(this, arguments);\n }\n\n return Text;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"TextBlot\"]);\n\nfunction escapeText(text) {\n return text.replace(/[&<>\"']/g, function (s) {\n // https://lodash.com/docs#escape\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return entityMap[s];\n });\n}\n\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Break = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Break, _EmbedBlot);\n\n var _super = _createSuper(Break);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Break, [{\n key: \"optimize\",\n value: function optimize() {\n if (this.prev || this.next) {\n this.remove();\n }\n }\n }, {\n key: \"length\",\n value: function length() {\n return 0;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n/* harmony default export */ __webpack_exports__[\"a\"] = (Break);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar Inline = /*#__PURE__*/function (_InlineBlot) {\n _inherits(Inline, _InlineBlot);\n\n var _super = _createSuper(Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Inline, [{\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOT)) {\n var blot = this.isolate(index, length);\n\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(_getPrototypeOf(Inline.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Inline.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: \"compare\",\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n }\n\n if (self === other) {\n return 0;\n }\n\n if (self < other) {\n return -1;\n }\n\n return 1;\n }\n }]);\n\n return Inline;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"InlineBlot\"]);\n\nInline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\nInline.order = ['cursor', 'inline', // Must be lower\n'link', // Chrome wants to be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inline);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar hasWindow = function hasWindow() {\n return typeof window !== 'undefined';\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (hasWindow);\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Module);\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Code; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CodeBlockContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return CodeBlock; });\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar CodeBlockContainer = /*#__PURE__*/function (_Container) {\n _inherits(CodeBlockContainer, _Container);\n\n var _super = _createSuper(CodeBlockContainer);\n\n function CodeBlockContainer() {\n _classCallCheck(this, CodeBlockContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CodeBlockContainer, [{\n key: \"code\",\n value: function code(index, length) {\n var text = this.children.map(function (child) {\n return child.length() <= 1 ? '' : child.domNode.innerText;\n }).join('\\n').slice(index, index + length);\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* escapeText */ \"b\"])(text);\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n // `\\n`s are needed in order to support empty lines at the beginning and the end.\n // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n return \"
    \\n\".concat(this.code(index, length), \"\\n
    \");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(CodeBlockContainer), \"create\", this).call(this, value);\n\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }]);\n\n return CodeBlockContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]);\n\nvar CodeBlock = /*#__PURE__*/function (_Block) {\n _inherits(CodeBlock, _Block);\n\n var _super2 = _createSuper(CodeBlock);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(CodeBlock, null, [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].register(CodeBlockContainer);\n }\n }]);\n\n return CodeBlock;\n}(_blots_block__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"d\"]);\n\nvar Code = /*#__PURE__*/function (_Inline) {\n _inherits(Code, _Inline);\n\n var _super3 = _createSuper(Code);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _super3.apply(this, arguments);\n }\n\n return Code;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"]);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], _blots_cursor__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]];\nCodeBlock.requiredContainer = CodeBlockContainer;\nCodeBlock.TAB = ' ';\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nfunction isLine(blot) {\n return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"] || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"];\n}\n\nvar Scroll = /*#__PURE__*/function (_ScrollBlot) {\n _inherits(Scroll, _ScrollBlot);\n\n var _super = _createSuper(Scroll);\n\n function Scroll(registry, domNode, _ref) {\n var _this;\n\n var emitter = _ref.emitter;\n\n _classCallCheck(this, Scroll);\n\n _this = _super.call(this, registry, domNode);\n _this.emitter = emitter;\n _this.batch = false;\n\n _this.optimize();\n\n _this.enable();\n\n _this.domNode.addEventListener('dragstart', function (e) {\n return _this.handleDragStart(e);\n });\n\n return _this;\n }\n\n _createClass(Scroll, [{\n key: \"batchStart\",\n value: function batchStart() {\n if (!Array.isArray(this.batch)) {\n this.batch = [];\n }\n }\n }, {\n key: \"batchEnd\",\n value: function batchEnd() {\n var mutations = this.batch;\n this.batch = false;\n this.update(mutations);\n }\n }, {\n key: \"emitMount\",\n value: function emitMount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, blot);\n }\n }, {\n key: \"emitUnmount\",\n value: function emitUnmount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BLOT_UNMOUNT, blot);\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n var _this$line = this.line(index),\n _this$line2 = _slicedToArray(_this$line, 2),\n first = _this$line2[0],\n offset = _this$line2[1];\n\n var _this$line3 = this.line(index + length),\n _this$line4 = _slicedToArray(_this$line3, 1),\n last = _this$line4[0];\n\n _get(_getPrototypeOf(Scroll.prototype), \"deleteAt\", this).call(this, index, length);\n\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"] || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n this.optimize();\n return;\n }\n\n var ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"] ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n\n this.optimize();\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, format, value) {\n _get(_getPrototypeOf(Scroll.prototype), \"formatAt\", this).call(this, index, length, format, value);\n\n this.optimize();\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(event) {\n event.preventDefault();\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (index >= this.length()) {\n if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) == null) {\n var blot = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(blot);\n\n if (def == null && value.endsWith('\\n')) {\n blot.insertAt(0, value.slice(0, -1), def);\n } else {\n blot.insertAt(0, value, def);\n }\n } else {\n var embed = this.scroll.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n\n this.optimize();\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE_BLOT) {\n var wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n wrapper.appendChild(blot);\n\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, wrapper, ref);\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, blot, ref);\n }\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.domNode.getAttribute('contenteditable') === 'true';\n }\n }, {\n key: \"leaf\",\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: \"line\",\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n\n return this.descendant(isLine, index);\n }\n }, {\n key: \"lines\",\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, blotIndex, blotLength) {\n var lines = [];\n var lengthLeft = blotLength;\n blot.children.forEachAt(blotIndex, blotLength, function (child, childIndex, childLength) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]) {\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return lines;\n };\n\n return getLines(this, index, length);\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch) return;\n\n _get(_getPrototypeOf(Scroll.prototype), \"optimize\", this).call(this, mutations, context);\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Scroll.prototype), \"path\", this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: \"remove\",\n value: function remove() {// Never remove self\n }\n }, {\n key: \"update\",\n value: function update(mutations) {\n if (this.batch) {\n if (Array.isArray(mutations)) {\n this.batch = this.batch.concat(mutations);\n }\n\n return;\n }\n\n var source = _core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER;\n\n if (typeof mutations === 'string') {\n source = mutations;\n }\n\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n\n _get(_getPrototypeOf(Scroll.prototype), \"update\", this).call(this, mutations.concat([])); // pass copy\n\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ScrollBlot\"]);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"];\nScroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"], _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"], _container__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Scroll);\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\nnamespace.level = function (newLevel) {\n level = newLevel;\n};\n\ndebug.level = namespace.level;\n/* harmony default export */ __webpack_exports__[\"a\"] = (namespace);\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Container = /*#__PURE__*/function (_ContainerBlot) {\n _inherits(Container, _ContainerBlot);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n return Container;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Container);\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Cursor = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Cursor, _EmbedBlot);\n\n var _super = _createSuper(Cursor);\n\n _createClass(Cursor, null, [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(scroll, domNode, selection) {\n var _this;\n\n _classCallCheck(this, Cursor);\n\n _this = _super.call(this, scroll, domNode);\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n\n _this.domNode.appendChild(_this.textNode);\n\n _this.savedLength = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: \"detach\",\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (this.savedLength !== 0) {\n _get(_getPrototypeOf(Cursor.prototype), \"format\", this).call(this, name, value);\n\n return;\n }\n\n var target = this;\n var index = 0;\n\n while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n\n if (target != null) {\n this.savedLength = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this.savedLength = 0;\n }\n }\n }, {\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(_getPrototypeOf(Cursor.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"length\",\n value: function length() {\n return this.savedLength;\n }\n }, {\n key: \"position\",\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: \"remove\",\n value: function remove() {\n _get(_getPrototypeOf(Cursor.prototype), \"remove\", this).call(this);\n\n this.parent = null;\n }\n }, {\n key: \"restore\",\n value: function restore() {\n if (this.selection.composing || this.parent == null) return null;\n var range = this.selection.getNativeRange(); // Link format will insert text outside of anchor tag\n\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n\n var prevTextBlot = this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.prev : null;\n var prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n var nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.next : null;\n var nextText = nextTextBlot ? nextTextBlot.text : '';\n var textNode = this.textNode; // take text from inside this blot and reset it\n\n var newText = textNode.data.split(Cursor.CONTENTS).join('');\n textNode.data = Cursor.CONTENTS; // proactively merge TextBlots around cursor so that optimization\n // doesn't lose the cursor. the reason we are here in cursor.restore\n // could be that the user clicked in prevTextBlot or nextTextBlot, or\n // the user typed something.\n\n var mergedTextBlot;\n\n if (prevTextBlot) {\n mergedTextBlot = prevTextBlot;\n\n if (newText || nextTextBlot) {\n prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n\n if (nextTextBlot) {\n nextTextBlot.remove();\n }\n }\n } else if (nextTextBlot) {\n mergedTextBlot = nextTextBlot;\n nextTextBlot.insertAt(0, newText);\n } else {\n var newTextNode = document.createTextNode(newText);\n mergedTextBlot = this.scroll.create(newTextNode);\n this.parent.insertBefore(mergedTextBlot, this);\n }\n\n this.remove();\n\n if (range) {\n // calculate selection to restore\n var remapOffset = function remapOffset(node, offset) {\n if (prevTextBlot && node === prevTextBlot.domNode) {\n return offset;\n }\n\n if (node === textNode) {\n return prevTextLength + offset - 1;\n }\n\n if (nextTextBlot && node === nextTextBlot.domNode) {\n return prevTextLength + newText.length + offset;\n }\n\n return null;\n };\n\n var start = remapOffset(range.start.node, range.start.offset);\n var end = remapOffset(range.end.node, range.end.offset);\n\n if (start !== null && end !== null) {\n return {\n startNode: mergedTextBlot.domNode,\n startOffset: start,\n endNode: mergedTextBlot.domNode,\n endOffset: end\n };\n }\n }\n\n return null;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Cursor);\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar quill = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./blots/cursor.js\nvar cursor = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./blots/scroll.js\nvar blots_scroll = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(7);\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(44);\n\n// EXTERNAL MODULE: ./modules/history.js\nvar modules_history = __webpack_require__(34);\n\n// EXTERNAL MODULE: ./modules/keyboard.js\nvar keyboard = __webpack_require__(23);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(0);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/emitter.js\nvar emitter = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./utils/hasWindow.js\nvar hasWindow = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./modules/uploader.js\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar uploader_Uploader = /*#__PURE__*/function (_Module) {\n _inherits(Uploader, _Module);\n\n var _super = _createSuper(Uploader);\n\n function Uploader(quill, options) {\n var _this;\n\n _classCallCheck(this, Uploader);\n\n _this = _super.call(this, quill, options);\n\n _this.addDragOverHandler();\n\n _this.addDropHandler();\n\n return _this;\n }\n\n _createClass(Uploader, [{\n key: \"addDragOverHandler\",\n value: function addDragOverHandler() {\n if (Object(hasWindow[\"a\" /* default */])()) {\n var ua = window.navigator.userAgent.toLowerCase();\n var isMsIe = ua.indexOf('msie ') !== -1 || ua.indexOf('trident/') !== -1 || ua.indexOf('edge/') !== -1;\n\n if (isMsIe) {\n this.quill.root.addEventListener('dragover', function (e) {\n e.preventDefault();\n });\n }\n }\n }\n }, {\n key: \"addDropHandler\",\n value: function addDropHandler() {\n var _this2 = this;\n\n this.quill.root.addEventListener('drop', function (e) {\n e.preventDefault();\n var native;\n var onDrop = _this2.options.onDrop;\n\n if (onDrop && typeof onDrop === 'function') {\n onDrop(e);\n }\n\n if (document.caretRangeFromPoint) {\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\n } else if (document.caretPositionFromPoint) {\n var position = document.caretPositionFromPoint(e.clientX, e.clientY);\n native = document.createRange();\n native.setStart(position.offsetNode, position.offset);\n native.setEnd(position.offsetNode, position.offset);\n } else {\n return;\n }\n\n var normalized = _this2.quill.selection.normalizeNative(native);\n\n var range = _this2.quill.selection.normalizedToRange(normalized);\n\n _this2.upload(range, e.dataTransfer.files);\n });\n }\n }, {\n key: \"upload\",\n value: function upload(range, files) {\n var _this3 = this;\n\n var uploads = [];\n Array.from(files).forEach(function (file) {\n if (file && _this3.options.mimetypes.indexOf(file.type) !== -1) {\n uploads.push(file);\n }\n });\n\n if (uploads.length > 0) {\n this.options.handler.call(this, range, uploads, this.options.imageBlot);\n }\n }\n }]);\n\n return Uploader;\n}(core_module[\"a\" /* default */]);\n\nuploader_Uploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg'],\n imageBlot: 'image',\n handler: function handler(range, files, blotName) {\n var _this4 = this;\n\n var promises = files.map(function (file) {\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function (e) {\n resolve(e.target.result);\n };\n\n reader.readAsDataURL(file);\n });\n });\n Promise.all(promises).then(function (images) {\n var update = images.reduce(function (delta, image) {\n return delta.insert(_defineProperty({}, blotName, image));\n }, new Delta_default.a().retain(range.index).delete(range.length));\n\n _this4.quill.updateContents(update, emitter[\"a\" /* default */].sources.USER);\n\n _this4.quill.setSelection(range.index + images.length, emitter[\"a\" /* default */].sources.SILENT);\n });\n }\n};\n/* harmony default export */ var uploader = (uploader_Uploader);\n// CONCATENATED MODULE: ./core.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nquill[\"a\" /* default */].register({\n 'blots/block': block[\"d\" /* default */],\n 'blots/block/embed': block[\"a\" /* BlockEmbed */],\n 'blots/break': blots_break[\"a\" /* default */],\n 'blots/container': container[\"a\" /* default */],\n 'blots/cursor': cursor[\"a\" /* default */],\n 'blots/embed': blots_embed[\"a\" /* default */],\n 'blots/inline': inline[\"a\" /* default */],\n 'blots/scroll': blots_scroll[\"a\" /* default */],\n 'blots/text': blots_text[\"a\" /* default */],\n 'modules/clipboard': clipboard[\"a\" /* default */],\n 'modules/history': modules_history[\"a\" /* default */],\n 'modules/keyboard': keyboard[\"b\" /* default */],\n 'modules/uploader': uploader\n});\n/* harmony default export */ var core = __webpack_exports__[\"default\"] = (quill[\"a\" /* default */]);\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41)))\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar shared = __webpack_require__(70);\nvar has = __webpack_require__(25);\nvar uid = __webpack_require__(71);\nvar NATIVE_SYMBOL = __webpack_require__(79);\nvar USE_SYMBOL_AS_UID = __webpack_require__(104);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColorAttributor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ColorClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return ColorStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar ColorAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(ColorAttributor, _StyleAttributor);\n\n var _super = _createSuper(ColorAttributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ColorAttributor, [{\n key: \"value\",\n value: function value(domNode) {\n var value = _get(_getPrototypeOf(ColorAttributor.prototype), \"value\", this).call(this, domNode);\n\n if (value.indexOf('rgb(') !== 0) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n var hex = value.split(',').map(function (component) {\n return \"00\".concat(parseInt(component, 10).toString(16)).slice(-2);\n }).join('');\n return \"#\".concat(hex);\n }\n }]);\n\n return ColorAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('color', 'ql-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Keyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SHORTKEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return normalize; });\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])('quill:keyboard');\nvar KEY_NAMES = {\n backspace: 'backspace',\n tab: 'tab',\n enter: 'enter',\n escape: 'escape',\n pageup: 'pageUp',\n pagedown: 'pageDown',\n end: 'end',\n home: 'home',\n arrowleft: 'leftArrow',\n arrowup: 'upArrow',\n arrowright: 'rightArrow',\n arrowdown: 'downArrow',\n delete: 'del',\n ' ': 'space',\n '*': 'asterisk',\n '-': 'minus',\n alt: 'alt',\n control: 'control',\n shift: 'shift',\n // IE11:\n left: 'leftArrow',\n up: 'upArrow',\n right: 'rightArrow',\n down: 'downArrow',\n multiply: 'asterisk',\n spacebar: 'space',\n del: 'del',\n subtract: 'minus',\n esc: 'escape'\n};\nvar KEY_CODES = {\n // iOS 10.2 and lower didn't supports KeyboardEvent.key\n '8': 'backspace',\n '9': 'tab',\n '13': 'enter',\n '27': 'escape',\n '33': 'pageUp',\n '34': 'pageDown',\n '35': 'end',\n '36': 'home',\n '37': 'leftArrow',\n '38': 'upArrow',\n '39': 'rightArrow',\n '40': 'downArrow',\n '46': 'del',\n '32': 'space',\n '106': 'asterisk',\n '109': 'minus',\n '189': 'minus',\n '173': 'minus',\n '16': 'shift',\n '17': 'control',\n '18': 'alt'\n};\nvar SHORTKEY = Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = /*#__PURE__*/function (_Module) {\n _inherits(Keyboard, _Module);\n\n var _super = _createSuper(Keyboard);\n\n _createClass(Keyboard, null, [{\n key: \"match\",\n value: function match(evt, binding) {\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n\n return binding.key === Keyboard.normalizeKeyName(evt) || binding.key === evt.which;\n }\n }, {\n key: \"normalizeKeyName\",\n value: function normalizeKeyName(_ref) {\n var key = _ref.key,\n which = _ref.which;\n var isKeySupported = !!key;\n key = isKeySupported ? key : which;\n\n if (key) {\n if (isKeySupported) {\n key = KEY_NAMES[key.toLowerCase()] || key;\n } else {\n key = KEY_CODES[key] || String.fromCharCode(key);\n }\n }\n\n return key;\n }\n }]);\n\n function Keyboard(quill, options) {\n var _this;\n\n _classCallCheck(this, Keyboard);\n\n _this = _super.call(this, quill, options);\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n\n _this.addBinding({\n key: 'enter',\n shiftKey: null\n }, _this.handleEnter);\n\n _this.addBinding({\n key: 'enter',\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: true\n }, _this.handleBackspace);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: true\n }, _this.handleDelete);\n } else {\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, _this.handleBackspace);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, _this.handleDelete);\n }\n\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: false\n }, _this.handleDeleteRange);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: false\n }, _this.handleDeleteRange);\n\n _this.addBinding({\n key: 'backspace',\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, _this.handleBackspace);\n\n _this.listen();\n\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: \"addBinding\",\n value: function addBinding(keyBinding) {\n var _this2 = this;\n\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var binding = normalize(keyBinding);\n\n if (binding == null) {\n debug.warn('Attempted to add invalid keyboard binding', binding);\n return;\n }\n\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n\n if (typeof handler === 'function') {\n handler = {\n handler: handler\n };\n }\n\n var keys = Array.isArray(binding.key) ? binding.key : [binding.key];\n keys.forEach(function (key) {\n var singleBinding = _objectSpread(_objectSpread(_objectSpread({}, binding), {}, {\n key: key\n }, context), handler);\n\n _this2.bindings[singleBinding.key] = _this2.bindings[singleBinding.key] || [];\n\n _this2.bindings[singleBinding.key].push(singleBinding);\n });\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this3 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented || evt.isComposing) return;\n\n _this3.raiseOnKeydownCallback(evt);\n\n var keyName = Keyboard.normalizeKeyName(evt);\n var bindings = (_this3.bindings[keyName] || []).concat(_this3.bindings[evt.which] || []);\n var matches = bindings.filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (matches.length === 0) return;\n\n var range = _this3.quill.getSelection();\n\n if (range == null || !_this3.quill.hasFocus()) return;\n\n var _this3$quill$getLine = _this3.quill.getLine(range.index),\n _this3$quill$getLine2 = _slicedToArray(_this3$quill$getLine, 2),\n line = _this3$quill$getLine2[0],\n offset = _this3$quill$getLine2[1];\n\n var _this3$quill$getLeaf = _this3.quill.getLeaf(range.index),\n _this3$quill$getLeaf2 = _slicedToArray(_this3$quill$getLeaf, 2),\n leafStart = _this3$quill$getLeaf2[0],\n offsetStart = _this3$quill$getLeaf2[1];\n\n var _ref2 = range.length === 0 ? [leafStart, offsetStart] : _this3.quill.getLeaf(range.index + range.length),\n _ref3 = _slicedToArray(_ref2, 2),\n leafEnd = _ref3[0],\n offsetEnd = _ref3[1];\n\n var prefixText = leafStart instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"TextBlot\"] ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"TextBlot\"] ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this3.quill.getFormat(range),\n line: line,\n offset: offset,\n prefix: prefixText,\n suffix: suffixText,\n event: evt\n };\n var prevented = matches.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n return false;\n }\n\n if (binding.empty != null && binding.empty !== curContext.empty) {\n return false;\n }\n\n if (binding.offset != null && binding.offset !== curContext.offset) {\n return false;\n }\n\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default()(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n return false;\n }\n\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n return false;\n }\n\n return binding.handler.call(_this3, range, curContext, binding) !== true;\n });\n\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }, {\n key: \"raiseOnKeydownCallback\",\n value: function raiseOnKeydownCallback(event) {\n var callback = this.options.onKeydown;\n\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"handleBackspace\",\n value: function handleBackspace(range, context) {\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n var formats = {};\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 1),\n line = _this$quill$getLine2[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - length).delete(length);\n\n if (context.offset === 0) {\n // Always deleting newline here, length always 1\n var _this$quill$getLine3 = this.quill.getLine(range.index - 1),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 1),\n prev = _this$quill$getLine4[0];\n\n if (prev) {\n var isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n\n if (!isPrevLineEmpty) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, prevFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n var formatDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDelete\",\n value: function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {};\n\n var _this$quill$getLine5 = this.quill.getLine(range.index),\n _this$quill$getLine6 = _slicedToArray(_this$quill$getLine5, 1),\n line = _this$quill$getLine6[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(length);\n\n if (context.offset >= line.length() - 1) {\n var _this$quill$getLine7 = this.quill.getLine(range.index + 1),\n _this$quill$getLine8 = _slicedToArray(_this$quill$getLine7, 1),\n next = _this$quill$getLine8[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, nextFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n delta = delta.retain(next.length() - 1).retain(1, formats);\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDeleteRange\",\n value: function handleDeleteRange(range, context) {\n var lines = this.quill.getLines(range);\n var formats = {};\n\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(lastFormats, firstFormats) || {};\n }\n\n this.quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n this.raiseOnKeydownCallback(context.event);\n this.quill.formatLine(range.index, 1, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n this.quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.focus();\n }\n }, {\n key: \"handleEnter\",\n value: function handleEnter(range, context) {\n var _this4 = this;\n\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this4.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n\n return formats;\n }, {});\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'code' || name === 'link') return;\n\n _this4.raiseOnKeydownCallback(context.event);\n\n _this4.quill.format(name, context.format[name], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n });\n }\n }]);\n\n return Keyboard;\n}(_core_module__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]);\n\nKeyboard.DEFAULTS = {\n bindings: {\n bold: makeFormatHandler('bold'),\n italic: makeFormatHandler('italic'),\n underline: makeFormatHandler('underline'),\n indent: {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 'tab',\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n outdent: {\n key: 'tab',\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n 'outdent backspace': {\n key: 'backspace',\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: 'tab',\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n tab: {\n key: 'tab',\n handler: function handler(range, context) {\n if (context.format.table) return true;\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'blockquote empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['blockquote'],\n empty: true,\n handler: function handler() {\n this.quill.format('blockquote', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'list empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n var formats = {\n list: false\n };\n\n if (context.format.indent) {\n formats.indent = false;\n }\n\n this.quill.formatLine(range.index, range.length, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'checklist enter': {\n key: 'enter',\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler: function handler(range) {\n var _this$quill$getLine9 = this.quill.getLine(range.index),\n _this$quill$getLine10 = _slicedToArray(_this$quill$getLine9, 2),\n line = _this$quill$getLine10[0],\n offset = _this$quill$getLine10[1];\n\n var formats = _objectSpread(_objectSpread({}, line.formats()), {}, {\n list: 'checked'\n });\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: 'enter',\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _this$quill$getLine11 = this.quill.getLine(range.index),\n _this$quill$getLine12 = _slicedToArray(_this$quill$getLine11, 2),\n line = _this$quill$getLine12[0],\n offset = _this$quill$getLine12[1];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'table backspace': {\n key: 'backspace',\n format: ['table'],\n collapsed: true,\n offset: 0,\n handler: function handler() {}\n },\n 'table delete': {\n key: 'del',\n format: ['table'],\n collapsed: true,\n suffix: /^$/,\n handler: function handler() {}\n },\n 'table enter': {\n key: 'enter',\n shiftKey: null,\n format: ['table'],\n handler: function handler(range) {\n var module = this.quill.getModule('table');\n\n if (module) {\n var _module$getTable = module.getTable(range),\n _module$getTable2 = _slicedToArray(_module$getTable, 4),\n table = _module$getTable2[0],\n row = _module$getTable2[1],\n cell = _module$getTable2[2],\n offset = _module$getTable2[3];\n\n var shift = tableSide(table, row, cell, offset);\n if (shift == null) return;\n var index = table.offset();\n\n if (shift < 0) {\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(index).insert('\\n');\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n } else if (shift > 0) {\n index += table.length();\n\n var _delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(index).insert('\\n');\n\n this.quill.updateContents(_delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['table'],\n handler: function handler(range, context) {\n var event = context.event,\n cell = context.line;\n var offset = cell.offset(this.quill.scroll);\n\n if (event.shiftKey) {\n this.quill.setSelection(offset - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n },\n 'list autofill': {\n key: 'space',\n shiftKey: null,\n collapsed: true,\n format: {\n list: false,\n 'code-block': false,\n blockquote: false,\n header: false,\n table: false\n },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n if (this.quill.scroll.query('list') == null) return true;\n var length = context.prefix.length;\n\n var _this$quill$getLine13 = this.quill.getLine(range.index),\n _this$quill$getLine14 = _slicedToArray(_this$quill$getLine13, 2),\n line = _this$quill$getLine14[0],\n offset = _this$quill$getLine14[1];\n\n if (offset > length) return true;\n var value;\n\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n\n case '[x]':\n value = 'checked';\n break;\n\n case '-':\n case '*':\n value = 'bullet';\n break;\n\n default:\n value = 'ordered';\n }\n\n this.quill.insertText(range.index, ' ', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.raiseOnKeydownCallback(context.event);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'code exit': {\n key: 'enter',\n collapsed: true,\n format: ['code-block'],\n prefix: /^$/,\n suffix: /^\\s*$/,\n handler: function handler(range) {\n var _this$quill$getLine15 = this.quill.getLine(range.index),\n _this$quill$getLine16 = _slicedToArray(_this$quill$getLine15, 2),\n line = _this$quill$getLine16[0],\n offset = _this$quill$getLine16[1];\n\n var numLines = 2;\n var cur = line;\n\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n cur = cur.prev;\n numLines -= 1; // Requisite prev lines are empty\n\n if (numLines <= 0) {\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n }\n\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('ArrowLeft', false),\n 'embed left shift': makeEmbedArrowHandler('ArrowLeft', true),\n 'embed right': makeEmbedArrowHandler('ArrowRight', false),\n 'embed right shift': makeEmbedArrowHandler('ArrowRight', true),\n 'table down': makeTableArrowHandler(false),\n 'table up': makeTableArrowHandler(true)\n }\n};\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: 'tab',\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = this.quill.scroll.query('code-block');\n var lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n var index = range.index,\n length = range.length;\n lines.forEach(function (line, i) {\n if (indent) {\n line.insertAt(0, CodeBlock.TAB);\n\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.domNode.textContent.indexOf(CodeBlock.TAB) === 0) {\n line.deleteAt(0, CodeBlock.TAB.length);\n\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(index, length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n }\n };\n}\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref4;\n\n var where = key === 'leftArrow' ? 'prefix' : 'suffix';\n return _ref4 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref4, where, /^$/), _defineProperty(_ref4, \"handler\", function handler(range) {\n var index = range.index;\n\n if (key === 'rightArrow') {\n index += range.length + 1;\n }\n\n var _this$quill$getLeaf = this.quill.getLeaf(index),\n _this$quill$getLeaf2 = _slicedToArray(_this$quill$getLeaf, 1),\n leaf = _this$quill$getLeaf2[0];\n\n if (!(leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"EmbedBlot\"])) return true;\n\n if (key === 'ArrowLeft') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n return false;\n }), _ref4;\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0],\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n };\n}\n\nfunction makeTableArrowHandler(up) {\n return {\n key: up ? 'upArrow' : 'downArrow',\n collapsed: true,\n format: ['table'],\n handler: function handler(range, context) {\n // TODO move to table module\n var key = up ? 'prev' : 'next';\n var cell = context.line;\n var targetRow = cell.parent[key];\n\n if (targetRow != null) {\n if (targetRow.statics.blotName === 'table-row') {\n var targetCell = targetRow.children.head;\n var cur = cell;\n\n while (cur.prev != null) {\n cur = cur.prev;\n targetCell = targetCell.next;\n }\n\n var index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n this.quill.setSelection(index, 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n } else {\n var targetLine = cell.table()[key];\n\n if (targetLine != null) {\n if (up) {\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n }\n\n return false;\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n binding = {\n key: binding\n };\n } else if (_typeof(binding) === 'object') {\n binding = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(binding);\n } else {\n return null;\n }\n\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n\n return binding;\n}\n\nfunction tableSide(table, row, cell, offset) {\n if (row.prev == null && row.next == null) {\n if (cell.prev == null && cell.next == null) {\n return offset === 0 ? -1 : 1;\n }\n\n return cell.prev == null ? -1 : 1;\n }\n\n if (row.prev == null) {\n return -1;\n }\n\n if (row.next == null) {\n return 1;\n }\n\n return null;\n}\n\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DirectionAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return DirectionClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return DirectionStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['rtl']\n};\nvar DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('direction', 'dir', config);\nvar DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('direction', 'ql-direction', config);\nvar DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('direction', 'direction', config);\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AlignAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return AlignClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return AlignStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\nvar AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('align', 'align', config);\nvar AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('align', 'ql-align', config);\nvar AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('align', 'text-align', config);\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Link; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return _sanitize; });\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Link = /*#__PURE__*/function (_Inline) {\n _inherits(Link, _Inline);\n\n var _super = _createSuper(Link);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Link, [{\n key: \"format\",\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) {\n _get(_getPrototypeOf(Link.prototype), \"format\", this).call(this, name, value);\n } else {\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(Link), \"create\", this).call(this, value);\n\n node.setAttribute('href', this.sanitize(value));\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (new WeakMap());\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BackgroundClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BackgroundStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);\n\n\nvar BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('background', 'ql-bg', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__[/* ColorAttributor */ \"a\"]('background', 'background-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FontStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FontClass; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['serif', 'monospace']\n};\nvar FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('font', 'ql-font', config);\n\nvar FontStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(FontStyleAttributor, _StyleAttributor);\n\n var _super = _createSuper(FontStyleAttributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FontStyleAttributor, [{\n key: \"value\",\n value: function value(node) {\n return _get(_getPrototypeOf(FontStyleAttributor.prototype), \"value\", this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SizeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SizeStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('size', 'ql-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('size', 'font-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Bold = /*#__PURE__*/function (_Inline) {\n _inherits(Bold, _Inline);\n\n var _super = _createSuper(Bold);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Bold, [{\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Bold.prototype), \"optimize\", this).call(this, context);\n\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: \"create\",\n value: function create() {\n return _get(_getPrototypeOf(Bold), \"create\", this).call(this);\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Bold);\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return History; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getLastChangeIndex; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar History = /*#__PURE__*/function (_Module) {\n _inherits(History, _Module);\n\n var _super = _createSuper(History);\n\n function History(quill, options) {\n var _this;\n\n _classCallCheck(this, History);\n\n _this = _super.call(this, quill, options);\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n\n _this.clear();\n\n _this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.TEXT_CHANGE || _this.ignoreChange) return;\n\n if (!_this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true\n }, _this.undo.bind(_assertThisInitialized(_this)));\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])() && /Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'y',\n shortKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n }\n\n _this.quill.root.addEventListener('beforeinput', function (event) {\n if (event.inputType === 'historyUndo') {\n _this.undo();\n\n event.preventDefault();\n } else if (event.inputType === 'historyRedo') {\n _this.redo();\n\n event.preventDefault();\n }\n });\n\n return _this;\n }\n\n _createClass(History, [{\n key: \"change\",\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n var base = this.quill.getContents();\n var inverseDelta = delta.invert(base);\n this.stack[dest].push(inverseDelta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(this.quill.scroll, delta);\n this.quill.setSelection(index);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: \"cutoff\",\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: \"record\",\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = changeDelta.invert(oldDelta);\n var timestamp = Date.now();\n\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta);\n } else {\n this.lastRecorded = timestamp;\n }\n\n if (undoDelta.length() === 0) return;\n this.stack.undo.push(undoDelta);\n\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: \"redo\",\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: \"transform\",\n value: function transform(delta) {\n transformStack(this.stack.undo, delta);\n transformStack(this.stack.redo, delta);\n }\n }, {\n key: \"undo\",\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_core_module__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction transformStack(stack, delta) {\n var remoteDelta = delta;\n\n for (var i = stack.length - 1; i >= 0; i -= 1) {\n var oldDelta = stack[i];\n stack[i] = remoteDelta.transform(oldDelta, true);\n remoteDelta = oldDelta.transform(remoteDelta);\n\n if (stack[i].length() === 0) {\n stack.splice(i, 1);\n }\n }\n}\n\nfunction endsWithNewlineChange(scroll, delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) != null;\n });\n }\n\n return false;\n}\n\nfunction getLastChangeIndex(scroll, delta) {\n var deleteLength = delta.reduce(function (length, op) {\n return length + (op.delete || 0);\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n\n if (endsWithNewlineChange(scroll, delta)) {\n changeIndex -= 1;\n }\n\n return changeIndex;\n}\n\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar definePropertyModule = __webpack_require__(37);\nvar createPropertyDescriptor = __webpack_require__(47);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar IE8_DOM_DEFINE = __webpack_require__(68);\nvar anObject = __webpack_require__(39);\nvar toPrimitive = __webpack_require__(55);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(38);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Theme = /*#__PURE__*/function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: \"addModule\",\n value: function addModule(name) {\n var ModuleClass = this.quill.constructor.import(\"modules/\".concat(name));\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n default: Theme\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Theme);\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar GUARD_TEXT = \"\\uFEFF\";\n\nvar Embed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Embed, _EmbedBlot);\n\n var _super = _createSuper(Embed);\n\n function Embed(scroll, node) {\n var _this;\n\n _classCallCheck(this, Embed);\n\n _this = _super.call(this, scroll, node);\n _this.contentNode = document.createElement('span');\n\n _this.contentNode.setAttribute('contenteditable', false);\n\n Array.from(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n\n _this.domNode.appendChild(_this.leftGuard);\n\n _this.domNode.appendChild(_this.contentNode);\n\n _this.domNode.appendChild(_this.rightGuard);\n\n return _this;\n }\n\n _createClass(Embed, [{\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(_getPrototypeOf(Embed.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"restore\",\n value: function restore(node) {\n var range;\n var textNode;\n var text = node.data.split(GUARD_TEXT).join('');\n\n if (node === this.leftGuard) {\n if (this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Embed);\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Clipboard; });\n/* unused harmony export matchAttributor */\n/* unused harmony export matchBlot */\n/* unused harmony export matchNewline */\n/* unused harmony export matchText */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return traverse; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);\n/* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27);\n/* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(30);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);\n/* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22);\n/* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24);\n/* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31);\n/* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(32);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:clipboard');\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar CLIPBOARD_CONFIG = [[TEXT_NODE, matchText], [TEXT_NODE, matchNewline], ['br', matchBreak], [ELEMENT_NODE, matchNewline], [ELEMENT_NODE, matchBlot], [ELEMENT_NODE, matchAttributor], [ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['strike', matchAlias.bind(matchAlias, 'strike')], ['style', matchIgnore]];\nvar ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignAttribute */ \"a\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionAttribute */ \"a\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignStyle */ \"c\"], _formats_background__WEBPACK_IMPORTED_MODULE_7__[/* BackgroundStyle */ \"b\"], _formats_color__WEBPACK_IMPORTED_MODULE_9__[/* ColorStyle */ \"c\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionStyle */ \"c\"], _formats_font__WEBPACK_IMPORTED_MODULE_11__[/* FontStyle */ \"b\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* SizeStyle */ \"b\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = /*#__PURE__*/function (_Module) {\n _inherits(Clipboard, _Module);\n\n var _super = _createSuper(Clipboard);\n\n function Clipboard(quill, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this, quill, options);\n\n _this.quill.root.addEventListener('copy', function (e) {\n return _this.onCaptureCopy(e, false);\n });\n\n _this.quill.root.addEventListener('cut', function (e) {\n return _this.onCaptureCopy(e, true);\n });\n\n _this.quill.root.addEventListener('paste', _this.onCapturePaste.bind(_assertThisInitialized(_this)));\n\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: \"addMatcher\",\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: \"convert\",\n value: function convert(_ref3) {\n var html = _ref3.html,\n text = _ref3.text;\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text, _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName, formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]));\n }\n\n return html ? this.applyMatchers(html, formats) : this.applyTextMatchers(text);\n }\n }, {\n key: \"applyTextMatchers\",\n value: function applyTextMatchers() {\n var _this2 = this;\n\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (text.length === 0) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var matchers = this.prepareTextMatching();\n var element = this.quill.root.ownerDocument.createElement('div');\n element.textContent = text;\n var node = element.childNodes[0];\n return matchers.reduce(function (delta, matcher) {\n return matcher(node, delta, _this2.quill.scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n }, {\n key: \"applyMatchers\",\n value: function applyMatchers(html, formats) {\n var doc = new DOMParser().parseFromString(html, 'text/html');\n var container = doc.body;\n var nodeMatches = new WeakMap();\n\n var _this$prepareMatching = this.prepareMatching(container, nodeMatches),\n _this$prepareMatching2 = _slicedToArray(_this$prepareMatching, 2),\n elementMatchers = _this$prepareMatching2[0],\n textMatchers = _this$prepareMatching2[1];\n\n var delta = traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches); // Remove trailing newline\n\n if (deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || formats.table)) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length() - 1).delete(1));\n }\n\n return delta;\n }\n }, {\n key: \"dangerouslyPasteHTML\",\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof index === 'string') {\n var delta = this.convert({\n html: index,\n text: ''\n });\n this.quill.setContents(delta, html);\n this.quill.setSelection(0, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } else {\n var paste = this.convert({\n html: html,\n text: ''\n });\n this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"onCaptureCopy\",\n value: function onCaptureCopy(e) {\n var isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (e.defaultPrevented) return;\n\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n\n var _this$quill$selection = this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0];\n\n if (range == null) return;\n\n var _this$onCopy = this.onCopy(range, isCut),\n html = _this$onCopy.html,\n text = _this$onCopy.text;\n\n e.clipboardData.setData('text/plain', text);\n e.clipboardData.setData('text/html', html);\n\n if (isCut) {\n this.raiseCallback('onCut', e);\n this.quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n }\n }\n }, {\n key: \"onCapturePaste\",\n value: function onCapturePaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n this.raiseCallback('onPaste', e);\n\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n\n var range = this.quill.getSelection(true);\n if (range == null) return;\n var html = e.clipboardData.getData('text/html');\n var text = e.clipboardData.getData('text/plain');\n var files = Array.from(e.clipboardData.files || []);\n\n if (!html && files.length > 0) {\n this.quill.uploader.upload(range, files);\n } else {\n this.onPaste(range, {\n html: html,\n text: text\n });\n }\n }\n }, {\n key: \"raiseCallback\",\n value: function raiseCallback(name, event) {\n var callback = this.options[name];\n\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"onCopy\",\n value: function onCopy(range) {\n var text = this.quill.getText(range);\n var html = this.quill.getSemanticHTML(range);\n return {\n html: html,\n text: text\n };\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(range, _ref4) {\n var text = _ref4.text,\n html = _ref4.html;\n var formats = this.quill.getFormat(range.index);\n var pastedDelta = this.convert({\n text: text,\n html: html\n }, formats);\n debug.log('onPaste', pastedDelta, {\n text: text,\n html: html\n });\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index).delete(range.length).concat(pastedDelta);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER); // range.length contributes to delta.length()\n\n this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n }, {\n key: \"prepareMatching\",\n value: function prepareMatching(container, nodeMatches) {\n var elementMatchers = [];\n var textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case TEXT_NODE:\n textMatchers.push(matcher);\n break;\n\n case ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n\n default:\n Array.from(container.querySelectorAll(selector)).forEach(function (node) {\n if (nodeMatches.has(node)) {\n var matches = nodeMatches.get(node);\n matches.push(matcher);\n } else {\n nodeMatches.set(node, [matcher]);\n }\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }, {\n key: \"prepareTextMatching\",\n value: function prepareTextMatching() {\n var textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair2 = _slicedToArray(pair, 2),\n selector = _pair2[0],\n matcher = _pair2[1];\n\n if (selector === TEXT_NODE) {\n textMatchers.push(matcher);\n }\n });\n return textMatchers;\n }\n }]);\n\n return Clipboard;\n}(_core_module__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]);\n\nClipboard.DEFAULTS = {\n matchers: []\n};\n\nfunction applyFormat(delta, format, value) {\n if (_typeof(format) === 'object') {\n return Object.keys(format).reduce(function (newDelta, key) {\n return applyFormat(newDelta, key, format[key]);\n }, delta);\n }\n\n return delta.reduce(function (newDelta, op) {\n if (op.attributes && op.attributes[format]) {\n return newDelta.push(op);\n }\n\n var formats = value ? _defineProperty({}, format, value) : {};\n return newDelta.insert(op.insert, _objectSpread(_objectSpread({}, formats), op.attributes));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = '';\n\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n ) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].indexOf(node.tagName.toLowerCase()) !== -1;\n}\n\nvar preNodes = new WeakMap();\n\nfunction isPre(node) {\n if (node == null) return false;\n\n if (!preNodes.has(node)) {\n if (node.tagName === 'PRE') {\n preNodes.set(node, true);\n } else {\n preNodes.set(node, isPre(node.parentNode));\n }\n }\n\n return preNodes.get(node);\n}\n\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta, scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n return Array.from(node.childNodes || []).reduce(function (delta, childNode) {\n var childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n childrenDelta = (nodeMatches.get(childNode) || []).reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n }\n\n return delta.concat(childrenDelta);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta, scroll) {\n var attributes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Attributor\"].keys(node);\n var classes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"].keys(node);\n var styles = parchment__WEBPACK_IMPORTED_MODULE_1__[\"StyleAttributor\"].keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].ATTRIBUTE);\n\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n\n attr = STYLE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n\n if (Object.keys(formats).length > 0) {\n return applyFormat(delta, formats);\n }\n\n return delta;\n}\n\nfunction matchBlot(node, delta, scroll) {\n var match = scroll.query(node);\n if (match == null) return delta;\n\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]) {\n var embed = {};\n var value = match.value(node);\n\n if (value != null) {\n embed[match.blotName] = value;\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(embed, match.formats(node, scroll));\n }\n } else {\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"] && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n if (typeof match.formats === 'function') {\n return applyFormat(delta, match.blotName, match.formats(node, scroll));\n }\n }\n\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return delta;\n}\n\nfunction matchCodeBlock(node, delta, scroll) {\n var match = scroll.query('code-block');\n var language = match ? match.formats(node, scroll) : true;\n return applyFormat(delta, 'code-block', language);\n}\n\nfunction matchIgnore() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchIndent(node, delta, scroll) {\n var match = scroll.query(node);\n\n if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n\n var indent = -1;\n var parent = node.parentNode;\n\n while (parent != null) {\n if (['OL', 'UL'].indexOf(parent.tagName) !== -1) {\n indent += 1;\n }\n\n parent = parent.parentNode;\n }\n\n if (indent <= 0) return delta;\n return delta.reduce(function (composed, op) {\n if (op.attributes && typeof op.attributes.indent === 'number') {\n return composed.push(op);\n }\n\n return composed.insert(op.insert, _objectSpread({\n indent: indent\n }, op.attributes || {}));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction matchList(node, delta) {\n var list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n return applyFormat(delta, 'list', list);\n}\n\nfunction matchNewline(node, delta, scroll) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node)) {\n return delta.insert('\\n');\n }\n\n if (delta.length() > 0 && node.nextSibling) {\n var nextSibling = node.nextSibling;\n\n while (nextSibling != null) {\n if (isLine(nextSibling)) {\n return delta.insert('\\n');\n }\n\n var match = scroll.query(nextSibling);\n\n if (match && match.prototype instanceof _blots_block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n return delta.insert('\\n');\n }\n\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n\n if (style.fontStyle === 'italic') {\n formats.italic = true;\n }\n\n if (style.textDecoration.indexOf('underline') !== -1) {\n formats.underline = true;\n }\n\n if (style.textDecoration.indexOf('line-through') !== -1) {\n formats.strike = true;\n }\n\n if (style.fontWeight.indexOf('bold') === 0 || parseInt(style.fontWeight, 10) >= 700) {\n formats.bold = true;\n }\n\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert('\\t').concat(delta);\n }\n\n return delta;\n}\n\nfunction matchTable(node, delta) {\n var table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\n var rows = Array.from(table.querySelectorAll('tr'));\n var row = rows.indexOf(node) + 1;\n return applyFormat(delta, 'table', row);\n}\n\nfunction matchText(node, delta) {\n var text = node.data; // Word represents empty line with  \n\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n\n if (text.trim().length === 0 && text.indexOf('\\n') !== -1) {\n return delta;\n }\n\n if (!isPre(node)) {\n var replacer = function replacer(collapse, match) {\n var replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n\n return replaced.length < 1 && collapse ? ' ' : replaced;\n };\n\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n\n return delta.insert(text);\n}\n\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar getOwnPropertyDescriptor = __webpack_require__(58).f;\nvar createNonEnumerableProperty = __webpack_require__(35);\nvar redefine = __webpack_require__(72);\nvar setGlobal = __webpack_require__(54);\nvar copyConstructorProperties = __webpack_require__(96);\nvar isForced = __webpack_require__(101);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(53);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SyntaxCodeBlock; });\n/* unused harmony export CodeToken */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Syntax; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(10);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"]('code-token', 'hljs', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE\n});\n\nvar CodeToken = /*#__PURE__*/function (_Inline) {\n _inherits(CodeToken, _Inline);\n\n var _super = _createSuper(CodeToken);\n\n _createClass(CodeToken, null, [{\n key: \"formats\",\n value: function formats(node, scroll) {\n while (node != null && node !== scroll.domNode) {\n if (node.classList && node.classList.contains(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].className)) {\n return _get(_getPrototypeOf(CodeToken), \"formats\", this).call(this, node, scroll);\n }\n\n node = node.parentNode;\n }\n\n return undefined;\n }\n }]);\n\n function CodeToken(scroll, domNode, value) {\n var _this;\n\n _classCallCheck(this, CodeToken);\n\n _this = _super.call(this, scroll, domNode, value);\n TokenAttributor.add(_this.domNode, value);\n return _this;\n }\n\n _createClass(CodeToken, [{\n key: \"format\",\n value: function format(_format, value) {\n if (_format !== CodeToken.blotName) {\n _get(_getPrototypeOf(CodeToken.prototype), \"format\", this).call(this, _format, value);\n } else if (value) {\n TokenAttributor.add(this.domNode, value);\n } else {\n TokenAttributor.remove(this.domNode);\n this.domNode.classList.remove(this.statics.className);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_get2 = _get(_getPrototypeOf(CodeToken.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n\n if (!TokenAttributor.value(this.domNode)) {\n this.unwrap();\n }\n }\n }]);\n\n return CodeToken;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\n\nvar SyntaxCodeBlock = /*#__PURE__*/function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n var _super2 = _createSuper(SyntaxCodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: \"format\",\n // Syntax module will register\n value: function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-language', value);\n } else {\n _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"replaceWith\",\n value: function replaceWith(name, value) {\n this.formatAt(0, this.length(), CodeToken.blotName, false);\n return _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"replaceWith\", this).call(this, name, value);\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(SyntaxCodeBlock), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n domNode.setAttribute('data-language', value);\n }\n\n return domNode;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-language') || 'plain';\n }\n }, {\n key: \"register\",\n value: function register() {}\n }]);\n\n return SyntaxCodeBlock;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"]);\n\nvar SyntaxCodeBlockContainer = /*#__PURE__*/function (_CodeBlockContainer) {\n _inherits(SyntaxCodeBlockContainer, _CodeBlockContainer);\n\n var _super3 = _createSuper(SyntaxCodeBlockContainer);\n\n function SyntaxCodeBlockContainer() {\n _classCallCheck(this, SyntaxCodeBlockContainer);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlockContainer, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"attach\", this).call(this);\n\n this.forceNext = false;\n this.scroll.emitMount(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n }\n\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }, {\n key: \"highlight\",\n value: function highlight(_highlight) {\n var _this2 = this;\n\n var forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.children.head == null) return;\n var nodes = Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this2.uiNode;\n });\n var text = \"\".concat(nodes.map(function (node) {\n return node.textContent;\n }).join('\\n'), \"\\n\");\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (forced || this.forceNext || this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n var oldDelta = this.children.reduce(function (delta, child) {\n return delta.concat(Object(_blots_block__WEBPACK_IMPORTED_MODULE_5__[/* blockDelta */ \"b\"])(child, false));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n\n var delta = _highlight(text, language);\n\n oldDelta.diff(delta).reduce(function (index, _ref) {\n var retain = _ref.retain,\n attributes = _ref.attributes;\n // Should be all retains\n if (!retain) return index;\n\n if (attributes) {\n Object.keys(attributes).forEach(function (format) {\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].indexOf(format) !== -1) {\n _this2.formatAt(index, retain, format, attributes[format]);\n }\n });\n }\n\n return index + retain;\n }, 0);\n }\n\n this.cachedText = text;\n this.forceNext = false;\n }\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n var _this$children$find = this.children.find(index),\n _this$children$find2 = _slicedToArray(_this$children$find, 1),\n codeBlock = _this$children$find2[0];\n\n var language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n return \"
    \\n\").concat(this.code(index, length), \"\\n
    \");\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (language !== this.uiNode.value) {\n this.uiNode.value = language;\n }\n }\n }\n }]);\n\n return SyntaxCodeBlockContainer;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* CodeBlockContainer */ \"b\"]);\n\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"], _blots_text__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]];\n\nvar Syntax = /*#__PURE__*/function (_Module) {\n _inherits(Syntax, _Module);\n\n var _super4 = _createSuper(Syntax);\n\n _createClass(Syntax, null, [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(CodeToken, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlock, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlockContainer, true);\n }\n }]);\n\n function Syntax(quill, options) {\n var _this3;\n\n _classCallCheck(this, Syntax);\n\n _this3 = _super4.call(this, quill, options);\n\n if (_this3.options.hljs == null) {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n\n _this3.languages = _this3.options.languages.reduce(function (memo, _ref2) {\n var key = _ref2.key;\n memo[key] = true;\n return memo;\n }, {});\n _this3.highlightBlot = _this3.highlightBlot.bind(_assertThisInitialized(_this3));\n\n _this3.initListener();\n\n _this3.initTimer();\n\n return _this3;\n }\n\n _createClass(Syntax, [{\n key: \"initListener\",\n value: function initListener() {\n var _this4 = this;\n\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, function (blot) {\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n\n var select = _this4.quill.root.ownerDocument.createElement('select');\n\n _this4.options.languages.forEach(function (_ref3) {\n var key = _ref3.key,\n label = _ref3.label;\n var option = select.ownerDocument.createElement('option');\n option.textContent = label;\n option.setAttribute('value', key);\n select.appendChild(option);\n });\n\n select.addEventListener('change', function () {\n blot.format(SyntaxCodeBlock.blotName, select.value);\n\n _this4.quill.root.focus(); // Prevent scrolling\n\n\n _this4.highlight(blot, true);\n });\n\n if (blot.uiNode == null) {\n blot.attachUI(select);\n\n if (blot.children.head) {\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n }\n }\n });\n }\n }, {\n key: \"initTimer\",\n value: function initTimer() {\n var _this5 = this;\n\n var timer = null;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this5.highlight();\n\n timer = null;\n }, _this5.options.interval);\n });\n }\n }, {\n key: \"highlight\",\n value: function highlight() {\n var _this6 = this;\n\n var blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.quill.selection.composing) return;\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n var range = this.quill.getSelection();\n var blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n blots.forEach(function (container) {\n container.highlight(_this6.highlightBlot, force);\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n\n if (range != null) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"highlightBlot\",\n value: function highlightBlot(text) {\n var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n language = this.languages[language] ? language : 'plain';\n\n if (language === 'plain') {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_8__[/* escapeText */ \"b\"])(text).split('\\n').reduce(function (delta, line, i) {\n if (i !== 0) {\n delta.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n }\n\n return delta.insert(line);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n var container = this.quill.root.ownerDocument.createElement('div');\n container.classList.add(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].className);\n container.innerHTML = this.options.hljs.highlight(language, text).value;\n return Object(_clipboard__WEBPACK_IMPORTED_MODULE_10__[/* traverse */ \"b\"])(this.quill.scroll, container, [function (node, delta) {\n var value = TokenAttributor.value(node);\n\n if (value) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length(), _defineProperty({}, CodeToken.blotName, value)));\n }\n\n return delta;\n }], [function (node, delta) {\n return node.data.split('\\n').reduce(function (memo, nodeText, i) {\n if (i !== 0) memo.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n }]);\n\n return Syntax;\n}(_core_module__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]);\n\nSyntax.DEFAULTS = {\n hljs: function () {\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"])()) {\n return window.hljs;\n }\n\n return null;\n }(),\n interval: 1000,\n languages: [{\n key: 'plain',\n label: 'Plain'\n }, {\n key: 'bash',\n label: 'Bash'\n }, {\n key: 'cpp',\n label: 'C++'\n }, {\n key: 'cs',\n label: 'C#'\n }, {\n key: 'css',\n label: 'CSS'\n }, {\n key: 'diff',\n label: 'Diff'\n }, {\n key: 'xml',\n label: 'HTML/XML'\n }, {\n key: 'java',\n label: 'Java'\n }, {\n key: 'javascript',\n label: 'Javascript'\n }, {\n key: 'markdown',\n label: 'Markdown'\n }, {\n key: 'php',\n label: 'PHP'\n }, {\n key: 'python',\n label: 'Python'\n }, {\n key: 'ruby',\n label: 'Ruby'\n }, {\n key: 'sql',\n label: 'SQL'\n }]\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar createNonEnumerableProperty = __webpack_require__(35);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(38);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(70);\nvar uid = __webpack_require__(71);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar propertyIsEnumerableModule = __webpack_require__(94);\nvar createPropertyDescriptor = __webpack_require__(47);\nvar toIndexedObject = __webpack_require__(59);\nvar toPrimitive = __webpack_require__(55);\nvar has = __webpack_require__(25);\nvar IE8_DOM_DEFINE = __webpack_require__(68);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(95);\nvar requireObjectCoercible = __webpack_require__(46);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(46);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Iterator_1 = __importDefault(__webpack_require__(87));\nvar Op;\n(function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n Op.iterator = iterator;\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports.default = Op;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(92);\nvar global = __webpack_require__(20);\nvar isObject = __webpack_require__(38);\nvar createNonEnumerableProperty = __webpack_require__(35);\nvar objectHas = __webpack_require__(25);\nvar sharedKey = __webpack_require__(56);\nvar hiddenKeys = __webpack_require__(57);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(67);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar setGlobal = __webpack_require__(54);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar fails = __webpack_require__(36);\nvar createElement = __webpack_require__(69);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar isObject = __webpack_require__(38);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(48);\nvar store = __webpack_require__(67);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar createNonEnumerableProperty = __webpack_require__(35);\nvar has = __webpack_require__(25);\nvar setGlobal = __webpack_require__(54);\nvar inspectSource = __webpack_require__(66);\nvar InternalStateModule = __webpack_require__(65);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(74);\nvar global = __webpack_require__(20);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar toIndexedObject = __webpack_require__(59);\nvar indexOf = __webpack_require__(99).indexOf;\nvar hiddenKeys = __webpack_require__(57);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(53);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(78);\nvar createNonEnumerableProperty = __webpack_require__(35);\nvar has = __webpack_require__(25);\nvar wellKnownSymbol = __webpack_require__(21);\nvar IS_PURE = __webpack_require__(48);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar toObject = __webpack_require__(62);\nvar sharedKey = __webpack_require__(56);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(103);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(39);\nvar defineProperties = __webpack_require__(105);\nvar enumBugKeys = __webpack_require__(61);\nvar hiddenKeys = __webpack_require__(57);\nvar html = __webpack_require__(107);\nvar documentCreateElement = __webpack_require__(69);\nvar sharedKey = __webpack_require__(56);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(37).f;\nvar has = __webpack_require__(25);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(112);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar bind = __webpack_require__(82);\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/from.js\nvar from = __webpack_require__(88);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\nvar fill = __webpack_require__(120);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\nvar ends_with = __webpack_require__(125);\n\n// CONCATENATED MODULE: ./polyfills.js\n// IE11 support\r\n\r\n\r\n\r\n\n// EXTERNAL MODULE: ./core.js + 1 modules\nvar core = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./formats/align.js\nvar align = __webpack_require__(27);\n\n// EXTERNAL MODULE: ./formats/direction.js\nvar direction = __webpack_require__(24);\n\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./formats/indent.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar IndentAttributor = /*#__PURE__*/function (_ClassAttributor) {\n _inherits(IndentAttributor, _ClassAttributor);\n\n var _super = _createSuper(IndentAttributor);\n\n function IndentAttributor() {\n _classCallCheck(this, IndentAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(IndentAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n\n if (value === 0) {\n this.remove(node);\n return true;\n }\n\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"add\", this).call(this, node, value);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, value) || _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, parseInt(value, 10));\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return parseInt(_get(_getPrototypeOf(IndentAttributor.prototype), \"value\", this).call(this, node), 10) || undefined; // Don't return NaN\n }\n }]);\n\n return IndentAttributor;\n}(parchment[\"ClassAttributor\"]);\n\nvar IndentClass = new IndentAttributor('indent', 'ql-indent', {\n scope: parchment[\"Scope\"].BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n/* harmony default export */ var indent = (IndentClass);\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./formats/blockquote.js\nfunction blockquote_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { blockquote_typeof = function _typeof(obj) { return typeof obj; }; } else { blockquote_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return blockquote_typeof(obj); }\n\nfunction blockquote_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction blockquote_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) blockquote_setPrototypeOf(subClass, superClass); }\n\nfunction blockquote_setPrototypeOf(o, p) { blockquote_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return blockquote_setPrototypeOf(o, p); }\n\nfunction blockquote_createSuper(Derived) { var hasNativeReflectConstruct = blockquote_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = blockquote_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = blockquote_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return blockquote_possibleConstructorReturn(this, result); }; }\n\nfunction blockquote_possibleConstructorReturn(self, call) { if (call && (blockquote_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return blockquote_assertThisInitialized(self); }\n\nfunction blockquote_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction blockquote_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction blockquote_getPrototypeOf(o) { blockquote_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return blockquote_getPrototypeOf(o); }\n\n\n\nvar Blockquote = /*#__PURE__*/function (_Block) {\n blockquote_inherits(Blockquote, _Block);\n\n var _super = blockquote_createSuper(Blockquote);\n\n function Blockquote() {\n blockquote_classCallCheck(this, Blockquote);\n\n return _super.apply(this, arguments);\n }\n\n return Blockquote;\n}(block[\"d\" /* default */]);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n/* harmony default export */ var blockquote = (Blockquote);\n// CONCATENATED MODULE: ./formats/header.js\nfunction header_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { header_typeof = function _typeof(obj) { return typeof obj; }; } else { header_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return header_typeof(obj); }\n\nfunction header_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction header_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction header_createClass(Constructor, protoProps, staticProps) { if (protoProps) header_defineProperties(Constructor.prototype, protoProps); if (staticProps) header_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction header_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) header_setPrototypeOf(subClass, superClass); }\n\nfunction header_setPrototypeOf(o, p) { header_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return header_setPrototypeOf(o, p); }\n\nfunction header_createSuper(Derived) { var hasNativeReflectConstruct = header_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = header_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = header_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return header_possibleConstructorReturn(this, result); }; }\n\nfunction header_possibleConstructorReturn(self, call) { if (call && (header_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return header_assertThisInitialized(self); }\n\nfunction header_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction header_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction header_getPrototypeOf(o) { header_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return header_getPrototypeOf(o); }\n\n\n\nvar Header = /*#__PURE__*/function (_Block) {\n header_inherits(Header, _Block);\n\n var _super = header_createSuper(Header);\n\n function Header() {\n header_classCallCheck(this, Header);\n\n return _super.apply(this, arguments);\n }\n\n header_createClass(Header, null, [{\n key: \"formats\",\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(block[\"d\" /* default */]);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n/* harmony default export */ var header = (Header);\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar quill = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./formats/list.js\nfunction list_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction list_createClass(Constructor, protoProps, staticProps) { if (protoProps) list_defineProperties(Constructor.prototype, protoProps); if (staticProps) list_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction list_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { list_get = Reflect.get; } else { list_get = function _get(target, property, receiver) { var base = list_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return list_get(target, property, receiver || target); }\n\nfunction list_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = list_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction list_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { list_typeof = function _typeof(obj) { return typeof obj; }; } else { list_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return list_typeof(obj); }\n\nfunction list_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction list_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) list_setPrototypeOf(subClass, superClass); }\n\nfunction list_setPrototypeOf(o, p) { list_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return list_setPrototypeOf(o, p); }\n\nfunction list_createSuper(Derived) { var hasNativeReflectConstruct = list_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = list_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = list_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return list_possibleConstructorReturn(this, result); }; }\n\nfunction list_possibleConstructorReturn(self, call) { if (call && (list_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return list_assertThisInitialized(self); }\n\nfunction list_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction list_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction list_getPrototypeOf(o) { list_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return list_getPrototypeOf(o); }\n\n\n\n\n\nvar ListContainer = /*#__PURE__*/function (_Container) {\n list_inherits(ListContainer, _Container);\n\n var _super = list_createSuper(ListContainer);\n\n function ListContainer() {\n list_classCallCheck(this, ListContainer);\n\n return _super.apply(this, arguments);\n }\n\n return ListContainer;\n}(container[\"a\" /* default */]);\n\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\n\nvar list_ListItem = /*#__PURE__*/function (_Block) {\n list_inherits(ListItem, _Block);\n\n var _super2 = list_createSuper(ListItem);\n\n list_createClass(ListItem, null, [{\n key: \"create\",\n value: function create(value) {\n var node = list_get(list_getPrototypeOf(ListItem), \"create\", this).call(this);\n\n node.setAttribute('data-list', value);\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-list') || undefined;\n }\n }, {\n key: \"register\",\n value: function register() {\n quill[\"a\" /* default */].register(ListContainer);\n }\n }]);\n\n function ListItem(scroll, domNode) {\n var _this;\n\n list_classCallCheck(this, ListItem);\n\n _this = _super2.call(this, scroll, domNode);\n var ui = domNode.ownerDocument.createElement('span');\n\n var listEventHandler = function listEventHandler(e) {\n if (!scroll.isEnabled()) return;\n\n var format = _this.statics.formats(domNode, scroll);\n\n if (format === 'checked') {\n _this.format('list', 'unchecked');\n\n e.preventDefault();\n } else if (format === 'unchecked') {\n _this.format('list', 'checked');\n\n e.preventDefault();\n }\n };\n\n ui.addEventListener('mousedown', listEventHandler);\n ui.addEventListener('touchstart', listEventHandler);\n\n _this.attachUI(ui);\n\n return _this;\n }\n\n list_createClass(ListItem, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-list', value);\n } else {\n list_get(list_getPrototypeOf(ListItem.prototype), \"format\", this).call(this, name, value);\n }\n }\n }]);\n\n return ListItem;\n}(block[\"d\" /* default */]);\n\nlist_ListItem.blotName = 'list';\nlist_ListItem.tagName = 'LI';\nListContainer.allowedChildren = [list_ListItem];\nlist_ListItem.requiredContainer = ListContainer;\n\n// EXTERNAL MODULE: ./formats/background.js\nvar background = __webpack_require__(30);\n\n// EXTERNAL MODULE: ./formats/color.js\nvar color = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./formats/font.js\nvar font = __webpack_require__(31);\n\n// EXTERNAL MODULE: ./formats/size.js\nvar size = __webpack_require__(32);\n\n// EXTERNAL MODULE: ./formats/bold.js\nvar bold = __webpack_require__(33);\n\n// CONCATENATED MODULE: ./formats/italic.js\nfunction italic_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { italic_typeof = function _typeof(obj) { return typeof obj; }; } else { italic_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return italic_typeof(obj); }\n\nfunction italic_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction italic_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) italic_setPrototypeOf(subClass, superClass); }\n\nfunction italic_setPrototypeOf(o, p) { italic_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return italic_setPrototypeOf(o, p); }\n\nfunction italic_createSuper(Derived) { var hasNativeReflectConstruct = italic_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = italic_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = italic_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return italic_possibleConstructorReturn(this, result); }; }\n\nfunction italic_possibleConstructorReturn(self, call) { if (call && (italic_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return italic_assertThisInitialized(self); }\n\nfunction italic_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction italic_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction italic_getPrototypeOf(o) { italic_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return italic_getPrototypeOf(o); }\n\n\n\nvar Italic = /*#__PURE__*/function (_Bold) {\n italic_inherits(Italic, _Bold);\n\n var _super = italic_createSuper(Italic);\n\n function Italic() {\n italic_classCallCheck(this, Italic);\n\n return _super.apply(this, arguments);\n }\n\n return Italic;\n}(bold[\"a\" /* default */]);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n/* harmony default export */ var italic = (Italic);\n// EXTERNAL MODULE: ./formats/link.js\nvar formats_link = __webpack_require__(28);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./formats/script.js\nfunction script_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { script_typeof = function _typeof(obj) { return typeof obj; }; } else { script_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return script_typeof(obj); }\n\nfunction script_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction script_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction script_createClass(Constructor, protoProps, staticProps) { if (protoProps) script_defineProperties(Constructor.prototype, protoProps); if (staticProps) script_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction script_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { script_get = Reflect.get; } else { script_get = function _get(target, property, receiver) { var base = script_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return script_get(target, property, receiver || target); }\n\nfunction script_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = script_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction script_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) script_setPrototypeOf(subClass, superClass); }\n\nfunction script_setPrototypeOf(o, p) { script_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return script_setPrototypeOf(o, p); }\n\nfunction script_createSuper(Derived) { var hasNativeReflectConstruct = script_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = script_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = script_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return script_possibleConstructorReturn(this, result); }; }\n\nfunction script_possibleConstructorReturn(self, call) { if (call && (script_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return script_assertThisInitialized(self); }\n\nfunction script_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction script_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction script_getPrototypeOf(o) { script_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return script_getPrototypeOf(o); }\n\n\n\nvar Script = /*#__PURE__*/function (_Inline) {\n script_inherits(Script, _Inline);\n\n var _super = script_createSuper(Script);\n\n function Script() {\n script_classCallCheck(this, Script);\n\n return _super.apply(this, arguments);\n }\n\n script_createClass(Script, null, [{\n key: \"create\",\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n }\n\n if (value === 'sub') {\n return document.createElement('sub');\n }\n\n return script_get(script_getPrototypeOf(Script), \"create\", this).call(this, value);\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(inline[\"a\" /* default */]);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n/* harmony default export */ var script = (Script);\n// CONCATENATED MODULE: ./formats/strike.js\nfunction strike_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { strike_typeof = function _typeof(obj) { return typeof obj; }; } else { strike_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return strike_typeof(obj); }\n\nfunction strike_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction strike_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) strike_setPrototypeOf(subClass, superClass); }\n\nfunction strike_setPrototypeOf(o, p) { strike_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return strike_setPrototypeOf(o, p); }\n\nfunction strike_createSuper(Derived) { var hasNativeReflectConstruct = strike_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = strike_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = strike_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return strike_possibleConstructorReturn(this, result); }; }\n\nfunction strike_possibleConstructorReturn(self, call) { if (call && (strike_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return strike_assertThisInitialized(self); }\n\nfunction strike_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction strike_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction strike_getPrototypeOf(o) { strike_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return strike_getPrototypeOf(o); }\n\n\n\nvar Strike = /*#__PURE__*/function (_Bold) {\n strike_inherits(Strike, _Bold);\n\n var _super = strike_createSuper(Strike);\n\n function Strike() {\n strike_classCallCheck(this, Strike);\n\n return _super.apply(this, arguments);\n }\n\n return Strike;\n}(bold[\"a\" /* default */]);\n\nStrike.blotName = 'strike';\nStrike.tagName = ['S', 'STRIKE'];\n/* harmony default export */ var strike = (Strike);\n// CONCATENATED MODULE: ./formats/underline.js\nfunction underline_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { underline_typeof = function _typeof(obj) { return typeof obj; }; } else { underline_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return underline_typeof(obj); }\n\nfunction underline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction underline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) underline_setPrototypeOf(subClass, superClass); }\n\nfunction underline_setPrototypeOf(o, p) { underline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return underline_setPrototypeOf(o, p); }\n\nfunction underline_createSuper(Derived) { var hasNativeReflectConstruct = underline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = underline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = underline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return underline_possibleConstructorReturn(this, result); }; }\n\nfunction underline_possibleConstructorReturn(self, call) { if (call && (underline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return underline_assertThisInitialized(self); }\n\nfunction underline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction underline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction underline_getPrototypeOf(o) { underline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return underline_getPrototypeOf(o); }\n\n\n\nvar Underline = /*#__PURE__*/function (_Inline) {\n underline_inherits(Underline, _Inline);\n\n var _super = underline_createSuper(Underline);\n\n function Underline() {\n underline_classCallCheck(this, Underline);\n\n return _super.apply(this, arguments);\n }\n\n return Underline;\n}(inline[\"a\" /* default */]);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n/* harmony default export */ var underline = (Underline);\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./utils/hasWindow.js\nvar hasWindow = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./formats/formula.js\nfunction formula_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { formula_typeof = function _typeof(obj) { return typeof obj; }; } else { formula_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return formula_typeof(obj); }\n\nfunction formula_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction formula_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction formula_createClass(Constructor, protoProps, staticProps) { if (protoProps) formula_defineProperties(Constructor.prototype, protoProps); if (staticProps) formula_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction formula_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { formula_get = Reflect.get; } else { formula_get = function _get(target, property, receiver) { var base = formula_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return formula_get(target, property, receiver || target); }\n\nfunction formula_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = formula_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction formula_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) formula_setPrototypeOf(subClass, superClass); }\n\nfunction formula_setPrototypeOf(o, p) { formula_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return formula_setPrototypeOf(o, p); }\n\nfunction formula_createSuper(Derived) { var hasNativeReflectConstruct = formula_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = formula_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = formula_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return formula_possibleConstructorReturn(this, result); }; }\n\nfunction formula_possibleConstructorReturn(self, call) { if (call && (formula_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return formula_assertThisInitialized(self); }\n\nfunction formula_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction formula_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction formula_getPrototypeOf(o) { formula_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return formula_getPrototypeOf(o); }\n\n\n\n\nvar formula_Formula = /*#__PURE__*/function (_Embed) {\n formula_inherits(Formula, _Embed);\n\n var _super = formula_createSuper(Formula);\n\n function Formula() {\n formula_classCallCheck(this, Formula);\n\n return _super.apply(this, arguments);\n }\n\n formula_createClass(Formula, [{\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n formula = _this$value.formula;\n\n return \"\".concat(formula, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var katex = null;\n\n if (Object(hasWindow[\"a\" /* default */])()) {\n katex = window.katex;\n }\n\n if (katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n\n var node = formula_get(formula_getPrototypeOf(Formula), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n\n return node;\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return Formula;\n}(blots_embed[\"a\" /* default */]);\n\nformula_Formula.blotName = 'formula';\nformula_Formula.className = 'ql-formula';\nformula_Formula.tagName = 'SPAN';\n/* harmony default export */ var formula = (formula_Formula);\n// CONCATENATED MODULE: ./formats/image.js\nfunction image_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { image_typeof = function _typeof(obj) { return typeof obj; }; } else { image_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return image_typeof(obj); }\n\nfunction image_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction image_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction image_createClass(Constructor, protoProps, staticProps) { if (protoProps) image_defineProperties(Constructor.prototype, protoProps); if (staticProps) image_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction image_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { image_get = Reflect.get; } else { image_get = function _get(target, property, receiver) { var base = image_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return image_get(target, property, receiver || target); }\n\nfunction image_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = image_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction image_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) image_setPrototypeOf(subClass, superClass); }\n\nfunction image_setPrototypeOf(o, p) { image_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return image_setPrototypeOf(o, p); }\n\nfunction image_createSuper(Derived) { var hasNativeReflectConstruct = image_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = image_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = image_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return image_possibleConstructorReturn(this, result); }; }\n\nfunction image_possibleConstructorReturn(self, call) { if (call && (image_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return image_assertThisInitialized(self); }\n\nfunction image_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction image_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction image_getPrototypeOf(o) { image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return image_getPrototypeOf(o); }\n\n\n\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar image_Image = /*#__PURE__*/function (_EmbedBlot) {\n image_inherits(Image, _EmbedBlot);\n\n var _super = image_createSuper(Image);\n\n function Image() {\n image_classCallCheck(this, Image);\n\n return _super.apply(this, arguments);\n }\n\n image_createClass(Image, [{\n key: \"format\",\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n image_get(image_getPrototypeOf(Image.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = image_get(image_getPrototypeOf(Image), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"match\",\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: \"register\",\n value: function register() {\n if (Object(hasWindow[\"a\" /* default */])() && /Firefox/i.test(navigator.userAgent)) {\n setTimeout(function () {\n // Disable image resizing in Firefox\n document.execCommand('enableObjectResizing', false, false);\n }, 1);\n }\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return Object(formats_link[\"b\" /* sanitize */])(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(parchment[\"EmbedBlot\"]);\n\nimage_Image.blotName = 'image';\nimage_Image.tagName = 'IMG';\n/* harmony default export */ var formats_image = (image_Image);\n// CONCATENATED MODULE: ./formats/video.js\nfunction video_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { video_typeof = function _typeof(obj) { return typeof obj; }; } else { video_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return video_typeof(obj); }\n\nfunction video_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction video_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction video_createClass(Constructor, protoProps, staticProps) { if (protoProps) video_defineProperties(Constructor.prototype, protoProps); if (staticProps) video_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction video_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { video_get = Reflect.get; } else { video_get = function _get(target, property, receiver) { var base = video_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return video_get(target, property, receiver || target); }\n\nfunction video_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = video_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction video_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) video_setPrototypeOf(subClass, superClass); }\n\nfunction video_setPrototypeOf(o, p) { video_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return video_setPrototypeOf(o, p); }\n\nfunction video_createSuper(Derived) { var hasNativeReflectConstruct = video_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = video_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = video_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return video_possibleConstructorReturn(this, result); }; }\n\nfunction video_possibleConstructorReturn(self, call) { if (call && (video_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return video_assertThisInitialized(self); }\n\nfunction video_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction video_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction video_getPrototypeOf(o) { video_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return video_getPrototypeOf(o); }\n\n\n\nvar video_ATTRIBUTES = ['height', 'width'];\n\nvar video_Video = /*#__PURE__*/function (_BlockEmbed) {\n video_inherits(Video, _BlockEmbed);\n\n var _super = video_createSuper(Video);\n\n function Video() {\n video_classCallCheck(this, Video);\n\n return _super.apply(this, arguments);\n }\n\n video_createClass(Video, [{\n key: \"format\",\n value: function format(name, value) {\n if (video_ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n video_get(video_getPrototypeOf(Video.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n video = _this$value.video;\n\n return \"
    \").concat(video, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = video_get(video_getPrototypeOf(Video), \"create\", this).call(this, value);\n\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return video_ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return formats_link[\"a\" /* default */].sanitize(url); // eslint-disable-line import/no-named-as-default-member\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(block[\"a\" /* BlockEmbed */]);\n\nvideo_Video.blotName = 'video';\nvideo_Video.className = 'ql-video';\nvideo_Video.tagName = 'IFRAME';\n/* harmony default export */ var video = (video_Video);\n// EXTERNAL MODULE: ./formats/code.js\nvar code = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./modules/syntax.js\nvar syntax = __webpack_require__(52);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(0);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(11);\n\n// CONCATENATED MODULE: ./formats/table.js\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction table_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { table_typeof = function _typeof(obj) { return typeof obj; }; } else { table_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return table_typeof(obj); }\n\nfunction table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction table_createClass(Constructor, protoProps, staticProps) { if (protoProps) table_defineProperties(Constructor.prototype, protoProps); if (staticProps) table_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction table_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { table_get = Reflect.get; } else { table_get = function _get(target, property, receiver) { var base = table_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return table_get(target, property, receiver || target); }\n\nfunction table_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = table_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction table_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) table_setPrototypeOf(subClass, superClass); }\n\nfunction table_setPrototypeOf(o, p) { table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return table_setPrototypeOf(o, p); }\n\nfunction table_createSuper(Derived) { var hasNativeReflectConstruct = table_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = table_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = table_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return table_possibleConstructorReturn(this, result); }; }\n\nfunction table_possibleConstructorReturn(self, call) { if (call && (table_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return table_assertThisInitialized(self); }\n\nfunction table_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction table_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction table_getPrototypeOf(o) { table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return table_getPrototypeOf(o); }\n\n\n\n\nvar TableCell = /*#__PURE__*/function (_Block) {\n table_inherits(TableCell, _Block);\n\n var _super = table_createSuper(TableCell);\n\n function TableCell() {\n table_classCallCheck(this, TableCell);\n\n return _super.apply(this, arguments);\n }\n\n table_createClass(TableCell, [{\n key: \"cellOffset\",\n value: function cellOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return -1;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === TableCell.blotName && value) {\n this.domNode.setAttribute('data-row', value);\n } else {\n table_get(table_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"row\",\n value: function row() {\n return this.parent;\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.row()) {\n return this.row().rowOffset();\n }\n\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n return this.row() && this.row().table();\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = table_get(table_getPrototypeOf(TableCell), \"create\", this).call(this);\n\n if (value) {\n node.setAttribute('data-row', value);\n } else {\n node.setAttribute('data-row', tableId());\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.hasAttribute('data-row')) {\n return domNode.getAttribute('data-row');\n }\n\n return undefined;\n }\n }]);\n\n return TableCell;\n}(block[\"d\" /* default */]);\n\nTableCell.blotName = 'table';\nTableCell.tagName = 'TD';\n\nvar TableRow = /*#__PURE__*/function (_Container) {\n table_inherits(TableRow, _Container);\n\n var _super2 = table_createSuper(TableRow);\n\n function TableRow() {\n table_classCallCheck(this, TableRow);\n\n return _super2.apply(this, arguments);\n }\n\n table_createClass(TableRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (table_get(table_getPrototypeOf(TableRow.prototype), \"checkMerge\", this).call(this) && this.next.children.head != null) {\n var thisHead = this.children.head.formats();\n var thisTail = this.children.tail.formats();\n var nextHead = this.next.children.head.formats();\n var nextTail = this.next.children.tail.formats();\n return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\n }\n\n return false;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2,\n _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_get2 = table_get(table_getPrototypeOf(TableRow.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n\n this.children.forEach(function (child) {\n if (child.next == null) return;\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n\n if (childFormats.table !== nextFormats.table) {\n var next = _this.splitAfter(child);\n\n if (next) {\n next.optimize();\n } // We might be able to merge with prev now\n\n\n if (_this.prev) {\n _this.prev.optimize();\n }\n }\n });\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n return this.parent && this.parent.parent;\n }\n }]);\n\n return TableRow;\n}(container[\"a\" /* default */]);\n\nTableRow.blotName = 'table-row';\nTableRow.tagName = 'TR';\n\nvar TableBody = /*#__PURE__*/function (_Container2) {\n table_inherits(TableBody, _Container2);\n\n var _super3 = table_createSuper(TableBody);\n\n function TableBody() {\n table_classCallCheck(this, TableBody);\n\n return _super3.apply(this, arguments);\n }\n\n return TableBody;\n}(container[\"a\" /* default */]);\n\nTableBody.blotName = 'table-body';\nTableBody.tagName = 'TBODY';\n\nvar TableContainer = /*#__PURE__*/function (_Container3) {\n table_inherits(TableContainer, _Container3);\n\n var _super4 = table_createSuper(TableContainer);\n\n function TableContainer() {\n table_classCallCheck(this, TableContainer);\n\n return _super4.apply(this, arguments);\n }\n\n table_createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var _this2 = this;\n\n var rows = this.descendants(TableRow);\n var maxColumns = rows.reduce(function (max, row) {\n return Math.max(row.children.length, max);\n }, 0);\n rows.forEach(function (row) {\n new Array(maxColumns - row.children.length).fill(0).forEach(function () {\n var value;\n\n if (row.children.head != null) {\n value = TableCell.formats(row.children.head.domNode);\n }\n\n var blot = _this2.scroll.create(TableCell.blotName, value);\n\n row.appendChild(blot);\n blot.optimize(); // Add break blot\n });\n });\n }\n }, {\n key: \"cells\",\n value: function cells(column) {\n return this.rows().map(function (row) {\n return row.children.at(column);\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn(index) {\n var _this$descendant = this.descendant(TableBody),\n _this$descendant2 = _slicedToArray(_this$descendant, 1),\n body = _this$descendant2[0];\n\n if (body == null || body.children.head == null) return;\n body.children.forEach(function (row) {\n var cell = row.children.at(index);\n\n if (cell != null) {\n cell.remove();\n }\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this3 = this;\n\n var _this$descendant3 = this.descendant(TableBody),\n _this$descendant4 = _slicedToArray(_this$descendant3, 1),\n body = _this$descendant4[0];\n\n if (body == null || body.children.head == null) return;\n body.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = TableCell.formats(row.children.head.domNode);\n\n var cell = _this3.scroll.create(TableCell.blotName, value);\n\n row.insertBefore(cell, ref);\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this4 = this;\n\n var _this$descendant5 = this.descendant(TableBody),\n _this$descendant6 = _slicedToArray(_this$descendant5, 1),\n body = _this$descendant6[0];\n\n if (body == null || body.children.head == null) return;\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName);\n body.children.head.children.forEach(function () {\n var cell = _this4.scroll.create(TableCell.blotName, id);\n\n row.appendChild(cell);\n });\n var ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n if (body == null) return [];\n return body.children.map(function (row) {\n return row;\n });\n }\n }]);\n\n return TableContainer;\n}(container[\"a\" /* default */]);\n\nTableContainer.blotName = 'table-container';\nTableContainer.tagName = 'TABLE';\nTableContainer.allowedChildren = [TableBody];\nTableBody.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\n\nfunction tableId() {\n var id = Math.random().toString(36).slice(2, 6);\n return \"row-\".concat(id);\n}\n\n\n// CONCATENATED MODULE: ./modules/table.js\nfunction modules_table_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { modules_table_typeof = function _typeof(obj) { return typeof obj; }; } else { modules_table_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return modules_table_typeof(obj); }\n\nfunction table_slicedToArray(arr, i) { return table_arrayWithHoles(arr) || table_iterableToArrayLimit(arr, i) || table_unsupportedIterableToArray(arr, i) || table_nonIterableRest(); }\n\nfunction table_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction table_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return table_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return table_arrayLikeToArray(o, minLen); }\n\nfunction table_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction table_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction table_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction modules_table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction modules_table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction modules_table_createClass(Constructor, protoProps, staticProps) { if (protoProps) modules_table_defineProperties(Constructor.prototype, protoProps); if (staticProps) modules_table_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction modules_table_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) modules_table_setPrototypeOf(subClass, superClass); }\n\nfunction modules_table_setPrototypeOf(o, p) { modules_table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return modules_table_setPrototypeOf(o, p); }\n\nfunction modules_table_createSuper(Derived) { var hasNativeReflectConstruct = modules_table_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = modules_table_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = modules_table_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return modules_table_possibleConstructorReturn(this, result); }; }\n\nfunction modules_table_possibleConstructorReturn(self, call) { if (call && (modules_table_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return modules_table_assertThisInitialized(self); }\n\nfunction modules_table_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction modules_table_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction modules_table_getPrototypeOf(o) { modules_table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return modules_table_getPrototypeOf(o); }\n\n\n\n\n\n\nvar table_Table = /*#__PURE__*/function (_Module) {\n modules_table_inherits(Table, _Module);\n\n var _super = modules_table_createSuper(Table);\n\n modules_table_createClass(Table, null, [{\n key: \"register\",\n value: function register() {\n quill[\"a\" /* default */].register(TableCell);\n quill[\"a\" /* default */].register(TableRow);\n quill[\"a\" /* default */].register(TableBody);\n quill[\"a\" /* default */].register(TableContainer);\n }\n }]);\n\n function Table() {\n var _this;\n\n modules_table_classCallCheck(this, Table);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _this.listenBalanceCells();\n\n return _this;\n }\n\n modules_table_createClass(Table, [{\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(TableContainer).forEach(function (table) {\n table.balanceCells();\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn() {\n var _this$getTable = this.getTable(),\n _this$getTable2 = table_slicedToArray(_this$getTable, 3),\n table = _this$getTable2[0],\n cell = _this$getTable2[2];\n\n if (cell == null) return;\n table.deleteColumn(cell.cellOffset());\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = table_slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n\n if (row == null) return;\n row.remove();\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = table_slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n\n if (table == null) return;\n var offset = table.offset();\n table.remove();\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(offset, quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n if (range == null) return [null, null, null, -1];\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = table_slicedToArray(_this$quill$getLine, 2),\n cell = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n if (cell == null || cell.statics.blotName !== TableCell.blotName) {\n return [null, null, null, -1];\n }\n\n var row = cell.parent;\n var table = row.parent.parent;\n return [table, row, cell, offset];\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable7 = this.getTable(range),\n _this$getTable8 = table_slicedToArray(_this$getTable7, 3),\n table = _this$getTable8[0],\n row = _this$getTable8[1],\n cell = _this$getTable8[2];\n\n if (cell == null) return;\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n var shift = row.rowOffset();\n\n if (offset === 0) {\n shift += 1;\n }\n\n this.quill.setSelection(range.index + shift, range.length, quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = table_slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n\n if (cell == null) return;\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n\n if (offset > 0) {\n this.quill.setSelection(range, quill[\"a\" /* default */].sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, quill[\"a\" /* default */].sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n if (range == null) return;\n var delta = new Array(rows).fill(0).reduce(function (memo) {\n var text = new Array(columns).fill('\\n').join('');\n return memo.insert(text, {\n table: tableId()\n });\n }, new Delta_default.a().retain(range.index));\n this.quill.updateContents(delta, quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index, quill[\"a\" /* default */].sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this2 = this;\n\n this.quill.on(quill[\"a\" /* default */].events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TR', 'TBODY', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this2.quill.once(quill[\"a\" /* default */].events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== quill[\"a\" /* default */].sources.USER) return;\n\n _this2.balanceTables();\n });\n\n return true;\n }\n\n return false;\n });\n });\n }\n }]);\n\n return Table;\n}(core_module[\"a\" /* default */]);\n\n/* harmony default export */ var modules_table = (table_Table);\n// CONCATENATED MODULE: ./quill.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ncore[\"default\"].register({\n 'attributors/attribute/direction': direction[\"a\" /* DirectionAttribute */],\n 'attributors/class/align': align[\"b\" /* AlignClass */],\n 'attributors/class/background': background[\"a\" /* BackgroundClass */],\n 'attributors/class/color': color[\"b\" /* ColorClass */],\n 'attributors/class/direction': direction[\"b\" /* DirectionClass */],\n 'attributors/class/font': font[\"a\" /* FontClass */],\n 'attributors/class/size': size[\"a\" /* SizeClass */],\n 'attributors/style/align': align[\"c\" /* AlignStyle */],\n 'attributors/style/background': background[\"b\" /* BackgroundStyle */],\n 'attributors/style/color': color[\"c\" /* ColorStyle */],\n 'attributors/style/direction': direction[\"c\" /* DirectionStyle */],\n 'attributors/style/font': font[\"b\" /* FontStyle */],\n 'attributors/style/size': size[\"b\" /* SizeStyle */]\n}, true);\ncore[\"default\"].register({\n 'formats/align': align[\"b\" /* AlignClass */],\n 'formats/direction': direction[\"b\" /* DirectionClass */],\n 'formats/indent': indent,\n 'formats/background': background[\"b\" /* BackgroundStyle */],\n 'formats/color': color[\"c\" /* ColorStyle */],\n 'formats/font': font[\"a\" /* FontClass */],\n 'formats/size': size[\"a\" /* SizeClass */],\n 'formats/blockquote': blockquote,\n 'formats/code-block': code[\"c\" /* default */],\n 'formats/header': header,\n 'formats/list': list_ListItem,\n 'formats/bold': bold[\"a\" /* default */],\n 'formats/code': code[\"a\" /* Code */],\n 'formats/italic': italic,\n 'formats/link': formats_link[\"a\" /* default */],\n 'formats/script': script,\n 'formats/strike': strike,\n 'formats/underline': underline,\n 'formats/formula': formula,\n 'formats/image': formats_image,\n 'formats/video': video,\n 'modules/syntax': syntax[\"b\" /* default */],\n 'modules/table': modules_table\n}, true);\n/* harmony default export */ var quill_0 = __webpack_exports__[\"default\"] = (core[\"default\"]);\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(19));\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = lodash_clonedeep_1.default(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.compose = compose;\n function diff(a, b) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce(function (attrs, key) {\n if (!lodash_isequal_1.default(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr, base) {\n if (attr === void 0) { attr = {}; }\n if (base === void 0) { base = {}; }\n attr = attr || {};\n var baseInverted = Object.keys(base).reduce(function (memo, key) {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce(function (memo, key) {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority) {\n if (priority === void 0) { priority = false; }\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n var attributes = Object.keys(b).reduce(function (attrs, key) {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports.default = AttributeMap;\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Op_1 = __importDefault(__webpack_require__(63));\nvar Iterator = /** @class */ (function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\n else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n }\n else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n return Iterator;\n}());\nexports.default = Iterator;\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(89);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(90);\n__webpack_require__(110);\nvar path = __webpack_require__(74);\n\nmodule.exports = path.Array.from;\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(91).charAt;\nvar InternalStateModule = __webpack_require__(65);\nvar defineIterator = __webpack_require__(93);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(53);\nvar requireObjectCoercible = __webpack_require__(46);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar inspectSource = __webpack_require__(66);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar createIteratorConstructor = __webpack_require__(102);\nvar getPrototypeOf = __webpack_require__(78);\nvar setPrototypeOf = __webpack_require__(108);\nvar setToStringTag = __webpack_require__(81);\nvar createNonEnumerableProperty = __webpack_require__(35);\nvar redefine = __webpack_require__(72);\nvar wellKnownSymbol = __webpack_require__(21);\nvar IS_PURE = __webpack_require__(48);\nvar Iterators = __webpack_require__(51);\nvar IteratorsCore = __webpack_require__(77);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\nvar classof = __webpack_require__(60);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar ownKeys = __webpack_require__(97);\nvar getOwnPropertyDescriptorModule = __webpack_require__(58);\nvar definePropertyModule = __webpack_require__(37);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(73);\nvar getOwnPropertyNamesModule = __webpack_require__(98);\nvar getOwnPropertySymbolsModule = __webpack_require__(100);\nvar anObject = __webpack_require__(39);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(75);\nvar enumBugKeys = __webpack_require__(61);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(59);\nvar toLength = __webpack_require__(50);\nvar toAbsoluteIndex = __webpack_require__(76);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(77).IteratorPrototype;\nvar create = __webpack_require__(80);\nvar createPropertyDescriptor = __webpack_require__(47);\nvar setToStringTag = __webpack_require__(81);\nvar Iterators = __webpack_require__(51);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(79);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar definePropertyModule = __webpack_require__(37);\nvar anObject = __webpack_require__(39);\nvar objectKeys = __webpack_require__(106);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(75);\nvar enumBugKeys = __webpack_require__(61);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(73);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(39);\nvar aPossiblePrototype = __webpack_require__(109);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(38);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(49);\nvar from = __webpack_require__(111);\nvar checkCorrectnessOfIteration = __webpack_require__(119);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(82);\nvar toObject = __webpack_require__(62);\nvar callWithSafeIterationClosing = __webpack_require__(113);\nvar isArrayIteratorMethod = __webpack_require__(114);\nvar toLength = __webpack_require__(50);\nvar createProperty = __webpack_require__(115);\nvar getIteratorMethod = __webpack_require__(116);\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(39);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\nvar Iterators = __webpack_require__(51);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(55);\nvar definePropertyModule = __webpack_require__(37);\nvar createPropertyDescriptor = __webpack_require__(47);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(117);\nvar Iterators = __webpack_require__(51);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(118);\nvar classofRaw = __webpack_require__(60);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(121);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(122);\nvar entryUnbind = __webpack_require__(83);\n\nmodule.exports = entryUnbind('Array', 'fill');\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(49);\nvar fill = __webpack_require__(123);\nvar addToUnscopables = __webpack_require__(124);\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(62);\nvar toAbsoluteIndex = __webpack_require__(76);\nvar toLength = __webpack_require__(50);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\nvar create = __webpack_require__(80);\nvar definePropertyModule = __webpack_require__(37);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(126);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(127);\nvar entryUnbind = __webpack_require__(83);\n\nmodule.exports = entryUnbind('String', 'endsWith');\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(49);\nvar getOwnPropertyDescriptor = __webpack_require__(58).f;\nvar toLength = __webpack_require__(50);\nvar notARegExp = __webpack_require__(128);\nvar requireObjectCoercible = __webpack_require__(46);\nvar correctIsRegExpLogic = __webpack_require__(130);\nvar IS_PURE = __webpack_require__(48);\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(129);\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(38);\nvar classof = __webpack_require__(60);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n\n\n/***/ }),\n/* 131 */,\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(84);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});"],"sourceRoot":""}