{"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","_i","_s","_e","_arr","_n","_d","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","debug","uiClass","container","_this","options","arguments","undefined","error","html","innerHTML","trim","classList","add","set","root","addContainer","scrollingContainer","emitter","ScrollBlot","registry","query","blotName","scroll","toggleBlankClass","editor","selection","theme","keyboard","addModule","clipboard","history","uploader","init","on","events","EDITOR_CHANGE","type","TEXT_CHANGE","SCROLL_UPDATE","source","mutations","oldRange","lastRange","newRange","getRange","selectionInfo","modify","update","setContents","getInitialContent","clear","placeholder","setAttribute","readOnly","disable","allowReadOnlyEdits","protoProps","staticProps","limit","level","node","find","imports","path","_this11","overwrite","attrName","register","warn","convert","text","isComposing","composing","toggle","isBlank","refNode","className","document","createElement","insertBefore","setRange","_this2","_overload2","deleteText","enable","modifier","enabled","scrollTop","focus","scrollIntoView","_this3","sources","API","range","getSelection","change","a","BLOCK","formatLine","format","formatText","setSelection","SILENT","formats","_this4","_overload4","_this5","_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","_this6","insertEmbed","_this7","_overload14","insertText","isEnabled","_this$emitter","off","apply","_this$emitter2","_this$emitter3","once","_this8","_overload16","removeFormat","_this9","delete1","applied","applyDelta","delete2","_overload18","max","USER","_this10","userConfig","DEFAULTS","import","themeConfig","config","moduleConfig","moduleClass","toolbar","querySelector","shift","oldDelta","shiftRange","_this$emitter4","_this$emitter5","args","emit","_map2","pos","_map4","version","parchment","Scope","_extendStatics","src_scope","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","block","INLINE","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","abstract_parent","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","Attributor","attributeBit","whitelist","item","canAdd","_node","replace","removeAttribute","class_extends","class_match","prefix","attributor_class","ClassAttributor","style_extends","camelize","parts","part","style","StyleAttributor","store","AttributorStore","attribute","styles","attr","copy","move","values","inline_extends","InlineBlot","toLowerCase","obj1","obj2","prop","isEqual","block_extends","BlockBlot","embed_extends","blot_embed","EmbedBlot","_scroll","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","blot_scroll","observer","MutationObserver","observe","disconnect","mutationsMap","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","text_extends","blot_text","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","Boolean","valueOf","_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","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__","_createClass","_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","mouseDown","savedRange","lastNative","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","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","Module","_break__WEBPACK_IMPORTED_MODULE_1__","_text__WEBPACK_IMPORTED_MODULE_2__","Inline","_InlineBlot","selfIndex","order","otherIndex","compare","window","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","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","Keyboard","SHORTKEY","normalize","deleteRange","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","binding","normalizeKeyName","which","_ref3","isKeySupported","normalizedKey","keyBinding","singleBinding","defaultPrevented","raiseOnKeydownCallback","matches","_this3$quill$getLine2","getLine","_this3$quill$getLeaf2","getLeaf","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","onKeydown","curFormats","prevFormats","formatDelta","nextFormats","lineFormats","makeCodeBlockHandler","textContent","makeEmbedArrowHandler","_ref4","makeFormatHandler","shortKey","makeTableArrowHandler","cell","targetRow","targetCell","targetLine","table","_ref5","firstFormats","lastFormats","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","check","it","globalThis","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","objectTag","typedArrayTags","freeProcess","process","nodeUtil","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","ColorAttributor","ColorClass","ColorStyle","_StyleAttributor","hex","DirectionAttribute","DirectionClass","DirectionStyle","toObject","hasOwn","require","thisArg","objectCtorString","allocUnsafe","nativeMax","nativeNow","Date","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","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","f","O","P","Attributes","Theme","ModuleClass","themes","g","definePropertyModule","createPropertyDescriptor","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__","_keyboard__WEBPACK_IMPORTED_MODULE_13__","CLIPBOARD_CONFIG","matchText","matchNewline","deltaEndsWith","applyFormat","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","fontStyle","textDecoration","strike","fontWeight","parseFloat","textIndent","composed","language","matchAlias","HTML_TEXT_MATCHERS","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","matchPlainText","_pair2","newDelta","endText","preNodes","ELEMENT_NODE","childrenDelta","reducedDelta","isPre","replacer","collapse","replaced","webpackPolyfill","deprecate","paths","aFunction","variable","requireObjectCoercible","argument","bitmap","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","toInteger","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","isSymbol","getBuiltIn","$Symbol","toPrimitive","propertyIsEnumerableModule","toIndexedObject","$getOwnPropertyDescriptor","IndexedObject","Iterator_1","Events","EE","fn","addListener","listener","_events","_eventsCount","clearEvent","EventEmitter","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","j","removeAllListeners","prefixed","V8_VERSION","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","functionToString","inspectSource","EXISTS","IS_PURE","copyright","id","postfix","random","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","integer","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","wellKnownSymbol","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","activeXDocument","enumBugKeys","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","_NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","display","src","contentWindow","open","F","NullProtoObjectViaIFrame","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","core_quill","list_typeof","list_defineProperties","list_get","list_getPrototypeOf","list_superPropBase","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_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","multilineBreak_typeof","multilineBreak_classCallCheck","multilineBreak_defineProperties","multilineBreak_setPrototypeOf","multilineBreak_createSuper","multilineBreak_isNativeReflectConstruct","multilineBreak_getPrototypeOf","multilineBreak_possibleConstructorReturn","multilineBreak_assertThisInitialized","MultilineBreak","multilineBreak_inherits","multilineBreak","multiline_typeof","multiline_defineProperties","multiline_setPrototypeOf","multiline_createSuper","multiline_isNativeReflectConstruct","multiline_getPrototypeOf","multiline_possibleConstructorReturn","multiline_assertThisInitialized","breakMatcher","multiline","multiline_inherits","Multiline","multiline_classCallCheck","enterHandler","currentLeaf","nextLeaf","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","Deno","versions","v8","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","val","$","createIteratorConstructor","setToStringTag","Iterators","IteratorsCore","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","$propertyIsEnumerable","NASHORN_BUG","1","V","classof","getOwnPropertyDescriptorModule","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","iteratorClose","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","$endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","isRegExp","MATCH","METHOD_NAME","error1","error2"],"mappings":"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","file":"71f7e0b5-68d54124c27f30c1d3a8.js","sourcesContent":["require(\"core-js/modules/es.array.reduce.js\");\n\nrequire(\"core-js/modules/es.array.sort.js\");\n\nrequire(\"core-js/modules/esnext.global-this.js\");\n\n/*!\n * DevExtreme-Quill Editor v.1.1.5\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 if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if (typeof exports === 'object') exports[\"Quill\"] = factory();else root[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Quill\"] = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 139);\n /******/\n }\n /************************************************************************/\n\n /******/\n ([\n /* 138 */\n\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n var fast_diff_1 = __importDefault(__webpack_require__(87));\n\n var lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\n\n var lodash_isequal_1 = __importDefault(__webpack_require__(22));\n\n var AttributeMap_1 = __importDefault(__webpack_require__(88));\n\n var Op_1 = __importDefault(__webpack_require__(67));\n\n var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n var Delta =\n /** @class */\n function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n }\n\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n\n newOp.insert = arg;\n\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n\n return this.push(newOp);\n };\n\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n\n return this.push({\n delete: length\n });\n };\n\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n\n var newOp = {\n retain: length\n };\n\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n\n return this.push(newOp);\n };\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\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' && typeof lastOp.delete === 'number') {\n this.ops[index - 1] = {\n delete: lastOp.delete + newOp.delete\n };\n return this;\n } // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n\n\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n\n if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = {\n insert: lastOp.insert + newOp.insert\n };\n\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = {\n retain: lastOp.retain + newOp.retain\n };\n\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n\n return this;\n }\n }\n }\n\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n\n return this;\n };\n\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n\n return this;\n };\n\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\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\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\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 } else if (elem.delete) {\n return length - elem.delete;\n }\n\n return length;\n }, 0);\n };\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\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) {\n start = 0;\n }\n\n if (end === void 0) {\n end = Infinity;\n }\n\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n\n index += Op_1.default.length(nextOp);\n }\n\n return new Delta(ops);\n };\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\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n\n var delta = new Delta(ops);\n\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\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\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n } else {\n newOp.insert = thisOp.insert;\n } // Preserve null when composing with a retain, otherwise remove it for inserts\n\n\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n\n if (attributes) {\n newOp.attributes = attributes;\n }\n\n delta.push(newOp); // Optimization if rest of other is just retain\n\n if (!otherIter.hasNext() && 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 } // 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' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n\n return delta.chop();\n };\n\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n\n return delta;\n };\n\n Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\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\n while (length > 0) {\n var opLength = 0;\n\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\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\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\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n } else {\n retDelta.push(otherOp).delete(opLength);\n }\n\n break;\n }\n\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) {\n newline = '\\n';\n }\n\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ? thisOp.insert.indexOf(newline, start) - start : -1;\n\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n\n i += 1;\n line = new Delta();\n }\n }\n\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\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 } else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\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 } 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\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) {\n priority = false;\n }\n\n priority = !!priority;\n\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\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\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\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\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp.delete) {\n delta.push(otherOp);\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\n return delta.chop();\n };\n\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) {\n priority = false;\n }\n\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n\n offset += length_4;\n }\n\n return index;\n };\n\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n }();\n\n module.exports = Delta;\n /***/\n },\n /* 1 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return globalRegistry;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return expandConfig;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"d\", function () {\n return overload;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Quill;\n });\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n /* harmony import */\n\n\n var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n /* harmony import */\n\n\n var _emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3);\n /* harmony import */\n\n\n var _module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);\n /* harmony import */\n\n\n var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);\n /* harmony import */\n\n\n var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(32);\n /* harmony import */\n\n\n var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);\n /* harmony import */\n\n\n var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(39);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var debug = Object(_logger__WEBPACK_IMPORTED_MODULE_9__[\n /* default */\n \"a\"])('quill');\n var globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_3__[\"Registry\"]();\n parchment__WEBPACK_IMPORTED_MODULE_3__[\"ParentBlot\"].uiClass = 'ql-ui';\n\n var Quill = /*#__PURE__*/function () {\n function Quill(container) {\n var _this = 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\n _instances__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"a\"].set(this.container, this);\n\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__[\n /* default */\n \"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 toggleBlankClass: this.toggleBlankClass.bind(this)\n });\n this.editor = new _editor__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"](this.scroll);\n this.selection = new _selection__WEBPACK_IMPORTED_MODULE_7__[\n /* default */\n \"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__[\n /* default */\n \"a\"].events.EDITOR_CHANGE, function (type) {\n if (type === _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].events.TEXT_CHANGE) {\n _this.toggleBlankClass();\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].events.SCROLL_UPDATE, function (source, mutations) {\n var oldRange = _this.selection.lastRange;\n\n var _this$selection$getRa = _this.selection.getRange(),\n _this$selection$getRa2 = _slicedToArray(_this$selection$getRa, 1),\n newRange = _this$selection$getRa2[0];\n\n var selectionInfo = oldRange && newRange ? {\n oldRange: oldRange,\n newRange: newRange\n } : undefined;\n modify.call(_this, function () {\n return _this.editor.update(null, mutations, selectionInfo);\n }, source);\n });\n this.setContents(this.getInitialContent(html));\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: \"getInitialContent\",\n value: function getInitialContent(html) {\n return this.clipboard.convert({\n html: \"\".concat(html, \"


\"),\n text: '\\n'\n });\n }\n }, {\n key: \"toggleBlankClass\",\n value: function toggleBlankClass() {\n var isComposing = this.selection.composing;\n this.root.classList.toggle('ql-blank', this.editor.isBlank(isComposing));\n }\n }, {\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 _this2 = 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 _this2.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 _this3 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].sources.API;\n return modify.call(this, function () {\n var range = _this3.getSelection(true);\n\n var change = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n if (range == null) return change;\n\n if (_this3.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK)) {\n change = _this3.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this3.selection.format(name, value);\n\n return change;\n } else {\n change = _this3.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n\n _this3.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"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 _this4 = 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 _this4.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 _this5 = 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 _this5.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 _this6 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this6.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text, name, value, source) {\n var _this7 = 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 _this7.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 _this8 = 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 _this8.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 _this9 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"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 = _this9.getLength(); // Quill will set empty editor to \\n\n\n\n var delete1 = _this9.editor.deleteText(0, length); // delta always applied before existing content\n\n\n var applied = _this9.editor.applyDelta(delta); // Remove extra \\n from empty editor initialization\n\n\n var delete2 = _this9.editor.deleteText(_this9.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__[\n /* Range */\n \"a\"](Math.max(0, index), length), source);\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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 _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n return _this10.editor.applyDelta(delta, source);\n }, source, true);\n }\n }], [{\n key: \"debug\",\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n\n _logger__WEBPACK_IMPORTED_MODULE_9__[\n /* default */\n \"a\"].level(limit);\n }\n }, {\n key: \"find\",\n value: function find(node) {\n return _instances__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"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 _this11 = 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 _this11.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 return Quill;\n }();\n\n Quill.DEFAULTS = {\n bounds: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n scrollingContainer: null,\n theme: 'default'\n };\n Quill.events = _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].events;\n Quill.sources = _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].sources; // eslint-disable-next-line no-undef\n\n Quill.version = false ? undefined : \"1.1.5\";\n Quill.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__[\n /* default */\n \"a\"],\n 'core/theme': _theme__WEBPACK_IMPORTED_MODULE_10__[\n /* default */\n \"a\"]\n };\n\n function 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__[\n /* default */\n \"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\n function modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.SILENT);\n }\n\n if (change.length() > 0) {\n var _this$emitter4;\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].events.TEXT_CHANGE, change, oldDelta, source];\n\n (_this$emitter4 = this.emitter).emit.apply(_this$emitter4, [_emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"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\n function 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__[\n /* default */\n \"a\"].sources.API;\n return [index, length, formats, source];\n }\n\n function 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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* Range */\n \"a\"](start, end - start);\n }\n /***/\n\n },\n /* 2 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXPORTS\n\n\n __webpack_require__.d(__webpack_exports__, \"ParentBlot\", function () {\n return (\n /* reexport */\n abstract_parent\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"ContainerBlot\", function () {\n return (\n /* reexport */\n container\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"LeafBlot\", function () {\n return (\n /* reexport */\n leaf\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"EmbedBlot\", function () {\n return (\n /* reexport */\n blot_embed\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"ScrollBlot\", function () {\n return (\n /* reexport */\n blot_scroll\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"BlockBlot\", function () {\n return (\n /* reexport */\n block\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"InlineBlot\", function () {\n return (\n /* reexport */\n inline\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"TextBlot\", function () {\n return (\n /* reexport */\n blot_text\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Attributor\", function () {\n return (\n /* reexport */\n attributor\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"ClassAttributor\", function () {\n return (\n /* reexport */\n attributor_class\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"StyleAttributor\", function () {\n return (\n /* reexport */\n style\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"AttributorStore\", function () {\n return (\n /* reexport */\n store\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Registry\", function () {\n return (\n /* reexport */\n registry\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Scope\", function () {\n return (\n /* reexport */\n src_scope\n );\n }); // CONCATENATED MODULE: ./node_modules/parchment/src/scope.ts\n\n\n var 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 /* harmony default export */\n\n\n var src_scope = Scope; // CONCATENATED MODULE: ./node_modules/parchment/src/collection/linked-list.ts\n\n var LinkedList = function () {\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 /* harmony default export */\n\n\n var linked_list = LinkedList; // CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\n\n var __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 var ParchmentError = function (_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 /* harmony default export */\n\n\n var error = ParchmentError; // CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n var registry_Registry = function () {\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 /* harmony default export */\n\n\n var registry = registry_Registry; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n var shadow_ShadowBlot = function () {\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: false,\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 /* harmony default export */\n\n\n var shadow = shadow_ShadowBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/parent.ts\n\n var 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 function 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\n var parent_ParentBlot = function (_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 /* harmony default export */\n\n\n var abstract_parent = parent_ParentBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\n\n var 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 var container_ContainerBlot = function (_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 /* harmony default export */\n\n\n var container = container_ContainerBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\n\n var 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 var leaf_LeafBlot = function (_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 /* harmony default export */\n\n\n var leaf = leaf_LeafBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\n var attributor_Attributor = function () {\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 /* harmony default export */\n\n\n var attributor = attributor_Attributor; // CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\n\n var 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 function 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\n var ClassAttributor = function (_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 /* harmony default export */\n\n\n var attributor_class = ClassAttributor; // CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\n\n var 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 function 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\n var StyleAttributor = function (_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 /* harmony default export */\n\n\n var style = StyleAttributor; // CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n var store_AttributorStore = function () {\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 /* harmony default export */\n\n\n var store = store_AttributorStore; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\n\n var 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 }(); // Shallow object comparison\n\n\n function 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\n var inline_InlineBlot = function (_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 /* harmony default export */\n\n\n var inline = inline_InlineBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\n\n var 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 var block_BlockBlot = function (_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 /* harmony default export */\n\n\n var block = block_BlockBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\n\n var 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 var EmbedBlot = function (_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 /* harmony default export */\n\n\n var blot_embed = EmbedBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\n\n var 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 var OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n };\n var MAX_OPTIMIZE_ITERATIONS = 100;\n\n var scroll_ScrollBlot = function (_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 /* harmony default export */\n\n\n var blot_scroll = scroll_ScrollBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\n\n var 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 var text_TextBlot = function (_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 /* harmony default export */\n\n\n var blot_text = text_TextBlot; // CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n /***/\n },\n /* 3 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68);\n /* harmony import */\n\n\n var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);\n /* harmony import */\n\n\n var _instances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32);\n /* harmony import */\n\n\n var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var debug = Object(_logger__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"a\"])('quill:events');\n var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"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__[\n /* default */\n \"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\n var 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\n Emitter.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 };\n Emitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n };\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Emitter;\n /***/\n },\n /* 4 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n /* harmony import */\n\n\n var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6);\n /* harmony import */\n\n\n var _blots_cursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17);\n /* harmony import */\n\n\n var _blots_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5);\n /* harmony import */\n\n\n var _blots_break__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _blots_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var ASCII = /^[ -~]*$/;\n\n var 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__[\n /* BlockEmbed */\n \"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__[\n /* bubbleFormats */\n \"c\"])(line));\n\n if (line instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[\n /* default */\n \"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__[\n /* bubbleFormats */\n \"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__[\n /* default */\n \"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__[\n /* bubbleFormats */\n \"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__[\n /* bubbleFormats */\n \"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 var isComposing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (this.scroll.children.length === 0) return true;\n if (isComposing) return false;\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__[\n /* default */\n \"d\"].blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"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 var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[\n /* bubbleFormats */\n \"c\"])(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_blots_cursor__WEBPACK_IMPORTED_MODULE_6__[\n /* default */\n \"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\n function 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\n function 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__[\n /* default */\n \"a\"]) {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_9__[\n /* escapeText */\n \"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\n function handleBreakLine(linkedList, parts) {\n if (linkedList.length === 1 && linkedList.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"a\"]) {\n parts.push('
    ');\n }\n }\n\n function 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\n function 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\n function 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\n function removeIndentClass(classString) {\n return classString.replace(/ql-indent-\\d/g, '').trim();\n }\n\n function 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\n function shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new _selection__WEBPACK_IMPORTED_MODULE_5__[\n /* Range */\n \"a\"](index + amount, length);\n }\n /* harmony default export */\n\n\n __webpack_exports__[\"a\"] = Editor;\n /***/\n },\n /* 5 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return blockDelta;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return bubbleFormats;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return BlockEmbed;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"d\", function () {\n return Block;\n });\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);\n /* harmony import */\n\n\n var _text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var NEWLINE_LENGTH = 1;\n\n var 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__[\n /* default */\n \"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\n Block.blotName = 'block';\n Block.tagName = 'P';\n Block.defaultChild = _break__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"a\"];\n Block.allowedChildren = [_break__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"a\"], _inline__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"a\"], parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"]];\n\n var 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\n BlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n function 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\n function 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 /* 6 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Range;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return Selection;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);\n /* harmony import */\n\n\n var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _nonIterableSpread() {\n 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 }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var debug = Object(_logger__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"])('quill:selection');\n\n var 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\n var 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__[\n /* default */\n \"a\"].sources.USER), 1);\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.SILENT);\n } catch (ignored) {// ignore\n }\n });\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.SILENT);\n }\n });\n this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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\n function 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 /* 7 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Text;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return escapeText;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\n function 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 /* 8 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\n Break.blotName = 'break';\n Break.tagName = 'BR';\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Break;\n /***/\n },\n /* 9 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var 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\n Module.DEFAULTS = {};\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Module;\n /***/\n },\n /* 10 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\n Inline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"a\"], parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"a\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\n Inline.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 */\n\n __webpack_exports__[\"a\"] = Inline;\n /***/\n },\n /* 11 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var hasWindow = function hasWindow() {\n return typeof window !== 'undefined';\n };\n /* harmony default export */\n\n\n __webpack_exports__[\"a\"] = hasWindow;\n /***/\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, module) {\n /**\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. */\n var LARGE_ARRAY_SIZE = 200;\n /** Used to stand-in for `undefined` hash values. */\n\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n /** Used as references for various `Number` constants. */\n\n var MAX_SAFE_INTEGER = 9007199254740991;\n /** `Object#toString` result references. */\n\n var 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 var 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 * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n /** Used to match `RegExp` flags from their coerced string values. */\n\n var reFlags = /\\w*$/;\n /** Used to detect host constructors (Safari). */\n\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n /** Used to detect unsigned integer values. */\n\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n /** Detect free variable `global` from Node.js. */\n\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n /** Detect free variable `self`. */\n\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = freeGlobal || freeSelf || Function('return this')();\n /** Detect free variable `exports`. */\n\n var freeExports = true && exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */\n\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */\n\n var moduleExports = freeModule && freeModule.exports === freeExports;\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 */\n\n function 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 * 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 */\n\n\n function 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 * 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 */\n\n\n function 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\n return array;\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 */\n\n\n function 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\n return array;\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 */\n\n\n function 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\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n\n return accumulator;\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 */\n\n\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\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 */\n\n\n function getValue(object, key) {\n return object == null ? undefined : object[key];\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 */\n\n\n function 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\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n\n return result;\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 */\n\n\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\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 */\n\n\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\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 */\n\n\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n }\n /** Used for built-in method references. */\n\n\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n /** Used to detect overreaching core-js shims. */\n\n var coreJsData = root['__core-js_shared__'];\n /** Used to detect methods masquerading as native. */\n\n var maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n }();\n /** Used to resolve the decompiled source of functions. */\n\n\n var funcToString = funcProto.toString;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty = objectProto.hasOwnProperty;\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n var objectToString = objectProto.toString;\n /** Used to detect if a method is native. */\n\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n /** Built-in value references. */\n\n var 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 /* Built-in method references for those with the same name as other `lodash` methods. */\n\n var nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n /* Built-in method references that are verified to be native. */\n\n var 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 /** Used to detect maps, sets, and weakmaps. */\n\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n /** Used to convert symbols to primitives and strings. */\n\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\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 */\n\n\n function hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\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 */\n\n\n function hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\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 */\n\n\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\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 */\n\n\n function hashSet(key, value) {\n var data = this.__data__;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n } // Add methods to `Hash`.\n\n\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\n function listCacheClear() {\n this.__data__ = [];\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 */\n\n\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n return true;\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 */\n\n\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\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 */\n\n\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\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 */\n\n\n function 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\n return this;\n } // Add methods to `ListCache`.\n\n\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\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 */\n\n function MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\n function mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\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 */\n\n\n function mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\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 */\n\n\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\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 */\n\n\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\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 */\n\n\n function mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n } // Add methods to `MapCache`.\n\n\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\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 */\n\n function Stack(entries) {\n this.__data__ = new ListCache(entries);\n }\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\n function stackClear() {\n this.__data__ = new ListCache();\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 */\n\n\n function stackDelete(key) {\n return this.__data__['delete'](key);\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 */\n\n\n function stackGet(key) {\n return this.__data__.get(key);\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 */\n\n\n function stackHas(key) {\n return this.__data__.has(key);\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 */\n\n\n function stackSet(key, value) {\n var cache = this.__data__;\n\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n return this;\n }\n\n cache = this.__data__ = new MapCache(pairs);\n }\n\n cache.set(key, value);\n return this;\n } // Add methods to `Stack`.\n\n\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\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 */\n\n function 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) ? baseTimes(value.length, String) : [];\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n object[key] = value;\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 */\n\n\n function assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\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 */\n\n\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\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 */\n\n\n function baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n\n if (result !== undefined) {\n return result;\n }\n\n if (!isObject(value)) {\n return value;\n }\n\n var isArr = isArray(value);\n\n if (isArr) {\n result = initCloneArray(value);\n\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\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n\n result = initCloneObject(isFunc ? {} : value);\n\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n } // Check for circular references and return its corresponding clone.\n\n\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n\n if (stacked) {\n return stacked;\n }\n\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n } // Recursively populate clone (susceptible to call stack limits).\n\n\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\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 */\n\n\n function baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\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 */\n\n\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\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 */\n\n\n function baseGetTag(value) {\n return objectToString.call(value);\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 */\n\n\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\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 */\n\n\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\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 */\n\n\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\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 */\n\n\n function 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 * 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 */\n\n\n function 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 * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n\n\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\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 */\n\n\n function 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 * 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 */\n\n\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\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 */\n\n\n function 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 * 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 */\n\n\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\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 */\n\n\n function copyObject(source, props, object, customizer) {\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n\n return object;\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 */\n\n\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\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 */\n\n\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\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 */\n\n\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\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 */\n\n\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\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 */\n\n\n var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\n var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11,\n // for data views in Edge < 14, and promises in Node.js.\n\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(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:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\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 */\n\n\n function initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length); // Add properties assigned by `RegExp#exec`.\n\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n\n return result;\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 */\n\n\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\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 */\n\n\n function initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n\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:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n 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 * 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 */\n\n\n function isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\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 */\n\n\n function isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\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 */\n\n\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\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 */\n\n\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\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 */\n\n\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\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 */\n\n\n function cloneDeep(value) {\n return baseClone(value, true, true);\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 */\n\n\n function eq(value, other) {\n return value === other || value !== value && other !== other;\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 */\n\n\n function isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\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 */\n\n\n var isArray = Array.isArray;\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 */\n\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\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 */\n\n\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 */\n\n\n var isBuffer = nativeIsBuffer || stubFalse;\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 */\n\n function 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 * 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 */\n\n\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 */\n\n\n function isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\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 */\n\n\n function isObjectLike(value) {\n return !!value && typeof value == 'object';\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 */\n\n\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\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 */\n\n\n function stubArray() {\n return [];\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 */\n\n\n function stubFalse() {\n return false;\n }\n\n module.exports = cloneDeep;\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(40), __webpack_require__(45)(module));\n /***/\n },\n /* 13 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Code;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return CodeBlockContainer;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return CodeBlock;\n });\n /* harmony import */\n\n\n var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n /* harmony import */\n\n\n var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);\n /* harmony import */\n\n\n var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);\n /* harmony import */\n\n\n var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n /* harmony import */\n\n\n var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);\n /* harmony import */\n\n\n var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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__[\n /* escapeText */\n \"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__[\n /* default */\n \"a\"]);\n\n var 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__[\n /* default */\n \"a\"].register(CodeBlockContainer);\n }\n }]);\n\n return CodeBlock;\n }(_blots_block__WEBPACK_IMPORTED_MODULE_0__[\n /* default */\n \"d\"]);\n\n var 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__[\n /* default */\n \"a\"]);\n\n Code.blotName = 'code';\n Code.tagName = 'CODE';\n CodeBlock.blotName = 'code-block';\n CodeBlock.className = 'ql-code-block';\n CodeBlock.tagName = 'DIV';\n CodeBlockContainer.blotName = 'code-block-container';\n CodeBlockContainer.className = 'ql-code-block-container';\n CodeBlockContainer.tagName = 'DIV';\n CodeBlockContainer.allowedChildren = [CodeBlock];\n CodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"a\"], _blots_cursor__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"a\"]];\n CodeBlock.requiredContainer = CodeBlockContainer;\n CodeBlock.TAB = ' ';\n /***/\n },\n /* 14 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n /* harmony import */\n\n\n var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n /* harmony import */\n\n\n var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function isLine(blot) {\n return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"d\"] || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\n /* BlockEmbed */\n \"a\"];\n }\n\n var 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 toggleBlankClass = _ref.toggleBlankClass;\n\n _classCallCheck(this, Scroll);\n\n _this = _super.call(this, registry, domNode);\n _this.emitter = emitter;\n _this.toggleBlankClass = toggleBlankClass;\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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* BlockEmbed */\n \"a\"] || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__[\n /* BlockEmbed */\n \"a\"]) {\n this.optimize();\n return;\n }\n\n var ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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__[\n /* default */\n \"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 var _this2 = this;\n\n if (this.batch) {\n if (Array.isArray(mutations)) {\n this.batch = this.batch.concat(mutations);\n this.toggleBlankClass();\n }\n\n return;\n }\n\n var source = _core_emitter__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"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 mutations = mutations.filter(function (_ref2) {\n var target = _ref2.target;\n\n var blot = _this2.find(target, true);\n\n return blot && blot.scroll === _this2;\n });\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"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__[\n /* default */\n \"a\"].events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n }(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ScrollBlot\"]);\n\n Scroll.blotName = 'scroll';\n Scroll.className = 'ql-editor';\n Scroll.tagName = 'DIV';\n Scroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"d\"];\n Scroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"d\"], _block__WEBPACK_IMPORTED_MODULE_2__[\n /* BlockEmbed */\n \"a\"], _container__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"]];\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Scroll;\n /***/\n },\n /* 15 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var levels = ['error', 'warn', 'log', 'info'];\n var level = 'warn';\n\n function 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\n function namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n }\n\n namespace.level = function (newLevel) {\n level = newLevel;\n };\n\n debug.level = namespace.level;\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = namespace;\n /***/\n },\n /* 16 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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 /* harmony default export */\n\n\n __webpack_exports__[\"a\"] = Container;\n /***/\n },\n /* 17 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var Cursor = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Cursor, _EmbedBlot);\n\n var _super = _createSuper(Cursor);\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__[\n /* default */\n \"a\"] ? this.prev : null;\n var prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n var nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"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 key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Cursor;\n }(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\n Cursor.blotName = 'cursor';\n Cursor.className = 'ql-cursor';\n Cursor.tagName = 'span';\n Cursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Cursor;\n /***/\n },\n /* 18 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./core/quill.js\n\n\n var quill = __webpack_require__(1); // EXTERNAL MODULE: ./blots/block.js\n\n\n var block = __webpack_require__(5); // EXTERNAL MODULE: ./blots/break.js\n\n\n var blots_break = __webpack_require__(8); // EXTERNAL MODULE: ./blots/container.js\n\n\n var container = __webpack_require__(16); // EXTERNAL MODULE: ./blots/cursor.js\n\n\n var cursor = __webpack_require__(17); // EXTERNAL MODULE: ./blots/embed.js\n\n\n var blots_embed = __webpack_require__(43); // EXTERNAL MODULE: ./blots/inline.js\n\n\n var inline = __webpack_require__(10); // EXTERNAL MODULE: ./blots/scroll.js\n\n\n var blots_scroll = __webpack_require__(14); // EXTERNAL MODULE: ./blots/text.js\n\n\n var blots_text = __webpack_require__(7); // EXTERNAL MODULE: ./modules/clipboard.js\n\n\n var clipboard = __webpack_require__(44); // EXTERNAL MODULE: ./modules/history.js\n\n\n var modules_history = __webpack_require__(37); // EXTERNAL MODULE: ./modules/keyboard.js\n\n\n var keyboard = __webpack_require__(19); // EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\n\n\n var Delta = __webpack_require__(0);\n\n var Delta_default = /*#__PURE__*/__webpack_require__.n(Delta); // EXTERNAL MODULE: ./core/emitter.js\n\n\n var emitter = __webpack_require__(3); // EXTERNAL MODULE: ./core/module.js\n\n\n var core_module = __webpack_require__(9); // EXTERNAL MODULE: ./utils/hasWindow.js\n\n\n var hasWindow = __webpack_require__(11); // CONCATENATED MODULE: ./modules/uploader.js\n\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\"\n /* default */\n ])()) {\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\"\n /* default */\n ]);\n\n uploader_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\"\n /* default */\n ].sources.USER);\n\n _this4.quill.setSelection(range.index + images.length, emitter[\"a\"\n /* default */\n ].sources.SILENT);\n });\n }\n };\n /* harmony default export */\n\n var uploader = uploader_Uploader; // CONCATENATED MODULE: ./core.js\n\n quill[\"a\"\n /* default */\n ].register({\n 'blots/block': block[\"d\"\n /* default */\n ],\n 'blots/block/embed': block[\"a\"\n /* BlockEmbed */\n ],\n 'blots/break': blots_break[\"a\"\n /* default */\n ],\n 'blots/container': container[\"a\"\n /* default */\n ],\n 'blots/cursor': cursor[\"a\"\n /* default */\n ],\n 'blots/embed': blots_embed[\"a\"\n /* default */\n ],\n 'blots/inline': inline[\"a\"\n /* default */\n ],\n 'blots/scroll': blots_scroll[\"a\"\n /* default */\n ],\n 'blots/text': blots_text[\"a\"\n /* default */\n ],\n 'modules/clipboard': clipboard[\"a\"\n /* default */\n ],\n 'modules/history': modules_history[\"a\"\n /* default */\n ],\n 'modules/keyboard': keyboard[\"b\"\n /* default */\n ],\n 'modules/uploader': uploader\n });\n /* harmony default export */\n\n var core = __webpack_exports__[\"default\"] = quill[\"a\"\n /* default */\n ];\n /***/\n },\n /* 19 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return Keyboard;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return SHORTKEY;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"d\", function () {\n return normalize;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return deleteRange;\n });\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n /* harmony import */\n\n\n var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);\n /* harmony import */\n\n\n var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _core_quill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);\n /* harmony import */\n\n\n var _core_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n /* harmony import */\n\n\n var _core_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);\n /* harmony import */\n\n\n var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_5__[\n /* default */\n \"a\"])('quill:keyboard');\n var 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 };\n var 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 };\n var SHORTKEY = Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__[\n /* default */\n \"a\"])() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\n var Keyboard = /*#__PURE__*/function (_Module) {\n _inherits(Keyboard, _Module);\n\n var _super = _createSuper(Keyboard);\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__[\n /* default */\n \"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 _ref = range.length === 0 ? [leafStart, offsetStart] : _this3.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDeleteRange\",\n value: function handleDeleteRange(range, context) {\n this.raiseOnKeydownCallback(context.event);\n deleteRange({\n range: range,\n quill: this.quill\n });\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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n });\n }\n }], [{\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(_ref3) {\n var key = _ref3.key,\n which = _ref3.which;\n var isKeySupported = !!key;\n var normalizedKey = isKeySupported ? key : which;\n\n if (normalizedKey) {\n if (isKeySupported) {\n normalizedKey = KEY_NAMES[normalizedKey.toLowerCase()] || normalizedKey;\n } else {\n normalizedKey = KEY_CODES[normalizedKey] || String.fromCharCode(normalizedKey);\n }\n }\n\n return normalizedKey;\n }\n }]);\n\n return Keyboard;\n }(_core_module__WEBPACK_IMPORTED_MODULE_6__[\n /* default */\n \"a\"]);\n\n Keyboard.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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n }\n }\n },\n 'list autofill': {\n key: 'space',\n shiftKey: null,\n collapsed: true,\n format: {\n 'code-block': false,\n blockquote: 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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.SILENT);\n return false;\n }\n }\n\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('leftArrow', false),\n 'embed left shift': makeEmbedArrowHandler('leftArrow', true),\n 'embed right': makeEmbedArrowHandler('rightArrow', false),\n 'embed right shift': makeEmbedArrowHandler('rightArrow', true),\n 'table down': makeTableArrowHandler(false),\n 'table up': makeTableArrowHandler(true)\n }\n };\n\n function 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__[\n /* default */\n \"a\"].sources.USER);\n this.quill.setSelection(index, length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.SILENT);\n }\n };\n }\n\n function 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 === 'leftArrow') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n }\n\n return false;\n }), _ref4;\n }\n\n function 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__[\n /* default */\n \"a\"].sources.USER);\n }\n };\n }\n\n function 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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n }\n }\n }\n\n return false;\n }\n };\n }\n\n function 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\n function deleteRange(_ref5) {\n var quill = _ref5.quill,\n range = _ref5.range;\n var lines = 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 quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.USER);\n }\n\n quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"].sources.SILENT);\n }\n\n function 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 /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global) {\n var check = function check(it) {\n return it && it.Math == Math && it;\n }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\n module.exports = // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback\n function () {\n return this;\n }() || Function('return this')();\n /* WEBPACK VAR INJECTION */\n\n }).call(this, __webpack_require__(40));\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var shared = __webpack_require__(75);\n\n var has = __webpack_require__(25);\n\n var uid = __webpack_require__(76);\n\n var NATIVE_SYMBOL = __webpack_require__(70);\n\n var USE_SYMBOL_AS_UID = __webpack_require__(69);\n\n var WellKnownSymbolsStore = shared('wks');\n var Symbol = global.Symbol;\n var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\n module.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n }\n\n return WellKnownSymbolsStore[name];\n };\n /***/\n\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, module) {\n /**\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. */\n var LARGE_ARRAY_SIZE = 200;\n /** Used to stand-in for `undefined` hash values. */\n\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n /** Used to compose bitmasks for value comparisons. */\n\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n /** Used as references for various `Number` constants. */\n\n var MAX_SAFE_INTEGER = 9007199254740991;\n /** `Object#toString` result references. */\n\n var 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 var 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 * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n /** Used to detect host constructors (Safari). */\n\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n /** Used to detect unsigned integer values. */\n\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n /** Used to identify `toStringTag` values of typed arrays. */\n\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n /** Detect free variable `global` from Node.js. */\n\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n /** Detect free variable `self`. */\n\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = freeGlobal || freeSelf || Function('return this')();\n /** Detect free variable `exports`. */\n\n var freeExports = true && exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */\n\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */\n\n var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Detect free variable `process` from Node.js. */\n\n var freeProcess = moduleExports && freeGlobal.process;\n /** Used to access faster Node.js helpers. */\n\n var nodeUtil = function () {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n /* Node.js helper references. */\n\n\n var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\n\n function 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\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\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 */\n\n\n function 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\n return array;\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 */\n\n\n function 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\n return false;\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 */\n\n\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\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 */\n\n\n function baseUnary(func) {\n return function (value) {\n return func(value);\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 */\n\n\n function cacheHas(cache, key) {\n return cache.has(key);\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 */\n\n\n function getValue(object, key) {\n return object == null ? undefined : object[key];\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 */\n\n\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n map.forEach(function (value, key) {\n result[++index] = [key, value];\n });\n return result;\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 */\n\n\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\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 */\n\n\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n set.forEach(function (value) {\n result[++index] = value;\n });\n return result;\n }\n /** Used for built-in method references. */\n\n\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n /** Used to detect overreaching core-js shims. */\n\n var coreJsData = root['__core-js_shared__'];\n /** Used to resolve the decompiled source of functions. */\n\n var funcToString = funcProto.toString;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty = objectProto.hasOwnProperty;\n /** Used to detect methods masquerading as native. */\n\n var 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n\n var nativeObjectToString = objectProto.toString;\n /** Used to detect if a method is native. */\n\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n /** Built-in value references. */\n\n var 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 /* Built-in method references for those with the same name as other `lodash` methods. */\n\n var nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n /* Built-in method references that are verified to be native. */\n\n var 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 /** Used to detect maps, sets, and weakmaps. */\n\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n /** Used to convert symbols to primitives and strings. */\n\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\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 */\n\n\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\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 */\n\n\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\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 */\n\n\n function 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 } // Add methods to `Hash`.\n\n\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\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 */\n\n\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\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 */\n\n\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\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 */\n\n\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\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 */\n\n\n function 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\n return this;\n } // Add methods to `ListCache`.\n\n\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\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 */\n\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\n function 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 * 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 */\n\n\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\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 */\n\n\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\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 */\n\n\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n } // Add methods to `MapCache`.\n\n\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\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 */\n\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\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 */\n\n\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\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 */\n\n\n function setCacheHas(value) {\n return this.__data__.has(value);\n } // Add methods to `SetCache`.\n\n\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\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 */\n\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\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 */\n\n\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\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 */\n\n\n function stackGet(key) {\n return this.__data__.get(key);\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 */\n\n\n function stackHas(key) {\n return this.__data__.has(key);\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 */\n\n\n function stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n } // Add methods to `Stack`.\n\n\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\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 */\n\n function 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)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\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 */\n\n\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\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 */\n\n\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\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 */\n\n\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\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 */\n\n\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\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 */\n\n\n function 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 objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\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\n objIsArr = true;\n objIsObj = false;\n }\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\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 stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n\n if (!isSameTag) {\n return false;\n }\n\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\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 */\n\n\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\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 */\n\n\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\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 */\n\n\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function 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 } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(array);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var index = -1,\n result = true,\n seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n stack.set(array, other);\n stack.set(other, array); // Ignore non-index properties.\n\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n\n result = false;\n break;\n } // Recursively compare arrays (susceptible to call stack limits).\n\n\n if (seen) {\n if (!arraySome(other, function (othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n\n stack['delete'](array);\n stack['delete'](other);\n return result;\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 */\n\n\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\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 } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked) {\n return stacked == other;\n }\n\n bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).\n\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 }\n\n return false;\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 */\n\n\n function 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\n var index = objLength;\n\n while (index--) {\n var key = objProps[index];\n\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n } // Assume cyclic values are equal.\n\n\n var stacked = stack.get(object);\n\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n\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 ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n } // Recursively compare objects (susceptible to call stack limits).\n\n\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n\n skipCtor || (skipCtor = key == 'constructor');\n }\n\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.\n\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n\n stack['delete'](object);\n stack['delete'](other);\n return result;\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 */\n\n\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\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 */\n\n\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\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 */\n\n\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\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 */\n\n\n function 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\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\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 */\n\n\n var getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\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 */\n\n var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(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:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\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 */\n\n\n function isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\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 */\n\n\n function isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\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 */\n\n\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\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 */\n\n\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\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 */\n\n\n function objectToString(value) {\n return nativeObjectToString.call(value);\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 */\n\n\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\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 */\n\n\n function eq(value, other) {\n return value === other || value !== value && other !== other;\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 */\n\n\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\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 */\n\n var isArray = Array.isArray;\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 */\n\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\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 */\n\n\n var isBuffer = nativeIsBuffer || stubFalse;\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 */\n\n function isEqual(value, other) {\n return baseIsEqual(value, other);\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 */\n\n\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\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\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\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 */\n\n\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 */\n\n\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\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 */\n\n\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\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 */\n\n\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\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 */\n\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\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 */\n\n\n function stubArray() {\n return [];\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 */\n\n\n function stubFalse() {\n return false;\n }\n\n module.exports = isEqual;\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(40), __webpack_require__(45)(module));\n /***/\n },\n /* 23 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return ColorAttributor;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return ColorClass;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return ColorStyle;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\n var ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('color', 'ql-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n var ColorStyle = new ColorAttributor('color', 'color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n /***/\n },\n /* 24 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return DirectionAttribute;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return DirectionClass;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return DirectionStyle;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n var config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['rtl']\n };\n var DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('direction', 'dir', config);\n var DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('direction', 'ql-direction', config);\n var DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('direction', 'direction', config);\n /***/\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toObject = __webpack_require__(49);\n\n var hasOwnProperty = {}.hasOwnProperty;\n\n module.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n };\n /***/\n\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, module) {\n /**\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. */\n var LARGE_ARRAY_SIZE = 200;\n /** Used to stand-in for `undefined` hash values. */\n\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n /** Used as references for various `Number` constants. */\n\n var MAX_SAFE_INTEGER = 9007199254740991;\n /** `Object#toString` result references. */\n\n var 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 var 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 * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n /** Used to detect host constructors (Safari). */\n\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n /** Used to detect unsigned integer values. */\n\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n /** Used to identify `toStringTag` values of typed arrays. */\n\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n /** Detect free variable `global` from Node.js. */\n\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n /** Detect free variable `self`. */\n\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n /** Used as a reference to the global object. */\n\n var root = freeGlobal || freeSelf || Function('return this')();\n /** Detect free variable `exports`. */\n\n var freeExports = true && exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */\n\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */\n\n var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Detect free variable `process` from Node.js. */\n\n var freeProcess = moduleExports && freeGlobal.process;\n /** Used to access faster Node.js helpers. */\n\n var 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 } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n /* Node.js helper references. */\n\n\n var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\n\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n\n case 1:\n return func.call(thisArg, args[0]);\n\n case 2:\n return func.call(thisArg, args[0], args[1]);\n\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n\n return func.apply(thisArg, args);\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 */\n\n\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\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 */\n\n\n function baseUnary(func) {\n return function (value) {\n return func(value);\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 */\n\n\n function getValue(object, key) {\n return object == null ? undefined : object[key];\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 */\n\n\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n }\n /** Used for built-in method references. */\n\n\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n /** Used to detect overreaching core-js shims. */\n\n var coreJsData = root['__core-js_shared__'];\n /** Used to resolve the decompiled source of functions. */\n\n var funcToString = funcProto.toString;\n /** Used to check objects for own properties. */\n\n var hasOwnProperty = objectProto.hasOwnProperty;\n /** Used to detect methods masquerading as native. */\n\n var 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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n\n var nativeObjectToString = objectProto.toString;\n /** Used to infer the `Object` constructor. */\n\n var objectCtorString = funcToString.call(Object);\n /** Used to detect if a method is native. */\n\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n /** Built-in value references. */\n\n var 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\n var defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }();\n /* Built-in method references for those with the same name as other `lodash` methods. */\n\n\n var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n /* Built-in method references that are verified to be native. */\n\n var Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\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 */\n\n var baseCreate = function () {\n function object() {}\n\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n\n if (objectCreate) {\n return objectCreate(proto);\n }\n\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n }();\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\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 */\n\n\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\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 */\n\n\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\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 */\n\n\n function 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 } // Add methods to `Hash`.\n\n\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\n\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\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 */\n\n\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\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 */\n\n\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\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 */\n\n\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\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 */\n\n\n function 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\n return this;\n } // Add methods to `ListCache`.\n\n\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\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 */\n\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\n function 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 * 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 */\n\n\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\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 */\n\n\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\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 */\n\n\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\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 */\n\n\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n } // Add methods to `MapCache`.\n\n\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\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 */\n\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\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 */\n\n\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\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 */\n\n\n function stackGet(key) {\n return this.__data__.get(key);\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 */\n\n\n function stackHas(key) {\n return this.__data__.has(key);\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 */\n\n\n function stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n } // Add methods to `Stack`.\n\n\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\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 */\n\n function 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)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\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 */\n\n\n function assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\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 */\n\n\n function assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\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 */\n\n\n function 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 * 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 */\n\n\n var baseFor = createBaseFor();\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 */\n\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\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 */\n\n\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\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 */\n\n\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\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 */\n\n\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\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 */\n\n\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\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\n return result;\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 */\n\n\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\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 */\n\n\n function 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\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\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 newValue = srcValue;\n\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\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\n assignMergeValue(object, key, newValue);\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 */\n\n\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\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 */\n\n\n var 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 * 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 */\n\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\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 */\n\n\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\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 */\n\n\n function 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 * 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 */\n\n\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\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 */\n\n\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\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 */\n\n\n function 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 customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n\n object = Object(object);\n\n while (++index < length) {\n var source = sources[index];\n\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n\n return object;\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 */\n\n\n function 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\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\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 */\n\n\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\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 */\n\n\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\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 */\n\n\n function 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\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\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 */\n\n\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\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 */\n\n\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\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 */\n\n\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n\n var type = typeof index;\n\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n\n return false;\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 */\n\n\n function isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\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 */\n\n\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\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 */\n\n\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\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 */\n\n\n function nativeKeysIn(object) {\n var result = [];\n\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n\n return result;\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 */\n\n\n function objectToString(value) {\n return nativeObjectToString.call(value);\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 */\n\n\n function 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\n index = -1;\n var otherArgs = Array(start + 1);\n\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\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 */\n\n\n function 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 * 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 */\n\n\n var setToString = shortOut(baseSetToString);\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 */\n\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n\n return func.apply(undefined, arguments);\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 */\n\n\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\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 */\n\n\n function eq(value, other) {\n return value === other || value !== value && other !== other;\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 */\n\n\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\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 */\n\n var isArray = Array.isArray;\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 */\n\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\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 */\n\n\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\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 */\n\n\n var isBuffer = nativeIsBuffer || stubFalse;\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 */\n\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\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\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\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 */\n\n\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\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 */\n\n\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\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 */\n\n\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\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 */\n\n\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n\n var proto = getPrototype(value);\n\n if (proto === null) {\n return true;\n }\n\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\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 */\n\n\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\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 */\n\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\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 */\n\n\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\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 */\n\n\n var merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\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 */\n\n function constant(value) {\n return function () {\n return value;\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 */\n\n\n function identity(value) {\n return value;\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 */\n\n\n function stubFalse() {\n return false;\n }\n\n module.exports = merge;\n /* WEBPACK VAR INJECTION */\n }).call(this, __webpack_require__(40), __webpack_require__(45)(module));\n /***/\n },\n /* 27 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return AlignAttribute;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return AlignClass;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"c\", function () {\n return AlignStyle;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n var config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['right', 'center', 'justify']\n };\n var AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('align', 'align', config);\n var AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('align', 'ql-align', config);\n var AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('align', 'text-align', config);\n /***/\n },\n /* 28 */\n\n /***/\n function (module, exports) {\n module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n };\n /***/\n\n },\n /* 29 */\n\n /***/\n function (module, exports) {\n module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n };\n /***/\n\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(29);\n\n module.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n }\n\n return it;\n };\n /***/\n\n },\n /* 31 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Link;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return _sanitize;\n });\n /* harmony import */\n\n\n var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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__[\n /* default */\n \"a\"]);\n\n Link.blotName = 'link';\n Link.tagName = 'A';\n Link.SANITIZED_URL = 'about:blank';\n Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\n function _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 /* 32 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = new WeakMap();\n /***/\n },\n /* 33 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return BackgroundClass;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return BackgroundStyle;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);\n\n var BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('background', 'ql-bg', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n var BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__[\n /* ColorAttributor */\n \"a\"]('background', 'background-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n });\n /***/\n },\n /* 34 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return FontStyle;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return FontClass;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['serif', 'monospace']\n };\n var FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('font', 'ql-font', config);\n\n var 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\n var FontStyle = new FontStyleAttributor('font', 'font-family', config);\n /***/\n },\n /* 35 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return SizeClass;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return SizeStyle;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\n var 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 });\n var 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 /* 36 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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__[\n /* default */\n \"a\"]);\n\n Bold.blotName = 'bold';\n Bold.tagName = ['STRONG', 'B'];\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Bold;\n /***/\n },\n /* 37 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return History;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return getLastChangeIndex;\n });\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);\n /* harmony import */\n\n\n var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);\n /* harmony import */\n\n\n var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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__[\n /* default */\n \"a\"].events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"a\"].events.TEXT_CHANGE || _this.ignoreChange) return;\n\n if (!_this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"]);\n\n History.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n };\n\n function 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\n function 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\n function 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 /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(42);\n\n var IE8_DOM_DEFINE = __webpack_require__(73);\n\n var anObject = __webpack_require__(30);\n\n var toPropertyKey = __webpack_require__(60); // eslint-disable-next-line es/no-object-defineproperty -- safe\n\n\n var $defineProperty = Object.defineProperty; // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n\n exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\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 /* 39 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var 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\n Theme.DEFAULTS = {\n modules: {}\n };\n Theme.themes = {\n default: Theme\n };\n /* harmony default export */\n\n __webpack_exports__[\"a\"] = Theme;\n /***/\n },\n /* 40 */\n\n /***/\n function (module, exports) {\n var g; // This works in non-strict mode\n\n g = function () {\n return this;\n }();\n\n try {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\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\n\n module.exports = g;\n /***/\n },\n /* 41 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(42);\n\n var definePropertyModule = __webpack_require__(38);\n\n var createPropertyDescriptor = __webpack_require__(50);\n\n module.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 /* 42 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var fails = __webpack_require__(28); // Detect IE8's incomplete defineProperty implementation\n\n\n module.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n });\n /***/\n },\n /* 43 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony import */\n\n var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var GUARD_TEXT = \"\\uFEFF\";\n\n var 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__[\n /* default */\n \"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__[\n /* default */\n \"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 /* harmony default export */\n\n\n __webpack_exports__[\"a\"] = Embed;\n /***/\n },\n /* 44 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return Clipboard;\n });\n /* unused harmony export matchAttributor */\n\n /* unused harmony export matchBlot */\n\n /* unused harmony export matchNewline */\n\n /* unused harmony export matchText */\n\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return traverse;\n });\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _blots_block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n /* harmony import */\n\n\n var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n /* harmony import */\n\n\n var _core_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n /* harmony import */\n\n\n var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9);\n /* harmony import */\n\n\n var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27);\n /* harmony import */\n\n\n var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);\n /* harmony import */\n\n\n var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);\n /* harmony import */\n\n\n var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23);\n /* harmony import */\n\n\n var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24);\n /* harmony import */\n\n\n var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(34);\n /* harmony import */\n\n\n var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(35);\n /* harmony import */\n\n\n var _keyboard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(19);\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"])('quill:clipboard');\n var ELEMENT_NODE = 1;\n var TEXT_NODE = 3;\n var 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]];\n var HTML_TEXT_MATCHERS = [matchText, matchNewline];\n var ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[\n /* AlignAttribute */\n \"a\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[\n /* DirectionAttribute */\n \"a\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n }, {});\n var STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[\n /* AlignStyle */\n \"c\"], _formats_background__WEBPACK_IMPORTED_MODULE_7__[\n /* BackgroundStyle */\n \"b\"], _formats_color__WEBPACK_IMPORTED_MODULE_9__[\n /* ColorStyle */\n \"c\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[\n /* DirectionStyle */\n \"c\"], _formats_font__WEBPACK_IMPORTED_MODULE_11__[\n /* FontStyle */\n \"b\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[\n /* SizeStyle */\n \"b\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n }, {});\n\n var 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__[\n /* default */\n \"c\"].blotName]) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text, _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"c\"].blotName, formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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 Object(_keyboard__WEBPACK_IMPORTED_MODULE_13__[\n /* deleteRange */\n \"c\"])({\n range: range,\n quill: this.quill\n });\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__[\n /* default */\n \"a\"].sources.USER); // range.length contributes to delta.length()\n\n this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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 = [matchPlainText];\n this.matchers.forEach(function (pair) {\n var _pair2 = _slicedToArray(pair, 2),\n selector = _pair2[0],\n matcher = _pair2[1];\n\n if (HTML_TEXT_MATCHERS.indexOf(matcher) === -1 && 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__[\n /* default */\n \"a\"]);\n\n Clipboard.DEFAULTS = {\n matchers: []\n };\n\n function 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\n function 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\n function 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\n var preNodes = new WeakMap();\n\n function 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\n function 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\n function matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n }\n\n function 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\n function 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\n function matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return delta;\n }\n\n function 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\n function matchIgnore() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n function 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\n function matchList(node, delta) {\n var list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n return applyFormat(delta, 'list', list);\n }\n\n function 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__[\n /* BlockEmbed */\n \"a\"]) {\n return delta.insert('\\n');\n }\n\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n\n return delta;\n }\n\n function 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\n function 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\n function matchPlainText(node, delta) {\n var text = node.data || '';\n text = text.replace(/\\r\\n/g, '\\n');\n return delta.insert(text);\n }\n\n function 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 /* 45 */\n\n /***/\n function (module, exports) {\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n };\n /***/\n\n },\n /* 46 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var aFunction = function aFunction(variable) {\n return typeof variable == 'function' ? variable : undefined;\n };\n\n module.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n };\n /***/\n\n },\n /* 47 */\n\n /***/\n function (module, exports) {\n // `RequireObjectCoercible` abstract operation\n // https://tc39.es/ecma262/#sec-requireobjectcoercible\n module.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n };\n /***/\n\n },\n /* 48 */\n\n /***/\n function (module, exports) {\n module.exports = false;\n /***/\n },\n /* 49 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var requireObjectCoercible = __webpack_require__(47); // `ToObject` abstract operation\n // https://tc39.es/ecma262/#sec-toobject\n\n\n module.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n };\n /***/\n\n },\n /* 50 */\n\n /***/\n function (module, exports) {\n module.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 /* 51 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var getOwnPropertyDescriptor = __webpack_require__(63).f;\n\n var createNonEnumerableProperty = __webpack_require__(41);\n\n var redefine = __webpack_require__(77);\n\n var setGlobal = __webpack_require__(59);\n\n var copyConstructorProperties = __webpack_require__(102);\n\n var isForced = __webpack_require__(107);\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 */\n\n\n module.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\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\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n } // extend global\n\n\n redefine(target, key, sourceProperty, options);\n }\n };\n /***/\n\n },\n /* 52 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toInteger = __webpack_require__(55);\n\n var min = Math.min; // `ToLength` abstract operation\n // https://tc39.es/ecma262/#sec-tolength\n\n module.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n };\n /***/\n\n },\n /* 53 */\n\n /***/\n function (module, exports) {\n module.exports = {};\n /***/\n },\n /* 54 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n /* harmony export (binding) */\n\n __webpack_require__.d(__webpack_exports__, \"a\", function () {\n return SyntaxCodeBlock;\n });\n /* unused harmony export CodeToken */\n\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"b\", function () {\n return Syntax;\n });\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n /* harmony import */\n\n\n var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n /* harmony import */\n\n\n var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);\n /* harmony import */\n\n\n var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n /* harmony import */\n\n\n var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n /* harmony import */\n\n\n var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5);\n /* harmony import */\n\n\n var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8);\n /* harmony import */\n\n\n var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17);\n /* harmony import */\n\n\n var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);\n /* harmony import */\n\n\n var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);\n /* harmony import */\n\n\n var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);\n /* harmony import */\n\n\n var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"]('code-token', 'hljs', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE\n });\n\n var CodeToken = /*#__PURE__*/function (_Inline) {\n _inherits(CodeToken, _Inline);\n\n var _super = _createSuper(CodeToken);\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 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__[\n /* default */\n \"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 return CodeToken;\n }(_blots_inline__WEBPACK_IMPORTED_MODULE_2__[\n /* default */\n \"a\"]);\n\n CodeToken.blotName = 'code-token';\n CodeToken.className = 'ql-token';\n\n var 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 value: // Syntax module will register\n 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__[\n /* default */\n \"c\"]);\n\n var 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__[\n /* blockDelta */\n \"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; // Should be all retains\n\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__[\n /* CodeBlockContainer */\n \"b\"]);\n\n SyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\n SyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\n SyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__[\n /* default */\n \"a\"], _blots_text__WEBPACK_IMPORTED_MODULE_8__[\n /* default */\n \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_6__[\n /* default */\n \"a\"]];\n\n var Syntax = /*#__PURE__*/function (_Module) {\n _inherits(Syntax, _Module);\n\n var _super4 = _createSuper(Syntax);\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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"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__[\n /* default */\n \"a\"].sources.SILENT);\n\n if (range != null) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"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__[\n /* escapeText */\n \"b\"])(text).split('\\n').reduce(function (delta, line, i) {\n if (i !== 0) {\n delta.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[\n /* default */\n \"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__[\n /* default */\n \"c\"].className);\n container.innerHTML = this.options.hljs.highlight(language, text).value;\n return Object(_clipboard__WEBPACK_IMPORTED_MODULE_10__[\n /* traverse */\n \"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__[\n /* default */\n \"c\"].blotName, language));\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n }], [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"a\"].register(CodeToken, true);\n\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"a\"].register(SyntaxCodeBlock, true);\n\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[\n /* default */\n \"a\"].register(SyntaxCodeBlockContainer, true);\n }\n }]);\n\n return Syntax;\n }(_core_module__WEBPACK_IMPORTED_MODULE_4__[\n /* default */\n \"a\"]);\n\n Syntax.DEFAULTS = {\n hljs: function () {\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__[\n /* default */\n \"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 /* 55 */\n\n /***/\n function (module, exports) {\n var ceil = Math.ceil;\n var floor = Math.floor; // `ToInteger` abstract operation\n // https://tc39.es/ecma262/#sec-tointeger\n\n module.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n };\n /***/\n\n },\n /* 56 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isSymbol = __webpack_require__(57);\n\n module.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n };\n /***/\n\n },\n /* 57 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(46);\n\n var USE_SYMBOL_AS_UID = __webpack_require__(69);\n\n module.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n } : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n };\n /***/\n },\n /* 58 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var setGlobal = __webpack_require__(59);\n\n var SHARED = '__core-js_shared__';\n var store = global[SHARED] || setGlobal(SHARED, {});\n module.exports = store;\n /***/\n },\n /* 59 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n module.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global[key] = value;\n }\n\n return value;\n };\n /***/\n\n },\n /* 60 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toPrimitive = __webpack_require__(97);\n\n var isSymbol = __webpack_require__(57); // `ToPropertyKey` abstract operation\n // https://tc39.es/ecma262/#sec-topropertykey\n\n\n module.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n };\n /***/\n\n },\n /* 61 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var shared = __webpack_require__(75);\n\n var uid = __webpack_require__(76);\n\n var keys = shared('keys');\n\n module.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n };\n /***/\n\n },\n /* 62 */\n\n /***/\n function (module, exports) {\n module.exports = {};\n /***/\n },\n /* 63 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(42);\n\n var propertyIsEnumerableModule = __webpack_require__(100);\n\n var createPropertyDescriptor = __webpack_require__(50);\n\n var toIndexedObject = __webpack_require__(64);\n\n var toPropertyKey = __webpack_require__(60);\n\n var has = __webpack_require__(25);\n\n var IE8_DOM_DEFINE = __webpack_require__(73); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n\n\n var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\n exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n };\n /***/\n },\n /* 64 */\n\n /***/\n function (module, exports, __webpack_require__) {\n // toObject with fallback for non-array-like ES3 strings\n var IndexedObject = __webpack_require__(101);\n\n var requireObjectCoercible = __webpack_require__(47);\n\n module.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n };\n /***/\n\n },\n /* 65 */\n\n /***/\n function (module, exports) {\n var toString = {}.toString;\n\n module.exports = function (it) {\n return toString.call(it).slice(8, -1);\n };\n /***/\n\n },\n /* 66 */\n\n /***/\n function (module, exports) {\n // IE8- don't enum bug keys\n module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];\n /***/\n },\n /* 67 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var Iterator_1 = __importDefault(__webpack_require__(89));\n\n var Op;\n\n (function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n\n Op.iterator = iterator;\n\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n\n Op.length = length;\n })(Op || (Op = {}));\n\n exports.default = Op;\n /***/\n },\n /* 68 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var has = Object.prototype.hasOwnProperty,\n prefix = '~';\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 */\n\n function Events() {} //\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 //\n\n\n if (Object.create) {\n Events.prototype = Object.create(null); //\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\n if (!new Events().__proto__) prefix = false;\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 */\n\n\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\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 */\n\n\n function 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 if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);else emitter._events[evt] = [emitter._events[evt], listener];\n return emitter;\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 */\n\n\n function clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();else delete emitter._events[evt];\n }\n /**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\n\n\n function EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n /**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\n\n\n EventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\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 * 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 */\n\n\n EventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event,\n handlers = this._events[evt];\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 * 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 */\n\n\n EventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event,\n listeners = this._events[evt];\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\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 */\n\n\n EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\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:\n return listeners.fn.call(listeners.context), true;\n\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\n case 6:\n 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:\n listeners[i].fn.call(listeners[i].context);\n break;\n\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\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 */\n\n\n EventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\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 */\n\n\n EventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\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 */\n\n\n EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n\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 (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n } //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n\n\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else clearEvent(this, evt);\n }\n\n return this;\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 */\n\n\n EventEmitter.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 // Alias methods names because people roll like that.\n //\n\n\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.addListener = EventEmitter.prototype.on; //\n // Expose the prefix.\n //\n\n EventEmitter.prefixed = prefix; //\n // Allow `EventEmitter` to be imported as module namespace.\n //\n\n EventEmitter.EventEmitter = EventEmitter; //\n // Expose the module.\n //\n\n if (true) {\n module.exports = EventEmitter;\n }\n /***/\n\n },\n /* 69 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* eslint-disable es/no-symbol -- required for testing */\n var NATIVE_SYMBOL = __webpack_require__(70);\n\n module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';\n /***/\n },\n /* 70 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* eslint-disable es/no-symbol -- required for testing */\n var V8_VERSION = __webpack_require__(94);\n\n var fails = __webpack_require__(28); // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\n\n\n module.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n });\n /***/\n },\n /* 71 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var NATIVE_WEAK_MAP = __webpack_require__(96);\n\n var global = __webpack_require__(20);\n\n var isObject = __webpack_require__(29);\n\n var createNonEnumerableProperty = __webpack_require__(41);\n\n var objectHas = __webpack_require__(25);\n\n var shared = __webpack_require__(58);\n\n var sharedKey = __webpack_require__(61);\n\n var hiddenKeys = __webpack_require__(62);\n\n var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\n var WeakMap = global.WeakMap;\n var set, get, has;\n\n var enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n };\n\n var getterFor = function getterFor(TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n };\n\n if (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n\n set = function set(it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return wmget.call(store, it) || {};\n };\n\n has = function has(it) {\n return wmhas.call(store, it);\n };\n } else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function set(it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function get(it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n\n has = function has(it) {\n return objectHas(it, STATE);\n };\n }\n\n module.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n };\n /***/\n },\n /* 72 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var store = __webpack_require__(58);\n\n var functionToString = Function.toString; // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\n\n if (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n }\n\n module.exports = store.inspectSource;\n /***/\n },\n /* 73 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(42);\n\n var fails = __webpack_require__(28);\n\n var createElement = __webpack_require__(74); // Thank's IE8 for his funny defineProperty\n\n\n module.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n /***/\n },\n /* 74 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var isObject = __webpack_require__(29);\n\n var document = global.document; // typeof document.createElement is 'object' in old IE\n\n var EXISTS = isObject(document) && isObject(document.createElement);\n\n module.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n };\n /***/\n\n },\n /* 75 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var IS_PURE = __webpack_require__(48);\n\n var store = __webpack_require__(58);\n\n (module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n })('versions', []).push({\n version: '3.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n });\n /***/\n },\n /* 76 */\n\n /***/\n function (module, exports) {\n var id = 0;\n var postfix = Math.random();\n\n module.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n };\n /***/\n\n },\n /* 77 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var createNonEnumerableProperty = __webpack_require__(41);\n\n var has = __webpack_require__(25);\n\n var setGlobal = __webpack_require__(59);\n\n var inspectSource = __webpack_require__(72);\n\n var InternalStateModule = __webpack_require__(71);\n\n var getInternalState = InternalStateModule.get;\n var enforceInternalState = InternalStateModule.enforce;\n var TEMPLATE = String(String).split('String');\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 var state;\n\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n\n state = enforceInternalState(value);\n\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n\n if (O === global) {\n if (simple) O[key] = value;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\n if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // 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 /* 78 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var has = __webpack_require__(25);\n\n var toIndexedObject = __webpack_require__(64);\n\n var indexOf = __webpack_require__(105).indexOf;\n\n var hiddenKeys = __webpack_require__(62);\n\n module.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n !has(hiddenKeys, key) && has(O, key) && result.push(key);\n } // Don't enum bug & hidden keys\n\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n };\n /***/\n\n },\n /* 79 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toInteger = __webpack_require__(55);\n\n var max = Math.max;\n var min = Math.min; // 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).\n\n module.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 /* 80 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var fails = __webpack_require__(28);\n\n var getPrototypeOf = __webpack_require__(81);\n\n var createNonEnumerableProperty = __webpack_require__(41);\n\n var has = __webpack_require__(25);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var IS_PURE = __webpack_require__(48);\n\n var ITERATOR = wellKnownSymbol('iterator');\n var BUGGY_SAFARI_ITERATORS = false;\n\n var returnThis = function returnThis() {\n return this;\n }; // `%IteratorPrototype%` object\n // https://tc39.es/ecma262/#sec-%iteratorprototype%-object\n\n\n var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n /* eslint-disable es/no-array-prototype-keys -- safe */\n\n if ([].keys) {\n arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`\n\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n }\n\n var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {}; // FF44- legacy iterators case\n\n return IteratorPrototype[ITERATOR].call(test) !== test;\n });\n if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; // `%IteratorPrototype%[@@iterator]()` method\n // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\n\n if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n }\n\n module.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n };\n /***/\n },\n /* 81 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var has = __webpack_require__(25);\n\n var toObject = __webpack_require__(49);\n\n var sharedKey = __webpack_require__(61);\n\n var CORRECT_PROTOTYPE_GETTER = __webpack_require__(109);\n\n var IE_PROTO = sharedKey('IE_PROTO');\n var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method\n // https://tc39.es/ecma262/#sec-object.getprototypeof\n // eslint-disable-next-line es/no-object-getprototypeof -- safe\n\n module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectPrototype : null;\n };\n /***/\n },\n /* 82 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* global ActiveXObject -- old IE, WSH */\n var anObject = __webpack_require__(30);\n\n var defineProperties = __webpack_require__(110);\n\n var enumBugKeys = __webpack_require__(66);\n\n var hiddenKeys = __webpack_require__(62);\n\n var html = __webpack_require__(112);\n\n var documentCreateElement = __webpack_require__(74);\n\n var sharedKey = __webpack_require__(61);\n\n var GT = '>';\n var LT = '<';\n var PROTOTYPE = 'prototype';\n var SCRIPT = 'script';\n var IE_PROTO = sharedKey('IE_PROTO');\n\n var EmptyConstructor = function EmptyConstructor() {\n /* empty */\n };\n\n var scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\n\n var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n\n return temp;\n }; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\n\n var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n\n if (iframe.style) {\n iframe.style.display = 'none';\n html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475\n\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 }; // 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\n\n\n var activeXDocument;\n\n var _NullProtoObject = function NullProtoObject() {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n /* ignore */\n }\n\n _NullProtoObject = document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : // old IE\n NullProtoObjectViaIFrame() || NullProtoObjectViaActiveX(activeXDocument); // WSH\n\n var length = enumBugKeys.length;\n\n while (length--) {\n delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n }\n\n return _NullProtoObject();\n };\n\n hiddenKeys[IE_PROTO] = true; // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n\n module.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = _NullProtoObject();\n\n return Properties === undefined ? result : defineProperties(result, Properties);\n };\n /***/\n\n },\n /* 83 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var defineProperty = __webpack_require__(38).f;\n\n var has = __webpack_require__(25);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\n module.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n };\n /***/\n\n },\n /* 84 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var aFunction = __webpack_require__(117); // optional / simple context binding\n\n\n module.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 0:\n return function () {\n return fn.call(that);\n };\n\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function\n /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n };\n /***/\n\n },\n /* 85 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var bind = __webpack_require__(84);\n\n var call = Function.call;\n\n module.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n };\n /***/\n\n },\n /* 86 */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./node_modules/core-js/features/array/from.js\n\n\n var from = __webpack_require__(90); // EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\n\n\n var fill = __webpack_require__(127); // EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\n\n\n var ends_with = __webpack_require__(132); // CONCATENATED MODULE: ./polyfills.js\n // IE11 support\n // EXTERNAL MODULE: ./core.js + 1 modules\n\n\n var core = __webpack_require__(18); // EXTERNAL MODULE: ./formats/align.js\n\n\n var align = __webpack_require__(27); // EXTERNAL MODULE: ./formats/direction.js\n\n\n var direction = __webpack_require__(24); // EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\n\n\n var parchment = __webpack_require__(2); // CONCATENATED MODULE: ./formats/indent.js\n\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n var 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\n var 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 */\n\n var indent = IndentClass; // EXTERNAL MODULE: ./blots/block.js\n\n var block = __webpack_require__(5); // CONCATENATED MODULE: ./formats/blockquote.js\n\n\n function blockquote_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n blockquote_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n blockquote_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return blockquote_typeof(obj);\n }\n\n function blockquote_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function blockquote_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) blockquote_setPrototypeOf(subClass, superClass);\n }\n\n function blockquote_setPrototypeOf(o, p) {\n blockquote_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return blockquote_setPrototypeOf(o, p);\n }\n\n function blockquote_createSuper(Derived) {\n var hasNativeReflectConstruct = blockquote_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = blockquote_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = blockquote_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return blockquote_possibleConstructorReturn(this, result);\n };\n }\n\n function blockquote_possibleConstructorReturn(self, call) {\n if (call && (blockquote_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return blockquote_assertThisInitialized(self);\n }\n\n function blockquote_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function blockquote_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function blockquote_getPrototypeOf(o) {\n blockquote_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return blockquote_getPrototypeOf(o);\n }\n\n var 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 return _super.apply(this, arguments);\n }\n\n return Blockquote;\n }(block[\"d\"\n /* default */\n ]);\n\n Blockquote.blotName = 'blockquote';\n Blockquote.tagName = 'blockquote';\n /* harmony default export */\n\n var blockquote = Blockquote; // CONCATENATED MODULE: ./formats/header.js\n\n function header_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n header_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n header_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return header_typeof(obj);\n }\n\n function header_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function header_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function header_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) header_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) header_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function header_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) header_setPrototypeOf(subClass, superClass);\n }\n\n function header_setPrototypeOf(o, p) {\n header_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return header_setPrototypeOf(o, p);\n }\n\n function header_createSuper(Derived) {\n var hasNativeReflectConstruct = header_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = header_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = header_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return header_possibleConstructorReturn(this, result);\n };\n }\n\n function header_possibleConstructorReturn(self, call) {\n if (call && (header_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return header_assertThisInitialized(self);\n }\n\n function header_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function header_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function header_getPrototypeOf(o) {\n header_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return header_getPrototypeOf(o);\n }\n\n var 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 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 return Header;\n }(block[\"d\"\n /* default */\n ]);\n\n Header.blotName = 'header';\n Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n /* harmony default export */\n\n var header = Header; // EXTERNAL MODULE: ./blots/container.js\n\n var container = __webpack_require__(16); // EXTERNAL MODULE: ./core/quill.js\n\n\n var core_quill = __webpack_require__(1); // CONCATENATED MODULE: ./formats/list.js\n\n\n function list_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n list_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n list_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return list_typeof(obj);\n }\n\n function list_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function list_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) list_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) list_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function list_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n list_get = Reflect.get;\n } else {\n list_get = function _get(target, property, receiver) {\n var base = list_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return list_get(target, property, receiver || target);\n }\n\n function list_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = list_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function list_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function list_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) list_setPrototypeOf(subClass, superClass);\n }\n\n function list_setPrototypeOf(o, p) {\n list_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return list_setPrototypeOf(o, p);\n }\n\n function list_createSuper(Derived) {\n var hasNativeReflectConstruct = list_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = list_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = list_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return list_possibleConstructorReturn(this, result);\n };\n }\n\n function list_possibleConstructorReturn(self, call) {\n if (call && (list_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return list_assertThisInitialized(self);\n }\n\n function list_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function list_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function list_getPrototypeOf(o) {\n list_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return list_getPrototypeOf(o);\n }\n\n var 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 return _super.apply(this, arguments);\n }\n\n return ListContainer;\n }(container[\"a\"\n /* default */\n ]);\n\n ListContainer.blotName = 'list-container';\n ListContainer.tagName = 'OL';\n\n var list_ListItem = /*#__PURE__*/function (_Block) {\n list_inherits(ListItem, _Block);\n\n var _super2 = list_createSuper(ListItem);\n\n function ListItem(scroll, domNode) {\n var _this;\n\n list_classCallCheck(this, ListItem);\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 key: \"create\",\n value: function create(value) {\n var node = list_get(list_getPrototypeOf(ListItem), \"create\", this).call(this);\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 core_quill[\"a\"\n /* default */\n ].register(ListContainer);\n }\n }]);\n return ListItem;\n }(block[\"d\"\n /* default */\n ]);\n\n list_ListItem.blotName = 'list';\n list_ListItem.tagName = 'LI';\n ListContainer.allowedChildren = [list_ListItem];\n list_ListItem.requiredContainer = ListContainer; // EXTERNAL MODULE: ./formats/background.js\n\n var background = __webpack_require__(33); // EXTERNAL MODULE: ./formats/color.js\n\n\n var color = __webpack_require__(23); // EXTERNAL MODULE: ./formats/font.js\n\n\n var font = __webpack_require__(34); // EXTERNAL MODULE: ./formats/size.js\n\n\n var size = __webpack_require__(35); // EXTERNAL MODULE: ./formats/bold.js\n\n\n var bold = __webpack_require__(36); // CONCATENATED MODULE: ./formats/italic.js\n\n\n function italic_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n italic_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n italic_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return italic_typeof(obj);\n }\n\n function italic_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function italic_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) italic_setPrototypeOf(subClass, superClass);\n }\n\n function italic_setPrototypeOf(o, p) {\n italic_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return italic_setPrototypeOf(o, p);\n }\n\n function italic_createSuper(Derived) {\n var hasNativeReflectConstruct = italic_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = italic_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = italic_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return italic_possibleConstructorReturn(this, result);\n };\n }\n\n function italic_possibleConstructorReturn(self, call) {\n if (call && (italic_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return italic_assertThisInitialized(self);\n }\n\n function italic_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function italic_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function italic_getPrototypeOf(o) {\n italic_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return italic_getPrototypeOf(o);\n }\n\n var 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 return _super.apply(this, arguments);\n }\n\n return Italic;\n }(bold[\"a\"\n /* default */\n ]);\n\n Italic.blotName = 'italic';\n Italic.tagName = ['EM', 'I'];\n /* harmony default export */\n\n var italic = Italic; // EXTERNAL MODULE: ./formats/link.js\n\n var formats_link = __webpack_require__(31); // EXTERNAL MODULE: ./blots/inline.js\n\n\n var inline = __webpack_require__(10); // CONCATENATED MODULE: ./formats/script.js\n\n\n function script_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n script_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n script_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return script_typeof(obj);\n }\n\n function script_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function script_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function script_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) script_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) script_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function script_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n script_get = Reflect.get;\n } else {\n script_get = function _get(target, property, receiver) {\n var base = script_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return script_get(target, property, receiver || target);\n }\n\n function script_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = script_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function script_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) script_setPrototypeOf(subClass, superClass);\n }\n\n function script_setPrototypeOf(o, p) {\n script_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return script_setPrototypeOf(o, p);\n }\n\n function script_createSuper(Derived) {\n var hasNativeReflectConstruct = script_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = script_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = script_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return script_possibleConstructorReturn(this, result);\n };\n }\n\n function script_possibleConstructorReturn(self, call) {\n if (call && (script_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return script_assertThisInitialized(self);\n }\n\n function script_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function script_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function script_getPrototypeOf(o) {\n script_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return script_getPrototypeOf(o);\n }\n\n var 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 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 return Script;\n }(inline[\"a\"\n /* default */\n ]);\n\n Script.blotName = 'script';\n Script.tagName = ['SUB', 'SUP'];\n /* harmony default export */\n\n var script = Script; // CONCATENATED MODULE: ./formats/strike.js\n\n function strike_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n strike_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n strike_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return strike_typeof(obj);\n }\n\n function strike_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function strike_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) strike_setPrototypeOf(subClass, superClass);\n }\n\n function strike_setPrototypeOf(o, p) {\n strike_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return strike_setPrototypeOf(o, p);\n }\n\n function strike_createSuper(Derived) {\n var hasNativeReflectConstruct = strike_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = strike_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = strike_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return strike_possibleConstructorReturn(this, result);\n };\n }\n\n function strike_possibleConstructorReturn(self, call) {\n if (call && (strike_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return strike_assertThisInitialized(self);\n }\n\n function strike_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function strike_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function strike_getPrototypeOf(o) {\n strike_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return strike_getPrototypeOf(o);\n }\n\n var 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 return _super.apply(this, arguments);\n }\n\n return Strike;\n }(bold[\"a\"\n /* default */\n ]);\n\n Strike.blotName = 'strike';\n Strike.tagName = ['S', 'STRIKE'];\n /* harmony default export */\n\n var strike = Strike; // CONCATENATED MODULE: ./formats/underline.js\n\n function underline_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n underline_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n underline_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return underline_typeof(obj);\n }\n\n function underline_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function underline_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) underline_setPrototypeOf(subClass, superClass);\n }\n\n function underline_setPrototypeOf(o, p) {\n underline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return underline_setPrototypeOf(o, p);\n }\n\n function underline_createSuper(Derived) {\n var hasNativeReflectConstruct = underline_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = underline_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = underline_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return underline_possibleConstructorReturn(this, result);\n };\n }\n\n function underline_possibleConstructorReturn(self, call) {\n if (call && (underline_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return underline_assertThisInitialized(self);\n }\n\n function underline_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function underline_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function underline_getPrototypeOf(o) {\n underline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return underline_getPrototypeOf(o);\n }\n\n var 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 return _super.apply(this, arguments);\n }\n\n return Underline;\n }(inline[\"a\"\n /* default */\n ]);\n\n Underline.blotName = 'underline';\n Underline.tagName = 'U';\n /* harmony default export */\n\n var underline = Underline; // EXTERNAL MODULE: ./blots/embed.js\n\n var blots_embed = __webpack_require__(43); // EXTERNAL MODULE: ./utils/hasWindow.js\n\n\n var hasWindow = __webpack_require__(11); // CONCATENATED MODULE: ./formats/formula.js\n\n\n function formula_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n formula_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n formula_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return formula_typeof(obj);\n }\n\n function formula_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function formula_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function formula_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) formula_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) formula_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function formula_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n formula_get = Reflect.get;\n } else {\n formula_get = function _get(target, property, receiver) {\n var base = formula_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return formula_get(target, property, receiver || target);\n }\n\n function formula_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = formula_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function formula_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) formula_setPrototypeOf(subClass, superClass);\n }\n\n function formula_setPrototypeOf(o, p) {\n formula_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return formula_setPrototypeOf(o, p);\n }\n\n function formula_createSuper(Derived) {\n var hasNativeReflectConstruct = formula_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = formula_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = formula_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return formula_possibleConstructorReturn(this, result);\n };\n }\n\n function formula_possibleConstructorReturn(self, call) {\n if (call && (formula_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return formula_assertThisInitialized(self);\n }\n\n function formula_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function formula_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function formula_getPrototypeOf(o) {\n formula_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return formula_getPrototypeOf(o);\n }\n\n var 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 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\"\n /* default */\n ])()) {\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 return Formula;\n }(blots_embed[\"a\"\n /* default */\n ]);\n\n formula_Formula.blotName = 'formula';\n formula_Formula.className = 'ql-formula';\n formula_Formula.tagName = 'SPAN';\n /* harmony default export */\n\n var formula = formula_Formula; // CONCATENATED MODULE: ./formats/image.js\n\n function image_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n image_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n image_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return image_typeof(obj);\n }\n\n function image_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function image_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function image_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) image_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) image_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function image_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n image_get = Reflect.get;\n } else {\n image_get = function _get(target, property, receiver) {\n var base = image_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return image_get(target, property, receiver || target);\n }\n\n function image_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = image_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function image_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) image_setPrototypeOf(subClass, superClass);\n }\n\n function image_setPrototypeOf(o, p) {\n image_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return image_setPrototypeOf(o, p);\n }\n\n function image_createSuper(Derived) {\n var hasNativeReflectConstruct = image_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = image_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = image_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return image_possibleConstructorReturn(this, result);\n };\n }\n\n function image_possibleConstructorReturn(self, call) {\n if (call && (image_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return image_assertThisInitialized(self);\n }\n\n function image_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function image_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function image_getPrototypeOf(o) {\n image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return image_getPrototypeOf(o);\n }\n\n var ATTRIBUTES = ['alt', 'height', 'width'];\n\n var 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 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\"\n /* default */\n ])() && /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\"\n /* sanitize */\n ])(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n return Image;\n }(parchment[\"EmbedBlot\"]);\n\n image_Image.blotName = 'image';\n image_Image.tagName = 'IMG';\n /* harmony default export */\n\n var formats_image = image_Image; // CONCATENATED MODULE: ./formats/video.js\n\n function video_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n video_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n video_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return video_typeof(obj);\n }\n\n function video_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function video_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function video_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) video_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) video_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function video_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n video_get = Reflect.get;\n } else {\n video_get = function _get(target, property, receiver) {\n var base = video_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return video_get(target, property, receiver || target);\n }\n\n function video_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = video_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function video_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) video_setPrototypeOf(subClass, superClass);\n }\n\n function video_setPrototypeOf(o, p) {\n video_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return video_setPrototypeOf(o, p);\n }\n\n function video_createSuper(Derived) {\n var hasNativeReflectConstruct = video_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = video_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = video_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return video_possibleConstructorReturn(this, result);\n };\n }\n\n function video_possibleConstructorReturn(self, call) {\n if (call && (video_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return video_assertThisInitialized(self);\n }\n\n function video_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function video_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function video_getPrototypeOf(o) {\n video_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return video_getPrototypeOf(o);\n }\n\n var video_ATTRIBUTES = ['height', 'width'];\n\n var 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 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 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\"\n /* default */\n ].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 return Video;\n }(block[\"a\"\n /* BlockEmbed */\n ]);\n\n video_Video.blotName = 'video';\n video_Video.className = 'ql-video';\n video_Video.tagName = 'IFRAME';\n /* harmony default export */\n\n var video = video_Video; // EXTERNAL MODULE: ./formats/code.js\n\n var code = __webpack_require__(13); // EXTERNAL MODULE: ./modules/syntax.js\n\n\n var syntax = __webpack_require__(54); // EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\n\n\n var Delta = __webpack_require__(0);\n\n var Delta_default = /*#__PURE__*/__webpack_require__.n(Delta); // EXTERNAL MODULE: ./core/module.js\n\n\n var core_module = __webpack_require__(9); // CONCATENATED MODULE: ./formats/table.js\n\n\n function table_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n table_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n table_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return table_typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n 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 }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function table_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function table_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function table_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) table_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) table_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function table_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n table_get = Reflect.get;\n } else {\n table_get = function _get(target, property, receiver) {\n var base = table_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return table_get(target, property, receiver || target);\n }\n\n function table_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = table_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function table_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) table_setPrototypeOf(subClass, superClass);\n }\n\n function table_setPrototypeOf(o, p) {\n table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return table_setPrototypeOf(o, p);\n }\n\n function table_createSuper(Derived) {\n var hasNativeReflectConstruct = table_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = table_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = table_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return table_possibleConstructorReturn(this, result);\n };\n }\n\n function table_possibleConstructorReturn(self, call) {\n if (call && (table_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return table_assertThisInitialized(self);\n }\n\n function table_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function table_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function table_getPrototypeOf(o) {\n table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return table_getPrototypeOf(o);\n }\n\n var 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 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 return TableCell;\n }(block[\"d\"\n /* default */\n ]);\n\n TableCell.blotName = 'table';\n TableCell.tagName = ['TD', 'TH'];\n\n var 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 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 return TableRow;\n }(container[\"a\"\n /* default */\n ]);\n\n TableRow.blotName = 'table-row';\n TableRow.tagName = 'TR';\n\n var 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 return _super3.apply(this, arguments);\n }\n\n return TableBody;\n }(container[\"a\"\n /* default */\n ]);\n\n TableBody.blotName = 'table-body';\n TableBody.tagName = ['TBODY', 'THEAD'];\n\n var 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 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 return TableContainer;\n }(container[\"a\"\n /* default */\n ]);\n\n TableContainer.blotName = 'table-container';\n TableContainer.tagName = 'TABLE';\n TableContainer.allowedChildren = [TableBody];\n TableBody.requiredContainer = TableContainer;\n TableBody.allowedChildren = [TableRow];\n TableRow.requiredContainer = TableBody;\n TableRow.allowedChildren = [TableCell];\n TableCell.requiredContainer = TableRow;\n\n function tableId() {\n var id = Math.random().toString(36).slice(2, 6);\n return \"row-\".concat(id);\n } // CONCATENATED MODULE: ./modules/table.js\n\n\n function modules_table_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n modules_table_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n modules_table_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return modules_table_typeof(obj);\n }\n\n function table_slicedToArray(arr, i) {\n return table_arrayWithHoles(arr) || table_iterableToArrayLimit(arr, i) || table_unsupportedIterableToArray(arr, i) || table_nonIterableRest();\n }\n\n function table_nonIterableRest() {\n 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 }\n\n function table_unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return table_arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return table_arrayLikeToArray(o, minLen);\n }\n\n function table_arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function table_iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function table_arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function modules_table_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function modules_table_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function modules_table_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) modules_table_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) modules_table_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function modules_table_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) modules_table_setPrototypeOf(subClass, superClass);\n }\n\n function modules_table_setPrototypeOf(o, p) {\n modules_table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return modules_table_setPrototypeOf(o, p);\n }\n\n function modules_table_createSuper(Derived) {\n var hasNativeReflectConstruct = modules_table_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = modules_table_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = modules_table_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return modules_table_possibleConstructorReturn(this, result);\n };\n }\n\n function modules_table_possibleConstructorReturn(self, call) {\n if (call && (modules_table_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return modules_table_assertThisInitialized(self);\n }\n\n function modules_table_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function modules_table_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function modules_table_getPrototypeOf(o) {\n modules_table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return modules_table_getPrototypeOf(o);\n }\n\n var table_Table = /*#__PURE__*/function (_Module) {\n modules_table_inherits(Table, _Module);\n\n var _super = modules_table_createSuper(Table);\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(core_quill[\"a\"\n /* default */\n ].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(core_quill[\"a\"\n /* default */\n ].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(core_quill[\"a\"\n /* default */\n ].sources.USER);\n this.quill.setSelection(offset, core_quill[\"a\"\n /* default */\n ].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(core_quill[\"a\"\n /* default */\n ].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, core_quill[\"a\"\n /* default */\n ].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(core_quill[\"a\"\n /* default */\n ].sources.USER);\n\n if (offset > 0) {\n this.quill.setSelection(range, core_quill[\"a\"\n /* default */\n ].sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, core_quill[\"a\"\n /* default */\n ].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, core_quill[\"a\"\n /* default */\n ].sources.USER);\n this.quill.setSelection(range.index, core_quill[\"a\"\n /* default */\n ].sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this2 = this;\n\n this.quill.on(core_quill[\"a\"\n /* default */\n ].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(core_quill[\"a\"\n /* default */\n ].events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== core_quill[\"a\"\n /* default */\n ].sources.USER) return;\n\n _this2.balanceTables();\n });\n\n return true;\n }\n\n return false;\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n core_quill[\"a\"\n /* default */\n ].register(TableCell);\n core_quill[\"a\"\n /* default */\n ].register(TableRow);\n core_quill[\"a\"\n /* default */\n ].register(TableBody);\n core_quill[\"a\"\n /* default */\n ].register(TableContainer);\n }\n }]);\n return Table;\n }(core_module[\"a\"\n /* default */\n ]);\n /* harmony default export */\n\n\n var modules_table = table_Table; // CONCATENATED MODULE: ./blots/multilineBreak.js\n\n function multilineBreak_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n multilineBreak_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n multilineBreak_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return multilineBreak_typeof(obj);\n }\n\n function multilineBreak_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function multilineBreak_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function multilineBreak_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) multilineBreak_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) multilineBreak_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function multilineBreak_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) multilineBreak_setPrototypeOf(subClass, superClass);\n }\n\n function multilineBreak_setPrototypeOf(o, p) {\n multilineBreak_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return multilineBreak_setPrototypeOf(o, p);\n }\n\n function multilineBreak_createSuper(Derived) {\n var hasNativeReflectConstruct = multilineBreak_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = multilineBreak_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = multilineBreak_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return multilineBreak_possibleConstructorReturn(this, result);\n };\n }\n\n function multilineBreak_possibleConstructorReturn(self, call) {\n if (call && (multilineBreak_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return multilineBreak_assertThisInitialized(self);\n }\n\n function multilineBreak_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function multilineBreak_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function multilineBreak_getPrototypeOf(o) {\n multilineBreak_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return multilineBreak_getPrototypeOf(o);\n }\n\n var MultilineBreak = /*#__PURE__*/function (_EmbedBlot) {\n multilineBreak_inherits(MultilineBreak, _EmbedBlot);\n\n var _super = multilineBreak_createSuper(MultilineBreak);\n\n function MultilineBreak() {\n multilineBreak_classCallCheck(this, MultilineBreak);\n return _super.apply(this, arguments);\n }\n\n multilineBreak_createClass(MultilineBreak, [{\n key: \"length\",\n value: function length() {\n return 1;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n if (!this.prev && !this.next) {\n this.remove();\n }\n }\n }], [{\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }]);\n return MultilineBreak;\n }(parchment[\"EmbedBlot\"]);\n\n MultilineBreak.blotName = 'multilineBreak';\n MultilineBreak.tagName = 'BR';\n /* harmony default export */\n\n var multilineBreak = MultilineBreak; // CONCATENATED MODULE: ./modules/multiline.js\n\n function multiline_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n multiline_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n multiline_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return multiline_typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function multiline_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function multiline_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function multiline_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) multiline_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) multiline_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function multiline_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) multiline_setPrototypeOf(subClass, superClass);\n }\n\n function multiline_setPrototypeOf(o, p) {\n multiline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return multiline_setPrototypeOf(o, p);\n }\n\n function multiline_createSuper(Derived) {\n var hasNativeReflectConstruct = multiline_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = multiline_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = multiline_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return multiline_possibleConstructorReturn(this, result);\n };\n }\n\n function multiline_possibleConstructorReturn(self, call) {\n if (call && (multiline_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return multiline_assertThisInitialized(self);\n }\n\n function multiline_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function multiline_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function multiline_getPrototypeOf(o) {\n multiline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return multiline_getPrototypeOf(o);\n }\n\n function breakMatcher(node) {\n if (!node.nextSibling && !node.previousSibling) {\n return new Delta_default.a().insert('\\n');\n }\n\n return new Delta_default.a().insert({\n multilineBreak: ''\n });\n }\n\n var multiline_Multiline = /*#__PURE__*/function (_Module) {\n multiline_inherits(Multiline, _Module);\n\n var _super = multiline_createSuper(Multiline);\n\n function Multiline(quill, options) {\n var _this;\n\n multiline_classCallCheck(this, Multiline);\n var path = 'blots/multilineBreak';\n _this = _super.call(this, quill, options);\n core_quill[\"a\"\n /* default */\n ].register(_defineProperty({}, path, multilineBreak), true);\n quill.keyboard.addBinding({\n key: 'enter',\n shiftKey: true\n }, _this.enterHandler.bind(multiline_assertThisInitialized(_this)));\n quill.keyboard.bindings.enter.unshift(quill.keyboard.bindings.enter.pop());\n quill.clipboard.addMatcher('BR', breakMatcher);\n return _this;\n }\n\n multiline_createClass(Multiline, [{\n key: \"enterHandler\",\n value: function enterHandler(range) {\n var currentLeaf = this.quill.getLeaf(range.index)[0];\n var nextLeaf = this.quill.getLeaf(range.index + 1)[0];\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n }\n\n this.quill.setSelection(range.index + 1, core_quill[\"a\"\n /* default */\n ].sources.SILENT);\n }\n }]);\n return Multiline;\n }(core_module[\"a\"\n /* default */\n ]);\n /* harmony default export */\n\n\n var multiline = multiline_Multiline; // CONCATENATED MODULE: ./quill.js\n\n core[\"default\"].register({\n 'attributors/attribute/direction': direction[\"a\"\n /* DirectionAttribute */\n ],\n 'attributors/class/align': align[\"b\"\n /* AlignClass */\n ],\n 'attributors/class/background': background[\"a\"\n /* BackgroundClass */\n ],\n 'attributors/class/color': color[\"b\"\n /* ColorClass */\n ],\n 'attributors/class/direction': direction[\"b\"\n /* DirectionClass */\n ],\n 'attributors/class/font': font[\"a\"\n /* FontClass */\n ],\n 'attributors/class/size': size[\"a\"\n /* SizeClass */\n ],\n 'attributors/style/align': align[\"c\"\n /* AlignStyle */\n ],\n 'attributors/style/background': background[\"b\"\n /* BackgroundStyle */\n ],\n 'attributors/style/color': color[\"c\"\n /* ColorStyle */\n ],\n 'attributors/style/direction': direction[\"c\"\n /* DirectionStyle */\n ],\n 'attributors/style/font': font[\"b\"\n /* FontStyle */\n ],\n 'attributors/style/size': size[\"b\"\n /* SizeStyle */\n ]\n }, true);\n core[\"default\"].register({\n 'formats/align': align[\"b\"\n /* AlignClass */\n ],\n 'formats/direction': direction[\"b\"\n /* DirectionClass */\n ],\n 'formats/indent': indent,\n 'formats/background': background[\"b\"\n /* BackgroundStyle */\n ],\n 'formats/color': color[\"c\"\n /* ColorStyle */\n ],\n 'formats/font': font[\"a\"\n /* FontClass */\n ],\n 'formats/size': size[\"a\"\n /* SizeClass */\n ],\n 'formats/blockquote': blockquote,\n 'formats/code-block': code[\"c\"\n /* default */\n ],\n 'formats/header': header,\n 'formats/list': list_ListItem,\n 'formats/bold': bold[\"a\"\n /* default */\n ],\n 'formats/code': code[\"a\"\n /* Code */\n ],\n 'formats/italic': italic,\n 'formats/link': formats_link[\"a\"\n /* default */\n ],\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\"\n /* default */\n ],\n 'modules/table': modules_table,\n 'modules/multiline': multiline\n }, true);\n /* harmony default export */\n\n var quill_0 = __webpack_exports__[\"default\"] = core[\"default\"];\n /***/\n },\n /* 87 */\n\n /***/\n function (module, exports) {\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 * 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 */\n var DIFF_DELETE = -1;\n var DIFF_INSERT = 1;\n var DIFF_EQUAL = 0;\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 */\n\n function 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\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n\n if (editdiff) {\n return editdiff;\n }\n } // Trim off common prefix (speedup).\n\n\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength); // Trim off common suffix (speedup).\n\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); // Compute the diff on the middle block.\n\n var diffs = diff_compute_(text1, text2); // Restore the prefix and suffix.\n\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\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 */\n\n function 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\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]]; // Swap insertions for deletions if diff is reversed.\n\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\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 } // Check to see if the problem can be split in two.\n\n\n var hm = diff_halfMatch_(text1, text2);\n\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]; // Send both pairs off for separate processing.\n\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b); // Merge the results.\n\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 */\n\n function 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); // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length; // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n\n var front = delta % 2 !== 0; // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n\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\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\n var y1 = x1 - k1;\n\n while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) === text2.charAt(y1)) {\n x1++;\n y1++;\n }\n\n v1[k1_offset] = x1;\n\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\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\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n } // Walk the reverse path one step.\n\n\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n\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\n var y2 = x2 - k2;\n\n while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n\n v2[k2_offset] = x2;\n\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\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; // Mirror x2 onto top-left coordinate system.\n\n x2 = text1_length - x2;\n\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\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\n\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 */\n\n function 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); // Compute both diffs serially.\n\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\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 */\n\n function 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 } // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\n\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\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 */\n\n function 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 } // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n\n\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\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 */\n\n function diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\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\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\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i), shorttext.substring(0, j));\n\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(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\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n } // First check if the second quarter is the seed for a half-match.\n\n\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4)); // Check again based on the third quarter.\n\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n\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 } // A half-match was found, sort out the return data.\n\n\n var text1_a, text1_b, text2_a, text2_b;\n\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\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 */\n\n function diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n\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\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n\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\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\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\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\n previous_equality = k;\n }\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\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\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\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\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n } // Factor out any common suffixes.\n\n\n commonlength = diff_commonSuffix(text_insert, text_delete);\n\n if (commonlength !== 0) {\n diffs[pointer][1] = 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 } // Delete the offending records and add the merged ones.\n\n\n var n = count_insert + count_delete;\n\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\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\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\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\n\n var changes = false;\n pointer = 1; // Intentionally ignore the first and last element (don't need checking).\n\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL && 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 - 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] + diffs[pointer][1].substring(0, diffs[pointer][1].length - 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) == 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] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n\n pointer++;\n } // If shifts were made, the diff needs reordering and another shift sweep.\n\n\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n }\n\n ;\n\n function is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n }\n\n function is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n }\n\n function starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n }\n\n function ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n }\n\n function remove_empty_tuples(tuples) {\n var ret = [];\n\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n\n return ret;\n }\n\n function make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n\n return remove_empty_tuples([[DIFF_EQUAL, before], [DIFF_DELETE, oldMiddle], [DIFF_INSERT, newMiddle], [DIFF_EQUAL, after]]);\n }\n\n function 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,\n length: 0\n } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ? null : cursor_pos.newRange; // 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\n var oldLength = oldText.length;\n var newLength = newText.length;\n\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\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n\n if (newBefore !== oldBefore) {\n break editAfter;\n }\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\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\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\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\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\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\n function 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\n diff.INSERT = DIFF_INSERT;\n diff.DELETE = DIFF_DELETE;\n diff.EQUAL = DIFF_EQUAL;\n module.exports = diff;\n /***/\n },\n /* 88 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\n\n var lodash_isequal_1 = __importDefault(__webpack_require__(22));\n\n var AttributeMap;\n\n (function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n if (typeof a !== 'object') {\n a = {};\n }\n\n if (typeof b !== 'object') {\n b = {};\n }\n\n var attributes = lodash_clonedeep_1.default(b);\n\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n\n return copy;\n }, {});\n }\n\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n\n AttributeMap.compose = compose;\n\n function diff(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n if (typeof a !== 'object') {\n a = {};\n }\n\n if (typeof b !== 'object') {\n b = {};\n }\n\n var attributes = Object.keys(a).concat(Object.keys(b)).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\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n\n AttributeMap.diff = diff;\n\n function invert(attr, base) {\n if (attr === void 0) {\n attr = {};\n }\n\n if (base === void 0) {\n base = {};\n }\n\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\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\n return memo;\n }, baseInverted);\n }\n\n AttributeMap.invert = invert;\n\n function transform(a, b, priority) {\n if (priority === void 0) {\n priority = false;\n }\n\n if (typeof a !== 'object') {\n return b;\n }\n\n if (typeof b !== 'object') {\n return undefined;\n }\n\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\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\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n\n AttributeMap.transform = transform;\n })(AttributeMap || (AttributeMap = {}));\n\n exports.default = AttributeMap;\n /***/\n },\n /* 89 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var Op_1 = __importDefault(__webpack_require__(67));\n\n var Iterator =\n /** @class */\n function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n\n var nextOp = this.ops[this.index];\n\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n\n if (typeof nextOp.delete === 'number') {\n return {\n delete: length\n };\n } else {\n var retOp = {};\n\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n\n return retOp;\n }\n } else {\n return {\n retain: Infinity\n };\n }\n };\n\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\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 } else {\n return Infinity;\n }\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 } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n\n return 'retain';\n };\n\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\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\n return Iterator;\n }();\n\n exports.default = Iterator;\n /***/\n },\n /* 90 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parent = __webpack_require__(91);\n\n module.exports = parent;\n /***/\n },\n /* 91 */\n\n /***/\n function (module, exports, __webpack_require__) {\n __webpack_require__(92);\n\n __webpack_require__(115);\n\n var path = __webpack_require__(126);\n\n module.exports = path.Array.from;\n /***/\n },\n /* 92 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var charAt = __webpack_require__(93).charAt;\n\n var toString = __webpack_require__(56);\n\n var InternalStateModule = __webpack_require__(71);\n\n var defineIterator = __webpack_require__(99);\n\n var STRING_ITERATOR = 'String Iterator';\n var setInternalState = InternalStateModule.set;\n var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method\n // https://tc39.es/ecma262/#sec-string.prototype-@@iterator\n\n defineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n }); // `%StringIteratorPrototype%.next` method\n // https://tc39.es/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 {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n });\n /***/\n },\n /* 93 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toInteger = __webpack_require__(55);\n\n var toString = __webpack_require__(56);\n\n var requireObjectCoercible = __webpack_require__(47); // `String.prototype.codePointAt` methods implementation\n\n\n var createMethod = function createMethod(CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(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 || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n };\n\n module.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/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 /* 94 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var userAgent = __webpack_require__(95);\n\n var process = global.process;\n var Deno = global.Deno;\n var versions = process && process.versions || Deno && Deno.version;\n var v8 = versions && versions.v8;\n var match, version;\n\n if (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n } else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n }\n\n module.exports = version && +version;\n /***/\n },\n /* 95 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(46);\n\n module.exports = getBuiltIn('navigator', 'userAgent') || '';\n /***/\n },\n /* 96 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n var inspectSource = __webpack_require__(72);\n\n var WeakMap = global.WeakMap;\n module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n /***/\n },\n /* 97 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(29);\n\n var isSymbol = __webpack_require__(57);\n\n var ordinaryToPrimitive = __webpack_require__(98);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation\n // https://tc39.es/ecma262/#sec-toprimitive\n\n module.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n };\n /***/\n\n },\n /* 98 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(29); // `OrdinaryToPrimitive` abstract operation\n // https://tc39.es/ecma262/#sec-ordinarytoprimitive\n\n\n module.exports = function (input, pref) {\n var fn, val;\n if (pref === '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 (pref !== '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 /* 99 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var $ = __webpack_require__(51);\n\n var createIteratorConstructor = __webpack_require__(108);\n\n var getPrototypeOf = __webpack_require__(81);\n\n var setPrototypeOf = __webpack_require__(113);\n\n var setToStringTag = __webpack_require__(83);\n\n var createNonEnumerableProperty = __webpack_require__(41);\n\n var redefine = __webpack_require__(77);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var IS_PURE = __webpack_require__(48);\n\n var Iterators = __webpack_require__(53);\n\n var IteratorsCore = __webpack_require__(80);\n\n var IteratorPrototype = IteratorsCore.IteratorPrototype;\n var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\n var ITERATOR = wellKnownSymbol('iterator');\n var KEYS = 'keys';\n var VALUES = 'values';\n var ENTRIES = 'entries';\n\n var returnThis = function returnThis() {\n return this;\n };\n\n module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function getIterationMethod(KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n\n return function () {\n return new IteratorConstructor(this);\n };\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] || IterablePrototype['@@iterator'] || 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; // fix native\n\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n\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 } // Set @@toStringTag to native iterators\n\n\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n\n\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n\n defaultIterator = function values() {\n return nativeIterator.call(this);\n };\n } // define iterator\n\n\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n\n Iterators[NAME] = defaultIterator; // export additional methods\n\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 $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n\n return methods;\n };\n /***/\n\n },\n /* 100 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug\n\n var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({\n 1: 2\n }, 1); // `Object.prototype.propertyIsEnumerable` method implementation\n // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\n\n exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n } : $propertyIsEnumerable;\n /***/\n },\n /* 101 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var fails = __webpack_require__(28);\n\n var classof = __webpack_require__(65);\n\n var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings\n\n module.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 -- safe\n return !Object('z').propertyIsEnumerable(0);\n }) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n } : Object;\n /***/\n },\n /* 102 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var has = __webpack_require__(25);\n\n var ownKeys = __webpack_require__(103);\n\n var getOwnPropertyDescriptorModule = __webpack_require__(63);\n\n var definePropertyModule = __webpack_require__(38);\n\n module.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\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 /* 103 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(46);\n\n var getOwnPropertyNamesModule = __webpack_require__(104);\n\n var getOwnPropertySymbolsModule = __webpack_require__(106);\n\n var anObject = __webpack_require__(30); // all object keys, includes non-enumerable and symbols\n\n\n module.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 /* 104 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var internalObjectKeys = __webpack_require__(78);\n\n var enumBugKeys = __webpack_require__(66);\n\n var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n // eslint-disable-next-line es/no-object-getownpropertynames -- safe\n\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n };\n /***/\n\n },\n /* 105 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var toIndexedObject = __webpack_require__(64);\n\n var toLength = __webpack_require__(52);\n\n var toAbsoluteIndex = __webpack_require__(79); // `Array.prototype.{ indexOf, includes }` methods implementation\n\n\n var createMethod = function createMethod(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; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check\n\n if (value != value) return true; // 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 }\n return !IS_INCLUDES && -1;\n };\n };\n\n module.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n };\n /***/\n },\n /* 106 */\n\n /***/\n function (module, exports) {\n // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\n exports.f = Object.getOwnPropertySymbols;\n /***/\n },\n /* 107 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var fails = __webpack_require__(28);\n\n var replacement = /#|\\.prototype\\./;\n\n var isForced = function isForced(feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;\n };\n\n var normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n };\n\n var data = isForced.data = {};\n var NATIVE = isForced.NATIVE = 'N';\n var POLYFILL = isForced.POLYFILL = 'P';\n module.exports = isForced;\n /***/\n },\n /* 108 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var IteratorPrototype = __webpack_require__(80).IteratorPrototype;\n\n var create = __webpack_require__(82);\n\n var createPropertyDescriptor = __webpack_require__(50);\n\n var setToStringTag = __webpack_require__(83);\n\n var Iterators = __webpack_require__(53);\n\n var returnThis = function returnThis() {\n return this;\n };\n\n module.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, {\n next: createPropertyDescriptor(1, next)\n });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n };\n /***/\n\n },\n /* 109 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var fails = __webpack_require__(28);\n\n module.exports = !fails(function () {\n function F() {\n /* empty */\n }\n\n F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n\n return Object.getPrototypeOf(new F()) !== F.prototype;\n });\n /***/\n },\n /* 110 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(42);\n\n var definePropertyModule = __webpack_require__(38);\n\n var anObject = __webpack_require__(30);\n\n var objectKeys = __webpack_require__(111); // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n // eslint-disable-next-line es/no-object-defineproperties -- safe\n\n\n module.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\n while (length > index) {\n definePropertyModule.f(O, key = keys[index++], Properties[key]);\n }\n\n return O;\n };\n /***/\n },\n /* 111 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var internalObjectKeys = __webpack_require__(78);\n\n var enumBugKeys = __webpack_require__(66); // `Object.keys` method\n // https://tc39.es/ecma262/#sec-object.keys\n // eslint-disable-next-line es/no-object-keys -- safe\n\n\n module.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n };\n /***/\n\n },\n /* 112 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(46);\n\n module.exports = getBuiltIn('document', 'documentElement');\n /***/\n },\n /* 113 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* eslint-disable no-proto -- safe */\n var anObject = __webpack_require__(30);\n\n var aPossiblePrototype = __webpack_require__(114); // `Object.setPrototypeOf` method\n // https://tc39.es/ecma262/#sec-object.setprototypeof\n // Works with __proto__ only. Old v8 can't work with null proto objects.\n // eslint-disable-next-line es/no-object-setprototypeof -- safe\n\n\n module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n /* empty */\n }\n\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);else O.__proto__ = proto;\n return O;\n };\n }() : undefined);\n /***/\n },\n /* 114 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(29);\n\n module.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n }\n\n return it;\n };\n /***/\n\n },\n /* 115 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var $ = __webpack_require__(51);\n\n var from = __webpack_require__(116);\n\n var checkCorrectnessOfIteration = __webpack_require__(125);\n\n var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n }); // `Array.from` method\n // https://tc39.es/ecma262/#sec-array.from\n\n $({\n target: 'Array',\n stat: true,\n forced: INCORRECT_ITERATION\n }, {\n from: from\n });\n /***/\n },\n /* 116 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var bind = __webpack_require__(84);\n\n var toObject = __webpack_require__(49);\n\n var callWithSafeIterationClosing = __webpack_require__(118);\n\n var isArrayIteratorMethod = __webpack_require__(120);\n\n var toLength = __webpack_require__(52);\n\n var createProperty = __webpack_require__(121);\n\n var getIteratorMethod = __webpack_require__(122); // `Array.from` method implementation\n // https://tc39.es/ecma262/#sec-array.from\n\n\n module.exports = function from(arrayLike\n /* , mapfn = undefined, thisArg = undefined */\n ) {\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); // if the target is not iterable or it's an array with the default iterator - use a simple case\n\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n\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\n for (; length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n\n result.length = index;\n return result;\n };\n /***/\n\n },\n /* 117 */\n\n /***/\n function (module, exports) {\n module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n }\n\n return it;\n };\n /***/\n\n },\n /* 118 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var anObject = __webpack_require__(30);\n\n var iteratorClose = __webpack_require__(119); // call something on iterator step with safe closing on error\n\n\n module.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n };\n /***/\n\n },\n /* 119 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var anObject = __webpack_require__(30);\n\n module.exports = function (iterator) {\n var returnMethod = iterator['return'];\n\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n };\n /***/\n\n },\n /* 120 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(21);\n\n var Iterators = __webpack_require__(53);\n\n var ITERATOR = wellKnownSymbol('iterator');\n var ArrayPrototype = Array.prototype; // check on default Array iterator\n\n module.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n };\n /***/\n\n },\n /* 121 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var toPropertyKey = __webpack_require__(60);\n\n var definePropertyModule = __webpack_require__(38);\n\n var createPropertyDescriptor = __webpack_require__(50);\n\n module.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value;\n };\n /***/\n\n },\n /* 122 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var classof = __webpack_require__(123);\n\n var Iterators = __webpack_require__(53);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var ITERATOR = wellKnownSymbol('iterator');\n\n module.exports = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n };\n /***/\n\n },\n /* 123 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var TO_STRING_TAG_SUPPORT = __webpack_require__(124);\n\n var classofRaw = __webpack_require__(65);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag'); // ES3 wrong here\n\n var CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n }()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\n var tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (error) {\n /* empty */\n }\n }; // getting tag from ES6+ `Object.prototype.toString`\n\n\n module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n };\n /***/\n },\n /* 124 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(21);\n\n var TO_STRING_TAG = wellKnownSymbol('toStringTag');\n var test = {};\n test[TO_STRING_TAG] = 'z';\n module.exports = String(test) === '[object z]';\n /***/\n },\n /* 125 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(21);\n\n var ITERATOR = wellKnownSymbol('iterator');\n var SAFE_CLOSING = false;\n\n try {\n var called = 0;\n var iteratorWithReturn = {\n next: function next() {\n return {\n done: !!called++\n };\n },\n 'return': function _return() {\n SAFE_CLOSING = true;\n }\n };\n\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n }; // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n\n\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n } catch (error) {\n /* empty */\n }\n\n module.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n\n try {\n var object = {};\n\n object[ITERATOR] = function () {\n return {\n next: function next() {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n\n exec(object);\n } catch (error) {\n /* empty */\n }\n\n return ITERATION_SUPPORT;\n };\n /***/\n\n },\n /* 126 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var global = __webpack_require__(20);\n\n module.exports = global;\n /***/\n },\n /* 127 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parent = __webpack_require__(128);\n\n module.exports = parent;\n /***/\n },\n /* 128 */\n\n /***/\n function (module, exports, __webpack_require__) {\n __webpack_require__(129);\n\n var entryUnbind = __webpack_require__(85);\n\n module.exports = entryUnbind('Array', 'fill');\n /***/\n },\n /* 129 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var $ = __webpack_require__(51);\n\n var fill = __webpack_require__(130);\n\n var addToUnscopables = __webpack_require__(131); // `Array.prototype.fill` method\n // https://tc39.es/ecma262/#sec-array.prototype.fill\n\n\n $({\n target: 'Array',\n proto: true\n }, {\n fill: fill\n }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\n addToUnscopables('fill');\n /***/\n },\n /* 130 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var toObject = __webpack_require__(49);\n\n var toAbsoluteIndex = __webpack_require__(79);\n\n var toLength = __webpack_require__(52); // `Array.prototype.fill` method implementation\n // https://tc39.es/ecma262/#sec-array.prototype.fill\n\n\n module.exports = function fill(value\n /* , start = 0, end = @length */\n ) {\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\n while (endPos > index) {\n O[index++] = value;\n }\n\n return O;\n };\n /***/\n\n },\n /* 131 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(21);\n\n var create = __webpack_require__(82);\n\n var definePropertyModule = __webpack_require__(38);\n\n var UNSCOPABLES = wellKnownSymbol('unscopables');\n var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]\n // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\n if (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n } // add a key to Array.prototype[@@unscopables]\n\n\n module.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n };\n /***/\n\n },\n /* 132 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parent = __webpack_require__(133);\n\n module.exports = parent;\n /***/\n },\n /* 133 */\n\n /***/\n function (module, exports, __webpack_require__) {\n __webpack_require__(134);\n\n var entryUnbind = __webpack_require__(85);\n\n module.exports = entryUnbind('String', 'endsWith');\n /***/\n },\n /* 134 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var $ = __webpack_require__(51);\n\n var getOwnPropertyDescriptor = __webpack_require__(63).f;\n\n var toLength = __webpack_require__(52);\n\n var toString = __webpack_require__(56);\n\n var notARegExp = __webpack_require__(135);\n\n var requireObjectCoercible = __webpack_require__(47);\n\n var correctIsRegExpLogic = __webpack_require__(137);\n\n var IS_PURE = __webpack_require__(48); // eslint-disable-next-line es/no-string-prototype-endswith -- safe\n\n\n var $endsWith = ''.endsWith;\n var min = Math.min;\n var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702\n\n var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n }(); // `String.prototype.endsWith` method\n // https://tc39.es/ecma262/#sec-string.prototype.endswith\n\n $({\n target: 'String',\n proto: true,\n forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC\n }, {\n endsWith: function endsWith(searchString\n /* , endPosition = @length */\n ) {\n var that = toString(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 = toString(searchString);\n return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;\n }\n });\n /***/\n },\n /* 135 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isRegExp = __webpack_require__(136);\n\n module.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n }\n\n return it;\n };\n /***/\n\n },\n /* 136 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(29);\n\n var classof = __webpack_require__(65);\n\n var wellKnownSymbol = __webpack_require__(21);\n\n var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation\n // https://tc39.es/ecma262/#sec-isregexp\n\n module.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n };\n /***/\n\n },\n /* 137 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(21);\n\n var MATCH = wellKnownSymbol('match');\n\n module.exports = function (METHOD_NAME) {\n var regexp = /./;\n\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) {\n /* empty */\n }\n }\n\n return false;\n };\n /***/\n\n },,\n /* 139 */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(86);\n /***/\n }\n /******/\n ])[\"default\"]\n );\n});"],"sourceRoot":""}