{"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","__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","iterator","constructor","_defineProperty","configurable","writable","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","push","length","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","debug","uiClass","container","_this","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","concat","path","_this11","overwrite","attrName","register","keys","forEach","warn","indexOf","convert","text","isComposing","composing","toggle","isBlank","refNode","className","document","createElement","insertBefore","setRange","index","_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","offset","leaf","line","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","delta","_this9","delete1","applied","applyDelta","delete2","emit","CONTENT_SETTED","compose","_overload18","Math","max","insert","USER","_this10","userConfig","DEFAULTS","import","Error","themeConfig","config","moduleConfig","reduce","moduleClass","toolbar","querySelector","shift","oldDelta","shiftRange","_this$emitter4","_this$emitter5","args","start","end","_map2","map","pos","transformPosition","_map4","version","parchment","__importDefault","mod","fast_diff_1","lodash_clonedeep_1","lodash_isequal_1","AttributeMap_1","Op_1","NULL_CHARACTER","String","fromCharCode","Delta","ops","arg","attributes","newOp","delete","retain","lastOp","default","unshift","splice","chop","pop","filter","predicate","partition","passed","failed","op","initialValue","changeLength","elem","Infinity","iter","hasNext","nextOp","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","length_1","min","thisOp","otherOp","rest","diff","cursor","strings","join","retDelta","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","invert","base","inverted","baseIndex","length_2","baseOp","transform","priority","length_3","length_4","nextType","Op","AttributeMap","Scope","abstract_parent","blot_embed","blot_scroll","block","inline","blot_text","attributor","attributor_class","style","store","src_scope","_extendStatics","linked_list","LinkedList","head","tail","append","nodes","at","cur","contains","remove","prev","curNode","ret","inclusive","callback","forEachAt","_a","startNode","curIndex","curLength","memo","__extends","b","setPrototypeOf","__proto__","__","_super","ParchmentError","message","Registry","classes","tags","types","bubble","blots","has","parentNode","input","match","blotClass","Node","nodeType","TEXT_NODE","domNode","scope","ANY","Text","LEVEL","INLINE","HTMLElement","getAttribute","split","some","tagName","TYPE","definitions","definition","keyName","toUpperCase","tagNames","tag","WeakMap","shadow","ShadowBlot","parseInt","attach","clone","cloneNode","detach","parent","removeChild","deleteAt","isolate","formatAt","BLOT","wrap","ATTRIBUTE","statics","insertAt","def","ref","children","optimize","_context","requiredContainer","replaceWith","replacement","_force","_mutations","wrapper","appendChild","parent_extends","makeAttachedBlot","e","childNodes","child","replaceChild","ParentBlot","uiNode","build","attachUI","firstChild","reverse","childLength","descendant","criteria","descendants","lengthLeft","childIndex","enforceAllowedChildren","allowedChildren","BLOCK_BLOT","splitAfter","unwrap","childBlot","refBlot","refDomNode","nextSibling","moveChildren","targetParent","context","defaultChild","position","force","after","_length","addedNodes","removedNodes","mutation","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","sort","DOCUMENT_POSITION_FOLLOWING","container_extends","ContainerBlot","checkMerge","leaf_extends","LeafBlot","_domNode","_inclusive","INLINE_BLOT","Attributor","attributeBit","whitelist","item","canAdd","_node","replace","removeAttribute","class_extends","class_match","prefix","ClassAttributor","style_extends","camelize","parts","part","StyleAttributor","AttributorStore","attribute","styles","attr","copy","move","values","inline_extends","InlineBlot","toLowerCase","obj1","obj2","prop","isEqual","block_extends","BlockBlot","embed_extends","EmbedBlot","_scroll","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","observer","MutationObserver","observe","disconnect","mutationsMap","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","text_extends","TextBlot","createTextNode","data","splitText","eventemitter3__WEBPACK_IMPORTED_MODULE_0__","eventemitter3__WEBPACK_IMPORTED_MODULE_0___default","_utils_has_window__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","isDefined","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","Container","_ContainerBlot","_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","argument","levels","method","_console","console","namespace","logger","newLevel","_text__WEBPACK_IMPORTED_MODULE_1__","Cursor","savedLength","mergedTextBlot","prevTextBlot","prevTextLength","nextTextBlot","nextText","newTextNode","remapOffset","SizeClass","SizeStyle","WidthAttribute","HeightAttribute","blots_break","blots_embed","blots_scroll","blots_text","modules_history","Delta_default","core_module","has_window","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_has_window__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","addInternalBindings","listen","evt","binding","normalizeKeyName","which","_ref3","isKeySupported","normalizedKey","shiftKey","handleEnter","metaKey","ctrlKey","altKey","handleBackspace","handleDelete","handleDeleteRange","keyBinding","singleBinding","defaultPrevented","raiseOnKeydownCallback","matches","_this4$quill$getLine2","getLine","_this4$quill$getLeaf2","getLeaf","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","onKeydown","curFormats","prevFormats","formatDelta","nextFormats","lineFormats","makeCodeBlockHandler","textContent","makeEmbedArrowHandler","_ref4","makeFormatHandler","shortKey","_ref5","firstFormats","lastFormats","bold","italic","underline","outdent","table","cutoff","_this$quill$getLine10","_this$quill$getLine12","header","blockquote","_this$quill$getLine14","_this$quill$getLine16","numLines","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","check","it","globalThis","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","Clipboard","traverse","applyFormat","deltaEndsWith","_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","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","dimension","fontStyle","textDecoration","strike","fontWeight","parseFloat","textIndent","composed","language","matchAlias","HTML_TEXT_MATCHERS","_options$tableBlots","onCaptureCopy","onCapturePaste","matchers","tableBlots","selector","matcher","addMatcher","applyMatchers","applyTextMatchers","prepareTextMatching","element","ownerDocument","doc","DOMParser","parseFromString","nodeMatches","_this$prepareMatching","prepareMatching","_this$prepareMatching2","elementMatchers","textMatchers","includes","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","childNode","childrenDelta","reducedDelta","isPre","replacer","collapse","replaced","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","fails","Link","_sanitize","sanitize","url","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","BackgroundClass","BackgroundStyle","_color__WEBPACK_IMPORTED_MODULE_1__","FontStyle","FontClass","FontStyleAttributor","Bold","History","getLastChangeIndex","_core_quill__WEBPACK_IMPORTED_MODULE_1__","_core_module__WEBPACK_IMPORTED_MODULE_2__","_utils_has_window__WEBPACK_IMPORTED_MODULE_3__","lastRecorded","ignoreChange","userOnly","record","undo","redo","inputType","dest","inverseDelta","changeDelta","undoDelta","timestamp","delay","maxStack","transformStack","remoteDelta","deleteLength","changeIndex","endsWithNewlineChange","isCallable","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","f","O","P","Attributes","makeTableArrowHandler","_core_quill__WEBPACK_IMPORTED_MODULE_0__","cell","targetTablePart","targetRow","targetCell","targetLine","Theme","ModuleClass","themes","g","aFunction","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","Embed","contentNode","leftGuard","rightGuard","prevLength","getId","random","core_quill","is_defined","get_id","TABLE_TAGS","BaseCell","row","rowOffset","_this$row","dataAttribute","tableId","hasAttribute","TableCell","_BaseCell","TableHeaderCell","_BaseCell2","lite_BaseRow","BaseRow","_super4","formatName","childFormatName","thisHead","thisTail","nextHead","nextTail","childFormats","_this$parent","TableRow","_BaseRow","_super5","TableHeaderRow","_BaseRow2","_super6","TableBody","_Container2","_super7","TableHeader","_Container3","_super8","lite_TableContainer","_Container4","TableContainer","_super9","headerRows","bodyRows","maxColCount","getMaxTableColCount","balanceRows","getMaxRowColCount","rows","CellClass","fill","column","tablePart","CellBlot","id","newHeader","make_table_arrow_handler","insertParagraphAbove","insertIndex","insertParagraphBelow","tableSide","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","lite_typeof","lite_slicedToArray","lite_arrayWithHoles","lite_iterableToArrayLimit","lite_arrayLikeToArray","lite_unsupportedIterableToArray","lite_nonIterableRest","lite_classCallCheck","lite_defineProperties","lite_setPrototypeOf","lite_createSuper","lite_isNativeReflectConstruct","lite_getPrototypeOf","lite_possibleConstructorReturn","lite_assertThisInitialized","EMPTY_RESULT","lite_TableLite","lite_inherits","TableLite","integrateClipboard","addKeyboardHandlers","listenBalanceCells","addTableBlot","matchTable","matchDimensions","keyboardBindings","balanceCells","_this$getTable2","getTable","deleteColumn","cellOffset","_this$quill$getLine","_this$quill$getLine2","_this$getTable8","insertColumn","_this$getTable10","insertRow","_this$getTable12","insertHeaderRow","columns","balanceTables","old","isHeaderRow","isTableNode","isEmbed","tableHeaderCell","getModule","_module$getTable2","hasHead","_module$getTable4","hasBody","webpackPolyfill","deprecate","paths","requireObjectCoercible","definePropertyModule","createPropertyDescriptor","bitmap","IndexedObject","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_has_window__WEBPACK_IMPORTED_MODULE_11__","TokenAttributor","CodeToken","_CodeBlock","SyntaxCodeBlockContainer","_CodeBlockContainer","forceNext","emitMount","_highlight","cachedText","codeBlock","hljs","languages","highlightBlot","initListener","initTimer","select","label","option","highlight","timer","clearTimeout","interval","nodeText","ceil","floor","isNaN","classof","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","CORRECT_ARGUMENTS","tryGet","callee","functionToString","inspectSource","toPrimitive","isSymbol","aCallable","V","tryToString","propertyIsEnumerableModule","toIndexedObject","$getOwnPropertyDescriptor","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","enforceInternalState","enforce","TEMPLATE","state","unsafe","simple","activeXDocument","enumBugKeys","hiddenKeys","documentCreateElement","sharedKey","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","display","src","contentWindow","open","F","Properties","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","CELL_IDENTITY_KEYS","CellLine","rowId","_value$key","identityMarker","table_cellId","HeaderCellLine","_CellLine","cellFormats","_this$domNode$getAttr","_get3","_domNode$getAttribute","table_BaseRow","_get4","attrPart","_super10","table_TableContainer","_Container5","_super11","cellLine","CellLineBlot","emptyLine","table_typeof","table_slicedToArray","table_arrayWithHoles","table_iterableToArrayLimit","table_arrayLikeToArray","table_unsupportedIterableToArray","table_nonIterableRest","table_classCallCheck","table_defineProperties","table_setPrototypeOf","table_createSuper","table_isNativeReflectConstruct","table_getPrototypeOf","table_possibleConstructorReturn","table_assertThisInitialized","table_Table","table_inherits","Table","matchCell","tableCellLine","cells","cellId","cellLineBlotName","tableHeaderCellLine","tableCell","IS_PURE","copyright","postfix","V8_VERSION","NATIVE_WEAK_MAP","objectHas","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","EXISTS","getBuiltIn","$Symbol","$propertyIsEnumerable","NASHORN_BUG","1","FunctionPrototype","getDescriptor","PROPER","integer","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","ITERATOR","BUGGY_SAFARI_ITERATORS","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","that","getMethod","Iterators","CONSTRUCTOR","METHOD","core","align","direction","_ClassAttributor","IndentAttributor","blockquote_typeof","blockquote_classCallCheck","blockquote_setPrototypeOf","blockquote_createSuper","blockquote_isNativeReflectConstruct","blockquote_getPrototypeOf","blockquote_possibleConstructorReturn","blockquote_assertThisInitialized","Blockquote","blockquote_inherits","header_typeof","header_classCallCheck","header_defineProperties","header_setPrototypeOf","header_createSuper","header_isNativeReflectConstruct","header_getPrototypeOf","header_possibleConstructorReturn","header_assertThisInitialized","Header","header_inherits","list_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","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","multiline_break_typeof","multiline_break_classCallCheck","multiline_break_defineProperties","multiline_break_setPrototypeOf","multiline_break_createSuper","multiline_break_isNativeReflectConstruct","multiline_break_getPrototypeOf","multiline_break_possibleConstructorReturn","multiline_break_assertThisInitialized","MultilineBreak","multiline_break_inherits","multiline_break","multiline_typeof","multiline_defineProperties","multiline_setPrototypeOf","multiline_createSuper","multiline_isNativeReflectConstruct","multiline_getPrototypeOf","multiline_possibleConstructorReturn","multiline_assertThisInitialized","breakMatcher","multilineBreak","multiline","multiline_inherits","Multiline","multiline_classCallCheck","enterHandler","currentLeaf","nextLeaf","lite","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","$","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertyNames","toLength","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","feature","detection","POLYFILL","NATIVE","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","iteratorMethod","iteratorClose","ENTRIES","kind","innerResult","innerError","ArrayPrototype","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","called","propertyKey","usingIterator","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","entryUnbind","addToUnscopables","endPos","UNSCOPABLES","$values","TO_ENTRIES","notARegExp","correctIsRegExpLogic","$endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","isRegExp","MATCH","METHOD_NAME","error1","error2"],"mappings":"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","file":"js/npm.devextreme-quill.a15fee3e.js","sourcesContent":["/*!\n * DevExtreme-Quill Editor v.1.4.2\n * https://js.devexpress.com/\n * Copyright (c) 2020, Developer Express Inc.\n * Copyright (c) 2017, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Quill\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 158);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return globalRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return expandConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return overload; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Quill; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3);\n/* harmony import */ var _module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(36);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18);\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"])('quill');\nvar globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_3__[\"Registry\"]();\nparchment__WEBPACK_IMPORTED_MODULE_3__[\"ParentBlot\"].uiClass = 'ql-ui';\n\nvar Quill = /*#__PURE__*/function () {\n 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 _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].set(this.container, this);\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]();\n var ScrollBlot = this.options.registry.query(parchment__WEBPACK_IMPORTED_MODULE_3__[\"ScrollBlot\"].blotName);\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\n emitter: this.emitter,\n toggleBlankClass: this.toggleBlankClass.bind(this)\n });\n this.editor = new _editor__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"](this.scroll);\n this.selection = new _selection__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"b\"](this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.uploader = this.theme.addModule('uploader');\n this.theme.init();\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE, function (type) {\n if (type === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE) {\n _this.toggleBlankClass();\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"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__[/* default */ \"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__[/* default */ \"a\"].sources.SILENT);\n\n return change;\n }, source);\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length, name, value, source) {\n var _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__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n\n var length = _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 _this9.emitter.emit(Quill.events.CONTENT_SETTED);\n\n return delete1.compose(applied).compose(delete2);\n }, source);\n }\n }, {\n key: \"setSelection\",\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload17 = overload(index, length, source);\n\n var _overload18 = _slicedToArray(_overload17, 4);\n\n index = _overload18[0];\n length = _overload18[1];\n source = _overload18[3];\n this.selection.setRange(new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](Math.max(0, index), length), source);\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: \"setText\",\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER;\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n\n this.selection.update(source); // TODO this is usually undefined\n\n return change;\n }\n }, {\n key: \"updateContents\",\n value: function updateContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n 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__[/* default */ \"a\"].level(limit);\n }\n }, {\n key: \"find\",\n value: function find(node) {\n return _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].get(node) || globalRegistry.find(node);\n }\n }, {\n key: \"import\",\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error(\"Cannot import \".concat(name, \". Are you sure it was registered?\"));\n }\n\n return this.imports[name];\n }\n }, {\n key: \"register\",\n value: function register(path, target) {\n var _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\nQuill.DEFAULTS = {\n bounds: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n scrollingContainer: null,\n theme: 'default'\n};\nQuill.events = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events;\nQuill.sources = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources; // eslint-disable-next-line no-undef\n\nQuill.version = false ? undefined : \"1.4.2\";\nQuill.imports = {\n delta: quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a,\n parchment: parchment__WEBPACK_IMPORTED_MODULE_3__,\n 'core/module': _module__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"],\n 'core/theme': _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"]\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true,\n uploader: true\n }\n }, userConfig);\n\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"];\n } else {\n userConfig.theme = Quill.import(\"themes/\".concat(userConfig.theme));\n\n if (userConfig.theme == null) {\n throw new Error(\"Invalid theme \".concat(userConfig.theme, \". Did you register it?\"));\n }\n }\n\n var themeConfig = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import(\"modules/\".concat(name));\n\n if (moduleClass == null) {\n debug.error(\"Cannot load \".concat(name, \" module. Are you sure you registered it?\"));\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n\n return config;\n }, {}); // Special case toolbar shorthand\n\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n\n return config;\n }, {});\n return userConfig;\n} // Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\n\n\nfunction modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER && !this.allowReadOnlyEdits) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n\n if (range != null) {\n if (index === true) {\n index = range.index; // eslint-disable-line prefer-destructuring\n }\n\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n\n this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT);\n }\n\n if (change.length() > 0) {\n var _this$emitter4;\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE, change, oldDelta, source];\n\n (_this$emitter4 = this.emitter).emit.apply(_this$emitter4, [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter5;\n\n (_this$emitter5 = this.emitter).emit.apply(_this$emitter5, args);\n }\n }\n\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n } else {\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n }\n } else if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = 0;\n } // Handle format being object, two format name/value strings or excluded\n\n\n if (_typeof(name) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n } // Handle optional source\n\n\n source = source || _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start;\n var end;\n\n if (index instanceof quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER) return pos;\n\n if (length >= 0) {\n return pos + length;\n }\n\n return Math.max(index, pos + length);\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n\n return new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](start, end - start);\n}\n\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar fast_diff_1 = __importDefault(__webpack_require__(101));\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(14));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(25));\nvar AttributeMap_1 = __importDefault(__webpack_require__(102));\nvar Op_1 = __importDefault(__webpack_require__(77));\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nvar Delta = /** @class */ (function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n var newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = lodash_clonedeep_1.default(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number') {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n };\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [];\n var failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + Op_1.default.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = Infinity; }\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_1);\n var otherOp = otherIter.next(length_1);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n }\n else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n };\n Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta\n .map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n var retDelta = new Delta();\n var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case fast_diff_1.default.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case fast_diff_1.default.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case fast_diff_1.default.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) { newline = '\\n'; }\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\n else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n Delta.prototype.invert = function (base) {\n var inverted = new Delta();\n this.reduce(function (baseIndex, op) {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || (op.retain && op.attributes)) {\n var length_2 = (op.delete || op.retain);\n var slice = base.slice(baseIndex, baseIndex + length_2);\n slice.forEach(function (baseOp) {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length_2;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n var other = arg;\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_3);\n var otherOp = otherIter.next(length_3);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n // We retain either their retain or insert\n delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n offset += length_4;\n }\n return index;\n };\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n}());\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"ParentBlot\", function() { return /* reexport */ abstract_parent; });\n__webpack_require__.d(__webpack_exports__, \"ContainerBlot\", function() { return /* reexport */ container; });\n__webpack_require__.d(__webpack_exports__, \"LeafBlot\", function() { return /* reexport */ leaf; });\n__webpack_require__.d(__webpack_exports__, \"EmbedBlot\", function() { return /* reexport */ blot_embed; });\n__webpack_require__.d(__webpack_exports__, \"ScrollBlot\", function() { return /* reexport */ blot_scroll; });\n__webpack_require__.d(__webpack_exports__, \"BlockBlot\", function() { return /* reexport */ block; });\n__webpack_require__.d(__webpack_exports__, \"InlineBlot\", function() { return /* reexport */ inline; });\n__webpack_require__.d(__webpack_exports__, \"TextBlot\", function() { return /* reexport */ blot_text; });\n__webpack_require__.d(__webpack_exports__, \"Attributor\", function() { return /* reexport */ attributor; });\n__webpack_require__.d(__webpack_exports__, \"ClassAttributor\", function() { return /* reexport */ attributor_class; });\n__webpack_require__.d(__webpack_exports__, \"StyleAttributor\", function() { return /* reexport */ style; });\n__webpack_require__.d(__webpack_exports__, \"AttributorStore\", function() { return /* reexport */ store; });\n__webpack_require__.d(__webpack_exports__, \"Registry\", function() { return /* reexport */ registry; });\n__webpack_require__.d(__webpack_exports__, \"Scope\", function() { return /* reexport */ src_scope; });\n\n// CONCATENATED MODULE: ./node_modules/parchment/src/scope.ts\nvar Scope;\n\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope || (Scope = {}));\n\n/* harmony default export */ var src_scope = (Scope);\n// CONCATENATED MODULE: ./node_modules/parchment/src/collection/linked-list.ts\nvar LinkedList = 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\n/* harmony default export */ var linked_list = (LinkedList);\n// CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar ParchmentError = 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\n/* harmony default export */ var error = (ParchmentError);\n// CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n\n\nvar 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\n/* harmony default export */ var registry = (registry_Registry);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n\n\n\nvar shadow_ShadowBlot = 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\n/* harmony default export */ var shadow = (shadow_ShadowBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/parent.ts\nvar parent_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nfunction makeAttachedBlot(node, scroll) {\n var blot = scroll.find(node);\n\n if (blot == null) {\n try {\n blot = scroll.create(node);\n } catch (e) {\n blot = scroll.create(src_scope.INLINE);\n Array.from(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n\n blot.attach();\n }\n }\n\n return blot;\n}\n\nvar parent_ParentBlot = 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\n/* harmony default export */ var abstract_parent = (parent_ParentBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\nvar container_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar container_ContainerBlot = 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\n/* harmony default export */ var container = (container_ContainerBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\nvar leaf_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar leaf_LeafBlot = 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\n/* harmony default export */ var leaf = (leaf_LeafBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\n\nvar 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\n/* harmony default export */ var attributor = (attributor_Attributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\nvar class_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction class_match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\n\nvar ClassAttributor = 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\n/* harmony default export */ var attributor_class = (ClassAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\nvar style_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\n\nvar StyleAttributor = 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\n/* harmony default export */ var style = (StyleAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n\n\n\n\n\nvar store_AttributorStore = 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\n/* harmony default export */ var store = (store_AttributorStore);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\nvar inline_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n // Shallow object comparison\n\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n } // @ts-ignore\n\n\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar inline_InlineBlot = 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\n/* harmony default export */ var inline = (inline_InlineBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\nvar block_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\n\n\nvar block_BlockBlot = 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\n/* harmony default export */ var block = (block_BlockBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\nvar embed_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nvar EmbedBlot = 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\n/* harmony default export */ var blot_embed = (EmbedBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\nvar scroll_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\n\nvar scroll_ScrollBlot = 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\n/* harmony default export */ var blot_scroll = (scroll_ScrollBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\nvar text_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar text_TextBlot = 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\n/* harmony default export */ var blot_text = (text_TextBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])('quill:events');\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nif (Object(_utils_has_window__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])()) {\n EVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n Array.from(document.querySelectorAll('.ql-container')).forEach(function (node) {\n var quill = _instances__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].get(node);\n\n if (quill && quill.emitter) {\n var _quill$emitter;\n\n (_quill$emitter = quill.emitter).handleDOM.apply(_quill$emitter, args);\n }\n });\n });\n });\n}\n\nvar Emitter = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n var _super = _createSuper(Emitter);\n\n function Emitter() {\n var _this;\n\n _classCallCheck(this, Emitter);\n\n _this = _super.call(this);\n _this.listeners = {};\n\n _this.on('error', debug.error);\n\n return _this;\n }\n\n _createClass(Emitter, [{\n key: \"emit\",\n value: function emit() {\n var _debug$log, _get2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n (_debug$log = debug.log).call.apply(_debug$log, [debug].concat(args));\n\n (_get2 = _get(_getPrototypeOf(Emitter.prototype), \"emit\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"handleDOM\",\n value: function handleDOM(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(void 0, [event].concat(args));\n }\n });\n }\n }, {\n key: \"listenDOM\",\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n\n return Emitter;\n}(eventemitter3__WEBPACK_IMPORTED_MODULE_0___default.a);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change',\n CONTENT_SETTED: 'content-setted'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Emitter);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8);\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = /*#__PURE__*/function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: \"applyDelta\",\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n var normalizedDelta = normalizeDelta(delta);\n normalizedDelta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n\n if ((index >= scrollLength || _this.scroll.descendant(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* BlockEmbed */ \"a\"], index)[0]) && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n\n _this.scroll.insertAt(index, text);\n\n var _this$scroll$line = _this.scroll.line(index),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 2),\n line = _this$scroll$line2[0],\n offset = _this$scroll$line2[1];\n\n var formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(line));\n\n if (line instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n var _line$descendant = line.descendant(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()(formats, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(leaf));\n }\n\n attributes = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n\n if (key == null) return index;\n\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n\n scrollLength += length;\n }\n\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n normalizedDelta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n\n return index;\n }\n\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n this.scroll.optimize();\n return this.update(normalizedDelta);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).delete(length));\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n _this2.scroll.lines(index, Math.max(length, 1)).forEach(function (line) {\n line.format(format, formats[format]);\n });\n });\n this.scroll.optimize();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"getContents\",\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: \"getDelta\",\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n }\n }, {\n key: \"getFormat\",\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var lines = [];\n var leaves = [];\n\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n lines.push(blot);\n } else if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"]) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], index, length);\n }\n\n var _map = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blots.shift());\n\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blot), formats);\n }\n\n return formats;\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n lines = _map2[0];\n leaves = _map2[1];\n return _objectSpread(_objectSpread({}, lines), leaves);\n }\n }, {\n key: \"getHTML\",\n value: function getHTML(index, length) {\n var _this$scroll$line3 = this.scroll.line(index),\n _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 2),\n line = _this$scroll$line4[0],\n lineOffset = _this$scroll$line4[1];\n\n if (line.length() >= lineOffset + length) {\n return convertHTML(line, lineOffset, length, true);\n }\n\n return convertHTML(this.scroll, index, length, true);\n }\n }, {\n key: \"getText\",\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(text, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats)));\n }\n }, {\n key: \"isBlank\",\n value: function isBlank() {\n 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__[/* default */ \"d\"].blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"];\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _this$scroll$line5 = this.scroll.line(index + length),\n _this$scroll$line6 = _slicedToArray(_this$scroll$line5, 2),\n line = _this$scroll$line6[0],\n offset = _this$scroll$line6[1];\n\n var suffixLength = 0;\n var suffix = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a();\n\n if (line != null) {\n suffixLength = line.length() - offset;\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(text).concat(suffix));\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: \"update\",\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var oldDelta = this.delta;\n\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = this.scroll.find(mutations[0].target);\n var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_blots_cursor__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].CONTENTS, '');\n var oldText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(oldValue);\n var newText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(textBlot.value());\n var relativeSelectionInfo = selectionInfo && {\n oldRange: shiftRange(selectionInfo.oldRange, -index),\n newRange: shiftRange(selectionInfo.newRange, -index)\n };\n var diffDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n }\n\n return delta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n\n if (!change || !lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default()(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, selectionInfo);\n }\n }\n\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction convertListHTML(items, lastIndent, types) {\n if (items.length === 0) {\n var _getListType = getListType(types.pop()),\n _getListType2 = _slicedToArray(_getListType, 1),\n _endTag = _getListType2[0];\n\n if (lastIndent <= 0) {\n return \"\");\n }\n\n return \"\").concat(convertListHTML([], lastIndent - 1, types));\n }\n\n var _items = _toArray(items),\n _items$ = _items[0],\n child = _items$.child,\n offset = _items$.offset,\n length = _items$.length,\n indent = _items$.indent,\n type = _items$.type,\n rest = _items.slice(1);\n\n var _getListType3 = getListType(type, child),\n _getListType4 = _slicedToArray(_getListType3, 2),\n tag = _getListType4[0],\n attribute = _getListType4[1];\n\n if (indent > lastIndent) {\n types.push(type);\n\n if (indent === lastIndent + 1) {\n return \"<\".concat(tag, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n return \"<\".concat(tag, \">
  • \").concat(convertListHTML(items, lastIndent + 1, types));\n }\n\n var previousType = types[types.length - 1];\n\n if (indent === lastIndent && type === previousType) {\n return \"
  • \").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n var _getListType5 = getListType(types.pop()),\n _getListType6 = _slicedToArray(_getListType5, 1),\n endTag = _getListType6[0];\n\n return \"\").concat(convertListHTML(items, lastIndent - 1, types));\n}\n\nfunction convertHTML(blot, index, length) {\n var isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (typeof blot.html === 'function') {\n return blot.html(index, length);\n }\n\n if (blot instanceof _blots_text__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"]) {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_9__[/* escapeText */ \"b\"])(blot.value().slice(index, index + length));\n }\n\n if (blot.children) {\n // TODO fix API\n if (blot.statics.blotName === 'list-container') {\n var items = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n var formats = child.formats();\n items.push({\n child: child,\n offset: offset,\n length: childLength,\n indent: formats.indent || 0,\n type: formats.list\n });\n });\n return convertListHTML(items, -1, []);\n }\n\n var parts = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n parts.push(convertHTML(child, offset, childLength));\n });\n handleBreakLine(blot.children, parts);\n\n if (isRoot || blot.statics.blotName === 'list') {\n return parts.join('');\n }\n\n var _blot$domNode = blot.domNode,\n outerHTML = _blot$domNode.outerHTML,\n innerHTML = _blot$domNode.innerHTML;\n\n var _outerHTML$split = outerHTML.split(\">\".concat(innerHTML, \"<\")),\n _outerHTML$split2 = _slicedToArray(_outerHTML$split, 2),\n start = _outerHTML$split2[0],\n end = _outerHTML$split2[1];\n\n if (start === '\".concat(parts.join('').replace(/(\\sdata-.+?=[\"'].*?[\"'])/g, ''), \"<\").concat(end);\n }\n\n return \"\".concat(start, \">\").concat(parts.join(''), \"<\").concat(end);\n }\n\n return blot.domNode.outerHTML;\n}\n\nfunction handleBreakLine(linkedList, parts) {\n if (linkedList.length === 1 && linkedList.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"]) {\n parts.push('
    ');\n }\n}\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n\n return merged;\n }, {});\n}\n\nfunction getListType(type, child) {\n var tag = type === 'ordered' ? 'ol' : 'ul';\n var attributes = child ? \"\".concat(getBlotNodeAttributes(child)) : '';\n\n switch (type) {\n case 'checked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"checked\\\"\")];\n\n case 'unchecked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"unchecked\\\"\")];\n\n default:\n return [tag, attributes];\n }\n}\n\nfunction getBlotNodeAttributes(_ref) {\n var domNode = _ref.domNode;\n\n if (!domNode.hasAttributes()) {\n return '';\n }\n\n var attributes = domNode.attributes;\n var attributesString = ' ';\n\n for (var i = 0; i < attributes.length; i += 1) {\n var name = attributes[i].name;\n var value = attributes[i].value;\n\n if (name === 'class') {\n value = removeIndentClass(value);\n }\n\n if (value.length && name.indexOf('data-') === -1) {\n attributesString += \"\".concat(name, \"=\\\"\").concat(value, \"\\\"\");\n }\n }\n\n return attributesString.length > 1 ? attributesString : '';\n}\n\nfunction removeIndentClass(classString) {\n return classString.replace(/ql-indent-\\d/g, '').trim();\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (normalizedDelta, op) {\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return normalizedDelta.insert(text, op.attributes);\n }\n\n return normalizedDelta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n}\n\nfunction shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new _selection__WEBPACK_IMPORTED_MODULE_5__[/* Range */ \"a\"](index + amount, length);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Editor);\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isDefined; });\nfunction isDefined(object) {\n return object !== null && object !== undefined;\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return blockDelta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return bubbleFormats; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BlockEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return Block; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);\n/* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar NEWLINE_LENGTH = 1;\n\nvar Block = /*#__PURE__*/function (_BlockBlot) {\n _inherits(Block, _BlockBlot);\n\n var _super = _createSuper(Block);\n\n function Block(scroll, domNode) {\n var _this;\n\n _classCallCheck(this, Block);\n\n _this = _super.call(this, scroll, domNode);\n _this.cache = {};\n return _this;\n }\n\n _createClass(Block, [{\n key: \"delta\",\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = blockDelta(this);\n }\n\n return this.cache.delta;\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n _get(_getPrototypeOf(Block.prototype), \"deleteAt\", this).call(this, index, length);\n\n this.cache = {};\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n\n if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(_getPrototypeOf(Block.prototype), \"formatAt\", this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n\n this.cache = {};\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (def != null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, index, value, def);\n\n this.cache = {};\n return;\n }\n\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n\n this.cache = {};\n }\n\n var block = this;\n lines.reduce(function (lineIndex, line) {\n block = block.split(lineIndex, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n\n _get(_getPrototypeOf(Block.prototype), \"insertBefore\", this).call(this, blot, ref);\n\n if (head instanceof _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]) {\n head.remove();\n }\n\n this.cache = {};\n }\n }, {\n key: \"length\",\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(_getPrototypeOf(Block.prototype), \"length\", this).call(this) + NEWLINE_LENGTH;\n }\n\n return this.cache.length;\n }\n }, {\n key: \"moveChildren\",\n value: function moveChildren(target, ref) {\n _get(_getPrototypeOf(Block.prototype), \"moveChildren\", this).call(this, target, ref);\n\n this.cache = {};\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Block.prototype), \"optimize\", this).call(this, context);\n\n this.cache = {};\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Block.prototype), \"path\", this).call(this, index, true);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n _get(_getPrototypeOf(Block.prototype), \"removeChild\", this).call(this, child);\n\n this.cache = {};\n }\n }, {\n key: \"split\",\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n }\n\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n\n var next = _get(_getPrototypeOf(Block.prototype), \"split\", this).call(this, index, force);\n\n this.cache = {};\n return next;\n }\n }]);\n\n return Block;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"]);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"];\nBlock.allowedChildren = [_break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"], _inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n\nvar BlockEmbed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(BlockEmbed, _EmbedBlot);\n\n var _super2 = _createSuper(BlockEmbed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BlockEmbed, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"attach\", this).call(this);\n\n this.attributes = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"AttributorStore\"](this.domNode);\n }\n }, {\n key: \"delta\",\n value: function delta() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(this.value(), _objectSpread(_objectSpread({}, this.formats()), this.attributes.values()));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var attribute = this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_ATTRIBUTE);\n\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = this.scroll.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]);\n\nBlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return blot.descendants(parchment__WEBPACK_IMPORTED_MODULE_1__[\"LeafBlot\"]).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n }\n\n return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a()).insert('\\n', bubbleFormats(blot));\n}\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (blot == null) return formats;\n\n if (typeof blot.formats === 'function') {\n formats = _objectSpread(_objectSpread({}, formats), blot.formats());\n\n if (filter) {\n // exclude syntax highlighting from deltas and getFormat()\n delete formats['code-token'];\n }\n }\n\n if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n\n return bubbleFormats(blot.parent, formats, filter);\n}\n\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Selection; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = /*#__PURE__*/function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = this.scroll.create('cursor', this); // savedRange is last non-null range\n\n this.savedRange = new Range(0, 0);\n this.lastRange = this.savedRange;\n this.lastNative = null;\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown && !_this.composing) {\n setTimeout(_this.update.bind(_this, _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER), 1);\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n\n var native = _this.getNativeRange();\n\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n\n _this.emitter.once(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_UPDATE, function () {\n try {\n if (_this.root.contains(native.start.node) && _this.root.contains(native.end.node)) {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n }\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } catch (ignored) {// ignore\n }\n });\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n });\n this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: \"handleComposition\",\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n\n _this2.scroll.batchStart();\n });\n this.root.addEventListener('compositionend', function () {\n _this2.scroll.batchEnd();\n\n _this2.composing = false;\n\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: \"handleDragging\",\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n\n _this3.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n });\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: \"format\",\n value: function format(_format, value) {\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(_format, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK)) return;\n\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = this.scroll.find(nativeRange.start.node, false);\n if (blot == null) return; // TODO Give blot ability to not split\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n\n this.cursor.attach();\n }\n\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node;\n\n var _this$scroll$leaf = this.scroll.leaf(index),\n _this$scroll$leaf2 = _slicedToArray(_this$scroll$leaf, 2),\n leaf = _this$scroll$leaf2[0],\n offset = _this$scroll$leaf2[1];\n\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n var range = document.createRange();\n\n if (length > 0) {\n range.setStart(node, offset);\n\n var _this$scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _this$scroll$leaf4 = _slicedToArray(_this$scroll$leaf3, 2);\n\n leaf = _this$scroll$leaf4[0];\n offset = _this$scroll$leaf4[1];\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n }\n\n var side = 'left';\n var rect;\n\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }, {\n key: \"getNativeRange\",\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return document.activeElement === this.root || contains(this.root, document.activeElement);\n }\n }, {\n key: \"normalizedToRange\",\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _this4.scroll.find(node, true);\n\n var index = blot.offset(_this4.scroll);\n\n if (offset === 0) {\n return index;\n }\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n return index + blot.index(node, offset);\n }\n\n return index + blot.length();\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: \"normalizeNative\",\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n\n if (node instanceof Text) {\n offset = node.data.length;\n } else if (node.childNodes.length > 0) {\n // Container case\n offset = node.childNodes.length;\n } else {\n // Embed case\n offset = node.childNodes.length + 1;\n }\n } else {\n break;\n }\n }\n\n position.node = node;\n position.offset = offset;\n });\n return range;\n }\n }, {\n key: \"rangeToNative\",\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n\n var _this5$scroll$leaf = _this5.scroll.leaf(index),\n _this5$scroll$leaf2 = _slicedToArray(_this5$scroll$leaf, 2),\n leaf = _this5$scroll$leaf2[0],\n leafOffset = _this5$scroll$leaf2[1];\n\n var _leaf$position5 = leaf.position(leafOffset, i !== 0),\n _leaf$position6 = _slicedToArray(_leaf$position5, 2),\n node = _leaf$position6[0],\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n\n if (args.length < 2) {\n return args.concat(args);\n }\n\n return args;\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _this$scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 1),\n first = _this$scroll$line2[0];\n\n var last = first;\n\n if (range.length > 0) {\n var _this$scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 1);\n\n last = _this$scroll$line4[0];\n }\n\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: \"setNativeRange\",\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n\n var selection = document.getSelection();\n if (selection == null) return;\n\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n\n var _ref = this.getNativeRange() || {},\n native = _ref.native;\n\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode.tagName === 'BR') {\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n startNode = startNode.parentNode;\n }\n\n if (endNode.tagName === 'BR') {\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n endNode = endNode.parentNode;\n }\n\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough for IE11\n }\n }\n }, {\n key: \"setRange\",\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n\n debug.info('setRange', range);\n\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n\n this.update(source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER;\n var oldRange = this.lastRange;\n\n var _this$getRange = this.getRange(),\n _this$getRange2 = _slicedToArray(_this$getRange, 2),\n lastRange = _this$getRange2[0],\n nativeRange = _this$getRange2[1];\n\n this.lastRange = lastRange;\n this.lastNative = nativeRange;\n\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n\n if (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(oldRange, this.lastRange)) {\n var _this$emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n var range = this.cursor.restore();\n\n if (range) {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }\n }\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SELECTION_CHANGE, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(this.lastRange), lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(oldRange), source];\n\n (_this$emitter = this.emitter).emit.apply(_this$emitter, [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter2;\n\n (_this$emitter2 = this.emitter).emit.apply(_this$emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode; // eslint-disable-line no-unused-expressions\n } catch (e) {\n return false;\n } // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n\n\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n\n return parent.contains(descendant);\n}\n\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return escapeText; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Text = /*#__PURE__*/function (_TextBlot) {\n _inherits(Text, _TextBlot);\n\n var _super = _createSuper(Text);\n\n function Text() {\n _classCallCheck(this, Text);\n\n return _super.apply(this, arguments);\n }\n\n return Text;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"TextBlot\"]);\n\nfunction escapeText(text) {\n return text.replace(/[&<>\"']/g, function (s) {\n // https://lodash.com/docs#escape\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return entityMap[s];\n });\n}\n\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Break = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Break, _EmbedBlot);\n\n var _super = _createSuper(Break);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Break, [{\n key: \"optimize\",\n value: function optimize() {\n if (this.prev || this.next) {\n this.remove();\n }\n }\n }, {\n key: \"length\",\n value: function length() {\n return 0;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n/* harmony default export */ __webpack_exports__[\"a\"] = (Break);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Module);\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Container = /*#__PURE__*/function (_ContainerBlot) {\n _inherits(Container, _ContainerBlot);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n return Container;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Container);\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar Inline = /*#__PURE__*/function (_InlineBlot) {\n _inherits(Inline, _InlineBlot);\n\n var _super = _createSuper(Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Inline, [{\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOT)) {\n var blot = this.isolate(index, length);\n\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(_getPrototypeOf(Inline.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Inline.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: \"compare\",\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n }\n\n if (self === other) {\n return 0;\n }\n\n if (self < other) {\n return -1;\n }\n\n return 1;\n }\n }]);\n\n return Inline;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"InlineBlot\"]);\n\nInline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\nInline.order = ['cursor', 'inline', // Must be lower\n'link', // Chrome wants to be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inline);\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar hasWindow = function hasWindow() {\n return typeof window !== 'undefined';\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (hasWindow);\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45), __webpack_require__(51)(module)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Code; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CodeBlockContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return CodeBlock; });\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar CodeBlockContainer = /*#__PURE__*/function (_Container) {\n _inherits(CodeBlockContainer, _Container);\n\n var _super = _createSuper(CodeBlockContainer);\n\n function CodeBlockContainer() {\n _classCallCheck(this, CodeBlockContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CodeBlockContainer, [{\n key: \"code\",\n value: function code(index, length) {\n var text = this.children.map(function (child) {\n return child.length() <= 1 ? '' : child.domNode.innerText;\n }).join('\\n').slice(index, index + length);\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* escapeText */ \"b\"])(text);\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n // `\\n`s are needed in order to support empty lines at the beginning and the end.\n // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n return \"
    \\n\".concat(this.code(index, length), \"\\n
    \");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(CodeBlockContainer), \"create\", this).call(this, value);\n\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }]);\n\n return CodeBlockContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]);\n\nvar CodeBlock = /*#__PURE__*/function (_Block) {\n _inherits(CodeBlock, _Block);\n\n var _super2 = _createSuper(CodeBlock);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(CodeBlock, null, [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].register(CodeBlockContainer);\n }\n }]);\n\n return CodeBlock;\n}(_blots_block__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"d\"]);\n\nvar Code = /*#__PURE__*/function (_Inline) {\n _inherits(Code, _Inline);\n\n var _super3 = _createSuper(Code);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _super3.apply(this, arguments);\n }\n\n return Code;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"]);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], _blots_cursor__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]];\nCodeBlock.requiredContainer = CodeBlockContainer;\nCodeBlock.TAB = ' ';\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nfunction isLine(blot) {\n return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"] || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"];\n}\n\nvar Scroll = /*#__PURE__*/function (_ScrollBlot) {\n _inherits(Scroll, _ScrollBlot);\n\n var _super = _createSuper(Scroll);\n\n function Scroll(registry, domNode, _ref) {\n var _this;\n\n var emitter = _ref.emitter,\n 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__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, blot);\n }\n }, {\n key: \"emitUnmount\",\n value: function emitUnmount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BLOT_UNMOUNT, blot);\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n var _this$line = this.line(index),\n _this$line2 = _slicedToArray(_this$line, 2),\n first = _this$line2[0],\n offset = _this$line2[1];\n\n var _this$line3 = this.line(index + length),\n _this$line4 = _slicedToArray(_this$line3, 1),\n last = _this$line4[0];\n\n _get(_getPrototypeOf(Scroll.prototype), \"deleteAt\", this).call(this, index, length);\n\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"] || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n this.optimize();\n return;\n }\n\n var ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"] ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n\n this.optimize();\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, format, value) {\n _get(_getPrototypeOf(Scroll.prototype), \"formatAt\", this).call(this, index, length, format, value);\n\n this.optimize();\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(event) {\n event.preventDefault();\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (index >= this.length()) {\n if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) == null) {\n var blot = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(blot);\n\n if (def == null && value.endsWith('\\n')) {\n blot.insertAt(0, value.slice(0, -1), def);\n } else {\n blot.insertAt(0, value, def);\n }\n } else {\n var embed = this.scroll.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n\n this.optimize();\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE_BLOT) {\n var wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n wrapper.appendChild(blot);\n\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, wrapper, ref);\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, blot, ref);\n }\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.domNode.getAttribute('contenteditable') === 'true';\n }\n }, {\n key: \"leaf\",\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: \"line\",\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n\n return this.descendant(isLine, index);\n }\n }, {\n key: \"lines\",\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, blotIndex, blotLength) {\n var lines = [];\n var lengthLeft = blotLength;\n blot.children.forEachAt(blotIndex, blotLength, function (child, childIndex, childLength) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]) {\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return lines;\n };\n\n return getLines(this, index, length);\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch) return;\n\n _get(_getPrototypeOf(Scroll.prototype), \"optimize\", this).call(this, mutations, context);\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Scroll.prototype), \"path\", this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: \"remove\",\n value: function remove() {// Never remove self\n }\n }, {\n key: \"update\",\n value: function update(mutations) {\n 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__[/* default */ \"a\"].sources.USER;\n\n if (typeof mutations === 'string') {\n source = mutations;\n }\n\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n\n 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__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n\n _get(_getPrototypeOf(Scroll.prototype), \"update\", this).call(this, mutations.concat([])); // pass copy\n\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ScrollBlot\"]);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"];\nScroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"], _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"], _container__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Scroll);\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n// `isCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument === 'function';\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\nnamespace.level = function (newLevel) {\n level = newLevel;\n};\n\ndebug.level = namespace.level;\n/* harmony default export */ __webpack_exports__[\"a\"] = (namespace);\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Cursor = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Cursor, _EmbedBlot);\n\n var _super = _createSuper(Cursor);\n\n function Cursor(scroll, domNode, selection) {\n var _this;\n\n _classCallCheck(this, Cursor);\n\n _this = _super.call(this, scroll, domNode);\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n\n _this.domNode.appendChild(_this.textNode);\n\n _this.savedLength = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: \"detach\",\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (this.savedLength !== 0) {\n _get(_getPrototypeOf(Cursor.prototype), \"format\", this).call(this, name, value);\n\n return;\n }\n\n var target = this;\n var index = 0;\n\n while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n\n if (target != null) {\n this.savedLength = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this.savedLength = 0;\n }\n }\n }, {\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(_getPrototypeOf(Cursor.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"length\",\n value: function length() {\n return this.savedLength;\n }\n }, {\n key: \"position\",\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: \"remove\",\n value: function remove() {\n _get(_getPrototypeOf(Cursor.prototype), \"remove\", this).call(this);\n\n this.parent = null;\n }\n }, {\n key: \"restore\",\n value: function restore() {\n if (this.selection.composing || this.parent == null) return null;\n var range = this.selection.getNativeRange(); // Link format will insert text outside of anchor tag\n\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n\n var prevTextBlot = this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.prev : null;\n var prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n var nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.next : null;\n var nextText = nextTextBlot ? nextTextBlot.text : '';\n var textNode = this.textNode; // take text from inside this blot and reset it\n\n var newText = textNode.data.split(Cursor.CONTENTS).join('');\n textNode.data = Cursor.CONTENTS; // proactively merge TextBlots around cursor so that optimization\n // doesn't lose the cursor. the reason we are here in cursor.restore\n // could be that the user clicked in prevTextBlot or nextTextBlot, or\n // the user typed something.\n\n var mergedTextBlot;\n\n if (prevTextBlot) {\n mergedTextBlot = prevTextBlot;\n\n if (newText || nextTextBlot) {\n prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n\n if (nextTextBlot) {\n nextTextBlot.remove();\n }\n }\n } else if (nextTextBlot) {\n mergedTextBlot = nextTextBlot;\n nextTextBlot.insertAt(0, newText);\n } else {\n var newTextNode = document.createTextNode(newText);\n mergedTextBlot = this.scroll.create(newTextNode);\n this.parent.insertBefore(mergedTextBlot, this);\n }\n\n this.remove();\n\n if (range) {\n // calculate selection to restore\n var remapOffset = function remapOffset(node, offset) {\n if (prevTextBlot && node === prevTextBlot.domNode) {\n return offset;\n }\n\n if (node === textNode) {\n return prevTextLength + offset - 1;\n }\n\n if (nextTextBlot && node === nextTextBlot.domNode) {\n return prevTextLength + newText.length + offset;\n }\n\n return null;\n };\n\n var start = remapOffset(range.start.node, range.start.offset);\n var end = remapOffset(range.end.node, range.end.offset);\n\n if (start !== null && end !== null) {\n return {\n startNode: mergedTextBlot.domNode,\n startOffset: start,\n endNode: mergedTextBlot.domNode,\n endOffset: end\n };\n }\n }\n\n return null;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Cursor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Cursor);\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SizeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return SizeStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return WidthAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return HeightAttribute; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('size', 'ql-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('size', 'font-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['10px', '18px', '32px']\n});\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: null\n};\nvar WidthAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('width', 'width', config);\nvar HeightAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('height', 'height', config);\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar quill = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./blots/cursor.js\nvar cursor = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(48);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./blots/scroll.js\nvar blots_scroll = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(26);\n\n// EXTERNAL MODULE: ./modules/history.js\nvar modules_history = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./modules/keyboard.js\nvar keyboard = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(1);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/emitter.js\nvar emitter = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(13);\n\n// CONCATENATED MODULE: ./modules/uploader.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar uploader_Uploader = /*#__PURE__*/function (_Module) {\n _inherits(Uploader, _Module);\n\n var _super = _createSuper(Uploader);\n\n function Uploader(quill, options) {\n var _this;\n\n _classCallCheck(this, Uploader);\n\n _this = _super.call(this, quill, options);\n\n _this.addDragOverHandler();\n\n _this.addDropHandler();\n\n return _this;\n }\n\n _createClass(Uploader, [{\n key: \"addDragOverHandler\",\n value: function addDragOverHandler() {\n if (Object(has_window[\"a\" /* default */])()) {\n var ua = window.navigator.userAgent.toLowerCase();\n var isMsIe = ua.indexOf('msie ') !== -1 || ua.indexOf('trident/') !== -1 || ua.indexOf('edge/') !== -1;\n\n if (isMsIe) {\n this.quill.root.addEventListener('dragover', function (e) {\n e.preventDefault();\n });\n }\n }\n }\n }, {\n key: \"addDropHandler\",\n value: function addDropHandler() {\n var _this2 = this;\n\n this.quill.root.addEventListener('drop', function (e) {\n e.preventDefault();\n var native;\n var onDrop = _this2.options.onDrop;\n\n if (onDrop && typeof onDrop === 'function') {\n onDrop(e);\n }\n\n if (document.caretRangeFromPoint) {\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\n } else if (document.caretPositionFromPoint) {\n var position = document.caretPositionFromPoint(e.clientX, e.clientY);\n native = document.createRange();\n native.setStart(position.offsetNode, position.offset);\n native.setEnd(position.offsetNode, position.offset);\n } else {\n return;\n }\n\n var normalized = _this2.quill.selection.normalizeNative(native);\n\n var range = _this2.quill.selection.normalizedToRange(normalized);\n\n _this2.upload(range, e.dataTransfer.files);\n });\n }\n }, {\n key: \"upload\",\n value: function upload(range, files) {\n var _this3 = this;\n\n var uploads = [];\n Array.from(files).forEach(function (file) {\n if (file && _this3.options.mimetypes.indexOf(file.type) !== -1) {\n uploads.push(file);\n }\n });\n\n if (uploads.length > 0) {\n this.options.handler.call(this, range, uploads, this.options.imageBlot);\n }\n }\n }]);\n\n return Uploader;\n}(core_module[\"a\" /* default */]);\n\nuploader_Uploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg'],\n imageBlot: 'image',\n handler: function handler(range, files, blotName) {\n var _this4 = this;\n\n var promises = files.map(function (file) {\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function (e) {\n resolve(e.target.result);\n };\n\n reader.readAsDataURL(file);\n });\n });\n Promise.all(promises).then(function (images) {\n var update = images.reduce(function (delta, image) {\n return delta.insert(_defineProperty({}, blotName, image));\n }, new Delta_default.a().retain(range.index).delete(range.length));\n\n _this4.quill.updateContents(update, emitter[\"a\" /* default */].sources.USER);\n\n _this4.quill.setSelection(range.index + images.length, emitter[\"a\" /* default */].sources.SILENT);\n });\n }\n};\n/* harmony default export */ var uploader = (uploader_Uploader);\n// CONCATENATED MODULE: ./core.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nquill[\"a\" /* default */].register({\n 'blots/block': block[\"d\" /* default */],\n 'blots/block/embed': block[\"a\" /* BlockEmbed */],\n 'blots/break': blots_break[\"a\" /* default */],\n 'blots/container': container[\"a\" /* default */],\n 'blots/cursor': cursor[\"a\" /* default */],\n 'blots/embed': blots_embed[\"a\" /* default */],\n 'blots/inline': inline[\"a\" /* default */],\n 'blots/scroll': blots_scroll[\"a\" /* default */],\n 'blots/text': blots_text[\"a\" /* default */],\n 'modules/clipboard': clipboard[\"b\" /* default */],\n 'modules/history': modules_history[\"a\" /* default */],\n 'modules/keyboard': keyboard[\"b\" /* default */],\n 'modules/uploader': uploader\n});\n/* harmony default export */ var core = __webpack_exports__[\"default\"] = (quill[\"a\" /* default */]);\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Keyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SHORTKEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return normalize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return deleteRange; });\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])('quill:keyboard');\nvar KEY_NAMES = {\n backspace: 'backspace',\n tab: 'tab',\n enter: 'enter',\n escape: 'escape',\n pageup: 'pageUp',\n pagedown: 'pageDown',\n end: 'end',\n home: 'home',\n arrowleft: 'leftArrow',\n arrowup: 'upArrow',\n arrowright: 'rightArrow',\n arrowdown: 'downArrow',\n delete: 'del',\n ' ': 'space',\n '*': 'asterisk',\n '-': 'minus',\n alt: 'alt',\n control: 'control',\n shift: 'shift',\n // IE11:\n left: 'leftArrow',\n up: 'upArrow',\n right: 'rightArrow',\n down: 'downArrow',\n multiply: 'asterisk',\n spacebar: 'space',\n del: 'del',\n subtract: 'minus',\n esc: 'escape'\n};\nvar KEY_CODES = {\n // iOS 10.2 and lower didn't supports KeyboardEvent.key\n '8': 'backspace',\n '9': 'tab',\n '13': 'enter',\n '27': 'escape',\n '33': 'pageUp',\n '34': 'pageDown',\n '35': 'end',\n '36': 'home',\n '37': 'leftArrow',\n '38': 'upArrow',\n '39': 'rightArrow',\n '40': 'downArrow',\n '46': 'del',\n '32': 'space',\n '106': 'asterisk',\n '109': 'minus',\n '189': 'minus',\n '173': 'minus',\n '16': 'shift',\n '17': 'control',\n '18': 'alt'\n};\nvar SHORTKEY = Object(_utils_has_window__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = /*#__PURE__*/function (_Module) {\n _inherits(Keyboard, _Module);\n\n var _super = _createSuper(Keyboard);\n\n 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.addInternalBindings();\n\n _this.listen();\n\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: \"addInternalBindings\",\n value: function addInternalBindings() {\n var _this2 = this;\n\n this.quill.once(_core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].events.CONTENT_SETTED, function () {\n _this2.addBinding({\n key: 'enter',\n shiftKey: null\n }, _this2.handleEnter);\n\n _this2.addBinding({\n key: 'enter',\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n\n if (Object(_utils_has_window__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: true\n }, _this2.handleBackspace);\n\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: true\n }, _this2.handleDelete);\n } else {\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, _this2.handleBackspace);\n\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, _this2.handleDelete);\n }\n\n _this2.addBinding({\n key: 'backspace'\n }, {\n collapsed: false\n }, _this2.handleDeleteRange);\n\n _this2.addBinding({\n key: 'del'\n }, {\n collapsed: false\n }, _this2.handleDeleteRange);\n\n _this2.addBinding({\n key: 'backspace',\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, _this2.handleBackspace);\n });\n }\n }, {\n key: \"addBinding\",\n value: function addBinding(keyBinding) {\n var _this3 = 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 _this3.bindings[singleBinding.key] = _this3.bindings[singleBinding.key] || [];\n\n _this3.bindings[singleBinding.key].push(singleBinding);\n });\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this4 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented || evt.isComposing) return;\n\n _this4.raiseOnKeydownCallback(evt);\n\n var keyName = Keyboard.normalizeKeyName(evt);\n var bindings = (_this4.bindings[keyName] || []).concat(_this4.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 = _this4.quill.getSelection();\n\n if (range == null || !_this4.quill.hasFocus()) return;\n\n var _this4$quill$getLine = _this4.quill.getLine(range.index),\n _this4$quill$getLine2 = _slicedToArray(_this4$quill$getLine, 2),\n line = _this4$quill$getLine2[0],\n offset = _this4$quill$getLine2[1];\n\n var _this4$quill$getLeaf = _this4.quill.getLeaf(range.index),\n _this4$quill$getLeaf2 = _slicedToArray(_this4$quill$getLeaf, 2),\n leafStart = _this4$quill$getLeaf2[0],\n offsetStart = _this4$quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this4.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: _this4.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(_this4, range, curContext, binding) !== true;\n });\n\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }, {\n key: \"raiseOnKeydownCallback\",\n value: function raiseOnKeydownCallback(event) {\n var callback = this.options.onKeydown;\n\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"handleBackspace\",\n value: function handleBackspace(range, context) {\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n var formats = {};\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 1),\n line = _this$quill$getLine2[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - length).delete(length);\n\n if (context.offset === 0) {\n // Always deleting newline here, length always 1\n var _this$quill$getLine3 = this.quill.getLine(range.index - 1),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 1),\n prev = _this$quill$getLine4[0];\n\n if (prev) {\n var isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n\n if (!isPrevLineEmpty) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, prevFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n var formatDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDelete\",\n value: function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {};\n\n var _this$quill$getLine5 = this.quill.getLine(range.index),\n _this$quill$getLine6 = _slicedToArray(_this$quill$getLine5, 1),\n line = _this$quill$getLine6[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(length);\n\n if (context.offset >= line.length() - 1) {\n var _this$quill$getLine7 = this.quill.getLine(range.index + 1),\n _this$quill$getLine8 = _slicedToArray(_this$quill$getLine7, 1),\n next = _this$quill$getLine8[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, nextFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n delta = delta.retain(next.length() - 1).retain(1, formats);\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDeleteRange\",\n value: function handleDeleteRange(range, context) {\n 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 _this5 = this;\n\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this5.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n\n return formats;\n }, {});\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'code' || name === 'link') return;\n\n _this5.raiseOnKeydownCallback(context.event);\n\n _this5.quill.format(name, context.format[name], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"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__[/* default */ \"a\"]);\n\nKeyboard.DEFAULTS = {\n bindings: {\n bold: makeFormatHandler('bold'),\n italic: makeFormatHandler('italic'),\n underline: makeFormatHandler('underline'),\n indent: {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 'tab',\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n outdent: {\n key: 'tab',\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n 'outdent backspace': {\n key: 'backspace',\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: 'tab',\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n tab: {\n key: 'tab',\n handler: function handler(range, context) {\n if (context.format.table) return true;\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'blockquote empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['blockquote'],\n empty: true,\n handler: function handler() {\n this.quill.format('blockquote', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'list empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n var formats = {\n list: false\n };\n\n if (context.format.indent) {\n formats.indent = false;\n }\n\n this.quill.formatLine(range.index, range.length, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'checklist enter': {\n key: 'enter',\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler: function handler(range) {\n var _this$quill$getLine9 = this.quill.getLine(range.index),\n _this$quill$getLine10 = _slicedToArray(_this$quill$getLine9, 2),\n line = _this$quill$getLine10[0],\n offset = _this$quill$getLine10[1];\n\n var formats = _objectSpread(_objectSpread({}, line.formats()), {}, {\n list: 'checked'\n });\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: 'enter',\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _this$quill$getLine11 = this.quill.getLine(range.index),\n _this$quill$getLine12 = _slicedToArray(_this$quill$getLine11, 2),\n line = _this$quill$getLine12[0],\n offset = _this$quill$getLine12[1];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n '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__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.raiseOnKeydownCallback(context.event);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'code exit': {\n key: 'enter',\n collapsed: true,\n format: ['code-block'],\n prefix: /^$/,\n suffix: /^\\s*$/,\n handler: function handler(range) {\n var _this$quill$getLine15 = this.quill.getLine(range.index),\n _this$quill$getLine16 = _slicedToArray(_this$quill$getLine15, 2),\n line = _this$quill$getLine16[0],\n offset = _this$quill$getLine16[1];\n\n var numLines = 2;\n var cur = line;\n\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n cur = cur.prev;\n numLines -= 1; // Requisite prev lines are empty\n\n if (numLines <= 0) {\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n }\n\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('leftArrow', false),\n 'embed left shift': makeEmbedArrowHandler('leftArrow', true),\n 'embed right': makeEmbedArrowHandler('rightArrow', false),\n 'embed right shift': makeEmbedArrowHandler('rightArrow', true)\n }\n};\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: 'tab',\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = this.quill.scroll.query('code-block');\n var lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n var index = range.index,\n length = range.length;\n lines.forEach(function (line, i) {\n if (indent) {\n line.insertAt(0, CodeBlock.TAB);\n\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.domNode.textContent.indexOf(CodeBlock.TAB) === 0) {\n line.deleteAt(0, CodeBlock.TAB.length);\n\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(index, length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n }\n };\n}\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref4;\n\n var where = key === 'leftArrow' ? 'prefix' : 'suffix';\n return _ref4 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref4, where, /^$/), _defineProperty(_ref4, \"handler\", function handler(range) {\n var index = range.index;\n\n if (key === 'rightArrow') {\n index += range.length + 1;\n }\n\n var _this$quill$getLeaf = this.quill.getLeaf(index),\n _this$quill$getLeaf2 = _slicedToArray(_this$quill$getLeaf, 1),\n leaf = _this$quill$getLeaf2[0];\n\n if (!(leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"EmbedBlot\"])) return true;\n\n if (key === 'leftArrow') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n return false;\n }), _ref4;\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0],\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n binding = {\n key: binding\n };\n } else if (_typeof(binding) === 'object') {\n binding = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(binding);\n } else {\n return null;\n }\n\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n\n return binding;\n}\n\nfunction 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__[/* default */ \"a\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n}\n\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar shared = __webpack_require__(80);\nvar has = __webpack_require__(29);\nvar uid = __webpack_require__(81);\nvar NATIVE_SYMBOL = __webpack_require__(82);\nvar USE_SYMBOL_AS_UID = __webpack_require__(83);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(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 } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45)))\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45), __webpack_require__(51)(module)))\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Clipboard; });\n/* unused harmony export matchAttributor */\n/* unused harmony export matchBlot */\n/* unused harmony export matchNewline */\n/* unused harmony export matchText */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return traverse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return applyFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return deltaEndsWith; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);\n/* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31);\n/* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);\n/* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(27);\n/* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28);\n/* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(38);\n/* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(20);\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(22);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:clipboard');\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar CLIPBOARD_CONFIG = [[TEXT_NODE, matchText], [TEXT_NODE, matchNewline], ['br', matchBreak], [ELEMENT_NODE, matchNewline], [ELEMENT_NODE, matchBlot], [ELEMENT_NODE, matchAttributor], [ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['strike', matchAlias.bind(matchAlias, 'strike')], ['style', matchIgnore]];\nvar HTML_TEXT_MATCHERS = [matchText, matchNewline];\nvar ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignAttribute */ \"a\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionAttribute */ \"a\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* WidthAttribute */ \"d\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* HeightAttribute */ \"a\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignStyle */ \"c\"], _formats_background__WEBPACK_IMPORTED_MODULE_7__[/* BackgroundStyle */ \"b\"], _formats_color__WEBPACK_IMPORTED_MODULE_9__[/* ColorStyle */ \"c\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionStyle */ \"c\"], _formats_font__WEBPACK_IMPORTED_MODULE_11__[/* FontStyle */ \"b\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* SizeStyle */ \"c\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = /*#__PURE__*/function (_Module) {\n _inherits(Clipboard, _Module);\n\n var _super = _createSuper(Clipboard);\n\n function Clipboard(quill, options) {\n var _options$tableBlots;\n\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 _this.tableBlots = (_options$tableBlots = options.tableBlots) !== null && _options$tableBlots !== void 0 ? _options$tableBlots : [];\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: \"addTableBlot\",\n value: function addTableBlot(blotName) {\n this.tableBlots.push(blotName);\n }\n }, {\n key: \"convert\",\n value: function convert(_ref3) {\n var html = _ref3.html,\n text = _ref3.text;\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text, _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName, formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]));\n }\n\n return html ? this.applyMatchers(html, formats) : this.applyTextMatchers(text);\n }\n }, {\n key: \"applyTextMatchers\",\n value: function applyTextMatchers() {\n var _this2 = this;\n\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (text.length === 0) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var matchers = this.prepareTextMatching();\n var element = this.quill.root.ownerDocument.createElement('div');\n element.textContent = text;\n var node = element.childNodes[0];\n return matchers.reduce(function (delta, matcher) {\n return matcher(node, delta, _this2.quill.scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n }, {\n key: \"applyMatchers\",\n value: function applyMatchers(html) {\n var _this3 = this;\n\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 || Object.values(formats).some(function (blotName) {\n return _this3.tableBlots.includes(blotName);\n }))) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length() - 1).delete(1));\n }\n\n return delta;\n }\n }, {\n key: \"dangerouslyPasteHTML\",\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof index === 'string') {\n var delta = this.convert({\n html: index,\n text: ''\n });\n this.quill.setContents(delta, html);\n this.quill.setSelection(0, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } else {\n var paste = this.convert({\n html: html,\n text: ''\n });\n this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"onCaptureCopy\",\n value: function onCaptureCopy(e) {\n var isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (e.defaultPrevented) return;\n\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n\n var _this$quill$selection = this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0];\n\n if (range == null) return;\n\n var _this$onCopy = this.onCopy(range, isCut),\n html = _this$onCopy.html,\n text = _this$onCopy.text;\n\n e.clipboardData.setData('text/plain', text);\n e.clipboardData.setData('text/html', html);\n\n if (isCut) {\n this.raiseCallback('onCut', e);\n Object(_keyboard__WEBPACK_IMPORTED_MODULE_13__[/* deleteRange */ \"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__[/* default */ \"a\"].sources.USER); // range.length contributes to delta.length()\n\n this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n }, {\n key: \"prepareMatching\",\n value: function prepareMatching(container, nodeMatches) {\n var elementMatchers = [];\n var textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case TEXT_NODE:\n textMatchers.push(matcher);\n break;\n\n case ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n\n default:\n Array.from(container.querySelectorAll(selector)).forEach(function (node) {\n if (nodeMatches.has(node)) {\n var matches = nodeMatches.get(node);\n matches.push(matcher);\n } else {\n nodeMatches.set(node, [matcher]);\n }\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }, {\n key: \"prepareTextMatching\",\n value: function prepareTextMatching() {\n var textMatchers = [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__[/* default */ \"a\"]);\n\nClipboard.DEFAULTS = {\n matchers: []\n};\n\nfunction applyFormat(delta, format, value) {\n if (_typeof(format) === 'object') {\n return Object.keys(format).reduce(function (newDelta, key) {\n return applyFormat(newDelta, key, format[key]);\n }, delta);\n }\n\n return delta.reduce(function (newDelta, op) {\n if (op.attributes && op.attributes[format]) {\n return newDelta.push(op);\n }\n\n var formats = value ? _defineProperty({}, format, value) : {};\n return newDelta.insert(op.insert, _objectSpread(_objectSpread({}, formats), op.attributes));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = '';\n\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n ) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].indexOf(node.tagName.toLowerCase()) !== -1;\n}\n\nvar preNodes = new WeakMap();\n\nfunction isPre(node) {\n if (node == null) return false;\n\n if (!preNodes.has(node)) {\n if (node.tagName === 'PRE') {\n preNodes.set(node, true);\n } else {\n preNodes.set(node, isPre(node.parentNode));\n }\n }\n\n return preNodes.get(node);\n}\n\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta, scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n return Array.from(node.childNodes || []).reduce(function (delta, childNode) {\n var childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n childrenDelta = (nodeMatches.get(childNode) || []).reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n }\n\n return delta.concat(childrenDelta);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta, scroll) {\n var attributes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Attributor\"].keys(node);\n var classes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"].keys(node);\n var styles = parchment__WEBPACK_IMPORTED_MODULE_1__[\"StyleAttributor\"].keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].ATTRIBUTE);\n\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n\n attr = STYLE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n\n if (Object.keys(formats).length > 0) {\n return applyFormat(delta, formats);\n }\n\n return delta;\n}\n\nfunction matchBlot(node, delta, scroll) {\n var match = scroll.query(node);\n if (match == null) return delta;\n\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]) {\n var embed = {};\n var value = match.value(node);\n\n if (value != null) {\n embed[match.blotName] = value;\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(embed, match.formats(node, scroll));\n }\n } else {\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"] && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n if (typeof match.formats === 'function') {\n return applyFormat(delta, match.blotName, match.formats(node, scroll));\n }\n }\n\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return delta;\n}\n\nfunction matchCodeBlock(node, delta, scroll) {\n var match = scroll.query('code-block');\n var language = match ? match.formats(node, scroll) : true;\n return applyFormat(delta, 'code-block', language);\n}\n\nfunction matchIgnore() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchIndent(node, delta, scroll) {\n var match = scroll.query(node);\n\n if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n\n var indent = -1;\n var parent = node.parentNode;\n\n while (parent != null) {\n if (['OL', 'UL'].indexOf(parent.tagName) !== -1) {\n indent += 1;\n }\n\n parent = parent.parentNode;\n }\n\n if (indent <= 0) return delta;\n return delta.reduce(function (composed, op) {\n if (op.attributes && typeof op.attributes.indent === 'number') {\n return composed.push(op);\n }\n\n return composed.insert(op.insert, _objectSpread({\n indent: indent\n }, op.attributes || {}));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction matchList(node, delta) {\n var list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n return applyFormat(delta, 'list', list);\n}\n\nfunction matchNewline(node, delta, scroll) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node)) {\n return delta.insert('\\n');\n }\n\n if (delta.length() > 0 && node.nextSibling) {\n var nextSibling = node.nextSibling;\n\n while (nextSibling != null) {\n if (isLine(nextSibling)) {\n return delta.insert('\\n');\n }\n\n var match = scroll.query(nextSibling);\n\n if ((match === null || match === void 0 ? void 0 : match.prototype) instanceof _blots_block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n return delta.insert('\\n');\n }\n\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n ['height', 'width'].forEach(function (dimension) {\n if (['TD', 'TH'].indexOf(node.tagName) !== -1 && style[dimension]) {\n formats[dimension] = style[dimension];\n }\n });\n\n if (style.fontStyle === 'italic') {\n formats.italic = true;\n }\n\n if (style.textDecoration.indexOf('underline') !== -1) {\n formats.underline = true;\n }\n\n if (style.textDecoration.indexOf('line-through') !== -1) {\n formats.strike = true;\n }\n\n if (style.fontWeight.indexOf('bold') === 0 || parseInt(style.fontWeight, 10) >= 700) {\n formats.bold = true;\n }\n\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert('\\t').concat(delta);\n }\n\n return delta;\n}\n\nfunction matchPlainText(node, delta) {\n var text = node.data || '';\n text = text.replace(/\\r\\n/g, '\\n');\n return delta.insert(text);\n}\n\nfunction matchText(node, delta) {\n var text = node.data; // Word represents empty line with  \n\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n\n if (text.trim().length === 0 && text.indexOf('\\n') !== -1) {\n return delta;\n }\n\n if (!isPre(node)) {\n var replacer = function replacer(collapse, match) {\n var replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n\n return replaced.length < 1 && collapse ? ' ' : replaced;\n };\n\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n\n return delta.insert(text);\n}\n\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColorAttributor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ColorClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return ColorStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar ColorAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(ColorAttributor, _StyleAttributor);\n\n var _super = _createSuper(ColorAttributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ColorAttributor, [{\n key: \"value\",\n value: function value(domNode) {\n var value = _get(_getPrototypeOf(ColorAttributor.prototype), \"value\", this).call(this, domNode);\n\n if (value.indexOf('rgb(') !== 0) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n var hex = value.split(',').map(function (component) {\n return \"00\".concat(parseInt(component, 10).toString(16)).slice(-2);\n }).join('');\n return \"#\".concat(hex);\n }\n }]);\n\n return ColorAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('color', 'ql-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DirectionAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return DirectionClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return DirectionStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['rtl']\n};\nvar DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('direction', 'dir', config);\nvar DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('direction', 'ql-direction', config);\nvar DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('direction', 'direction', config);\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(53);\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45), __webpack_require__(51)(module)))\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AlignAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return AlignClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return AlignStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\nvar AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('align', 'align', config);\nvar AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('align', 'ql-align', config);\nvar AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('align', 'text-align', config);\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(41);\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(32);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Link; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return _sanitize; });\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Link = /*#__PURE__*/function (_Inline) {\n _inherits(Link, _Inline);\n\n var _super = _createSuper(Link);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Link, [{\n key: \"format\",\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) {\n _get(_getPrototypeOf(Link.prototype), \"format\", this).call(this, name, value);\n } else {\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(Link), \"create\", this).call(this, value);\n\n node.setAttribute('href', this.sanitize(value));\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (new WeakMap());\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BackgroundClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BackgroundStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27);\n\n\nvar BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('background', 'ql-bg', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__[/* ColorAttributor */ \"a\"]('background', 'background-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FontStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FontClass; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['serif', 'monospace']\n};\nvar FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('font', 'ql-font', config);\n\nvar FontStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(FontStyleAttributor, _StyleAttributor);\n\n var _super = _createSuper(FontStyleAttributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FontStyleAttributor, [{\n key: \"value\",\n value: function value(node) {\n return _get(_getPrototypeOf(FontStyleAttributor.prototype), \"value\", this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Bold = /*#__PURE__*/function (_Inline) {\n _inherits(Bold, _Inline);\n\n var _super = _createSuper(Bold);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Bold, [{\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Bold.prototype), \"optimize\", this).call(this, context);\n\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: \"create\",\n value: function create() {\n return _get(_getPrototypeOf(Bold), \"create\", this).call(this);\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Bold);\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return History; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getLastChangeIndex; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar History = /*#__PURE__*/function (_Module) {\n _inherits(History, _Module);\n\n var _super = _createSuper(History);\n\n function History(quill, options) {\n var _this;\n\n _classCallCheck(this, History);\n\n _this = _super.call(this, quill, options);\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n\n _this.clear();\n\n _this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.TEXT_CHANGE || _this.ignoreChange) return;\n\n if (!_this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true\n }, _this.undo.bind(_assertThisInitialized(_this)));\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n\n if (Object(_utils_has_window__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])() && /Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'y',\n shortKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n }\n\n _this.quill.root.addEventListener('beforeinput', function (event) {\n if (event.inputType === 'historyUndo') {\n _this.undo();\n\n event.preventDefault();\n } else if (event.inputType === 'historyRedo') {\n _this.redo();\n\n event.preventDefault();\n }\n });\n\n return _this;\n }\n\n _createClass(History, [{\n key: \"change\",\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n var base = this.quill.getContents();\n var inverseDelta = delta.invert(base);\n this.stack[dest].push(inverseDelta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(this.quill.scroll, delta);\n this.quill.setSelection(index);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: \"cutoff\",\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: \"record\",\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = changeDelta.invert(oldDelta);\n var timestamp = Date.now();\n\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta);\n } else {\n this.lastRecorded = timestamp;\n }\n\n if (undoDelta.length() === 0) return;\n this.stack.undo.push(undoDelta);\n\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: \"redo\",\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: \"transform\",\n value: function transform(delta) {\n transformStack(this.stack.undo, delta);\n transformStack(this.stack.redo, delta);\n }\n }, {\n key: \"undo\",\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_core_module__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction transformStack(stack, delta) {\n var remoteDelta = delta;\n\n for (var i = stack.length - 1; i >= 0; i -= 1) {\n var oldDelta = stack[i];\n stack[i] = remoteDelta.transform(oldDelta, true);\n remoteDelta = oldDelta.transform(remoteDelta);\n\n if (stack[i].length() === 0) {\n stack.splice(i, 1);\n }\n }\n}\n\nfunction endsWithNewlineChange(scroll, delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) != null;\n });\n }\n\n return false;\n}\n\nfunction getLastChangeIndex(scroll, delta) {\n var deleteLength = delta.reduce(function (length, op) {\n return length + (op.delete || 0);\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n\n if (endsWithNewlineChange(scroll, delta)) {\n changeIndex -= 1;\n }\n\n return changeIndex;\n}\n\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar IE8_DOM_DEFINE = __webpack_require__(85);\nvar anObject = __webpack_require__(33);\nvar toPropertyKey = __webpack_require__(68);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.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) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return makeTableArrowHandler; });\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n\nfunction makeTableArrowHandler(up, formats) {\n return {\n key: up ? 'upArrow' : 'downArrow',\n collapsed: true,\n format: formats,\n handler: function handler(range, context) {\n var key = up ? 'prev' : 'next';\n var line = context.line;\n var cell = line.statics.blotName.indexOf('Line') > -1 ? line.parent : line;\n var targetTablePart = cell.parent.parent[key];\n var targetRow = cell.parent[key] || (targetTablePart === null || targetTablePart === void 0 ? void 0 : targetTablePart.children.head);\n\n if (targetRow != null) {\n if (targetRow.statics.blotName === 'tableRow' || targetRow.statics.blotName === 'tableHeaderRow') {\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_0__[/* default */ \"a\"].sources.USER);\n }\n } else {\n var targetLine = cell.table()[key];\n\n if (targetLine != null) {\n if (up) {\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"].sources.USER);\n }\n }\n }\n\n return false;\n }\n };\n}\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Theme = /*#__PURE__*/function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: \"addModule\",\n value: function addModule(name) {\n var ModuleClass = this.quill.constructor.import(\"modules/\".concat(name));\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n default: Theme\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Theme);\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar isCallable = __webpack_require__(17);\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar getOwnPropertyDescriptor = __webpack_require__(73).f;\nvar createNonEnumerableProperty = __webpack_require__(55);\nvar redefine = __webpack_require__(74);\nvar setGlobal = __webpack_require__(65);\nvar copyConstructorProperties = __webpack_require__(118);\nvar isForced = __webpack_require__(123);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar GUARD_TEXT = \"\\uFEFF\";\n\nvar Embed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Embed, _EmbedBlot);\n\n var _super = _createSuper(Embed);\n\n function Embed(scroll, node) {\n var _this;\n\n _classCallCheck(this, Embed);\n\n _this = _super.call(this, scroll, node);\n _this.contentNode = document.createElement('span');\n\n _this.contentNode.setAttribute('contenteditable', false);\n\n Array.from(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n\n _this.domNode.appendChild(_this.leftGuard);\n\n _this.domNode.appendChild(_this.contentNode);\n\n _this.domNode.appendChild(_this.rightGuard);\n\n return _this;\n }\n\n _createClass(Embed, [{\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(_getPrototypeOf(Embed.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"restore\",\n value: function restore(node) {\n var range;\n var textNode;\n var text = node.data.split(GUARD_TEXT).join('');\n\n if (node === this.leftGuard) {\n if (this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Embed);\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getId; });\nfunction getId() {\n return Math.random().toString(36).slice(2, 6);\n}\n\n/***/ }),\n/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(1);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./formats/table/get_id.js\nvar get_id = __webpack_require__(49);\n\n// CONCATENATED MODULE: ./formats/table/lite.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar TABLE_TAGS = ['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'];\n\nvar BaseCell = /*#__PURE__*/function (_Block) {\n _inherits(BaseCell, _Block);\n\n var _super = _createSuper(BaseCell);\n\n function BaseCell() {\n _classCallCheck(this, BaseCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BaseCell, [{\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: \"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 var _this$row;\n\n return (_this$row = this.row()) === null || _this$row === void 0 ? void 0 : _this$row.table();\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseCell), \"create\", this).call(this);\n\n var attrName = this.dataAttribute;\n\n if (value) {\n node.setAttribute(attrName, value);\n } else {\n node.setAttribute(attrName, tableId());\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n var attrName = this.dataAttribute;\n\n if (domNode.hasAttribute(attrName)) {\n return domNode.getAttribute(attrName);\n }\n\n return undefined;\n }\n }]);\n\n return BaseCell;\n}(block[\"d\" /* default */]);\n\nBaseCell.tagName = ['TD', 'TH'];\n\nvar TableCell = /*#__PURE__*/function (_BaseCell) {\n _inherits(TableCell, _BaseCell);\n\n var _super2 = _createSuper(TableCell);\n\n function TableCell() {\n _classCallCheck(this, TableCell);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(TableCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === TableCell.blotName && value) {\n this.domNode.setAttribute(TableCell.dataAttribute, value);\n } else {\n _get(_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }]);\n\n return TableCell;\n}(BaseCell);\n\nTableCell.blotName = 'table';\nTableCell.dataAttribute = 'data-row';\n\nvar TableHeaderCell = /*#__PURE__*/function (_BaseCell2) {\n _inherits(TableHeaderCell, _BaseCell2);\n\n var _super3 = _createSuper(TableHeaderCell);\n\n function TableHeaderCell() {\n _classCallCheck(this, TableHeaderCell);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(TableHeaderCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === TableHeaderCell.blotName && value) {\n this.domNode.setAttribute(TableHeaderCell.dataAttribute, value);\n } else {\n _get(_getPrototypeOf(TableHeaderCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }]);\n\n return TableHeaderCell;\n}(BaseCell);\n\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = 'data-header-row';\n\nvar lite_BaseRow = /*#__PURE__*/function (_Container) {\n _inherits(BaseRow, _Container);\n\n var _super4 = _createSuper(BaseRow);\n\n function BaseRow() {\n _classCallCheck(this, BaseRow);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(BaseRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseRow.prototype), \"checkMerge\", this).call(this) && Object(is_defined[\"a\" /* default */])(this.next.children.head)) {\n var formatName = this.childFormatName;\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[formatName] === thisTail[formatName] && thisHead[formatName] === nextHead[formatName] && thisHead[formatName] === nextTail[formatName];\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 = _get(_getPrototypeOf(BaseRow.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n\n var formatName = this.childFormatName;\n this.children.forEach(function (child) {\n if (!Object(is_defined[\"a\" /* default */])(child.next)) {\n return;\n }\n\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n\n if (childFormats[formatName] !== nextFormats[formatName]) {\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 var _this$parent;\n\n return (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.parent;\n }\n }]);\n\n return BaseRow;\n}(container[\"a\" /* default */]);\n\nlite_BaseRow.tagName = 'TR';\n\nvar TableRow = /*#__PURE__*/function (_BaseRow) {\n _inherits(TableRow, _BaseRow);\n\n var _super5 = _createSuper(TableRow);\n\n function TableRow(scroll, domNode) {\n var _this2;\n\n _classCallCheck(this, TableRow);\n\n _this2 = _super5.call(this, scroll, domNode);\n _this2.childFormatName = 'table';\n return _this2;\n }\n\n return TableRow;\n}(lite_BaseRow);\n\nTableRow.blotName = 'tableRow';\n\nvar TableHeaderRow = /*#__PURE__*/function (_BaseRow2) {\n _inherits(TableHeaderRow, _BaseRow2);\n\n var _super6 = _createSuper(TableHeaderRow);\n\n function TableHeaderRow(scroll, domNode) {\n var _this3;\n\n _classCallCheck(this, TableHeaderRow);\n\n _this3 = _super6.call(this, scroll, domNode);\n _this3.childFormatName = 'tableHeaderCell';\n return _this3;\n }\n\n return TableHeaderRow;\n}(lite_BaseRow);\n\nTableHeaderRow.blotName = 'tableHeaderRow';\n\nvar TableBody = /*#__PURE__*/function (_Container2) {\n _inherits(TableBody, _Container2);\n\n var _super7 = _createSuper(TableBody);\n\n function TableBody() {\n _classCallCheck(this, TableBody);\n\n return _super7.apply(this, arguments);\n }\n\n return TableBody;\n}(container[\"a\" /* default */]);\n\nTableBody.blotName = 'tableBody';\nTableBody.tagName = ['TBODY'];\n\nvar TableHeader = /*#__PURE__*/function (_Container3) {\n _inherits(TableHeader, _Container3);\n\n var _super8 = _createSuper(TableHeader);\n\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n\n return _super8.apply(this, arguments);\n }\n\n return TableHeader;\n}(container[\"a\" /* default */]);\n\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = ['THEAD'];\n\nvar lite_TableContainer = /*#__PURE__*/function (_Container4) {\n _inherits(TableContainer, _Container4);\n\n var _super9 = _createSuper(TableContainer);\n\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var headerRows = this.descendants(TableHeaderRow);\n var bodyRows = this.descendants(TableRow);\n var maxColCount = this.getMaxTableColCount(headerRows, bodyRows);\n this.balanceRows(maxColCount, headerRows, TableHeaderCell);\n this.balanceRows(maxColCount, bodyRows, TableCell);\n }\n }, {\n key: \"getMaxTableColCount\",\n value: function getMaxTableColCount(headerRows, bodyRows) {\n return Math.max(this.getMaxRowColCount(headerRows), this.getMaxRowColCount(bodyRows));\n }\n }, {\n key: \"getMaxRowColCount\",\n value: function getMaxRowColCount(rows) {\n return Math.max.apply(Math, _toConsumableArray(rows.map(function (row) {\n return row.children.length;\n })));\n }\n }, {\n key: \"balanceRows\",\n value: function balanceRows(maxColCount, rows, CellClass) {\n var _this4 = this;\n\n rows.forEach(function (row) {\n new Array(maxColCount - row.children.length).fill(0).forEach(function () {\n var value;\n\n if (Object(is_defined[\"a\" /* default */])(row.children.head)) {\n value = CellClass.formats(row.children.head.domNode);\n }\n\n var blot = _this4.scroll.create(CellClass.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 _this5 = this;\n\n [TableHeader, TableBody].forEach(function (blot) {\n var _this5$descendants = _this5.descendants(blot),\n _this5$descendants2 = _slicedToArray(_this5$descendants, 1),\n tablePart = _this5$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(tablePart) || !Object(is_defined[\"a\" /* default */])(tablePart.children.head)) {\n return;\n }\n\n tablePart.children.forEach(function (row) {\n var cell = row.children.at(index);\n\n if (Object(is_defined[\"a\" /* default */])(cell)) {\n cell.remove();\n }\n });\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this6 = this;\n\n [TableHeader, TableBody].forEach(function (blot) {\n var _this6$descendants = _this6.descendants(blot),\n _this6$descendants2 = _slicedToArray(_this6$descendants, 1),\n tablePart = _this6$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(tablePart) || !Object(is_defined[\"a\" /* default */])(tablePart.children.head)) {\n return;\n }\n\n var CellBlot = blot === TableHeader ? TableHeaderCell : TableCell;\n tablePart.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = CellBlot.formats(row.children.head.domNode);\n\n var cell = _this6.scroll.create(CellBlot.blotName, value);\n\n row.insertBefore(cell, ref);\n });\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this7 = this;\n\n var _this$descendants = this.descendants(TableBody),\n _this$descendants2 = _slicedToArray(_this$descendants, 1),\n body = _this$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(body) || !Object(is_defined[\"a\" /* default */])(body.children.head)) {\n return;\n }\n\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName);\n body.children.head.children.forEach(function () {\n var cell = _this7.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: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var _this8 = this;\n\n var _this$descendants3 = this.descendants(TableHeader),\n _this$descendants4 = _slicedToArray(_this$descendants3, 1),\n header = _this$descendants4[0];\n\n var _this$descendants5 = this.descendants(TableBody),\n _this$descendants6 = _slicedToArray(_this$descendants5, 1),\n body = _this$descendants6[0];\n\n if (Object(is_defined[\"a\" /* default */])(header) || !Object(is_defined[\"a\" /* default */])(body) || !Object(is_defined[\"a\" /* default */])(body.children.head)) {\n return;\n }\n\n var id = tableId();\n var newHeader = this.scroll.create(TableHeader.blotName);\n var row = this.scroll.create(TableHeaderRow.blotName);\n var ref = this.children.at(0);\n newHeader.appendChild(row);\n body.children.head.children.forEach(function () {\n var cell = _this8.scroll.create(TableHeaderCell.blotName, id);\n\n row.appendChild(cell);\n cell.optimize();\n });\n this.insertBefore(newHeader, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n return Object(is_defined[\"a\" /* default */])(body) ? body.children.map(function (row) {\n return row;\n }) : [];\n }\n }]);\n\n return TableContainer;\n}(container[\"a\" /* default */]);\n\nlite_TableContainer.blotName = 'tableContainer';\nlite_TableContainer.tagName = 'TABLE';\nlite_TableContainer.allowedChildren = [TableHeader, TableBody];\nTableBody.requiredContainer = lite_TableContainer;\nTableHeader.requiredContainer = lite_TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nTableHeader.allowedChildren = [TableHeaderRow];\nTableHeaderRow.requiredContainer = TableHeader;\nTableHeaderRow.allowedChildren = [TableHeaderCell];\nTableHeaderCell.requiredContainer = TableHeaderRow;\n\nfunction tableId() {\n return \"row-\".concat(Object(get_id[\"a\" /* default */])());\n}\n\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(26);\n\n// EXTERNAL MODULE: ./modules/table/utils/make_table_arrow_handler.js\nvar make_table_arrow_handler = __webpack_require__(43);\n\n// CONCATENATED MODULE: ./modules/table/utils/insert_pr_below.js\n\n\nfunction insertParagraphAbove(_ref) {\n var quill = _ref.quill,\n index = _ref.index,\n range = _ref.range;\n var insertIndex = index - 1;\n var delta = new Delta_default.a().retain(insertIndex).insert('\\n');\n quill.updateContents(delta, core_quill[\"a\" /* default */].sources.USER);\n quill.setSelection(range.index + 1, range.length, core_quill[\"a\" /* default */].sources.SILENT);\n}\n// CONCATENATED MODULE: ./modules/table/utils/insert_pr_above.js\n\n\nfunction insertParagraphBelow(_ref) {\n var quill = _ref.quill,\n index = _ref.index,\n table = _ref.table;\n var insertIndex = index + table.length();\n var delta = new Delta_default.a().retain(insertIndex).insert('\\n');\n quill.updateContents(delta, core_quill[\"a\" /* default */].sources.USER);\n quill.setSelection(insertIndex, core_quill[\"a\" /* default */].sources.USER);\n}\n// CONCATENATED MODULE: ./modules/table/utils/table_side.js\nfunction tableSide(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// CONCATENATED MODULE: ./modules/table/lite.js\nvar _excluded = [\"width\", \"height\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction lite_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { lite_typeof = function _typeof(obj) { return typeof obj; }; } else { lite_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return lite_typeof(obj); }\n\nfunction lite_slicedToArray(arr, i) { return lite_arrayWithHoles(arr) || lite_iterableToArrayLimit(arr, i) || lite_unsupportedIterableToArray(arr, i) || lite_nonIterableRest(); }\n\nfunction lite_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction lite_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return lite_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return lite_arrayLikeToArray(o, minLen); }\n\nfunction lite_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction lite_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction lite_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction lite_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction lite_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction lite_createClass(Constructor, protoProps, staticProps) { if (protoProps) lite_defineProperties(Constructor.prototype, protoProps); if (staticProps) lite_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction lite_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) lite_setPrototypeOf(subClass, superClass); }\n\nfunction lite_setPrototypeOf(o, p) { lite_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return lite_setPrototypeOf(o, p); }\n\nfunction lite_createSuper(Derived) { var hasNativeReflectConstruct = lite_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = lite_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = lite_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return lite_possibleConstructorReturn(this, result); }; }\n\nfunction lite_possibleConstructorReturn(self, call) { if (call && (lite_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return lite_assertThisInitialized(self); }\n\nfunction lite_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction lite_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction lite_getPrototypeOf(o) { lite_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return lite_getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\nvar ELEMENT_NODE = 1;\nvar EMPTY_RESULT = [null, null, null, -1];\n\nvar lite_TableLite = /*#__PURE__*/function (_Module) {\n lite_inherits(TableLite, _Module);\n\n var _super = lite_createSuper(TableLite);\n\n function TableLite() {\n var _this;\n\n lite_classCallCheck(this, TableLite);\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 _this.tableBlots = [TableCell.blotName, TableHeaderCell.blotName];\n\n _this.integrateClipboard();\n\n _this.addKeyboardHandlers();\n\n _this.listenBalanceCells();\n\n return _this;\n }\n\n lite_createClass(TableLite, [{\n key: \"integrateClipboard\",\n value: function integrateClipboard() {\n var _this2 = this;\n\n this.tableBlots.forEach(function (blotName) {\n return _this2.quill.clipboard.addTableBlot(blotName);\n });\n this.quill.clipboard.addMatcher('tr', matchTable);\n this.quill.clipboard.addMatcher(ELEMENT_NODE, matchDimensions);\n }\n }, {\n key: \"addKeyboardHandlers\",\n value: function addKeyboardHandlers() {\n var _this3 = this;\n\n var bindings = TableLite.keyboardBindings;\n Object.keys(bindings).forEach(function (name) {\n if (bindings[name]) {\n _this3.quill.keyboard.addBinding(bindings[name]);\n }\n });\n }\n }, {\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(lite_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 = lite_slicedToArray(_this$getTable, 3),\n table = _this$getTable2[0],\n cell = _this$getTable2[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n table.deleteColumn(cell.cellOffset());\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = lite_slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n\n if (!Object(is_defined[\"a\" /* default */])(row)) {\n return;\n }\n\n row.remove();\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = lite_slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n\n if (!Object(is_defined[\"a\" /* default */])(table)) {\n return;\n }\n\n var offset = table.offset();\n table.remove();\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(offset, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n\n if (!Object(is_defined[\"a\" /* default */])(range)) {\n return EMPTY_RESULT;\n }\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = lite_slicedToArray(_this$quill$getLine, 2),\n cell = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n if (!Object(is_defined[\"a\" /* default */])(cell) || this.tableBlots.indexOf(cell.statics.blotName) === -1) {\n return EMPTY_RESULT;\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 = lite_slicedToArray(_this$getTable7, 3),\n table = _this$getTable8[0],\n row = _this$getTable8[1],\n cell = _this$getTable8[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n var shift = row.rowOffset();\n\n if (offset === 0) {\n shift += 1;\n }\n\n this.quill.setSelection(range.index + shift, range.length, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = lite_slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n\n if (offset > 0) {\n this.quill.setSelection(range, core_quill[\"a\" /* default */].sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var range = this.quill.getSelection();\n\n var _this$getTable11 = this.getTable(range),\n _this$getTable12 = lite_slicedToArray(_this$getTable11, 3),\n table = _this$getTable12[0],\n cell = _this$getTable12[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n table.insertHeaderRow();\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n\n if (!Object(is_defined[\"a\" /* default */])(range)) {\n return;\n }\n\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\" /* default */].sources.USER);\n this.quill.setSelection(range.index, core_quill[\"a\" /* default */].sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"tableFormats\",\n value: function tableFormats() {\n return this.tableBlots;\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this4 = this;\n\n this.quill.on(core_quill[\"a\" /* default */].events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this4.quill.once(core_quill[\"a\" /* default */].events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== core_quill[\"a\" /* default */].sources.USER) return;\n\n _this4.balanceTables();\n });\n\n return true;\n }\n\n return false;\n });\n });\n this.quill.on(core_quill[\"a\" /* default */].events.CONTENT_SETTED, function () {\n _this4.quill.once(core_quill[\"a\" /* default */].events.TEXT_CHANGE, function () {\n _this4.balanceTables();\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n core_quill[\"a\" /* default */].register(TableHeaderCell, true);\n core_quill[\"a\" /* default */].register(TableCell, true);\n core_quill[\"a\" /* default */].register(TableHeaderRow, true);\n core_quill[\"a\" /* default */].register(TableRow, true);\n core_quill[\"a\" /* default */].register(TableBody, true);\n core_quill[\"a\" /* default */].register(TableHeader, true);\n core_quill[\"a\" /* default */].register(lite_TableContainer, true);\n }\n }]);\n\n return TableLite;\n}(core_module[\"a\" /* default */]);\n\nlite_TableLite.keyboardBindings = {\n 'table backspace': {\n key: 'backspace',\n format: ['table', 'tableHeaderCell'],\n collapsed: true,\n offset: 0,\n handler: function handler() {}\n },\n 'table delete': {\n key: 'del',\n format: ['table', 'tableHeaderCell'],\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 quill = this.quill;\n\n var _module$getTable = module.getTable(range),\n _module$getTable2 = lite_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(row, cell, offset);\n var hasHead = table.children.length > 1 && table.children.head;\n\n if (shift == null || shift < 0 && hasHead) {\n return;\n }\n\n var index = table.offset();\n\n if (shift < 0) {\n insertParagraphAbove({\n quill: quill,\n index: index,\n range: range\n });\n } else {\n insertParagraphBelow({\n quill: quill,\n index: index,\n table: table\n });\n }\n }\n }\n },\n 'table header enter': {\n key: 'enter',\n shiftKey: null,\n format: ['tableHeaderCell'],\n handler: function handler(range) {\n var module = this.quill.getModule('table');\n\n if (module) {\n var quill = this.quill;\n\n var _module$getTable3 = module.getTable(range),\n _module$getTable4 = lite_slicedToArray(_module$getTable3, 4),\n table = _module$getTable4[0],\n row = _module$getTable4[1],\n cell = _module$getTable4[2],\n offset = _module$getTable4[3];\n\n var shift = tableSide(row, cell, offset);\n\n if (shift == null) {\n return;\n }\n\n var index = table.offset();\n var hasBody = table.children.length > 1 && table.children.tail;\n\n if (shift < 0 || shift > 0 && hasBody) {\n insertParagraphAbove({\n quill: quill,\n index: index,\n range: range\n });\n } else {\n insertParagraphBelow({\n quill: quill,\n index: index,\n table: table\n });\n }\n }\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['table', 'tableHeaderCell'],\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[\"a\" /* default */].sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), core_quill[\"a\" /* default */].sources.USER);\n }\n }\n },\n 'table down': Object(make_table_arrow_handler[\"a\" /* default */])(false, ['table', 'tableHeaderCell']),\n 'table up': Object(make_table_arrow_handler[\"a\" /* default */])(true, ['table', 'tableHeaderCell'])\n};\n\nfunction matchTable(node, delta) {\n var table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\n var isHeaderRow = node.parentNode.tagName === 'THEAD' ? true : null;\n var rows = Array.from(table.querySelectorAll('tr'));\n var row = rows.indexOf(node) + 1;\n return Object(clipboard[\"a\" /* applyFormat */])(delta, isHeaderRow ? 'tableHeaderCell' : 'table', row);\n}\n\nfunction matchDimensions(node, delta) {\n var isTableNode = TABLE_TAGS.indexOf(node.tagName) !== -1;\n return delta.reduce(function (newDelta, op) {\n var isEmbed = lite_typeof(op.insert) === 'object';\n var attributes = op.attributes || {};\n\n var width = attributes.width,\n height = attributes.height,\n rest = _objectWithoutProperties(attributes, _excluded);\n\n var formats = attributes.table || attributes.tableHeaderCell || isTableNode || isEmbed ? attributes : _objectSpread({}, rest);\n return newDelta.insert(op.insert, formats);\n }, new Delta_default.a());\n}\n\n/* harmony default export */ var lite = __webpack_exports__[\"a\"] = (lite_TableLite);\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(54);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar definePropertyModule = __webpack_require__(42);\nvar createPropertyDescriptor = __webpack_require__(56);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(117);\nvar requireObjectCoercible = __webpack_require__(54);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(61);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SyntaxCodeBlock; });\n/* unused harmony export CodeToken */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Syntax; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(13);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"]('code-token', 'hljs', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE\n});\n\nvar CodeToken = /*#__PURE__*/function (_Inline) {\n _inherits(CodeToken, _Inline);\n\n var _super = _createSuper(CodeToken);\n\n 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__[/* default */ \"c\"].className)) {\n return _get(_getPrototypeOf(CodeToken), \"formats\", this).call(this, node, scroll);\n }\n\n node = node.parentNode;\n }\n\n return undefined;\n }\n }]);\n\n return CodeToken;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\n\nvar SyntaxCodeBlock = /*#__PURE__*/function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n var _super2 = _createSuper(SyntaxCodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: \"format\",\n 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__[/* default */ \"c\"]);\n\nvar SyntaxCodeBlockContainer = /*#__PURE__*/function (_CodeBlockContainer) {\n _inherits(SyntaxCodeBlockContainer, _CodeBlockContainer);\n\n var _super3 = _createSuper(SyntaxCodeBlockContainer);\n\n function SyntaxCodeBlockContainer() {\n _classCallCheck(this, SyntaxCodeBlockContainer);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlockContainer, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"attach\", this).call(this);\n\n this.forceNext = false;\n this.scroll.emitMount(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n }\n\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }, {\n key: \"highlight\",\n value: function highlight(_highlight) {\n var _this2 = this;\n\n var forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.children.head == null) return;\n var nodes = Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this2.uiNode;\n });\n var text = \"\".concat(nodes.map(function (node) {\n return node.textContent;\n }).join('\\n'), \"\\n\");\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (forced || this.forceNext || this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n var oldDelta = this.children.reduce(function (delta, child) {\n return delta.concat(Object(_blots_block__WEBPACK_IMPORTED_MODULE_5__[/* blockDelta */ \"b\"])(child, false));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n\n var delta = _highlight(text, language);\n\n oldDelta.diff(delta).reduce(function (index, _ref) {\n var retain = _ref.retain,\n attributes = _ref.attributes;\n // Should be all retains\n if (!retain) return index;\n\n if (attributes) {\n Object.keys(attributes).forEach(function (format) {\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].indexOf(format) !== -1) {\n _this2.formatAt(index, retain, format, attributes[format]);\n }\n });\n }\n\n return index + retain;\n }, 0);\n }\n\n this.cachedText = text;\n this.forceNext = false;\n }\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n var _this$children$find = this.children.find(index),\n _this$children$find2 = _slicedToArray(_this$children$find, 1),\n codeBlock = _this$children$find2[0];\n\n var language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n return \"
    \\n\").concat(this.code(index, length), \"\\n
    \");\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (language !== this.uiNode.value) {\n this.uiNode.value = language;\n }\n }\n }\n }]);\n\n return SyntaxCodeBlockContainer;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* CodeBlockContainer */ \"b\"]);\n\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"], _blots_text__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]];\n\nvar Syntax = /*#__PURE__*/function (_Module) {\n _inherits(Syntax, _Module);\n\n var _super4 = _createSuper(Syntax);\n\n function Syntax(quill, options) {\n var _this3;\n\n _classCallCheck(this, Syntax);\n\n _this3 = _super4.call(this, quill, options);\n\n if (_this3.options.hljs == null) {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n\n _this3.languages = _this3.options.languages.reduce(function (memo, _ref2) {\n var key = _ref2.key;\n memo[key] = true;\n return memo;\n }, {});\n _this3.highlightBlot = _this3.highlightBlot.bind(_assertThisInitialized(_this3));\n\n _this3.initListener();\n\n _this3.initTimer();\n\n return _this3;\n }\n\n _createClass(Syntax, [{\n key: \"initListener\",\n value: function initListener() {\n var _this4 = this;\n\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, function (blot) {\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n\n var select = _this4.quill.root.ownerDocument.createElement('select');\n\n _this4.options.languages.forEach(function (_ref3) {\n var key = _ref3.key,\n label = _ref3.label;\n var option = select.ownerDocument.createElement('option');\n option.textContent = label;\n option.setAttribute('value', key);\n select.appendChild(option);\n });\n\n select.addEventListener('change', function () {\n blot.format(SyntaxCodeBlock.blotName, select.value);\n\n _this4.quill.root.focus(); // Prevent scrolling\n\n\n _this4.highlight(blot, true);\n });\n\n if (blot.uiNode == null) {\n blot.attachUI(select);\n\n if (blot.children.head) {\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n }\n }\n });\n }\n }, {\n key: \"initTimer\",\n value: function initTimer() {\n var _this5 = this;\n\n var timer = null;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this5.highlight();\n\n timer = null;\n }, _this5.options.interval);\n });\n }\n }, {\n key: \"highlight\",\n value: function highlight() {\n var _this6 = this;\n\n var blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.quill.selection.composing) return;\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n var range = this.quill.getSelection();\n var blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n blots.forEach(function (container) {\n container.highlight(_this6.highlightBlot, force);\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n\n if (range != null) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"highlightBlot\",\n value: function highlightBlot(text) {\n var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n language = this.languages[language] ? language : 'plain';\n\n if (language === 'plain') {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_8__[/* escapeText */ \"b\"])(text).split('\\n').reduce(function (delta, line, i) {\n if (i !== 0) {\n delta.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n }\n\n return delta.insert(line);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n var container = this.quill.root.ownerDocument.createElement('div');\n container.classList.add(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].className);\n container.innerHTML = this.options.hljs.highlight(language, text).value;\n return Object(_clipboard__WEBPACK_IMPORTED_MODULE_10__[/* traverse */ \"d\"])(this.quill.scroll, container, [function (node, delta) {\n var value = TokenAttributor.value(node);\n\n if (value) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length(), _defineProperty({}, CodeToken.blotName, value)));\n }\n\n return delta;\n }], [function (node, delta) {\n return node.data.split('\\n').reduce(function (memo, nodeText, i) {\n if (i !== 0) memo.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n }], [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(CodeToken, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlock, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlockContainer, true);\n }\n }]);\n\n return Syntax;\n}(_core_module__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]);\n\nSyntax.DEFAULTS = {\n hljs: function () {\n if (Object(_utils_has_window__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"])()) {\n return window.hljs;\n }\n\n return null;\n }(),\n interval: 1000,\n languages: [{\n key: 'plain',\n label: 'Plain'\n }, {\n key: 'bash',\n label: 'Bash'\n }, {\n key: 'cpp',\n label: 'C++'\n }, {\n key: 'cs',\n label: 'C#'\n }, {\n key: 'css',\n label: 'CSS'\n }, {\n key: 'diff',\n label: 'Diff'\n }, {\n key: 'xml',\n label: 'HTML/XML'\n }, {\n key: 'java',\n label: 'Java'\n }, {\n key: 'javascript',\n label: 'Javascript'\n }, {\n key: 'markdown',\n label: 'Markdown'\n }, {\n key: 'php',\n label: 'PHP'\n }, {\n key: 'python',\n label: 'Python'\n }, {\n key: 'ruby',\n label: 'Ruby'\n }, {\n key: 'sql',\n label: 'SQL'\n }]\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(63);\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(109);\nvar isCallable = __webpack_require__(17);\nvar classofRaw = __webpack_require__(66);\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar setGlobal = __webpack_require__(65);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\nvar store = __webpack_require__(64);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(113);\nvar isSymbol = __webpack_require__(87);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(70);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\nvar tryToString = __webpack_require__(114);\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(80);\nvar uid = __webpack_require__(81);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar propertyIsEnumerableModule = __webpack_require__(88);\nvar createPropertyDescriptor = __webpack_require__(56);\nvar toIndexedObject = __webpack_require__(57);\nvar toPropertyKey = __webpack_require__(68);\nvar has = __webpack_require__(29);\nvar IE8_DOM_DEFINE = __webpack_require__(85);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.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) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar isCallable = __webpack_require__(17);\nvar has = __webpack_require__(29);\nvar createNonEnumerableProperty = __webpack_require__(55);\nvar setGlobal = __webpack_require__(65);\nvar inspectSource = __webpack_require__(67);\nvar InternalStateModule = __webpack_require__(84);\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(89).CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(33);\nvar defineProperties = __webpack_require__(125);\nvar enumBugKeys = __webpack_require__(75);\nvar hiddenKeys = __webpack_require__(72);\nvar html = __webpack_require__(126);\nvar documentCreateElement = __webpack_require__(86);\nvar sharedKey = __webpack_require__(71);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Iterator_1 = __importDefault(__webpack_require__(103));\nvar Op;\n(function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n Op.iterator = iterator;\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports.default = Op;\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(1);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar quill = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./formats/table/get_id.js\nvar get_id = __webpack_require__(49);\n\n// CONCATENATED MODULE: ./formats/table/index.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar CELL_IDENTITY_KEYS = ['row', 'cell'];\nvar TABLE_TAGS = ['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'];\n\nvar CellLine = /*#__PURE__*/function (_Block) {\n _inherits(CellLine, _Block);\n\n var _super = _createSuper(CellLine);\n\n function CellLine() {\n _classCallCheck(this, CellLine);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CellLine, [{\n key: \"optimize\",\n value: function optimize() {\n var _get2;\n\n var rowId = this.domNode.getAttribute('data-row');\n\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName, {\n row: rowId\n });\n }\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(CellLine.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (CELL_IDENTITY_KEYS.indexOf(name) > -1) {\n var attrName = \"data-\".concat(name);\n\n if (value) {\n this.domNode.setAttribute(attrName, value);\n } else {\n this.domNode.removeAttribute(attrName);\n }\n } else {\n _get(_getPrototypeOf(CellLine.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"cell\",\n value: function cell() {\n return this.parent;\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(CellLine), \"create\", this).call(this, value);\n\n CELL_IDENTITY_KEYS.forEach(function (key) {\n var _value$key;\n\n var identityMarker = key === 'row' ? tableId : table_cellId;\n node.setAttribute(\"data-\".concat(key), (_value$key = value[key]) !== null && _value$key !== void 0 ? _value$key : identityMarker());\n });\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return CELL_IDENTITY_KEYS.reduce(function (formats, attribute) {\n var attrName = \"data-\".concat(attribute);\n\n if (domNode.hasAttribute(attrName)) {\n formats[attribute] = domNode.getAttribute(attrName) || undefined;\n }\n\n return formats;\n }, {});\n }\n }]);\n\n return CellLine;\n}(block[\"d\" /* default */]);\n\nCellLine.blotName = 'tableCellLine';\nCellLine.className = 'ql-table-cell-line';\nCellLine.tagName = 'P';\n\nvar HeaderCellLine = /*#__PURE__*/function (_CellLine) {\n _inherits(HeaderCellLine, _CellLine);\n\n var _super2 = _createSuper(HeaderCellLine);\n\n function HeaderCellLine() {\n _classCallCheck(this, HeaderCellLine);\n\n return _super2.apply(this, arguments);\n }\n\n return HeaderCellLine;\n}(CellLine);\n\nHeaderCellLine.blotName = 'tableHeaderCellLine';\nHeaderCellLine.className = 'ql-table-header-cell-line';\n\nvar BaseCell = /*#__PURE__*/function (_Container) {\n _inherits(BaseCell, _Container);\n\n var _super3 = _createSuper(BaseCell);\n\n function BaseCell() {\n _classCallCheck(this, BaseCell);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(BaseCell, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseCell.prototype), \"checkMerge\", this).call(this) && this.next.children.head != null) {\n var thisHead = this.children.head.formats()[this.children.head.statics.blotName];\n var thisTail = this.children.tail.formats()[this.children.tail.statics.blotName];\n var nextHead = this.next.children.head.formats()[this.next.children.head.statics.blotName];\n var nextTail = this.next.children.tail.formats()[this.next.children.tail.statics.blotName];\n return thisHead.cell === thisTail.cell && thisHead.cell === nextHead.cell && thisHead.cell === nextTail.cell;\n }\n\n return false;\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return BaseCell.cellFormats(this.domNode);\n }\n }, {\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: \"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 var _this$row;\n\n return (_this$row = this.row()) === null || _this$row === void 0 ? void 0 : _this$row.table();\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _this$domNode$getAttr, _get3;\n\n var rowId = (_this$domNode$getAttr = this.domNode.getAttribute('data-row')) !== null && _this$domNode$getAttr !== void 0 ? _this$domNode$getAttr : this.domNode.getAttribute('data-header-row');\n\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName, {\n row: rowId\n });\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n (_get3 = _get(_getPrototypeOf(BaseCell.prototype), \"optimize\", this)).call.apply(_get3, [this].concat(args));\n }\n }], [{\n key: \"cellFormats\",\n value: function cellFormats(domNode) {\n var formats = {};\n\n if (domNode.hasAttribute('data-row') || domNode.hasAttribute('data-header-row')) {\n var _domNode$getAttribute;\n\n formats.row = (_domNode$getAttribute = domNode.getAttribute('data-row')) !== null && _domNode$getAttribute !== void 0 ? _domNode$getAttribute : domNode.getAttribute('data-header-row');\n }\n\n return formats;\n }\n }]);\n\n return BaseCell;\n}(container[\"a\" /* default */]);\n\nBaseCell.tagName = ['TD', 'TH'];\n\nvar TableCell = /*#__PURE__*/function (_BaseCell) {\n _inherits(TableCell, _BaseCell);\n\n var _super4 = _createSuper(TableCell);\n\n function TableCell() {\n _classCallCheck(this, TableCell);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(TableCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (['row'].indexOf(name) > -1) {\n this.domNode.setAttribute(\"data-\".concat(name), value);\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n } else {\n _get(_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableCell), \"create\", this).call(this);\n\n var attrName = 'data-row';\n\n if (value !== null && value !== void 0 && value.row) {\n node.setAttribute(attrName, value.row);\n }\n\n return node;\n }\n }]);\n\n return TableCell;\n}(BaseCell);\n\nTableCell.blotName = 'tableCell';\nTableCell.className = 'ql-table-data-cell';\nTableCell.dataAttribute = 'data-row';\n\nvar TableHeaderCell = /*#__PURE__*/function (_BaseCell2) {\n _inherits(TableHeaderCell, _BaseCell2);\n\n var _super5 = _createSuper(TableHeaderCell);\n\n function TableHeaderCell() {\n _classCallCheck(this, TableHeaderCell);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(TableHeaderCell, [{\n key: \"format\",\n value: function format(name, value) {\n if (['row'].indexOf(name) > -1) {\n this.domNode.setAttribute(\"data-\".concat(name), value);\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n } else {\n _get(_getPrototypeOf(TableHeaderCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableHeaderCell), \"create\", this).call(this);\n\n var attrName = 'data-header-row';\n\n if (value && value.row) {\n node.setAttribute(attrName, value.row);\n }\n\n return node;\n }\n }]);\n\n return TableHeaderCell;\n}(BaseCell);\n\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.className = 'ql-table-header-cell';\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = 'data-header-row';\n\nvar table_BaseRow = /*#__PURE__*/function (_Container2) {\n _inherits(BaseRow, _Container2);\n\n var _super6 = _createSuper(BaseRow);\n\n function BaseRow() {\n _classCallCheck(this, BaseRow);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(BaseRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (_get(_getPrototypeOf(BaseRow.prototype), \"checkMerge\", this).call(this) && Object(is_defined[\"a\" /* default */])(this.next.children.head)) {\n var formatName = 'row';\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[formatName] === thisTail[formatName] && thisHead[formatName] === nextHead[formatName] && thisHead[formatName] === nextTail[formatName];\n }\n\n return false;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get4,\n _this = this;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n (_get4 = _get(_getPrototypeOf(BaseRow.prototype), \"optimize\", this)).call.apply(_get4, [this].concat(args));\n\n var formatName = this.childFormatName;\n this.children.forEach(function (child) {\n if (!Object(is_defined[\"a\" /* default */])(child.next)) {\n return;\n }\n\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n\n if (childFormats[formatName] !== nextFormats[formatName]) {\n var next = _this.splitAfter(child);\n\n if (next) {\n next.optimize();\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 var _this$parent;\n\n return (_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.parent;\n }\n }, {\n key: \"formats\",\n value: function formats() {\n var _this2 = this;\n\n return ['row'].reduce(function (formats, attrPart) {\n var attrName = \"data-\".concat(attrPart);\n\n if (_this2.domNode.hasAttribute(attrName)) {\n formats[attrName] = _this2.domNode.getAttribute(attrName);\n }\n\n return formats;\n }, {});\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseRow), \"create\", this).call(this, value);\n\n if (value !== null && value !== void 0 && value.row) {\n node.setAttribute('data-row', value.row);\n }\n\n return node;\n }\n }]);\n\n return BaseRow;\n}(container[\"a\" /* default */]);\n\ntable_BaseRow.tagName = 'TR';\n\nvar TableRow = /*#__PURE__*/function (_BaseRow) {\n _inherits(TableRow, _BaseRow);\n\n var _super7 = _createSuper(TableRow);\n\n function TableRow(scroll, domNode) {\n var _this3;\n\n _classCallCheck(this, TableRow);\n\n _this3 = _super7.call(this, scroll, domNode);\n _this3.childFormatName = 'table';\n return _this3;\n }\n\n return TableRow;\n}(table_BaseRow);\n\nTableRow.blotName = 'tableRow';\n\nvar TableHeaderRow = /*#__PURE__*/function (_BaseRow2) {\n _inherits(TableHeaderRow, _BaseRow2);\n\n var _super8 = _createSuper(TableHeaderRow);\n\n function TableHeaderRow(scroll, domNode) {\n var _this4;\n\n _classCallCheck(this, TableHeaderRow);\n\n _this4 = _super8.call(this, scroll, domNode);\n _this4.childFormatName = 'tableHeaderCell';\n return _this4;\n }\n\n return TableHeaderRow;\n}(table_BaseRow);\n\nTableHeaderRow.blotName = 'tableHeaderRow';\n\nvar TableBody = /*#__PURE__*/function (_Container3) {\n _inherits(TableBody, _Container3);\n\n var _super9 = _createSuper(TableBody);\n\n function TableBody() {\n _classCallCheck(this, TableBody);\n\n return _super9.apply(this, arguments);\n }\n\n return TableBody;\n}(container[\"a\" /* default */]);\n\nTableBody.blotName = 'tableBody';\nTableBody.tagName = 'TBODY';\n\nvar TableHeader = /*#__PURE__*/function (_Container4) {\n _inherits(TableHeader, _Container4);\n\n var _super10 = _createSuper(TableHeader);\n\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n\n return _super10.apply(this, arguments);\n }\n\n return TableHeader;\n}(container[\"a\" /* default */]);\n\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = 'THEAD';\n\nvar table_TableContainer = /*#__PURE__*/function (_Container5) {\n _inherits(TableContainer, _Container5);\n\n var _super11 = _createSuper(TableContainer);\n\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n\n return _super11.apply(this, arguments);\n }\n\n _createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var headerRows = this.descendants(TableHeaderRow);\n var bodyRows = this.descendants(TableRow);\n var maxColCount = this.getMaxTableColCount(headerRows, bodyRows);\n this.balanceRows(maxColCount, headerRows, TableHeaderCell);\n this.balanceRows(maxColCount, bodyRows, TableCell);\n }\n }, {\n key: \"getMaxTableColCount\",\n value: function getMaxTableColCount(headerRows, bodyRows) {\n return Math.max(this.getMaxRowColCount(headerRows), this.getMaxRowColCount(bodyRows));\n }\n }, {\n key: \"getMaxRowColCount\",\n value: function getMaxRowColCount(rows) {\n return Math.max.apply(Math, _toConsumableArray(rows.map(function (row) {\n return row.children.length;\n })));\n }\n }, {\n key: \"balanceRows\",\n value: function balanceRows(maxColCount, rows, CellClass) {\n var _this5 = this;\n\n rows.forEach(function (row) {\n new Array(maxColCount - row.children.length).fill(0).forEach(function () {\n var value;\n\n if (Object(is_defined[\"a\" /* default */])(row.children.head)) {\n value = CellClass.cellFormats(row.children.head.domNode);\n }\n\n var blot = _this5.scroll.create(CellClass.blotName, value);\n\n var cellLine = _this5.scroll.create(CellClass.allowedChildren[0].blotName, value);\n\n blot.appendChild(cellLine);\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 _this6 = this;\n\n [TableHeader, TableBody].forEach(function (blot) {\n var _this6$descendants = _this6.descendants(blot),\n _this6$descendants2 = _slicedToArray(_this6$descendants, 1),\n tablePart = _this6$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(tablePart) || !Object(is_defined[\"a\" /* default */])(tablePart.children.head)) {\n return;\n }\n\n tablePart.children.forEach(function (row) {\n var cell = row.children.at(index);\n\n if (Object(is_defined[\"a\" /* default */])(cell)) {\n cell.remove();\n }\n });\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this7 = this;\n\n [TableHeader, TableBody].forEach(function (blot) {\n var _this7$descendants = _this7.descendants(blot),\n _this7$descendants2 = _slicedToArray(_this7$descendants, 1),\n tablePart = _this7$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(tablePart) || !Object(is_defined[\"a\" /* default */])(tablePart.children.head)) {\n return;\n }\n\n var CellBlot = blot === TableHeader ? TableHeaderCell : TableCell;\n var CellLineBlot = blot === TableHeader ? HeaderCellLine : CellLine;\n tablePart.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = CellLineBlot.formats(row.children.head.children.head.domNode);\n\n var cell = _this7.scroll.create(CellBlot.blotName, {\n row: value.row\n });\n\n var cellLine = _this7.scroll.create(CellLineBlot.blotName, {\n row: value.row\n });\n\n var emptyLine = _this7.scroll.create(blots_break[\"a\" /* default */].blotName);\n\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.insertBefore(cell, ref);\n });\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this8 = this;\n\n var _this$descendants = this.descendants(TableBody),\n _this$descendants2 = _slicedToArray(_this$descendants, 1),\n body = _this$descendants2[0];\n\n if (!Object(is_defined[\"a\" /* default */])(body) || !Object(is_defined[\"a\" /* default */])(body.children.head)) {\n return;\n }\n\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName, {\n row: id\n });\n body.children.head.children.forEach(function () {\n var cell = _this8.scroll.create(TableCell.blotName, {\n row: id\n });\n\n var cellLine = _this8.scroll.create(CellLine.blotName, {\n row: id\n });\n\n var emptyLine = _this8.scroll.create(blots_break[\"a\" /* default */].blotName);\n\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.appendChild(cell);\n });\n var ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var _this9 = this;\n\n var _this$descendants3 = this.descendants(TableHeader),\n _this$descendants4 = _slicedToArray(_this$descendants3, 1),\n header = _this$descendants4[0];\n\n var _this$descendants5 = this.descendants(TableBody),\n _this$descendants6 = _slicedToArray(_this$descendants5, 1),\n body = _this$descendants6[0];\n\n if (Object(is_defined[\"a\" /* default */])(header) || !Object(is_defined[\"a\" /* default */])(body) || !Object(is_defined[\"a\" /* default */])(body.children.head)) {\n return;\n }\n\n var id = tableId();\n var newHeader = this.scroll.create(TableHeader.blotName);\n var row = this.scroll.create(TableHeaderRow.blotName);\n var ref = this.children.at(0);\n newHeader.appendChild(row);\n body.children.head.children.forEach(function () {\n var cell = _this9.scroll.create(TableHeaderCell.blotName, {\n row: id\n });\n\n var cellLine = _this9.scroll.create(HeaderCellLine.blotName, {\n row: id\n });\n\n var emptyLine = _this9.scroll.create(blots_break[\"a\" /* default */].blotName);\n\n cellLine.appendChild(emptyLine);\n cell.appendChild(cellLine);\n row.appendChild(cell);\n cell.optimize();\n });\n this.insertBefore(newHeader, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n return Object(is_defined[\"a\" /* default */])(body) ? body.children.map(function (row) {\n return row;\n }) : [];\n }\n }]);\n\n return TableContainer;\n}(container[\"a\" /* default */]);\n\ntable_TableContainer.blotName = 'tableContainer';\ntable_TableContainer.tagName = 'TABLE';\ntable_TableContainer.allowedChildren = [TableHeader, TableBody];\nTableBody.requiredContainer = table_TableContainer;\nTableHeader.requiredContainer = table_TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nCellLine.requiredContainer = TableCell;\nTableCell.allowedChildren = [CellLine];\nTableHeader.allowedChildren = [TableHeaderRow];\nTableHeaderRow.requiredContainer = TableHeader;\nHeaderCellLine.requiredContainer = TableHeaderCell;\nTableHeaderCell.allowedChildren = [HeaderCellLine];\nTableHeaderRow.allowedChildren = [TableHeaderCell];\nTableHeaderCell.requiredContainer = TableHeaderRow;\n\nfunction tableId() {\n return \"row-\".concat(Object(get_id[\"a\" /* default */])());\n}\n\nfunction table_cellId() {\n return \"cell-\".concat(Object(get_id[\"a\" /* default */])());\n}\n\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(26);\n\n// EXTERNAL MODULE: ./modules/table/utils/make_table_arrow_handler.js\nvar make_table_arrow_handler = __webpack_require__(43);\n\n// CONCATENATED MODULE: ./modules/table/index.js\nvar _excluded = [\"width\", \"height\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction table_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { table_typeof = function _typeof(obj) { return typeof obj; }; } else { table_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return table_typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction table_slicedToArray(arr, i) { return table_arrayWithHoles(arr) || table_iterableToArrayLimit(arr, i) || table_unsupportedIterableToArray(arr, i) || table_nonIterableRest(); }\n\nfunction table_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction table_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return table_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return table_arrayLikeToArray(o, minLen); }\n\nfunction table_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction table_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction table_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction table_createClass(Constructor, protoProps, staticProps) { if (protoProps) table_defineProperties(Constructor.prototype, protoProps); if (staticProps) table_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction table_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) table_setPrototypeOf(subClass, superClass); }\n\nfunction table_setPrototypeOf(o, p) { table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return table_setPrototypeOf(o, p); }\n\nfunction table_createSuper(Derived) { var hasNativeReflectConstruct = table_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = table_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = table_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return table_possibleConstructorReturn(this, result); }; }\n\nfunction table_possibleConstructorReturn(self, call) { if (call && (table_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return table_assertThisInitialized(self); }\n\nfunction table_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction table_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction table_getPrototypeOf(o) { table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return table_getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar ELEMENT_NODE = 1;\nvar EMPTY_RESULT = [null, null, null, -1];\n\nvar table_Table = /*#__PURE__*/function (_Module) {\n table_inherits(Table, _Module);\n\n var _super = table_createSuper(Table);\n\n function Table() {\n var _this;\n\n 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 _this.tableBlots = [CellLine.blotName, HeaderCellLine.blotName];\n\n _this.integrateClipboard();\n\n _this.addKeyboardHandlers();\n\n _this.listenBalanceCells();\n\n return _this;\n }\n\n table_createClass(Table, [{\n key: \"integrateClipboard\",\n value: function integrateClipboard() {\n var _this2 = this;\n\n this.tableBlots.forEach(function (blotName) {\n return _this2.quill.clipboard.addTableBlot(blotName);\n });\n this.quill.clipboard.addMatcher('td, th', matchCell);\n this.quill.clipboard.addMatcher(ELEMENT_NODE, matchDimensions);\n }\n }, {\n key: \"addKeyboardHandlers\",\n value: function addKeyboardHandlers() {\n var _this3 = this;\n\n var bindings = Table.keyboardBindings;\n Object.keys(bindings).forEach(function (name) {\n if (bindings[name]) {\n _this3.quill.keyboard.addBinding(bindings[name]);\n }\n });\n }\n }, {\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(table_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 (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n table.deleteColumn(cell.cellOffset());\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = table_slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n\n if (!Object(is_defined[\"a\" /* default */])(row)) {\n return;\n }\n\n row.remove();\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = table_slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n\n if (!Object(is_defined[\"a\" /* default */])(table)) {\n return;\n }\n\n var offset = table.offset();\n table.remove();\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(offset, quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n\n if (!Object(is_defined[\"a\" /* default */])(range)) {\n return EMPTY_RESULT;\n }\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = table_slicedToArray(_this$quill$getLine, 2),\n cellLine = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n if (!Object(is_defined[\"a\" /* default */])(cellLine) || this.tableBlots.indexOf(cellLine.statics.blotName) === -1) {\n return EMPTY_RESULT;\n }\n\n var cell = cellLine.parent;\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 (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n var shift = row.rowOffset();\n\n if (offset === 0) {\n shift += 1;\n }\n\n this.quill.setSelection(range.index + shift, range.length, quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = table_slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n\n if (offset > 0) {\n this.quill.setSelection(range, quill[\"a\" /* default */].sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, quill[\"a\" /* default */].sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertHeaderRow\",\n value: function insertHeaderRow() {\n var range = this.quill.getSelection();\n\n var _this$getTable11 = this.getTable(range),\n _this$getTable12 = table_slicedToArray(_this$getTable11, 3),\n table = _this$getTable12[0],\n cell = _this$getTable12[2];\n\n if (!Object(is_defined[\"a\" /* default */])(cell)) {\n return;\n }\n\n table.insertHeaderRow();\n this.quill.update(quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n\n if (!Object(is_defined[\"a\" /* default */])(range)) {\n return;\n }\n\n var delta = new Array(rows).fill(0).reduce(function (memo) {\n var rowId = tableId();\n new Array(columns).fill('\\n').forEach(function (text) {\n memo.insert(text, {\n tableCellLine: {\n row: rowId,\n cell: tableId()\n }\n });\n });\n return memo;\n }, new Delta_default.a().retain(range.index));\n this.quill.updateContents(delta, quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index, quill[\"a\" /* default */].sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"tableFormats\",\n value: function tableFormats() {\n return this.tableBlots;\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this4 = this;\n\n this.quill.on(quill[\"a\" /* default */].events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this4.quill.once(quill[\"a\" /* default */].events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== quill[\"a\" /* default */].sources.USER) return;\n\n _this4.balanceTables();\n });\n\n return true;\n }\n\n return false;\n });\n });\n this.quill.on(quill[\"a\" /* default */].events.CONTENT_SETTED, function () {\n _this4.quill.once(quill[\"a\" /* default */].events.TEXT_CHANGE, function () {\n _this4.balanceTables();\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n quill[\"a\" /* default */].register(CellLine, true);\n quill[\"a\" /* default */].register(HeaderCellLine, true);\n quill[\"a\" /* default */].register(TableHeaderCell, true);\n quill[\"a\" /* default */].register(TableCell, true);\n quill[\"a\" /* default */].register(TableHeaderRow, true);\n quill[\"a\" /* default */].register(TableRow, true);\n quill[\"a\" /* default */].register(TableBody, true);\n quill[\"a\" /* default */].register(TableHeader, true);\n quill[\"a\" /* default */].register(table_TableContainer, true);\n }\n }]);\n\n return Table;\n}(core_module[\"a\" /* default */]);\n\ntable_Table.keyboardBindings = {\n 'table backspace': {\n key: 'backspace',\n format: ['tableCellLine', 'tableHeaderCellLine'],\n collapsed: true,\n offset: 0,\n handler: function handler(range) {\n var _this$quill$getLine3 = this.quill.getLine(range.index),\n _this$quill$getLine4 = table_slicedToArray(_this$quill$getLine3, 1),\n line = _this$quill$getLine4[0];\n\n if (!line.prev || ['tableCellLine', 'tableHeaderCellLine'].indexOf(line.prev.statics.blotName) === -1) {\n return false;\n }\n\n return true;\n }\n },\n 'table delete': {\n key: 'del',\n format: ['tableCellLine', 'tableHeaderCellLine'],\n collapsed: true,\n suffix: /^$/,\n handler: function handler() {}\n },\n 'table cell enter': {\n key: 'enter',\n shiftKey: null,\n format: ['tableCellLine', 'tableHeaderCellLine'],\n handler: function handler(range, context) {\n var _this$quill$selection,\n _this5 = this;\n\n if ((_this$quill$selection = this.quill.selection) !== null && _this$quill$selection !== void 0 && _this$quill$selection.composing) return;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length);\n }\n\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this5.quill.scroll.query(format, parchment[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n\n return formats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats.tableCellLine, quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index + 1, quill[\"a\" /* default */].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 === 'link') return;\n\n _this5.quill.format(name, context.format[name], quill[\"a\" /* default */].sources.USER);\n });\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['tableCellLine', 'tableHeaderCellLine'],\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, quill[\"a\" /* default */].sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), quill[\"a\" /* default */].sources.USER);\n }\n }\n },\n 'table down': Object(make_table_arrow_handler[\"a\" /* default */])(false, ['tableCellLine', 'tableHeaderCellLine']),\n 'table up': Object(make_table_arrow_handler[\"a\" /* default */])(true, ['tableCellLine', 'tableHeaderCellLine'])\n};\n\nfunction matchCell(node, delta) {\n var row = node.parentNode;\n var table = row.parentNode.tagName === 'TABLE' ? row.parentNode : row.parentNode.parentNode;\n var isHeaderRow = row.parentNode.tagName === 'THEAD' ? true : null;\n var rows = Array.from(table.querySelectorAll('tr'));\n var cells = Array.from(row.querySelectorAll('th,td'));\n var rowId = rows.indexOf(row) + 1;\n var cellId = cells.indexOf(node) + 1;\n var cellLineBlotName = isHeaderRow ? 'tableHeaderCellLine' : 'tableCellLine';\n\n if (delta.length() === 0) {\n delta = new Delta_default.a().insert('\\n', _defineProperty({}, cellLineBlotName, {\n row: rowId,\n cell: cellId\n }));\n return delta;\n }\n\n if (!Object(clipboard[\"c\" /* deltaEndsWith */])(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return Object(clipboard[\"a\" /* applyFormat */])(delta, cellLineBlotName, {\n row: rowId,\n cell: cellId\n });\n}\n\nfunction matchDimensions(node, delta) {\n var isTableNode = TABLE_TAGS.indexOf(node.tagName) !== -1;\n return delta.reduce(function (newDelta, op) {\n var isEmbed = table_typeof(op.insert) === 'object';\n var attributes = op.attributes || {};\n\n var width = attributes.width,\n height = attributes.height,\n rest = _objectWithoutProperties(attributes, _excluded);\n\n var formats = attributes.tableCellLine || attributes.tableHeaderCellLine || attributes.tableCell || attributes.tableHeaderCell || isTableNode || isEmbed ? attributes : _objectSpread({}, rest);\n return newDelta.insert(op.insert, formats);\n }, new Delta_default.a());\n}\n\n/* harmony default export */ var modules_table = __webpack_exports__[\"a\"] = (table_Table);\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(52);\nvar store = __webpack_require__(64);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.18.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(110);\nvar fails = __webpack_require__(32);\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // 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/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(82);\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(112);\nvar global = __webpack_require__(24);\nvar isObject = __webpack_require__(41);\nvar createNonEnumerableProperty = __webpack_require__(55);\nvar objectHas = __webpack_require__(29);\nvar shared = __webpack_require__(64);\nvar sharedKey = __webpack_require__(71);\nvar hiddenKeys = __webpack_require__(72);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || 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 set = function (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 get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar fails = __webpack_require__(32);\nvar createElement = __webpack_require__(86);\n\n// Thank's IE8 for his funny defineProperty\nmodule.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 () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar isObject = __webpack_require__(41);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\nvar getBuiltIn = __webpack_require__(46);\nvar USE_SYMBOL_AS_UID = __webpack_require__(83);\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && Object(it) instanceof $Symbol;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar has = __webpack_require__(29);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = has(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(29);\nvar toIndexedObject = __webpack_require__(57);\nvar indexOf = __webpack_require__(121).indexOf;\nvar hiddenKeys = __webpack_require__(72);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(61);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(32);\nvar isCallable = __webpack_require__(17);\nvar create = __webpack_require__(76);\nvar getPrototypeOf = __webpack_require__(94);\nvar redefine = __webpack_require__(74);\nvar wellKnownSymbol = __webpack_require__(23);\nvar IS_PURE = __webpack_require__(52);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(90);\nvar enumBugKeys = __webpack_require__(75);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(29);\nvar isCallable = __webpack_require__(17);\nvar toObject = __webpack_require__(53);\nvar sharedKey = __webpack_require__(71);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(127);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (has(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(42).f;\nvar has = __webpack_require__(29);\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(70);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aCallable(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(63);\nvar getMethod = __webpack_require__(69);\nvar Iterators = __webpack_require__(59);\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar bind = __webpack_require__(96);\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/from.js\nvar from = __webpack_require__(104);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\nvar fill = __webpack_require__(139);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/object/values.js\nvar values = __webpack_require__(145);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\nvar ends_with = __webpack_require__(150);\n\n// CONCATENATED MODULE: ./polyfills.js\n// IE11 support\r\n\r\n\r\n\r\n\r\n\n// EXTERNAL MODULE: ./core.js + 1 modules\nvar core = __webpack_require__(21);\n\n// EXTERNAL MODULE: ./formats/align.js\nvar align = __webpack_require__(31);\n\n// EXTERNAL MODULE: ./formats/direction.js\nvar direction = __webpack_require__(28);\n\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./formats/indent.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar IndentAttributor = /*#__PURE__*/function (_ClassAttributor) {\n _inherits(IndentAttributor, _ClassAttributor);\n\n var _super = _createSuper(IndentAttributor);\n\n function IndentAttributor() {\n _classCallCheck(this, IndentAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(IndentAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n\n if (value === 0) {\n this.remove(node);\n return true;\n }\n\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"add\", this).call(this, node, value);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, value) || _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, parseInt(value, 10));\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return parseInt(_get(_getPrototypeOf(IndentAttributor.prototype), \"value\", this).call(this, node), 10) || undefined; // Don't return NaN\n }\n }]);\n\n return IndentAttributor;\n}(parchment[\"ClassAttributor\"]);\n\nvar IndentClass = new IndentAttributor('indent', 'ql-indent', {\n scope: parchment[\"Scope\"].BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n/* harmony default export */ var indent = (IndentClass);\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./formats/blockquote.js\nfunction blockquote_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { blockquote_typeof = function _typeof(obj) { return typeof obj; }; } else { blockquote_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return blockquote_typeof(obj); }\n\nfunction blockquote_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction blockquote_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) blockquote_setPrototypeOf(subClass, superClass); }\n\nfunction blockquote_setPrototypeOf(o, p) { blockquote_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return blockquote_setPrototypeOf(o, p); }\n\nfunction blockquote_createSuper(Derived) { var hasNativeReflectConstruct = blockquote_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = blockquote_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = blockquote_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return blockquote_possibleConstructorReturn(this, result); }; }\n\nfunction blockquote_possibleConstructorReturn(self, call) { if (call && (blockquote_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return blockquote_assertThisInitialized(self); }\n\nfunction blockquote_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction blockquote_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction blockquote_getPrototypeOf(o) { blockquote_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return blockquote_getPrototypeOf(o); }\n\n\n\nvar Blockquote = /*#__PURE__*/function (_Block) {\n blockquote_inherits(Blockquote, _Block);\n\n var _super = blockquote_createSuper(Blockquote);\n\n function Blockquote() {\n blockquote_classCallCheck(this, Blockquote);\n\n return _super.apply(this, arguments);\n }\n\n return Blockquote;\n}(block[\"d\" /* default */]);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n/* harmony default export */ var blockquote = (Blockquote);\n// CONCATENATED MODULE: ./formats/header.js\nfunction header_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { header_typeof = function _typeof(obj) { return typeof obj; }; } else { header_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return header_typeof(obj); }\n\nfunction header_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction header_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction header_createClass(Constructor, protoProps, staticProps) { if (protoProps) header_defineProperties(Constructor.prototype, protoProps); if (staticProps) header_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction header_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) header_setPrototypeOf(subClass, superClass); }\n\nfunction header_setPrototypeOf(o, p) { header_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return header_setPrototypeOf(o, p); }\n\nfunction header_createSuper(Derived) { var hasNativeReflectConstruct = header_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = header_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = header_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return header_possibleConstructorReturn(this, result); }; }\n\nfunction header_possibleConstructorReturn(self, call) { if (call && (header_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return header_assertThisInitialized(self); }\n\nfunction header_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction header_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction header_getPrototypeOf(o) { header_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return header_getPrototypeOf(o); }\n\n\n\nvar Header = /*#__PURE__*/function (_Block) {\n header_inherits(Header, _Block);\n\n var _super = header_createSuper(Header);\n\n function Header() {\n header_classCallCheck(this, Header);\n\n return _super.apply(this, arguments);\n }\n\n header_createClass(Header, null, [{\n key: \"formats\",\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(block[\"d\" /* default */]);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n/* harmony default export */ var header = (Header);\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(11);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./formats/list.js\nfunction list_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { list_typeof = function _typeof(obj) { return typeof obj; }; } else { list_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return list_typeof(obj); }\n\nfunction list_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction list_createClass(Constructor, protoProps, staticProps) { if (protoProps) list_defineProperties(Constructor.prototype, protoProps); if (staticProps) list_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction list_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { list_get = Reflect.get; } else { list_get = function _get(target, property, receiver) { var base = list_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return list_get(target, property, receiver || target); }\n\nfunction list_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = list_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction list_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction list_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) list_setPrototypeOf(subClass, superClass); }\n\nfunction list_setPrototypeOf(o, p) { list_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return list_setPrototypeOf(o, p); }\n\nfunction list_createSuper(Derived) { var hasNativeReflectConstruct = list_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = list_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = list_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return list_possibleConstructorReturn(this, result); }; }\n\nfunction list_possibleConstructorReturn(self, call) { if (call && (list_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return list_assertThisInitialized(self); }\n\nfunction list_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction list_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction list_getPrototypeOf(o) { list_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return list_getPrototypeOf(o); }\n\n\n\n\n\nvar ListContainer = /*#__PURE__*/function (_Container) {\n list_inherits(ListContainer, _Container);\n\n var _super = list_createSuper(ListContainer);\n\n function ListContainer() {\n list_classCallCheck(this, ListContainer);\n\n return _super.apply(this, arguments);\n }\n\n return ListContainer;\n}(container[\"a\" /* default */]);\n\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\n\nvar list_ListItem = /*#__PURE__*/function (_Block) {\n list_inherits(ListItem, _Block);\n\n var _super2 = list_createSuper(ListItem);\n\n function ListItem(scroll, domNode) {\n var _this;\n\n list_classCallCheck(this, ListItem);\n\n _this = _super2.call(this, scroll, domNode);\n var ui = domNode.ownerDocument.createElement('span');\n\n var listEventHandler = function listEventHandler(e) {\n if (!scroll.isEnabled()) return;\n\n var format = _this.statics.formats(domNode, scroll);\n\n if (format === 'checked') {\n _this.format('list', 'unchecked');\n\n e.preventDefault();\n } else if (format === 'unchecked') {\n _this.format('list', 'checked');\n\n e.preventDefault();\n }\n };\n\n ui.addEventListener('mousedown', listEventHandler);\n ui.addEventListener('touchstart', listEventHandler);\n\n _this.attachUI(ui);\n\n return _this;\n }\n\n list_createClass(ListItem, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-list', value);\n } else {\n list_get(list_getPrototypeOf(ListItem.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = list_get(list_getPrototypeOf(ListItem), \"create\", this).call(this);\n\n node.setAttribute('data-list', value);\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-list') || undefined;\n }\n }, {\n key: \"register\",\n value: function register() {\n core_quill[\"a\" /* default */].register(ListContainer);\n }\n }]);\n\n return ListItem;\n}(block[\"d\" /* default */]);\n\nlist_ListItem.blotName = 'list';\nlist_ListItem.tagName = 'LI';\nListContainer.allowedChildren = [list_ListItem];\nlist_ListItem.requiredContainer = ListContainer;\n\n// EXTERNAL MODULE: ./formats/background.js\nvar background = __webpack_require__(37);\n\n// EXTERNAL MODULE: ./formats/color.js\nvar color = __webpack_require__(27);\n\n// EXTERNAL MODULE: ./formats/font.js\nvar font = __webpack_require__(38);\n\n// EXTERNAL MODULE: ./formats/size.js\nvar size = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./formats/bold.js\nvar bold = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./formats/italic.js\nfunction italic_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { italic_typeof = function _typeof(obj) { return typeof obj; }; } else { italic_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return italic_typeof(obj); }\n\nfunction italic_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction italic_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) italic_setPrototypeOf(subClass, superClass); }\n\nfunction italic_setPrototypeOf(o, p) { italic_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return italic_setPrototypeOf(o, p); }\n\nfunction italic_createSuper(Derived) { var hasNativeReflectConstruct = italic_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = italic_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = italic_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return italic_possibleConstructorReturn(this, result); }; }\n\nfunction italic_possibleConstructorReturn(self, call) { if (call && (italic_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return italic_assertThisInitialized(self); }\n\nfunction italic_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction italic_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction italic_getPrototypeOf(o) { italic_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return italic_getPrototypeOf(o); }\n\n\n\nvar Italic = /*#__PURE__*/function (_Bold) {\n italic_inherits(Italic, _Bold);\n\n var _super = italic_createSuper(Italic);\n\n function Italic() {\n italic_classCallCheck(this, Italic);\n\n return _super.apply(this, arguments);\n }\n\n return Italic;\n}(bold[\"a\" /* default */]);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n/* harmony default export */ var italic = (Italic);\n// EXTERNAL MODULE: ./formats/link.js\nvar formats_link = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(12);\n\n// CONCATENATED MODULE: ./formats/script.js\nfunction script_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { script_typeof = function _typeof(obj) { return typeof obj; }; } else { script_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return script_typeof(obj); }\n\nfunction script_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction script_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction script_createClass(Constructor, protoProps, staticProps) { if (protoProps) script_defineProperties(Constructor.prototype, protoProps); if (staticProps) script_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction script_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { script_get = Reflect.get; } else { script_get = function _get(target, property, receiver) { var base = script_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return script_get(target, property, receiver || target); }\n\nfunction script_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = script_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction script_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) script_setPrototypeOf(subClass, superClass); }\n\nfunction script_setPrototypeOf(o, p) { script_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return script_setPrototypeOf(o, p); }\n\nfunction script_createSuper(Derived) { var hasNativeReflectConstruct = script_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = script_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = script_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return script_possibleConstructorReturn(this, result); }; }\n\nfunction script_possibleConstructorReturn(self, call) { if (call && (script_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return script_assertThisInitialized(self); }\n\nfunction script_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction script_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction script_getPrototypeOf(o) { script_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return script_getPrototypeOf(o); }\n\n\n\nvar Script = /*#__PURE__*/function (_Inline) {\n script_inherits(Script, _Inline);\n\n var _super = script_createSuper(Script);\n\n function Script() {\n script_classCallCheck(this, Script);\n\n return _super.apply(this, arguments);\n }\n\n script_createClass(Script, null, [{\n key: \"create\",\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n }\n\n if (value === 'sub') {\n return document.createElement('sub');\n }\n\n return script_get(script_getPrototypeOf(Script), \"create\", this).call(this, value);\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(inline[\"a\" /* default */]);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n/* harmony default export */ var script = (Script);\n// CONCATENATED MODULE: ./formats/strike.js\nfunction strike_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { strike_typeof = function _typeof(obj) { return typeof obj; }; } else { strike_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return strike_typeof(obj); }\n\nfunction strike_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction strike_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) strike_setPrototypeOf(subClass, superClass); }\n\nfunction strike_setPrototypeOf(o, p) { strike_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return strike_setPrototypeOf(o, p); }\n\nfunction strike_createSuper(Derived) { var hasNativeReflectConstruct = strike_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = strike_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = strike_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return strike_possibleConstructorReturn(this, result); }; }\n\nfunction strike_possibleConstructorReturn(self, call) { if (call && (strike_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return strike_assertThisInitialized(self); }\n\nfunction strike_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction strike_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction strike_getPrototypeOf(o) { strike_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return strike_getPrototypeOf(o); }\n\n\n\nvar Strike = /*#__PURE__*/function (_Bold) {\n strike_inherits(Strike, _Bold);\n\n var _super = strike_createSuper(Strike);\n\n function Strike() {\n strike_classCallCheck(this, Strike);\n\n return _super.apply(this, arguments);\n }\n\n return Strike;\n}(bold[\"a\" /* default */]);\n\nStrike.blotName = 'strike';\nStrike.tagName = ['S', 'STRIKE'];\n/* harmony default export */ var strike = (Strike);\n// CONCATENATED MODULE: ./formats/underline.js\nfunction underline_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { underline_typeof = function _typeof(obj) { return typeof obj; }; } else { underline_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return underline_typeof(obj); }\n\nfunction underline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction underline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) underline_setPrototypeOf(subClass, superClass); }\n\nfunction underline_setPrototypeOf(o, p) { underline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return underline_setPrototypeOf(o, p); }\n\nfunction underline_createSuper(Derived) { var hasNativeReflectConstruct = underline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = underline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = underline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return underline_possibleConstructorReturn(this, result); }; }\n\nfunction underline_possibleConstructorReturn(self, call) { if (call && (underline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return underline_assertThisInitialized(self); }\n\nfunction underline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction underline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction underline_getPrototypeOf(o) { underline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return underline_getPrototypeOf(o); }\n\n\n\nvar Underline = /*#__PURE__*/function (_Inline) {\n underline_inherits(Underline, _Inline);\n\n var _super = underline_createSuper(Underline);\n\n function Underline() {\n underline_classCallCheck(this, Underline);\n\n return _super.apply(this, arguments);\n }\n\n return Underline;\n}(inline[\"a\" /* default */]);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n/* harmony default export */ var underline = (Underline);\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(48);\n\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(13);\n\n// CONCATENATED MODULE: ./formats/formula.js\nfunction formula_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { formula_typeof = function _typeof(obj) { return typeof obj; }; } else { formula_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return formula_typeof(obj); }\n\nfunction formula_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction formula_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction formula_createClass(Constructor, protoProps, staticProps) { if (protoProps) formula_defineProperties(Constructor.prototype, protoProps); if (staticProps) formula_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction formula_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { formula_get = Reflect.get; } else { formula_get = function _get(target, property, receiver) { var base = formula_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return formula_get(target, property, receiver || target); }\n\nfunction formula_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = formula_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction formula_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) formula_setPrototypeOf(subClass, superClass); }\n\nfunction formula_setPrototypeOf(o, p) { formula_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return formula_setPrototypeOf(o, p); }\n\nfunction formula_createSuper(Derived) { var hasNativeReflectConstruct = formula_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = formula_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = formula_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return formula_possibleConstructorReturn(this, result); }; }\n\nfunction formula_possibleConstructorReturn(self, call) { if (call && (formula_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return formula_assertThisInitialized(self); }\n\nfunction formula_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction formula_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction formula_getPrototypeOf(o) { formula_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return formula_getPrototypeOf(o); }\n\n\n\n\nvar formula_Formula = /*#__PURE__*/function (_Embed) {\n formula_inherits(Formula, _Embed);\n\n var _super = formula_createSuper(Formula);\n\n function Formula() {\n formula_classCallCheck(this, Formula);\n\n return _super.apply(this, arguments);\n }\n\n formula_createClass(Formula, [{\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n formula = _this$value.formula;\n\n return \"\".concat(formula, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var katex = null;\n\n if (Object(has_window[\"a\" /* default */])()) {\n katex = window.katex;\n }\n\n if (katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n\n var node = formula_get(formula_getPrototypeOf(Formula), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n\n return node;\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return Formula;\n}(blots_embed[\"a\" /* default */]);\n\nformula_Formula.blotName = 'formula';\nformula_Formula.className = 'ql-formula';\nformula_Formula.tagName = 'SPAN';\n/* harmony default export */ var formula = (formula_Formula);\n// CONCATENATED MODULE: ./formats/image.js\nfunction image_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { image_typeof = function _typeof(obj) { return typeof obj; }; } else { image_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return image_typeof(obj); }\n\nfunction image_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction image_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction image_createClass(Constructor, protoProps, staticProps) { if (protoProps) image_defineProperties(Constructor.prototype, protoProps); if (staticProps) image_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction image_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { image_get = Reflect.get; } else { image_get = function _get(target, property, receiver) { var base = image_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return image_get(target, property, receiver || target); }\n\nfunction image_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = image_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction image_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) image_setPrototypeOf(subClass, superClass); }\n\nfunction image_setPrototypeOf(o, p) { image_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return image_setPrototypeOf(o, p); }\n\nfunction image_createSuper(Derived) { var hasNativeReflectConstruct = image_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = image_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = image_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return image_possibleConstructorReturn(this, result); }; }\n\nfunction image_possibleConstructorReturn(self, call) { if (call && (image_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return image_assertThisInitialized(self); }\n\nfunction image_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction image_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction image_getPrototypeOf(o) { image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return image_getPrototypeOf(o); }\n\n\n\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar image_Image = /*#__PURE__*/function (_EmbedBlot) {\n image_inherits(Image, _EmbedBlot);\n\n var _super = image_createSuper(Image);\n\n function Image() {\n image_classCallCheck(this, Image);\n\n return _super.apply(this, arguments);\n }\n\n image_createClass(Image, [{\n key: \"format\",\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n image_get(image_getPrototypeOf(Image.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = image_get(image_getPrototypeOf(Image), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"match\",\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: \"register\",\n value: function register() {\n if (Object(has_window[\"a\" /* default */])() && /Firefox/i.test(navigator.userAgent)) {\n setTimeout(function () {\n // Disable image resizing in Firefox\n document.execCommand('enableObjectResizing', false, false);\n }, 1);\n }\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return Object(formats_link[\"b\" /* sanitize */])(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(parchment[\"EmbedBlot\"]);\n\nimage_Image.blotName = 'image';\nimage_Image.tagName = 'IMG';\n/* harmony default export */ var formats_image = (image_Image);\n// CONCATENATED MODULE: ./formats/video.js\nfunction video_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { video_typeof = function _typeof(obj) { return typeof obj; }; } else { video_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return video_typeof(obj); }\n\nfunction video_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction video_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction video_createClass(Constructor, protoProps, staticProps) { if (protoProps) video_defineProperties(Constructor.prototype, protoProps); if (staticProps) video_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction video_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { video_get = Reflect.get; } else { video_get = function _get(target, property, receiver) { var base = video_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return video_get(target, property, receiver || target); }\n\nfunction video_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = video_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction video_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) video_setPrototypeOf(subClass, superClass); }\n\nfunction video_setPrototypeOf(o, p) { video_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return video_setPrototypeOf(o, p); }\n\nfunction video_createSuper(Derived) { var hasNativeReflectConstruct = video_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = video_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = video_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return video_possibleConstructorReturn(this, result); }; }\n\nfunction video_possibleConstructorReturn(self, call) { if (call && (video_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return video_assertThisInitialized(self); }\n\nfunction video_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction video_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction video_getPrototypeOf(o) { video_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return video_getPrototypeOf(o); }\n\n\n\nvar video_ATTRIBUTES = ['height', 'width'];\n\nvar video_Video = /*#__PURE__*/function (_BlockEmbed) {\n video_inherits(Video, _BlockEmbed);\n\n var _super = video_createSuper(Video);\n\n function Video() {\n video_classCallCheck(this, Video);\n\n return _super.apply(this, arguments);\n }\n\n video_createClass(Video, [{\n key: \"format\",\n value: function format(name, value) {\n if (video_ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n video_get(video_getPrototypeOf(Video.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n video = _this$value.video;\n\n return \"
    \").concat(video, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = video_get(video_getPrototypeOf(Video), \"create\", this).call(this, value);\n\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return video_ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return formats_link[\"a\" /* default */].sanitize(url); // eslint-disable-line import/no-named-as-default-member\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(block[\"a\" /* BlockEmbed */]);\n\nvideo_Video.blotName = 'video';\nvideo_Video.className = 'ql-video';\nvideo_Video.tagName = 'IFRAME';\n/* harmony default export */ var video = (video_Video);\n// EXTERNAL MODULE: ./formats/code.js\nvar code = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./modules/syntax.js\nvar syntax = __webpack_require__(60);\n\n// EXTERNAL MODULE: ./modules/table/index.js + 1 modules\nvar table = __webpack_require__(79);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(1);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// CONCATENATED MODULE: ./blots/multiline_break.js\nfunction multiline_break_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { multiline_break_typeof = function _typeof(obj) { return typeof obj; }; } else { multiline_break_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return multiline_break_typeof(obj); }\n\nfunction multiline_break_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction multiline_break_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction multiline_break_createClass(Constructor, protoProps, staticProps) { if (protoProps) multiline_break_defineProperties(Constructor.prototype, protoProps); if (staticProps) multiline_break_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction multiline_break_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) multiline_break_setPrototypeOf(subClass, superClass); }\n\nfunction multiline_break_setPrototypeOf(o, p) { multiline_break_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multiline_break_setPrototypeOf(o, p); }\n\nfunction multiline_break_createSuper(Derived) { var hasNativeReflectConstruct = multiline_break_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multiline_break_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multiline_break_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multiline_break_possibleConstructorReturn(this, result); }; }\n\nfunction multiline_break_possibleConstructorReturn(self, call) { if (call && (multiline_break_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return multiline_break_assertThisInitialized(self); }\n\nfunction multiline_break_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction multiline_break_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction multiline_break_getPrototypeOf(o) { multiline_break_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multiline_break_getPrototypeOf(o); }\n\n\n\nvar MultilineBreak = /*#__PURE__*/function (_EmbedBlot) {\n multiline_break_inherits(MultilineBreak, _EmbedBlot);\n\n var _super = multiline_break_createSuper(MultilineBreak);\n\n function MultilineBreak() {\n multiline_break_classCallCheck(this, MultilineBreak);\n\n return _super.apply(this, arguments);\n }\n\n multiline_break_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\n return MultilineBreak;\n}(parchment[\"EmbedBlot\"]);\n\nMultilineBreak.blotName = 'multilineBreak';\nMultilineBreak.tagName = 'BR';\n/* harmony default export */ var multiline_break = (MultilineBreak);\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./modules/multiline.js\nfunction multiline_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { multiline_typeof = function _typeof(obj) { return typeof obj; }; } else { multiline_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return multiline_typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction multiline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction multiline_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction multiline_createClass(Constructor, protoProps, staticProps) { if (protoProps) multiline_defineProperties(Constructor.prototype, protoProps); if (staticProps) multiline_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction multiline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) multiline_setPrototypeOf(subClass, superClass); }\n\nfunction multiline_setPrototypeOf(o, p) { multiline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multiline_setPrototypeOf(o, p); }\n\nfunction multiline_createSuper(Derived) { var hasNativeReflectConstruct = multiline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multiline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multiline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multiline_possibleConstructorReturn(this, result); }; }\n\nfunction multiline_possibleConstructorReturn(self, call) { if (call && (multiline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return multiline_assertThisInitialized(self); }\n\nfunction multiline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction multiline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction multiline_getPrototypeOf(o) { multiline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multiline_getPrototypeOf(o); }\n\n\n\n\n\n\nfunction 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\nvar 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\n var path = 'blots/multilineBreak';\n _this = _super.call(this, quill, options);\n core_quill[\"a\" /* default */].register(_defineProperty({}, path, multiline_break), 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\" /* default */].sources.SILENT);\n }\n }]);\n\n return Multiline;\n}(core_module[\"a\" /* default */]);\n\n/* harmony default export */ var multiline = (multiline_Multiline);\n// EXTERNAL MODULE: ./modules/table/lite.js + 4 modules\nvar lite = __webpack_require__(50);\n\n// CONCATENATED MODULE: ./quill.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ncore[\"default\"].register({\n 'attributors/attribute/direction': direction[\"a\" /* DirectionAttribute */],\n 'attributors/attribute/width': size[\"d\" /* WidthAttribute */],\n 'attributors/attribute/height': size[\"a\" /* HeightAttribute */],\n 'attributors/class/align': align[\"b\" /* AlignClass */],\n 'attributors/class/background': background[\"a\" /* BackgroundClass */],\n 'attributors/class/color': color[\"b\" /* ColorClass */],\n 'attributors/class/direction': direction[\"b\" /* DirectionClass */],\n 'attributors/class/font': font[\"a\" /* FontClass */],\n 'attributors/class/size': size[\"b\" /* SizeClass */],\n 'attributors/style/align': align[\"c\" /* AlignStyle */],\n 'attributors/style/background': background[\"b\" /* BackgroundStyle */],\n 'attributors/style/color': color[\"c\" /* ColorStyle */],\n 'attributors/style/direction': direction[\"c\" /* DirectionStyle */],\n 'attributors/style/font': font[\"b\" /* FontStyle */],\n 'attributors/style/size': size[\"c\" /* SizeStyle */]\n}, true);\ncore[\"default\"].register({\n 'formats/align': align[\"b\" /* AlignClass */],\n 'formats/direction': direction[\"b\" /* DirectionClass */],\n 'formats/indent': indent,\n 'formats/width': size[\"d\" /* WidthAttribute */],\n 'formats/height': size[\"a\" /* HeightAttribute */],\n 'formats/background': background[\"b\" /* BackgroundStyle */],\n 'formats/color': color[\"c\" /* ColorStyle */],\n 'formats/font': font[\"a\" /* FontClass */],\n 'formats/size': size[\"b\" /* SizeClass */],\n 'formats/blockquote': blockquote,\n 'formats/code-block': code[\"c\" /* default */],\n 'formats/header': header,\n 'formats/list': list_ListItem,\n 'formats/bold': bold[\"a\" /* default */],\n 'formats/code': code[\"a\" /* Code */],\n 'formats/italic': italic,\n 'formats/link': formats_link[\"a\" /* default */],\n 'formats/script': script,\n 'formats/strike': strike,\n 'formats/underline': underline,\n 'formats/formula': formula,\n 'formats/image': formats_image,\n 'formats/video': video,\n 'tableModules/lite': lite[\"a\" /* default */],\n 'tableModules/main': table[\"a\" /* default */],\n 'modules/syntax': syntax[\"b\" /* default */],\n 'modules/multiline': multiline,\n 'modules/table': lite[\"a\" /* default */]\n}, true);\n/* harmony default export */ var quill_0 = __webpack_exports__[\"default\"] = (core[\"default\"]);\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(14));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(25));\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = lodash_clonedeep_1.default(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.compose = compose;\n function diff(a, b) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce(function (attrs, key) {\n if (!lodash_isequal_1.default(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr, base) {\n if (attr === void 0) { attr = {}; }\n if (base === void 0) { base = {}; }\n attr = attr || {};\n var baseInverted = Object.keys(base).reduce(function (memo, key) {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce(function (memo, key) {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority) {\n if (priority === void 0) { priority = false; }\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n var attributes = Object.keys(b).reduce(function (attrs, key) {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports.default = AttributeMap;\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Op_1 = __importDefault(__webpack_require__(77));\nvar Iterator = /** @class */ (function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\n else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n }\n else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n return Iterator;\n}());\nexports.default = Iterator;\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(105);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(106);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(107);\n__webpack_require__(130);\nvar path = __webpack_require__(98);\n\nmodule.exports = path.Array.from;\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(108).charAt;\nvar toString = __webpack_require__(62);\nvar InternalStateModule = __webpack_require__(84);\nvar defineIterator = __webpack_require__(116);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\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 { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(61);\nvar toString = __webpack_require__(62);\nvar requireObjectCoercible = __webpack_require__(54);\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (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\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.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/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar userAgent = __webpack_require__(111);\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (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 if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(24);\nvar isCallable = __webpack_require__(17);\nvar inspectSource = __webpack_require__(67);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(41);\nvar isSymbol = __webpack_require__(87);\nvar getMethod = __webpack_require__(69);\nvar ordinaryToPrimitive = __webpack_require__(115);\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\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 if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\nvar isObject = __webpack_require__(41);\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(47);\nvar IS_PURE = __webpack_require__(52);\nvar FunctionName = __webpack_require__(89);\nvar isCallable = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(124);\nvar getPrototypeOf = __webpack_require__(94);\nvar setPrototypeOf = __webpack_require__(128);\nvar setToStringTag = __webpack_require__(95);\nvar createNonEnumerableProperty = __webpack_require__(55);\nvar redefine = __webpack_require__(74);\nvar wellKnownSymbol = __webpack_require__(23);\nvar Iterators = __webpack_require__(59);\nvar IteratorsCore = __webpack_require__(92);\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(32);\nvar classof = __webpack_require__(66);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- 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/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(29);\nvar ownKeys = __webpack_require__(119);\nvar getOwnPropertyDescriptorModule = __webpack_require__(73);\nvar definePropertyModule = __webpack_require__(42);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\nvar getOwnPropertyNamesModule = __webpack_require__(120);\nvar getOwnPropertySymbolsModule = __webpack_require__(122);\nvar anObject = __webpack_require__(33);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(90);\nvar enumBugKeys = __webpack_require__(75);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(57);\nvar toLength = __webpack_require__(58);\nvar toAbsoluteIndex = __webpack_require__(91);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.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/***/ }),\n/* 122 */\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(32);\nvar isCallable = __webpack_require__(17);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(92).IteratorPrototype;\nvar create = __webpack_require__(76);\nvar createPropertyDescriptor = __webpack_require__(56);\nvar setToStringTag = __webpack_require__(95);\nvar Iterators = __webpack_require__(59);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar definePropertyModule = __webpack_require__(42);\nvar anObject = __webpack_require__(33);\nvar objectKeys = __webpack_require__(93);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(32);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(33);\nvar aPossiblePrototype = __webpack_require__(129);\n\n// `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\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\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) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(17);\n\nmodule.exports = function (argument) {\n if (typeof argument === 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(47);\nvar from = __webpack_require__(131);\nvar checkCorrectnessOfIteration = __webpack_require__(138);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(96);\nvar toObject = __webpack_require__(53);\nvar callWithSafeIterationClosing = __webpack_require__(132);\nvar isArrayIteratorMethod = __webpack_require__(134);\nvar isConstructor = __webpack_require__(135);\nvar toLength = __webpack_require__(58);\nvar createProperty = __webpack_require__(136);\nvar getIterator = __webpack_require__(137);\nvar getIteratorMethod = __webpack_require__(97);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\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 = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(33);\nvar iteratorClose = __webpack_require__(133);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(33);\nvar getMethod = __webpack_require__(69);\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = innerResult.call(iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(23);\nvar Iterators = __webpack_require__(59);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(32);\nvar isCallable = __webpack_require__(17);\nvar classof = __webpack_require__(63);\nvar getBuiltIn = __webpack_require__(46);\nvar inspectSource = __webpack_require__(67);\n\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = constructorRegExp.exec;\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(function () { /* empty */ });\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(Object, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec.call(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(68);\nvar definePropertyModule = __webpack_require__(42);\nvar createPropertyDescriptor = __webpack_require__(56);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(70);\nvar anObject = __webpack_require__(33);\nvar getIteratorMethod = __webpack_require__(97);\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(iteratorMethod.call(argument));\n throw TypeError(String(argument) + ' is not iterable');\n};\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(140);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(141);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(142);\nvar entryUnbind = __webpack_require__(99);\n\nmodule.exports = entryUnbind('Array', 'fill');\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(47);\nvar fill = __webpack_require__(143);\nvar addToUnscopables = __webpack_require__(144);\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(53);\nvar toAbsoluteIndex = __webpack_require__(91);\nvar toLength = __webpack_require__(58);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(23);\nvar create = __webpack_require__(76);\nvar definePropertyModule = __webpack_require__(42);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(146);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(147);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(148);\nvar path = __webpack_require__(98);\n\nmodule.exports = path.Object.values;\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(47);\nvar $values = __webpack_require__(149).values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(34);\nvar objectKeys = __webpack_require__(93);\nvar toIndexedObject = __webpack_require__(57);\nvar propertyIsEnumerable = __webpack_require__(88).f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(151);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(152);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(153);\nvar entryUnbind = __webpack_require__(99);\n\nmodule.exports = entryUnbind('String', 'endsWith');\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(47);\nvar getOwnPropertyDescriptor = __webpack_require__(73).f;\nvar toLength = __webpack_require__(58);\nvar toString = __webpack_require__(62);\nvar notARegExp = __webpack_require__(154);\nvar requireObjectCoercible = __webpack_require__(54);\nvar correctIsRegExpLogic = __webpack_require__(156);\nvar IS_PURE = __webpack_require__(52);\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = 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\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(155);\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(41);\nvar classof = __webpack_require__(66);\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(23);\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n\n\n/***/ }),\n/* 157 */,\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(100);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});"],"sourceRoot":""}