{"version":3,"sources":["webpack:///./node_modules/devextreme-quill/dist/dx-quill.js"],"names":["root","factory","module","exports","this","modules","installedModules","__webpack_require__","moduleId","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","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","minLen","_arrayLikeToArray","toString","slice","Array","from","test","len","length","arr2","_i","_s","_e","_arr","_n","_d","next","done","push","err","isArray","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","debug","uiClass","container","_this","options","arguments","undefined","error","html","innerHTML","trim","classList","add","set","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","_this$selection$getRa","getRange","_this$selection$getRa2","newRange","selectionInfo","modify","update","setContents","getInitialContent","clear","placeholder","setAttribute","readOnly","disable","allowReadOnlyEdits","convert","concat","text","isComposing","composing","toggle","isBlank","refNode","className","document","createElement","insertBefore","setRange","index","_this2","_overload","_overload2","deleteText","enable","modifier","enabled","scrollTop","focus","scrollIntoView","_this3","sources","API","range","getSelection","change","a","BLOCK","formatLine","format","formatText","setSelection","SILENT","formats","_this4","_overload3","_overload4","_this5","_overload5","_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","_overload13","_overload14","insertText","isEnabled","_this$emitter","off","apply","_this$emitter2","_this$emitter3","once","_this8","_overload15","_overload16","removeFormat","delta","_this9","delete1","applied","applyDelta","delete2","emit","CONTENT_SETTED","compose","_overload17","_overload18","Math","max","insert","USER","_this10","limit","level","node","find","imports","path","_this11","overwrite","attrName","register","keys","forEach","warn","indexOf","userConfig","DEFAULTS","import","Error","themeConfig","config","moduleNames","moduleConfig","reduce","moduleClass","toolbar","querySelector","shift","oldDelta","shiftRange","_this$emitter4","_this$emitter5","args","start","end","_map","map","pos","transformPosition","_map2","_map3","_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","prep","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","LinkedList","head","tail","append","nodes","at","cur","contains","remove","prev","curNode","ret","inclusive","callback","forEachAt","_a","startNode","curIndex","curLength","memo","linked_list","__extends","_extendStatics","b","setPrototypeOf","__proto__","__","ParchmentError","_super","message","registry_Registry","Registry","classes","tags","types","bubble","blots","has","parentNode","input","match","blotClass","Node","nodeType","TEXT_NODE","domNode","scope","ANY","Text","LEVEL","INLINE","HTMLElement","names","getAttribute","split","some","tagName","TYPE","definitions","definition","keyName","toUpperCase","tagNames","tag","WeakMap","shadow_ShadowBlot","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","shadow","parent_extends","makeAttachedBlot","e","childNodes","child","replaceChild","parent_ParentBlot","ParentBlot","uiNode","build","attachUI","firstChild","reverse","childLength","descendant","criteria","descendants","lengthLeft","childIndex","enforceAllowedChildren","allowed","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","container_ContainerBlot","ContainerBlot","checkMerge","leaf_extends","leaf_LeafBlot","LeafBlot","_domNode","_inclusive","INLINE_BLOT","attributor_Attributor","Attributor","attributeBit","whitelist","item","canAdd","_node","replace","removeAttribute","class_extends","class_match","prefix","ClassAttributor","matches","result","style_extends","camelize","parts","part","StyleAttributor","store_AttributorStore","AttributorStore","attribute","styles","attr","copy","move","values","inline_extends","isEqual","obj1","obj2","prop","inline_InlineBlot","InlineBlot","toLowerCase","attributeChanged","block_extends","block_BlockBlot","BlockBlot","embed_extends","EmbedBlot","_scroll","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","scroll_ScrollBlot","observer","MutationObserver","observe","disconnect","mutationsMap","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","text_extends","text_TextBlot","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","_superPropBase","desc","getOwnPropertyDescriptor","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","EVENTS","eventName","addEventListener","_len","_key","querySelectorAll","_quill$emitter","quill","handleDOM","Emitter","_EventEmitter","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","lodash_clonedeep_default","lodash_isequal","lodash_isequal_default","lodash_merge","lodash_merge_default","Delta_default","blots_block","blots_break","blots_text","removeClass","_toArray","_iterableToArray","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","ASCII","editor_Editor","Editor","getDelta","immediateFormats","Set","scrollLength","batchStart","normalizedDelta","normalizeDelta","deleteDelta","addedNewline","endsWith","_this$scroll$line","_this$scroll$line2","_line$descendant","_line$descendant2","addedLength","batchEnd","leaves","_path","combineFormats","_this$scroll$line3","_this$scroll$line4","lineOffset","convertHTML","_this$scroll$line5","_this$scroll$line6","suffixLength","suffix","contents","textBlot","oldValue","CONTENTS","oldText","newText","relativeSelectionInfo","diffDelta","convertListHTML","items","lastIndent","_getListType","getListType","_getListType2","_endTag","_items","_items$","indent","_getListType3","_getListType4","previousType","_getListType5","_getListType6","endTag","isRoot","list","handleBreakLine","extractNodeFromBlot","outerHTML","_outerHTML$split","_outerHTML$split2","linkedList","removeTableServiceClasses","BLOTS_WITH_SERVICE_CLASS","includes","combined","merged","getBlotNodeAttributes","hasAttributes","attributesString","removeIndentClass","classString","_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__","NEWLINE_LENGTH","_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$leaf","_this5$scroll$leaf2","leafOffset","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_this$getRange","_this$getRange2","TableTextAlignStyle","TableBackgroundColorStyle","TableBorderStyle","TableBorderStyleStyle","TableBorderWidthStyle","TableBorderColorStyle","TableHeightStyle","TableWidthStyle","TableWidthAttribute","TableHeightAttribute","TABLE_FORMATS","TABLE_ATTRIBUTORS","_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__","_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__","tableConfig","allowedTags","tableTextAlign","tableBackgroundColor","tableBorder","tableBorderStyle","tableBorderWidth","tableBorderColor","tableWidth","tableHeight","CellVerticalAlignStyle","CellTextAlignStyle","CellBackgroundColorStyle","CellBorderStyle","CellBorderStyleStyle","CellBorderWidthStyle","CellBorderColorStyle","CellPaddingStyle","CellPaddingTopStyle","CellPaddingBottomStyle","CellPaddingLeftStyle","CellPaddingRightStyle","CellHeightStyle","CellWidthStyle","CellHeightAttribute","CellWidthAttribute","CELL_FORMATS","CELL_ATTRIBUTORS","cellConfig","cellBorder","cellBorderStyle","cellBorderWidth","cellBorderColor","cellBackgroundColor","cellPadding","cellPaddingTop","cellPaddingBottom","cellPaddingLeft","cellPaddingRight","cellVerticalAlign","cellTextAlign","cellWidth","cellHeight","global","check","it","globalThis","window","Function","escapeText","_TextBlot","entityMap","Break","prepareStyleAttributor","_attributors_element_style__WEBPACK_IMPORTED_MODULE_0__","_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","propName","formatName","elementConfig","subPropName","fullName","Module","Container","_ContainerBlot","_break__WEBPACK_IMPORTED_MODULE_1__","_text__WEBPACK_IMPORTED_MODULE_2__","Inline","_InlineBlot","compare","selfIndex","order","otherIndex","hasWindow","LARGE_ARRAY_SIZE","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","addMapEntry","pair","addSetEntry","arrayEach","array","iteratee","arrayPush","arrayReduce","accumulator","initAccum","baseTimes","getValue","isHostObject","mapToArray","size","overArg","func","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Buffer","Uint8Array","getPrototype","objectCreate","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","entry","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignValue","objValue","eq","baseAssign","copyObject","baseClone","isDeep","isFull","customizer","stack","isObject","isArr","initCloneArray","copyArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbols","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","proto","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","baseIsNative","isMasked","pattern","isFunction","baseKeys","isPrototype","buffer","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","cloneMap","cloneFunc","cloneRegExp","regexp","cloneSet","cloneSymbol","symbol","cloneTypedArray","typedArray","newValue","getSymbols","isKeyable","stubArray","Ctor","cloneDeep","isArrayLikeObject","ArrayBuffer","resolve","ctorString","isArrayLike","isLength","isObjectLike","stubFalse","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","textContent","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$line","_this$line2","_this$line3","_this$line4","preventDefault","getLines","blotIndex","blotLength","FunctionPrototype","callBind","fn","argument","levels","method","_console","console","namespace","logger","newLevel","_text__WEBPACK_IMPORTED_MODULE_1__","Cursor","savedLength","mergedTextBlot","prevTextBlot","prevTextLength","nextTextBlot","nextText","newTextNode","remapOffset","_core_quill__WEBPACK_IMPORTED_MODULE_0__","_blots_block__WEBPACK_IMPORTED_MODULE_1__","_blots_break__WEBPACK_IMPORTED_MODULE_2__","_blots_container__WEBPACK_IMPORTED_MODULE_3__","_blots_cursor__WEBPACK_IMPORTED_MODULE_4__","_blots_embed__WEBPACK_IMPORTED_MODULE_5__","_blots_inline__WEBPACK_IMPORTED_MODULE_6__","_blots_scroll__WEBPACK_IMPORTED_MODULE_7__","_blots_text__WEBPACK_IMPORTED_MODULE_8__","_modules_clipboard__WEBPACK_IMPORTED_MODULE_9__","_modules_history__WEBPACK_IMPORTED_MODULE_10__","_modules_keyboard__WEBPACK_IMPORTED_MODULE_11__","_modules_uploader__WEBPACK_IMPORTED_MODULE_12__","keyboard_Keyboard","SHORTKEY","normalize","deleteRange","core_quill","core_module","has_window","getScrollIntoViewConfig","element","_window","windowHeight","innerHeight","_element$getBoundingC","elemTop","y","elemBottom","KEY_NAMES","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","alt","control","up","down","multiply","spacebar","del","subtract","esc","KEY_CODES","navigator","platform","_Module","Keyboard","bindings","addBinding","addInternalBindings","listen","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","handleBackspace","handleDelete","handleDeleteRange","keyBinding","binding","keyPropery","which","singleBinding","evt","defaultPrevented","raiseOnKeydownCallback","normalizeKeyName","_this4$quill$getLine","getLine","_this4$quill$getLine2","_this4$quill$getLeaf","getLeaf","_this4$quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","handlerResult","preventAfterAllMatches","onKeydown","_this$quill$getLine","_this$quill$getLine2","_this$quill$getLine3","_this$quill$getLine4","isPrevLineEmpty","curFormats","prevFormats","formatDelta","updateContents","_this$quill$getLine5","_this$quill$getLine6","_this$quill$getLine7","_this$quill$getLine8","nextFormats","lineFormats","_this$quill$getLine9","_this$quill$getLine10","scrollConfig","_ref3","isKeySupported","normalizedKey","makeCodeBlockHandler","makeEmbedArrowHandler","_ref4","where","_this$quill$getLeaf","_this$quill$getLeaf2","makeFormatHandler","shortKey","_ref5","firstFormats","lastFormats","bold","italic","underline","outdent","table","cutoff","_this$quill$getLine11","_this$quill$getLine12","_this$quill$getLine13","_this$quill$getLine14","header","blockquote","_this$quill$getLine15","_this$quill$getLine16","_this$quill$getLine17","_this$quill$getLine18","numLines","shared","hasOwn","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","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__","_utils_capitalize__WEBPACK_IMPORTED_MODULE_14__","ELEMENT_NODE","CLIPBOARD_CONFIG","matchText","matchNewline","matchBreak","matchBlot","matchAttributor","matchStyles","matchIndent","matchList","matchCodeBlock","matchAlias","matchIgnore","HTML_TEXT_MATCHERS","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","_options$tableBlots","onCaptureCopy","onCapturePaste","matchers","tableBlots","selector","matcher","addMatcher","applyMatchers","applyTextMatchers","prepareTextMatching","ownerDocument","doc","DOMParser","parseFromString","nodeMatches","_this$prepareMatching","prepareMatching","_this$prepareMatching2","elementMatchers","textMatchers","paste","isCut","clipboardData","_this$quill$selection","_this$quill$selection2","_this$onCopy","onCopy","setData","raiseCallback","getData","files","upload","_DOMParser$parseFromS","documentContainsImage","childElementCount","firstElementChild","onPaste","getSemanticHTML","pastedDelta","_pair","matchPlainText","_pair2","newDelta","endText","preNodes","isPre","childNode","childrenDelta","reducedDelta","language","composed","dimension","isCell","isTable","fontStyle","textDecoration","strike","fontWeight","parseFloat","textIndent","replacer","collapse","replaced","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","asyncTag","nullTag","proxyTag","undefinedTag","typedArrayTags","freeProcess","process","nodeUtil","nodeIsTypedArray","isTypedArray","arrayFilter","resIndex","arraySome","baseUnary","cacheHas","nativeObjectToString","symToStringTag","SetCache","setCacheAdd","setCacheHas","isArg","isBuff","isType","getRawTag","baseIsArguments","baseIsEqual","bitmask","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsTypedArray","isPartial","arrLength","othLength","seen","arrValue","othValue","compared","othIndex","objProps","objLength","othProps","skipCtor","objCtor","othCtor","isOwn","unmasked","capitalize","substring","ColorAttributor","ColorClass","ColorStyle","_StyleAttributor","hex","DirectionAttribute","DirectionClass","DirectionStyle","uncurryThis","toObject","HOT_COUNT","HOT_SPAN","require","thisArg","objectCtorString","allocUnsafe","nativeMax","nativeNow","Date","now","assignMergeValue","baseAssignValue","baseFor","createBaseFor","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","srcValue","baseMergeDeep","safeGet","keysIn","mergeFunc","isCommon","isTyped","isPlainObject","toPlainObject","baseRest","setToString","overRest","identity","baseSetToString","string","constant","isNew","createAssigner","assigner","guard","isIterateeCall","fromRight","iterable","otherArgs","shortOut","count","lastCalled","stamp","merge","AlignAttribute","AlignClass","AlignStyle","fails","Link","_sanitize","_blots_inline__WEBPACK_IMPORTED_MODULE_0__","sanitize","url","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","BackgroundClass","BackgroundStyle","_color__WEBPACK_IMPORTED_MODULE_1__","FontStyle","FontClass","FontStyleAttributor","SizeClass","SizeStyle","toggleAttribute","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","endsWithNewlineChange","deleteLength","changeIndex","isCallable","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","f","O","P","Attributes","prepareAttributor","_attributors_element_attributor__WEBPACK_IMPORTED_MODULE_0__","makeTableArrowHandler","cell","targetTablePart","targetRow","targetCell","targetLine","prepareAttributeMatcher","_attributors_element_attributor__WEBPACK_IMPORTED_MODULE_1__","_attributors_element_style__WEBPACK_IMPORTED_MODULE_2__","_formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_3__","_formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_4__","_clipboard__WEBPACK_IMPORTED_MODULE_5__","ATTRIBUTORS","attributors","GUARD_TEXT","Embed","contentNode","leftGuard","rightGuard","prevLength","Theme","ModuleClass","themes","g","Uploader","preventImageUploading","addDragOverHandler","addDropHandler","ua","isMsIe","noFiles","dataTransfer","onDrop","preventImageUpload","caretRangeFromPoint","clientX","clientY","caretPositionFromPoint","offsetNode","uploads","file","mimetypes","imageBlot","promises","reader","FileReader","onload","readAsDataURL","all","then","images","image","aFunction","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","IndexedObject","requireObjectCoercible","getId","random","is_defined","attributors_cell","attributors_table","get_id","toggle_attribute","CELL_IDENTITY_KEYS","DATA_PREFIX","table_CellLine","CellLine","rowId","row","dataset","isCellLine","tableCellLine","_this$cell","_this$cell2","_this$cell2$table","_value$key","identityMarker","tableId","table_cellId","hasAttribute","HeaderCellLine","_CellLine","table_BaseCell","BaseCell","_CELL_FORMATS$name","thisHead","thisTail","nextHead","nextTail","cellFormats","rowOffset","_this$row","_this$domNode$getAttr","_get3","_CELL_FORMATS$format","_domNode$getAttribute","_domNode$firstElement","TableCell","_BaseCell","_super4","dataAttribute","TableHeaderCell","_BaseCell2","_super5","table_BaseRow","_Container2","BaseRow","_super6","_get4","childFormatName","childFormats","_this$parent","TableRow","_BaseRow","_super7","TableHeaderRow","_BaseRow2","_super8","table_RowContainer","_Container3","RowContainer","_super9","_get5","_len4","_key4","TableBody","_RowContainer","_super10","TableHeader","_RowContainer2","_super11","table_TableContainer","_Container4","TableContainer","_super12","headerRows","bodyRows","maxColCount","getMaxTableColCount","balanceRows","getMaxRowColCount","rows","CellClass","fill","cellLine","column","_this5$descendants","_this5$descendants2","tablePart","_this6$descendants","_this6$descendants2","CellBlot","CellLineBlot","emptyLine","_this$descendants","_this$descendants2","id","_this$descendants3","_this$descendants4","_this$descendants5","_this$descendants6","newHeader","childElem","cells","tableFormat","_TABLE_FORMATS$format","make_table_arrow_handler","prepare_attr_matcher","table_typeof","table_slicedToArray","table_arrayWithHoles","table_iterableToArrayLimit","table_unsupportedIterableToArray","table_nonIterableRest","table_arrayLikeToArray","table_classCallCheck","table_defineProperties","table_createClass","table_inherits","table_setPrototypeOf","table_createSuper","table_isNativeReflectConstruct","table_getPrototypeOf","table_possibleConstructorReturn","table_assertThisInitialized","EMPTY_RESULT","table_Table","Table","addImmediateFormat","integrateClipboard","addKeyboardHandlers","listenBalanceCells","addTableBlot","matchCell","keyboardBindings","balanceCells","_this$getTable","getTable","_this$getTable2","deleteColumn","cellOffset","_this$getTable3","_this$getTable4","_this$getTable5","_this$getTable6","_this$getTable7","_this$getTable8","insertColumn","_this$getTable9","_this$getTable10","insertRow","_this$getTable11","_this$getTable12","insertHeaderRow","columns","balanceTables","old","isHeaderRow","cellId","cellLineBlotName","webpackPolyfill","deprecate","paths","definePropertyModule","createPropertyDescriptor","bitmap","ElementAttributor","_Attributor","_options$allowedTags","isNodeAllowed","ElementStyleAttributor","lite_BaseCell","_this$row$table","_this$row2","lite_BaseRow","lite_RowContainer","lite_TableContainer","insertParagraphAbove","insertIndex","insertParagraphBelow","tableSide","lite_typeof","lite_slicedToArray","lite_arrayWithHoles","lite_iterableToArrayLimit","lite_unsupportedIterableToArray","lite_nonIterableRest","lite_arrayLikeToArray","lite_classCallCheck","lite_defineProperties","lite_createClass","lite_inherits","lite_setPrototypeOf","lite_createSuper","lite_isNativeReflectConstruct","lite_getPrototypeOf","lite_possibleConstructorReturn","lite_assertThisInitialized","lite_TableLite","TableLite","matchTable","getModule","_module$getTable","_module$getTable2","hasHead","_module$getTable3","_module$getTable4","hasBody","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__","_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","_this$children$find","_this$children$find2","codeBlock","hljs","languages","highlightBlot","initListener","initTimer","select","label","option","highlight","timer","clearTimeout","interval","nodeText","ceil","floor","number","classof","TO_STRING_TAG_SUPPORT","classofRaw","wellKnownSymbol","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","SHARED","stringSlice","functionToString","inspectSource","toPrimitive","isSymbol","aCallable","V","tryToString","propertyIsEnumerableModule","toIndexedObject","$getOwnPropertyDescriptor","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","enforceInternalState","enforce","TEMPLATE","state","unsafe","simple","toLength","activeXDocument","enumBugKeys","hiddenKeys","documentCreateElement","sharedKey","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","display","src","contentWindow","open","F","NullProtoObject","ActiveXObject","domain","Properties","Iterator_1","Events","EE","addListener","listener","_events","_eventsCount","clearEvent","EventEmitter","eventNames","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","j","removeAllListeners","prefixed","IS_PURE","copyright","postfix","V8_VERSION","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","getterFor","wmget","wmhas","wmset","metadata","facade","STATE","EXISTS","getBuiltIn","isPrototypeOf","$Symbol","$propertyIsEnumerable","NASHORN_BUG","1","getDescriptor","PROPER","toIntegerOrInfinity","integer","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","getMethod","Iterators","CONSTRUCTOR","METHOD","core","align","direction","IndentAttributor","_ClassAttributor","IndentClass","blockquote_typeof","blockquote_classCallCheck","blockquote_inherits","blockquote_setPrototypeOf","blockquote_createSuper","blockquote_isNativeReflectConstruct","blockquote_getPrototypeOf","blockquote_possibleConstructorReturn","blockquote_assertThisInitialized","Blockquote","header_typeof","header_classCallCheck","header_defineProperties","header_createClass","header_inherits","header_setPrototypeOf","header_createSuper","header_isNativeReflectConstruct","header_getPrototypeOf","header_possibleConstructorReturn","header_assertThisInitialized","Header","list_typeof","list_defineProperties","list_createClass","list_get","list_superPropBase","list_getPrototypeOf","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_inherits","italic_setPrototypeOf","italic_createSuper","italic_isNativeReflectConstruct","italic_getPrototypeOf","italic_possibleConstructorReturn","italic_assertThisInitialized","Italic","_Bold","formats_link","script_typeof","script_classCallCheck","script_defineProperties","script_createClass","script_get","script_superPropBase","script_getPrototypeOf","script_inherits","script_setPrototypeOf","script_createSuper","script_isNativeReflectConstruct","script_possibleConstructorReturn","script_assertThisInitialized","Script","script","strike_typeof","strike_classCallCheck","strike_inherits","strike_setPrototypeOf","strike_createSuper","strike_isNativeReflectConstruct","strike_getPrototypeOf","strike_possibleConstructorReturn","strike_assertThisInitialized","Strike","underline_typeof","underline_classCallCheck","underline_inherits","underline_setPrototypeOf","underline_createSuper","underline_isNativeReflectConstruct","underline_getPrototypeOf","underline_possibleConstructorReturn","underline_assertThisInitialized","Underline","blots_embed","formula_typeof","formula_classCallCheck","formula_defineProperties","formula_createClass","formula_get","formula_superPropBase","formula_getPrototypeOf","formula_inherits","formula_setPrototypeOf","formula_createSuper","formula_isNativeReflectConstruct","formula_possibleConstructorReturn","formula_assertThisInitialized","formula_Formula","_Embed","Formula","_this$value","formula","katex","render","throwOnError","errorColor","image_typeof","image_classCallCheck","image_defineProperties","image_createClass","image_get","image_superPropBase","image_getPrototypeOf","image_inherits","image_setPrototypeOf","image_createSuper","image_isNativeReflectConstruct","image_possibleConstructorReturn","image_assertThisInitialized","ATTRIBUTES","image_Image","Image","execCommand","formats_image","video_typeof","video_classCallCheck","video_defineProperties","video_createClass","video_get","video_superPropBase","video_getPrototypeOf","video_inherits","video_setPrototypeOf","video_createSuper","video_isNativeReflectConstruct","video_possibleConstructorReturn","video_assertThisInitialized","video_ATTRIBUTES","video_Video","_BlockEmbed","Video","video","syntax","multiline_break_typeof","multiline_break_classCallCheck","multiline_break_defineProperties","multiline_break_createClass","multiline_break_inherits","multiline_break_setPrototypeOf","multiline_break_createSuper","multiline_break_isNativeReflectConstruct","multiline_break_getPrototypeOf","multiline_break_possibleConstructorReturn","multiline_break_assertThisInitialized","MultilineBreak","multiline_break","multiline_typeof","multiline_classCallCheck","multiline_defineProperties","multiline_createClass","multiline_inherits","multiline_setPrototypeOf","multiline_createSuper","multiline_isNativeReflectConstruct","multiline_getPrototypeOf","multiline_possibleConstructorReturn","multiline_assertThisInitialized","breakMatcher","multilineBreak","multiline_Multiline","Multiline","enterHandler","currentLeaf","nextLeaf","multiline","lite","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","_fix_unicode","editdiff","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","x","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","charCodeAt","pointerend","is_surrogate_pair_end","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","fix_unicode","pointer","count_delete","count_insert","text_delete","text_insert","previous_equality","ends_with_pair_start","stray","k","starts_with_pair_end","changes","charCode","str","remove_empty_tuples","tuples","make_edit_splice","before","oldMiddle","newMiddle","oldLength","newLength","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","oldPrefix","newPrefix","oldSuffix","newSuffix","keepNull","attrs","baseInverted","Iterator","retOp","substr","defineIterator","STRING_ITERATOR","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","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertyNames","toAbsoluteIndex","lengthOfArrayLike","IS_INCLUDES","el","fromIndex","feature","detection","POLYFILL","NATIVE","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","INCORRECT_ITERATION","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","iteratorMethod","that","iteratorClose","kind","innerResult","innerError","ArrayPrototype","noop","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","propertyKey","usingIterator","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","entryUnbind","addToUnscopables","endPos","UNSCOPABLES","$values","TO_ENTRIES","notARegExp","correctIsRegExpLogic","un$EndsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","searchString","endPosition","search","isRegExp","MATCH","METHOD_NAME","error1","error2"],"mappings":"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","file":"js/npm.devextreme-quill.e65574e5.js","sourcesContent":["/*!\n * DevExtreme-Quill Editor v.1.5.18\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 = 172);\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__(18);\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__(34);\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__(14);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23);\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(54);\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.5.18\";\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__(114));\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(18));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(29));\nvar AttributeMap_1 = __importDefault(__webpack_require__(115));\nvar Op_1 = __importDefault(__webpack_require__(90));\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 =\n/** @class */\nfunction () {\n function LinkedList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n LinkedList.prototype.append = function () {\n var nodes = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n\n this.insertBefore(nodes[0], null);\n\n if (nodes.length > 1) {\n var rest = nodes.slice(1);\n this.append.apply(this, rest);\n }\n };\n\n LinkedList.prototype.at = function (index) {\n var next = this.iterator();\n var cur = next();\n\n while (cur && index > 0) {\n index -= 1;\n cur = next();\n }\n\n return cur;\n };\n\n LinkedList.prototype.contains = function (node) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n if (cur === node) {\n return true;\n }\n\n cur = next();\n }\n\n return false;\n };\n\n LinkedList.prototype.indexOf = function (node) {\n var next = this.iterator();\n var cur = next();\n var index = 0;\n\n while (cur) {\n if (cur === node) {\n return index;\n }\n\n index += 1;\n cur = next();\n }\n\n return -1;\n };\n\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (node == null) {\n return;\n }\n\n this.remove(node);\n node.next = refNode;\n\n if (refNode != null) {\n node.prev = refNode.prev;\n\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n\n refNode.prev = node;\n\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n\n this.length += 1;\n };\n\n LinkedList.prototype.offset = function (target) {\n var index = 0;\n var cur = this.head;\n\n while (cur != null) {\n if (cur === target) {\n return index;\n }\n\n index += cur.length();\n cur = cur.next;\n }\n\n return -1;\n };\n\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) {\n return;\n }\n\n if (node.prev != null) {\n node.prev.next = node.next;\n }\n\n if (node.next != null) {\n node.next.prev = node.prev;\n }\n\n if (node === this.head) {\n this.head = node.next;\n }\n\n if (node === this.tail) {\n this.tail = node.prev;\n }\n\n this.length -= 1;\n };\n\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n } // TODO use yield when we can\n\n\n return function () {\n var ret = curNode;\n\n if (curNode != null) {\n curNode = curNode.next;\n }\n\n return ret;\n };\n };\n\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n var length = cur.length();\n\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n\n index -= length;\n cur = next();\n }\n\n return [null, 0];\n };\n\n LinkedList.prototype.forEach = function (callback) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n callback(cur);\n cur = next();\n }\n };\n\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) {\n return;\n }\n\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n\n var curIndex = index - offset;\n var next = this.iterator(startNode);\n var cur = next();\n\n while (cur && curIndex < index + length) {\n var curLength = cur.length();\n\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n\n curIndex += curLength;\n cur = next();\n }\n };\n\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n\n LinkedList.prototype.reduce = function (callback, memo) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n memo = callback(memo, cur);\n cur = next();\n }\n\n return memo;\n };\n\n return LinkedList;\n}();\n\n/* harmony default export */ var linked_list = (LinkedList);\n// CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar ParchmentError =\n/** @class */\nfunction (_super) {\n __extends(ParchmentError, _super);\n\n function ParchmentError(message) {\n var _this = this;\n\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return ParchmentError;\n}(Error);\n\n/* harmony default export */ var error = (ParchmentError);\n// CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n\n\nvar registry_Registry =\n/** @class */\nfunction () {\n function Registry() {\n this.attributes = {};\n this.classes = {};\n this.tags = {};\n this.types = {};\n }\n\n Registry.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n if (node == null) {\n return null;\n }\n\n if (this.blots.has(node)) {\n return this.blots.get(node) || null;\n }\n\n if (bubble) {\n return this.find(node.parentNode, bubble);\n }\n\n return null;\n };\n\n Registry.prototype.create = function (scroll, input, value) {\n var match = this.query(input);\n\n if (match == null) {\n throw new error(\"Unable to create \" + input + \" blot\");\n }\n\n var blotClass = match;\n var node = // @ts-ignore\n input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value);\n var blot = new blotClass(scroll, node, value);\n Registry.blots.set(blot.domNode, blot);\n return blot;\n };\n\n Registry.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return Registry.find(node, bubble);\n };\n\n Registry.prototype.query = function (query, scope) {\n var _this = this;\n\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n var match;\n\n if (typeof query === 'string') {\n match = this.types[query] || this.attributes[query]; // @ts-ignore\n } else if (query instanceof Text || query.nodeType === Node.TEXT_NODE) {\n match = this.types.text;\n } else if (typeof query === 'number') {\n if (query & src_scope.LEVEL & src_scope.BLOCK) {\n match = this.types.block;\n } else if (query & src_scope.LEVEL & src_scope.INLINE) {\n match = this.types.inline;\n }\n } else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n names.some(function (name) {\n match = _this.classes[name];\n\n if (match) {\n return true;\n }\n\n return false;\n });\n match = match || this.tags[query.tagName];\n }\n\n if (match == null) {\n return null;\n } // @ts-ignore\n\n\n if (scope & src_scope.LEVEL & match.scope && scope & src_scope.TYPE & match.scope) {\n return match;\n }\n\n return null;\n };\n\n Registry.prototype.register = function () {\n var _this = this;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n if (definitions.length > 1) {\n return definitions.map(function (d) {\n return _this.register(d);\n });\n }\n\n var definition = definitions[0];\n\n if (typeof definition.blotName !== 'string' && typeof definition.attrName !== 'string') {\n throw new error('Invalid definition');\n } else if (definition.blotName === 'abstract') {\n throw new error('Cannot register abstract class');\n }\n\n this.types[definition.blotName || definition.attrName] = definition;\n\n if (typeof definition.keyName === 'string') {\n this.attributes[definition.keyName] = definition;\n } else {\n if (definition.className != null) {\n this.classes[definition.className] = definition;\n }\n\n if (definition.tagName != null) {\n if (Array.isArray(definition.tagName)) {\n definition.tagName = definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n definition.tagName = definition.tagName.toUpperCase();\n }\n\n var tagNames = Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName];\n tagNames.forEach(function (tag) {\n if (_this.tags[tag] == null || definition.className == null) {\n _this.tags[tag] = definition;\n }\n });\n }\n }\n\n return definition;\n };\n\n Registry.blots = new WeakMap();\n return Registry;\n}();\n\n/* harmony default export */ var registry = (registry_Registry);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n\n\n\nvar shadow_ShadowBlot =\n/** @class */\nfunction () {\n function ShadowBlot(scroll, domNode) {\n this.scroll = scroll;\n this.domNode = domNode;\n registry.blots.set(domNode, this);\n this.prev = null;\n this.next = null;\n }\n\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new error('Blot definition missing tagName');\n }\n\n var node;\n\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n\n if (parseInt(value, 10).toString() === value) {\n value = parseInt(value, 10);\n }\n }\n\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n\n if (this.className) {\n node.classList.add(this.className);\n }\n\n return node;\n };\n\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function get() {\n return this.constructor;\n },\n enumerable: 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 =\n/** @class */\nfunction (_super) {\n parent_extends(ParentBlot, _super);\n\n function ParentBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.uiNode = null;\n\n _this.build();\n\n return _this;\n }\n\n ParentBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n\n ParentBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n\n ParentBlot.prototype.attachUI = function (node) {\n if (this.uiNode != null) {\n this.uiNode.remove();\n }\n\n this.uiNode = node;\n\n if (ParentBlot.uiClass) {\n this.uiNode.classList.add(ParentBlot.uiClass);\n }\n\n this.uiNode.setAttribute('contenteditable', 'false');\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n };\n\n ParentBlot.prototype.build = function () {\n var _this = this;\n\n this.children = new linked_list(); // Need to be reversed for if DOM nodes already in order\n\n Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this.uiNode;\n }).reverse().forEach(function (node) {\n try {\n var child = makeAttachedBlot(node, _this.scroll);\n\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof error) {\n return;\n } else {\n throw err;\n }\n }\n });\n };\n\n ParentBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.deleteAt(offset, childLength);\n });\n };\n\n ParentBlot.prototype.descendant = function (criteria, index) {\n if (index === void 0) {\n index = 0;\n }\n\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ParentBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n\n ParentBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, childIndex, childLength) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n\n if (child instanceof ParentBlot) {\n descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return descendants;\n };\n\n ParentBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n\n _super.prototype.detach.call(this);\n };\n\n ParentBlot.prototype.enforceAllowedChildren = function () {\n var _this = this;\n\n var done = false;\n this.children.forEach(function (child) {\n if (done) {\n return;\n }\n\n var allowed = _this.statics.allowedChildren.some(function (def) {\n return child instanceof def;\n });\n\n if (allowed) {\n return;\n }\n\n if (child.statics.scope === src_scope.BLOCK_BLOT) {\n if (child.next != null) {\n _this.splitAfter(child);\n }\n\n if (child.prev != null) {\n _this.splitAfter(child.prev);\n }\n\n child.parent.unwrap();\n done = true;\n } else if (child instanceof ParentBlot) {\n child.unwrap();\n } else {\n child.remove();\n }\n });\n };\n\n ParentBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.formatAt(offset, childLength, name, value);\n });\n };\n\n ParentBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n this.appendChild(blot);\n }\n };\n\n ParentBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (childBlot.parent != null) {\n childBlot.parent.children.remove(childBlot);\n }\n\n var refDomNode = null;\n this.children.insertBefore(childBlot, refBlot || null);\n childBlot.parent = this;\n\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n\n if (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) {\n this.domNode.insertBefore(childBlot.domNode, refDomNode);\n }\n\n childBlot.attach();\n };\n\n ParentBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n\n ParentBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n\n ParentBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.enforceAllowedChildren();\n\n if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n }\n\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(child); // TODO double check if necessary\n // child.optimize(context);\n } else {\n this.remove();\n }\n }\n };\n\n ParentBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n\n var position = [[this, index]];\n\n if (child instanceof ParentBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n\n return position;\n };\n\n ParentBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n\n ParentBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (replacement instanceof ParentBlot) {\n this.moveChildren(replacement);\n }\n\n return _super.prototype.replaceWith.call(this, replacement);\n };\n\n ParentBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.clone();\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n this.children.forEachAt(index, this.length(), function (child, offset, _length) {\n var split = child.split(offset, force);\n\n if (split != null) {\n after.appendChild(split);\n }\n });\n return after;\n };\n\n ParentBlot.prototype.splitAfter = function (child) {\n var after = this.clone();\n\n while (child.next != null) {\n after.appendChild(child.next);\n }\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n return after;\n };\n\n ParentBlot.prototype.unwrap = function () {\n if (this.parent) {\n this.moveChildren(this.parent, this.next || undefined);\n }\n\n this.remove();\n };\n\n ParentBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null && // @ts-ignore\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n\n var blot = _this.scroll.find(node);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode === _this.domNode || node === _this.uiNode;\n }).sort(function (a, b) {\n if (a === b) {\n return 0;\n }\n\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n\n if (node.nextSibling != null) {\n refBlot = _this.scroll.find(node.nextSibling);\n }\n\n var blot = makeAttachedBlot(node, _this.scroll);\n\n if (blot.next !== refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n this.enforceAllowedChildren();\n };\n\n ParentBlot.uiClass = '';\n return ParentBlot;\n}(shadow);\n\n/* harmony default export */ var abstract_parent = (parent_ParentBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\nvar container_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar container_ContainerBlot =\n/** @class */\nfunction (_super) {\n container_extends(ContainerBlot, _super);\n\n function ContainerBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ContainerBlot.prototype.checkMerge = function () {\n return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n };\n\n ContainerBlot.prototype.deleteAt = function (index, length) {\n _super.prototype.deleteAt.call(this, index, length);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n _super.prototype.formatAt.call(this, index, length, name, value);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n _super.prototype.insertAt.call(this, index, value, def);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n if (this.children.length > 0 && this.next != null && this.checkMerge()) {\n this.next.moveChildren(this);\n this.next.remove();\n }\n };\n\n ContainerBlot.blotName = 'container';\n ContainerBlot.scope = src_scope.BLOCK_BLOT;\n return ContainerBlot;\n}(abstract_parent);\n\n/* harmony default export */ var container = (container_ContainerBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\nvar leaf_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar leaf_LeafBlot =\n/** @class */\nfunction (_super) {\n leaf_extends(LeafBlot, _super);\n\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LeafBlot.value = function (_domNode) {\n return true;\n };\n\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n\n return -1;\n };\n\n LeafBlot.prototype.position = function (index, _inclusive) {\n var childNodes = Array.from(this.parent.domNode.childNodes);\n var offset = childNodes.indexOf(this.domNode);\n\n if (index > 0) {\n offset += 1;\n }\n\n return [this.parent.domNode, offset];\n };\n\n LeafBlot.prototype.value = function () {\n var _a;\n\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n\n LeafBlot.scope = src_scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow);\n\n/* harmony default export */ var leaf = (leaf_LeafBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\n\nvar attributor_Attributor =\n/** @class */\nfunction () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = src_scope.TYPE & src_scope.ATTRIBUTE;\n this.scope = options.scope != null ? // Ignore type bits, force attribute bit\n options.scope & src_scope.LEVEL | attributeBit : src_scope.ATTRIBUTE;\n\n if (options.whitelist != null) {\n this.whitelist = options.whitelist;\n }\n }\n\n Attributor.keys = function (node) {\n return Array.from(node.attributes).map(function (item) {\n return item.name;\n });\n };\n\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n node.setAttribute(this.keyName, value);\n return true;\n };\n\n Attributor.prototype.canAdd = function (_node, value) {\n if (this.whitelist == null) {\n return true;\n }\n\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n\n if (this.canAdd(node, value) && value) {\n return value;\n }\n\n return '';\n };\n\n return Attributor;\n}();\n\n/* harmony default export */ var attributor = (attributor_Attributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\nvar class_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction class_match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\n\nvar ClassAttributor =\n/** @class */\nfunction (_super) {\n class_extends(ClassAttributor, _super);\n\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n\n ClassAttributor.prototype.remove = function (node) {\n var matches = class_match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n\n ClassAttributor.prototype.value = function (node) {\n var result = class_match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n\n return this.canAdd(node, value) ? value : '';\n };\n\n return ClassAttributor;\n}(attributor);\n\n/* harmony default export */ var attributor_class = (ClassAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\nvar style_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\n\nvar StyleAttributor =\n/** @class */\nfunction (_super) {\n style_extends(StyleAttributor, _super);\n\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n } // @ts-ignore\n\n\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n\n return StyleAttributor;\n}(attributor);\n\n/* harmony default export */ var style = (StyleAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n\n\n\n\n\nvar store_AttributorStore =\n/** @class */\nfunction () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n\n AttributorStore.prototype.build = function () {\n var _this = this;\n\n this.attributes = {};\n var blot = registry.find(this.domNode);\n\n if (blot == null) {\n return;\n }\n\n var attributes = attributor.keys(this.domNode);\n var classes = attributor_class.keys(this.domNode);\n var styles = style.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = blot.scroll.query(name, src_scope.ATTRIBUTE);\n\n if (attr instanceof attributor) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n\n target.format(key, value);\n });\n };\n\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n\n AttributorStore.prototype.values = function () {\n var _this = this;\n\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n\n return AttributorStore;\n}();\n\n/* harmony default export */ var store = (store_AttributorStore);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\nvar inline_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n // Shallow object comparison\n\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n } // @ts-ignore\n\n\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar inline_InlineBlot =\n/** @class */\nfunction (_super) {\n inline_extends(InlineBlot, _super);\n\n function InlineBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n InlineBlot.formats = function (domNode, scroll) {\n var match = scroll.query(InlineBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n\n return undefined;\n };\n\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof InlineBlot)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n var format = this.scroll.query(name, src_scope.INLINE);\n\n if (format == null) {\n return;\n }\n\n if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n\n InlineBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || this.scroll.query(name, src_scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n var formats = this.formats();\n\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n\n var next = this.next;\n\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n\n InlineBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n InlineBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n InlineBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n\n if (wrapper instanceof InlineBlot) {\n this.attributes.move(wrapper);\n }\n\n return wrapper;\n };\n\n InlineBlot.allowedChildren = [InlineBlot, leaf];\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = src_scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(abstract_parent);\n\n/* harmony default export */ var inline = (inline_InlineBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\nvar block_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\n\n\nvar block_BlockBlot =\n/** @class */\nfunction (_super) {\n block_extends(BlockBlot, _super);\n\n function BlockBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n BlockBlot.formats = function (domNode, scroll) {\n var match = scroll.query(BlockBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n };\n\n BlockBlot.prototype.format = function (name, value) {\n var format = this.scroll.query(name, src_scope.BLOCK);\n\n if (format == null) {\n return;\n } else if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n };\n\n BlockBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.scroll.query(name, src_scope.BLOCK) != null) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || this.scroll.query(value, src_scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n\n if (after != null) {\n var blot = this.scroll.create(value, def);\n after.parent.insertBefore(blot, after);\n } else {\n throw new Error('Attempt to insertAt after block boundaries');\n }\n }\n };\n\n BlockBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n BlockBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n BlockBlot.blotName = 'block';\n BlockBlot.scope = src_scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n BlockBlot.allowedChildren = [inline, BlockBlot, leaf];\n return BlockBlot;\n}(abstract_parent);\n\n/* harmony default export */ var block = (block_BlockBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\nvar embed_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nvar EmbedBlot =\n/** @class */\nfunction (_super) {\n embed_extends(EmbedBlot, _super);\n\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EmbedBlot.formats = function (_domNode, _scroll) {\n return undefined;\n };\n\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode, this.scroll);\n };\n\n return EmbedBlot;\n}(leaf);\n\n/* harmony default export */ var blot_embed = (EmbedBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\nvar scroll_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\n\nvar scroll_ScrollBlot =\n/** @class */\nfunction (_super) {\n scroll_extends(ScrollBlot, _super);\n\n function ScrollBlot(registry, node) {\n var _this = // @ts-ignore\n _super.call(this, null, node) || this;\n\n _this.registry = registry;\n _this.scroll = _this;\n\n _this.build();\n\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n\n _this.attach();\n\n return _this;\n }\n\n ScrollBlot.prototype.create = function (input, value) {\n return this.registry.create(this, input, value);\n };\n\n ScrollBlot.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return this.registry.find(node, bubble);\n };\n\n ScrollBlot.prototype.query = function (query, scope) {\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n return this.registry.query(query, scope);\n };\n\n ScrollBlot.prototype.register = function () {\n var _a;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n return (_a = this.registry).register.apply(_a, definitions);\n };\n\n ScrollBlot.prototype.build = function () {\n if (this.scroll == null) {\n return;\n }\n\n _super.prototype.build.call(this);\n };\n\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n\n this.observer.disconnect();\n };\n\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n\n _super.prototype.insertAt.call(this, index, value, def);\n };\n\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n\n if (mutations === void 0) {\n mutations = [];\n }\n\n if (context === void 0) {\n context = {};\n }\n\n _super.prototype.optimize.call(this, context);\n\n var mutationsMap = context.mutationsMap || new WeakMap(); // We must modify mutations directly, cannot make copy and then modify\n\n var records = Array.from(this.observer.takeRecords()); // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n\n var mark = function mark(blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n\n if (blot == null || blot === _this) {\n return;\n }\n\n if (blot.domNode.parentNode == null) {\n return;\n }\n\n if (!mutationsMap.has(blot.domNode)) {\n mutationsMap.set(blot.domNode, []);\n }\n\n if (markParent) {\n mark(blot.parent);\n }\n };\n\n var optimize = function optimize(blot) {\n // Post-order traversal\n if (!mutationsMap.has(blot.domNode)) {\n return;\n }\n\n if (blot instanceof abstract_parent) {\n blot.children.forEach(optimize);\n }\n\n mutationsMap.delete(blot.domNode);\n blot.optimize(context);\n };\n\n var remaining = mutations;\n\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n\n remaining.forEach(function (mutation) {\n var blot = _this.find(mutation.target, true);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(_this.find(mutation.previousSibling, false));\n Array.from(mutation.addedNodes).forEach(function (node) {\n var child = _this.find(node, false);\n\n mark(child, false);\n\n if (child instanceof abstract_parent) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = Array.from(this.observer.takeRecords());\n records = remaining.slice();\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n };\n\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n if (context === void 0) {\n context = {};\n }\n\n mutations = mutations || this.observer.takeRecords();\n var mutationsMap = new WeakMap();\n mutations.map(function (mutation) {\n var blot = registry.find(mutation.target, true);\n\n if (blot == null) {\n return null;\n }\n\n if (mutationsMap.has(blot.domNode)) {\n mutationsMap.get(blot.domNode).push(mutation);\n return null;\n } else {\n mutationsMap.set(blot.domNode, [mutation]);\n return blot;\n }\n }).forEach(function (blot) {\n if (blot != null && blot !== _this && mutationsMap.has(blot.domNode)) {\n blot.update(mutationsMap.get(blot.domNode) || [], context);\n }\n });\n context.mutationsMap = mutationsMap;\n\n if (mutationsMap.has(this.domNode)) {\n _super.prototype.update.call(this, mutationsMap.get(this.domNode), context);\n }\n\n this.optimize(mutations, context);\n };\n\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = block;\n ScrollBlot.allowedChildren = [block, container];\n ScrollBlot.scope = src_scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(abstract_parent);\n\n/* harmony default export */ var blot_scroll = (scroll_ScrollBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\nvar text_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar text_TextBlot =\n/** @class */\nfunction (_super) {\n text_extends(TextBlot, _super);\n\n function TextBlot(scroll, node) {\n var _this = _super.call(this, scroll, node) || this;\n\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n\n TextBlot.value = function (domNode) {\n return domNode.data;\n };\n\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n\n return -1;\n };\n\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.text = this.statics.value(this.domNode);\n\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n\n TextBlot.prototype.position = function (index, _inclusive) {\n if (_inclusive === void 0) {\n _inclusive = false;\n }\n\n return [this.domNode, index];\n };\n\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.scroll.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next || undefined);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n\n TextBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n\n TextBlot.prototype.value = function () {\n return this.text;\n };\n\n TextBlot.blotName = 'text';\n TextBlot.scope = src_scope.INLINE_BLOT;\n return TextBlot;\n}(leaf);\n\n/* harmony default export */ var blot_text = (text_TextBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91);\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__(17);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);\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\n// EXTERNAL MODULE: ./node_modules/lodash.clonedeep/index.js\nvar lodash_clonedeep = __webpack_require__(18);\nvar lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);\n\n// EXTERNAL MODULE: ./node_modules/lodash.isequal/index.js\nvar lodash_isequal = __webpack_require__(29);\nvar lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);\n\n// EXTERNAL MODULE: ./node_modules/lodash.merge/index.js\nvar lodash_merge = __webpack_require__(34);\nvar lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);\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/selection.js\nvar selection = __webpack_require__(7);\n\n// EXTERNAL MODULE: ./blots/cursor.js\nvar cursor = __webpack_require__(24);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar blots_block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(11);\n\n// CONCATENATED MODULE: ./utils/remove_class.js\nfunction removeClass(node, className) {\n node.classList.remove(className);\n\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n}\n// CONCATENATED MODULE: ./core/editor.js\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\n\nvar ASCII = /^[ -~]*$/;\n\nvar editor_Editor = /*#__PURE__*/function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n this.immediateFormats = new Set();\n }\n\n _createClass(Editor, [{\n key: \"addImmediateFormat\",\n value: function addImmediateFormat(name) {\n this.immediateFormats.add(name);\n }\n }, {\n key: \"applyDelta\",\n value: function applyDelta(delta) {\n var _this = this;\n\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n var normalizedDelta = normalizeDelta(delta);\n var deleteDelta = new Delta_default.a();\n normalizedDelta.reduce(function (index, op) {\n var length = Delta[\"Op\"].length(op);\n var attributes = op.attributes || {};\n var addedNewline = false;\n\n if (op.insert != null) {\n deleteDelta.retain(length);\n\n if (typeof op.insert === 'string') {\n var text = op.insert;\n addedNewline = !text.endsWith('\\n') && (scrollLength <= index || _this.scroll.descendant(blots_block[\"a\" /* BlockEmbed */], index)[0]);\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_default()({}, Object(blots_block[\"c\" /* bubbleFormats */])(line));\n\n if (line instanceof blots_block[\"d\" /* default */]) {\n var _line$descendant = line.descendant(parchment[\"LeafBlot\"], offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = lodash_merge_default()(formats, Object(blots_block[\"c\" /* bubbleFormats */])(leaf));\n }\n\n attributes = Delta[\"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 addedNewline = _this.scroll.query(key, parchment[\"Scope\"].INLINE) != null && (scrollLength <= index || _this.scroll.descendant(blots_block[\"a\" /* BlockEmbed */], index)[0]);\n\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n\n scrollLength += length;\n } else {\n deleteDelta.push(op);\n }\n\n var keys = Object.keys(attributes);\n\n _this.immediateFormats.forEach(function (format) {\n if (keys.indexOf(format) > -1) {\n _this.scroll.formatAt(index, length, format, attributes[format]);\n\n delete attributes[format];\n }\n });\n\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n var addedLength = addedNewline ? 1 : 0;\n scrollLength += addedLength;\n deleteDelta.delete(addedLength);\n return index + length + addedLength;\n }, 0);\n deleteDelta.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 + Delta[\"Op\"].length(op);\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 Delta_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 Delta_default.a().retain(index).retain(length, lodash_clonedeep_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 Delta_default.a().retain(index).retain(length, lodash_clonedeep_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 Delta_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[\"d\" /* default */]) {\n lines.push(blot);\n } else if (blot instanceof parchment[\"LeafBlot\"]) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(parchment[\"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[\"c\" /* bubbleFormats */])(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[\"c\" /* bubbleFormats */])(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 Delta_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 Delta_default.a().retain(index).insert(text, lodash_clonedeep_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[\"d\" /* default */].blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof blots_break[\"a\" /* default */];\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 Delta_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 Delta_default.a().insert(text).concat(suffix));\n var delta = new Delta_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[\"c\" /* bubbleFormats */])(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(cursor[\"a\" /* default */].CONTENTS, '');\n var oldText = new Delta_default.a().insert(oldValue);\n var newText = new Delta_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 Delta_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 Delta_default.a());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n\n if (!change || !lodash_isequal_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[\"a\" /* default */]) {\n return Object(blots_text[\"b\" /* escapeText */])(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 domNode = extractNodeFromBlot(blot);\n var outerHTML = domNode.outerHTML,\n innerHTML = 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.indexOf('\").concat(parts.join('').replace(/(\\sdata-table.+?=[\"'].*?[\"'])/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[\"a\" /* default */]) {\n parts.push('
    ');\n }\n}\n\nfunction extractNodeFromBlot(blot) {\n var domNode = blot.domNode.cloneNode(true);\n return removeTableServiceClasses(blot, domNode);\n}\n\nfunction removeTableServiceClasses(blot, domNode) {\n var BLOTS_WITH_SERVICE_CLASS = ['tableCellLine', 'tableHeaderCellLine', 'tableCell', 'tableHeaderCell'];\n\n if (BLOTS_WITH_SERVICE_CLASS.includes(blot.statics.blotName)) {\n removeClass(domNode, blot.statics.className);\n }\n\n return domNode;\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 Delta_default.a());\n}\n\nfunction shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new selection[\"a\" /* Range */](index + amount, length);\n}\n\n/* harmony default export */ var editor = __webpack_exports__[\"a\"] = (editor_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__(12);\n/* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);\n/* harmony import */ var _text__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 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__(18);\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__(29);\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__(23);\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__, \"j\", function() { return TableTextAlignStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return TableBackgroundColorStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return TableBorderStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return TableBorderStyleStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return TableBorderWidthStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return TableBorderColorStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return TableHeightStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return TableWidthStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return TableWidthAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return TableHeightAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return TABLE_FORMATS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TABLE_ATTRIBUTORS; });\n/* harmony import */ var _prepare_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50);\n/* harmony import */ var _prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);\n\n\nvar tableConfig = {\n name: 'table',\n allowedTags: ['TABLE']\n};\nvar TableHeightAttribute = Object(_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(tableConfig, 'height');\nvar TableWidthAttribute = Object(_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(tableConfig, 'width');\nvar TableHeightStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'height');\nvar TableWidthStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'width');\nvar TableTextAlignStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'text', 'align');\nvar TableBackgroundColorStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'background', 'color');\nvar TableBorderStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'border');\nvar TableBorderStyleStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'border', 'style');\nvar TableBorderWidthStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'border', 'width');\nvar TableBorderColorStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(tableConfig, 'border', 'color');\nvar TABLE_FORMATS = {\n tableTextAlign: TableTextAlignStyle,\n tableBackgroundColor: TableBackgroundColorStyle,\n tableBorder: TableBorderStyle,\n tableBorderStyle: TableBorderStyleStyle,\n tableBorderWidth: TableBorderWidthStyle,\n tableBorderColor: TableBorderColorStyle,\n tableWidth: TableWidthStyle,\n tableHeight: TableHeightStyle\n};\nvar TABLE_ATTRIBUTORS = [TableTextAlignStyle, TableBackgroundColorStyle, TableBorderStyle, TableBorderStyleStyle, TableBorderColorStyle, TableBorderWidthStyle, TableHeightStyle, TableWidthStyle, TableWidthAttribute, TableHeightAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"p\", function() { return CellVerticalAlignStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"o\", function() { return CellTextAlignStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return CellBackgroundColorStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return CellBorderStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return CellBorderStyleStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return CellBorderWidthStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return CellBorderColorStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"m\", function() { return CellPaddingStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return CellPaddingTopStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"j\", function() { return CellPaddingBottomStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"k\", function() { return CellPaddingLeftStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"l\", function() { return CellPaddingRightStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return CellHeightStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"r\", function() { return CellWidthStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return CellHeightAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"q\", function() { return CellWidthAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CELL_FORMATS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CELL_ATTRIBUTORS; });\n/* harmony import */ var _prepare_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50);\n/* harmony import */ var _prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);\n\n\nvar cellConfig = {\n name: 'cell',\n allowedTags: ['TH', 'TD']\n};\nvar CellHeightAttribute = Object(_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(cellConfig, 'height');\nvar CellWidthAttribute = Object(_prepare_attributor__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(cellConfig, 'width');\nvar CellHeightStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'height');\nvar CellWidthStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'width');\nvar CellVerticalAlignStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'vertical', 'align');\nvar CellTextAlignStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'text', 'align');\nvar CellBackgroundColorStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'background', 'color');\nvar CellBorderStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'border');\nvar CellBorderStyleStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'border', 'style');\nvar CellBorderWidthStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'border', 'width');\nvar CellBorderColorStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'border', 'color');\nvar CellPaddingStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'padding');\nvar CellPaddingTopStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'padding', 'top');\nvar CellPaddingBottomStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'padding', 'bottom');\nvar CellPaddingLeftStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'padding', 'left');\nvar CellPaddingRightStyle = Object(_prepare_style_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(cellConfig, 'padding', 'right');\nvar CELL_FORMATS = {\n cellBorder: CellBorderStyle,\n cellBorderStyle: CellBorderStyleStyle,\n cellBorderWidth: CellBorderWidthStyle,\n cellBorderColor: CellBorderColorStyle,\n cellBackgroundColor: CellBackgroundColorStyle,\n cellPadding: CellPaddingStyle,\n cellPaddingTop: CellPaddingTopStyle,\n cellPaddingBottom: CellPaddingBottomStyle,\n cellPaddingLeft: CellPaddingLeftStyle,\n cellPaddingRight: CellPaddingRightStyle,\n cellVerticalAlign: CellVerticalAlignStyle,\n cellTextAlign: CellTextAlignStyle,\n cellWidth: CellWidthStyle,\n cellHeight: CellHeightStyle\n};\nvar CELL_ATTRIBUTORS = [CellBackgroundColorStyle, CellBorderColorStyle, CellBorderStyle, CellBorderStyleStyle, CellBorderWidthStyle, CellPaddingBottomStyle, CellPaddingLeftStyle, CellPaddingRightStyle, CellPaddingStyle, CellPaddingTopStyle, CellVerticalAlignStyle, CellTextAlignStyle, CellHeightStyle, CellWidthStyle, CellWidthAttribute, CellHeightAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\n\n/***/ }),\n/* 10 */\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__(55)))\n\n/***/ }),\n/* 11 */\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/* 12 */\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/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return prepareStyleAttributor; });\n/* harmony import */ var _attributors_element_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30);\nvar _excluded = [\"name\", \"formatName\"];\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\n\n\nfunction prepareStyleAttributor(_ref, propName) {\n var name = _ref.name,\n formatName = _ref.formatName,\n elementConfig = _objectWithoutProperties(_ref, _excluded);\n\n var subPropName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var fullName = \"\".concat(propName).concat(subPropName ? \"-\".concat(subPropName) : '');\n return new _attributors_element_style__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"](\"\".concat(name).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(formatName !== null && formatName !== void 0 ? formatName : propName)).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(subPropName)), fullName, elementConfig);\n}\n\n/***/ }),\n/* 14 */\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/* 15 */\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/* 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 _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __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 _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/* 17 */\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/* 18 */\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__(55), __webpack_require__(62)(module)))\n\n/***/ }),\n/* 19 */\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__(12);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\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.textContent;\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/* 20 */\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__(12);\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _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/* 21 */\n/***/ (function(module, exports) {\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n/***/ }),\n/* 22 */\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/* 23 */\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/* 24 */\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__(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 _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/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);\n/* harmony import */ var _blots_embed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);\n/* harmony import */ var _blots_scroll__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(20);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);\n/* harmony import */ var _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28);\n/* harmony import */ var _modules_history__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(47);\n/* harmony import */ var _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(26);\n/* harmony import */ var _modules_uploader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(56);\n\n\n\n\n\n\n\n\n\n\n\n\n\n_core_quill__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"].register({\n 'blots/block': _blots_block__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"d\"],\n 'blots/block/embed': _blots_block__WEBPACK_IMPORTED_MODULE_1__[/* BlockEmbed */ \"a\"],\n 'blots/break': _blots_break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"],\n 'blots/container': _blots_container__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"],\n 'blots/cursor': _blots_cursor__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"],\n 'blots/embed': _blots_embed__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"],\n 'blots/inline': _blots_inline__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"],\n 'blots/scroll': _blots_scroll__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"],\n 'blots/text': _blots_text__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"],\n 'modules/clipboard': _modules_clipboard__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"b\"],\n 'modules/history': _modules_history__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"],\n 'modules/keyboard': _modules_keyboard__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"b\"],\n 'modules/uploader': _modules_uploader__WEBPACK_IMPORTED_MODULE_12__[/* default */ \"a\"]\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (_core_quill__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"b\", function() { return /* binding */ keyboard_Keyboard; });\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ SHORTKEY; });\n__webpack_require__.d(__webpack_exports__, \"d\", function() { return /* binding */ normalize; });\n__webpack_require__.d(__webpack_exports__, \"c\", function() { return /* binding */ deleteRange; });\n\n// EXTERNAL MODULE: ./node_modules/lodash.clonedeep/index.js\nvar lodash_clonedeep = __webpack_require__(18);\nvar lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);\n\n// EXTERNAL MODULE: ./node_modules/lodash.isequal/index.js\nvar lodash_isequal = __webpack_require__(29);\nvar lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);\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 core_quill = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./core/logger.js\nvar logger = __webpack_require__(23);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./utils/get_scroll_into_view_config.js\nfunction getScrollIntoViewConfig(element) {\n var _window = window,\n windowHeight = _window.innerHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n elemTop = _element$getBoundingC.y,\n elemBottom = _element$getBoundingC.bottom;\n\n if (elemTop < 0) {\n return true; // scroll to the top\n }\n\n if (elemBottom >= windowHeight) {\n return false; // scroll to the bottom\n }\n\n return null;\n}\n// CONCATENATED MODULE: ./modules/keyboard.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 _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\n\nvar debug = Object(logger[\"a\" /* default */])('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(has_window[\"a\" /* default */])() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar keyboard_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[\"a\" /* default */].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(has_window[\"a\" /* default */])() && /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 keyPropery = binding.which ? 'which' : 'key';\n var keys = Array.isArray(binding[keyPropery]) ? binding[keyPropery] : [binding[keyPropery]];\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[\"TextBlot\"] ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof parchment[\"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 = false;\n 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_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 var handlerResult = binding.handler.call(_this4, range, curContext, binding);\n var preventAfterAllMatches = handlerResult === null || handlerResult === void 0 ? void 0 : handlerResult.preventAfterAllMatches;\n prevented = handlerResult !== true || preventAfterAllMatches;\n return prevented && !preventAfterAllMatches;\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 Delta_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 = Delta[\"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 Delta_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[\"a\" /* default */].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 Delta_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 = Delta[\"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[\"a\" /* default */].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[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n\n return formats;\n }, {});\n var delta = new Delta_default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, core_quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index + 1, core_quill[\"a\" /* default */].sources.SILENT);\n this.quill.focus();\n\n var _this$quill$getLine9 = this.quill.getLine(range.index + 1),\n _this$quill$getLine10 = _slicedToArray(_this$quill$getLine9, 1),\n line = _this$quill$getLine10[0];\n\n var scrollConfig = getScrollIntoViewConfig(line.domNode);\n\n if (scrollConfig !== null) {\n line.domNode.scrollIntoView(scrollConfig);\n }\n\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[\"a\" /* default */].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[\"a\" /* default */]);\n\nkeyboard_Keyboard.DEFAULTS = {\n bindings: {\n bold: makeFormatHandler('bold', 66),\n italic: makeFormatHandler('italic', 73),\n underline: makeFormatHandler('underline', 85),\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[\"a\" /* default */].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[\"a\" /* default */].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[\"a\" /* default */].sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, core_quill[\"a\" /* default */].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[\"a\" /* default */].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 Delta_default.a().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, core_quill[\"a\" /* default */].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, core_quill[\"a\" /* default */].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[\"a\" /* default */].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[\"a\" /* default */].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$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 formats = _objectSpread(_objectSpread({}, line.formats()), {}, {\n list: 'checked'\n });\n\n var delta = new Delta_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[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index + 1, core_quill[\"a\" /* default */].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$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 var delta = new Delta_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[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index + 1, core_quill[\"a\" /* default */].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$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 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[\"a\" /* default */].sources.USER);\n this.quill.history.cutoff();\n var delta = new Delta_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[\"a\" /* default */].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, core_quill[\"a\" /* default */].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$getLine17 = this.quill.getLine(range.index),\n _this$quill$getLine18 = _slicedToArray(_this$quill$getLine17, 2),\n line = _this$quill$getLine18[0],\n offset = _this$quill$getLine18[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 Delta_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[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index - 1, core_quill[\"a\" /* default */].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[\"a\" /* default */].sources.USER);\n this.quill.setSelection(index, length, core_quill[\"a\" /* default */].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[\"EmbedBlot\"])) return true;\n\n if (key === 'leftArrow') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, core_quill[\"a\" /* default */].sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, core_quill[\"a\" /* default */].sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, core_quill[\"a\" /* default */].sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, core_quill[\"a\" /* default */].sources.USER);\n }\n\n return false;\n }), _ref4;\n}\n\nfunction makeFormatHandler(format, which) {\n return {\n key: format[0],\n which: which,\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], core_quill[\"a\" /* default */].sources.USER);\n return {\n preventAfterAllMatches: true\n };\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_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 = Delta[\"AttributeMap\"].diff(lastFormats, firstFormats) || {};\n }\n\n quill.deleteText(range, core_quill[\"a\" /* default */].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, core_quill[\"a\" /* default */].sources.USER);\n }\n\n quill.setSelection(range.index, core_quill[\"a\" /* default */].sources.SILENT);\n}\n\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar shared = __webpack_require__(92);\nvar hasOwn = __webpack_require__(33);\nvar uid = __webpack_require__(93);\nvar NATIVE_SYMBOL = __webpack_require__(94);\nvar USE_SYMBOL_AS_UID = __webpack_require__(95);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\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__, \"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__(23);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);\n/* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35);\n/* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19);\n/* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31);\n/* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(32);\n/* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(43);\n/* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(44);\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(26);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(30);\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\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\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignStyle */ \"c\"], _formats_background__WEBPACK_IMPORTED_MODULE_7__[/* BackgroundStyle */ \"b\"], _formats_color__WEBPACK_IMPORTED_MODULE_9__[/* ColorStyle */ \"c\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionStyle */ \"c\"], _formats_font__WEBPACK_IMPORTED_MODULE_11__[/* FontStyle */ \"b\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* SizeStyle */ \"b\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = /*#__PURE__*/function (_Module) {\n _inherits(Clipboard, _Module);\n\n var _super = _createSuper(Clipboard);\n\n function Clipboard(quill, options) {\n var _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()) {\n return;\n }\n\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\n if (range == null) {\n return;\n }\n\n var html = e.clipboardData.getData('text/html');\n var files = Array.from(e.clipboardData.files || []);\n\n if (!html && files.length > 0) {\n this.quill.uploader.upload(range, files);\n return;\n }\n\n if (html && files.length > 0) {\n var _DOMParser$parseFromS = new DOMParser().parseFromString(html, 'text/html'),\n body = _DOMParser$parseFromS.body;\n\n var documentContainsImage = body.childElementCount === 1 && body.firstElementChild.tagName === 'IMG';\n\n if (documentContainsImage) {\n this.quill.uploader.upload(range, files);\n return;\n }\n }\n\n var text = e.clipboardData.getData('text/plain');\n this.onPaste(range, {\n html: html,\n text: text\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 if (['TD', 'TH', 'TABLE'].indexOf(node.tagName) === -1) {\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\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 var isCell = ['TD', 'TH'].indexOf(node.tagName) !== -1;\n var isTable = node.tagName === 'TABLE';\n\n if ((isCell || isTable) && style[dimension]) {\n var name = \"\".concat(isTable ? 'table' : 'cell').concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_14__[/* default */ \"a\"])(dimension));\n formats[name] = 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/* 29 */\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__(55), __webpack_require__(62)(module)))\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return capitalize; });\nfunction capitalize(text) {\n return text ? text.substring(0, 1).toUpperCase() + text.substring(1) : '';\n}\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"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/* 32 */\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/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar toObject = __webpack_require__(64);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ }),\n/* 34 */\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__(55), __webpack_require__(62)(module)))\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 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/* 36 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isObject = __webpack_require__(48);\n\nvar String = global.String;\nvar TypeError = global.TypeError;\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/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\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/* 39 */\n/***/ (function(module, exports) {\n\nvar call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\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 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__(16);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _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/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (new WeakMap());\n\n/***/ }),\n/* 42 */\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__(31);\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/* 43 */\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/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SizeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SizeStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('size', 'ql-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('size', 'font-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return toggleAttribute; });\nfunction toggleAttribute(domNode, attrName, value) {\n if (value) {\n domNode.setAttribute(attrName, value);\n } else {\n domNode.removeAttribute(attrName);\n }\n}\n\n/***/ }),\n/* 46 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _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/* 47 */\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__(14);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);\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/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(22);\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar DESCRIPTORS = __webpack_require__(38);\nvar IE8_DOM_DEFINE = __webpack_require__(97);\nvar anObject = __webpack_require__(37);\nvar toPropertyKey = __webpack_require__(80);\n\nvar TypeError = global.TypeError;\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/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return prepareAttributor; });\n/* harmony import */ var _attributors_element_attributor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30);\nvar _excluded = [\"name\"];\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\n\n\nfunction prepareAttributor(_ref, attrName) {\n var name = _ref.name,\n elementConfig = _objectWithoutProperties(_ref, _excluded);\n\n return new _attributors_element_attributor__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"](\"\".concat(name).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(attrName)), attrName, elementConfig);\n}\n\n/***/ }),\n/* 51 */\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/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return prepareAttributeMatcher; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _attributors_element_attributor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69);\n/* harmony import */ var _attributors_element_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70);\n/* harmony import */ var _formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);\n/* harmony import */ var _formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28);\n\n\n\n\n\n\nvar ATTRIBUTORS = {\n table: _formats_table_attributors_table__WEBPACK_IMPORTED_MODULE_4__[/* TABLE_ATTRIBUTORS */ \"a\"],\n cell: _formats_table_attributors_cell__WEBPACK_IMPORTED_MODULE_3__[/* CELL_ATTRIBUTORS */ \"a\"]\n};\nfunction prepareAttributeMatcher(type) {\n var attributors = ATTRIBUTORS[type];\n return function (node, delta, scroll) {\n var attributes = _attributors_element_attributor__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].keys(node);\n var styles = _attributors_element_style__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].keys(node);\n var formats = {};\n attributes.concat(styles).forEach(function (name) {\n var attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].ATTRIBUTE);\n\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n\n attr = attributors[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = attributors[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n\n if (Object.keys(formats).length > 0) {\n return Object(_clipboard__WEBPACK_IMPORTED_MODULE_5__[/* applyFormat */ \"a\"])(delta, formats);\n }\n\n return delta;\n };\n}\n\n/***/ }),\n/* 53 */\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__(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 _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/* 54 */\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/* 55 */\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/* 56 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\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 _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);\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 = /*#__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.preventImageUploading(false);\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(_utils_has_window__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])()) {\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 var noFiles = e.dataTransfer.files.length === 0;\n var onDrop = _this2.options.onDrop;\n\n if (onDrop && typeof onDrop === 'function') {\n onDrop(e);\n }\n\n if (noFiles || _this2.preventImageUpload) {\n return;\n }\n\n e.preventDefault();\n var native;\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: \"preventImageUploading\",\n value: function preventImageUploading(value) {\n if (typeof value !== 'undefined') {\n this.preventImageUpload = value;\n }\n\n return this.preventImageUpload;\n }\n }, {\n key: \"upload\",\n value: function upload(range, files, force) {\n var _this3 = this;\n\n if (this.preventImageUpload && !force) {\n return;\n }\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__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nUploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/webp', 'image/bmp', 'image/svg+xml', 'image/vnd.microsoft.icon'],\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 quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index).delete(range.length));\n\n _this4.quill.updateContents(update, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER);\n\n _this4.quill.setSelection(range.index + images.length, _core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.SILENT);\n });\n }\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Uploader);\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isCallable = __webpack_require__(22);\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/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar getOwnPropertyDescriptor = __webpack_require__(85).f;\nvar createNonEnumerableProperty = __webpack_require__(66);\nvar redefine = __webpack_require__(86);\nvar setGlobal = __webpack_require__(77);\nvar copyConstructorProperties = __webpack_require__(131);\nvar isForced = __webpack_require__(136);\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/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(130);\nvar requireObjectCoercible = __webpack_require__(65);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\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 getId; });\nfunction getId() {\n return Math.random().toString(36).slice(2, 6);\n}\n\n/***/ }),\n/* 61 */\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__(14);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./formats/table/attributors/cell.js\nvar attributors_cell = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./formats/table/attributors/table.js\nvar attributors_table = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./formats/table/get_id.js\nvar get_id = __webpack_require__(60);\n\n// EXTERNAL MODULE: ./formats/table/toggle_attribute.js\nvar toggle_attribute = __webpack_require__(45);\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\n\n\n\nvar CELL_IDENTITY_KEYS = ['row', 'cell'];\nvar TABLE_TAGS = ['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'];\nvar DATA_PREFIX = 'data-table-';\n\nvar table_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(\"\".concat(DATA_PREFIX, \"row\"));\n\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var domNode = this.domNode;\n var formats = {\n row: rowId\n };\n Object.keys(attributors_cell[\"b\" /* CELL_FORMATS */]).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n this.wrap(this.statics.requiredContainer.blotName, formats);\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 var isCellLine = name === 'tableCellLine';\n\n if (isCellLine && value === null) {\n value = this.formats().tableCellLine;\n }\n\n var isCell = CELL_IDENTITY_KEYS.indexOf(name) > -1;\n\n if (isCell || attributors_table[\"b\" /* TABLE_FORMATS */][name] || attributors_cell[\"b\" /* CELL_FORMATS */][name]) {\n var attrName = \"data-\".concat(isCell ? 'table-' : '').concat(name.toLowerCase());\n Object(toggle_attribute[\"a\" /* default */])(this.domNode, attrName, value);\n\n if (attributors_cell[\"b\" /* CELL_FORMATS */][name]) {\n var _this$cell;\n\n (_this$cell = this.cell()) === null || _this$cell === void 0 ? void 0 : _this$cell.format(name, value);\n }\n\n if (attributors_table[\"b\" /* TABLE_FORMATS */][name]) {\n var _this$cell2, _this$cell2$table;\n\n (_this$cell2 = this.cell()) === null || _this$cell2 === void 0 ? void 0 : (_this$cell2$table = _this$cell2.table()) === null || _this$cell2$table === void 0 ? void 0 : _this$cell2$table.format(name, value);\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 'row' in this.parent ? this.parent : null;\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(\"\".concat(DATA_PREFIX).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 = \"\".concat(DATA_PREFIX).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\ntable_CellLine.blotName = 'tableCellLine';\ntable_CellLine.className = 'ql-table-cell-line';\ntable_CellLine.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}(table_CellLine);\n\nHeaderCellLine.blotName = 'tableHeaderCellLine';\nHeaderCellLine.className = 'ql-table-header-cell-line';\n\nvar table_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: \"format\",\n value: function format(name, value) {\n var _CELL_FORMATS$name;\n\n (_CELL_FORMATS$name = attributors_cell[\"b\" /* CELL_FORMATS */][name]) === null || _CELL_FORMATS$name === void 0 ? void 0 : _CELL_FORMATS$name.add(this.domNode, value);\n }\n }, {\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 'table' in this.parent ? this.parent : null;\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(\"\".concat(DATA_PREFIX, \"row\"))) !== null && _this$domNode$getAttr !== void 0 ? _this$domNode$getAttr : this.domNode.getAttribute(\"\".concat(DATA_PREFIX, \"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: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(BaseCell), \"create\", this).call(this, value);\n\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _CELL_FORMATS$format;\n\n (_CELL_FORMATS$format = attributors_cell[\"b\" /* CELL_FORMATS */][format]) === null || _CELL_FORMATS$format === void 0 ? void 0 : _CELL_FORMATS$format.add(node, value[format]);\n });\n }\n\n return node;\n }\n }, {\n key: \"cellFormats\",\n value: function cellFormats(domNode) {\n var formats = {};\n\n if (domNode.hasAttribute(\"\".concat(DATA_PREFIX, \"row\")) || domNode.hasAttribute(\"\".concat(DATA_PREFIX, \"header-row\"))) {\n var _domNode$getAttribute;\n\n formats.row = (_domNode$getAttribute = domNode.getAttribute(\"\".concat(DATA_PREFIX, \"row\"))) !== null && _domNode$getAttribute !== void 0 ? _domNode$getAttribute : domNode.getAttribute(\"\".concat(DATA_PREFIX, \"header-row\"));\n }\n\n Object.keys(attributors_cell[\"b\" /* CELL_FORMATS */]).forEach(function (format) {\n var _domNode$firstElement;\n\n var value = (_domNode$firstElement = domNode.firstElementChild) === null || _domNode$firstElement === void 0 ? void 0 : _domNode$firstElement.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }]);\n\n return BaseCell;\n}(container[\"a\" /* default */]);\n\ntable_BaseCell.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 (name === 'row') {\n this.domNode.setAttribute(\"\".concat(DATA_PREFIX).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, value);\n\n var attrName = \"\".concat(DATA_PREFIX, \"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}(table_BaseCell);\n\nTableCell.blotName = 'tableCell';\nTableCell.className = 'ql-table-data-cell';\nTableCell.dataAttribute = \"\".concat(DATA_PREFIX, \"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 (name === 'row') {\n this.domNode.setAttribute(\"\".concat(DATA_PREFIX).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, value);\n\n var attrName = \"\".concat(DATA_PREFIX, \"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}(table_BaseCell);\n\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.className = 'ql-table-header-cell';\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = \"\".concat(DATA_PREFIX, \"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 formats = {};\n var attrName = \"\".concat(DATA_PREFIX, \"row\");\n\n if (this.domNode.hasAttribute(attrName)) {\n formats[attrName] = this.domNode.getAttribute(attrName);\n }\n\n return formats;\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(\"\".concat(DATA_PREFIX, \"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 _this2;\n\n _classCallCheck(this, TableRow);\n\n _this2 = _super7.call(this, scroll, domNode);\n _this2.childFormatName = 'table';\n return _this2;\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 _this3;\n\n _classCallCheck(this, TableHeaderRow);\n\n _this3 = _super8.call(this, scroll, domNode);\n _this3.childFormatName = 'tableHeaderCell';\n return _this3;\n }\n\n return TableHeaderRow;\n}(table_BaseRow);\n\nTableHeaderRow.blotName = 'tableHeaderRow';\n\nvar table_RowContainer = /*#__PURE__*/function (_Container3) {\n _inherits(RowContainer, _Container3);\n\n var _super9 = _createSuper(RowContainer);\n\n function RowContainer() {\n _classCallCheck(this, RowContainer);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(RowContainer, [{\n key: \"optimize\",\n value: function optimize() {\n var _get5;\n\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var domNode = this.children.head.children.head.children.head.domNode;\n var formats = {};\n Object.keys(attributors_table[\"b\" /* TABLE_FORMATS */]).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n this.wrap(this.statics.requiredContainer.blotName, formats);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n (_get5 = _get(_getPrototypeOf(RowContainer.prototype), \"optimize\", this)).call.apply(_get5, [this].concat(args));\n }\n }]);\n\n return RowContainer;\n}(container[\"a\" /* default */]);\n\nvar TableBody = /*#__PURE__*/function (_RowContainer) {\n _inherits(TableBody, _RowContainer);\n\n var _super10 = _createSuper(TableBody);\n\n function TableBody() {\n _classCallCheck(this, TableBody);\n\n return _super10.apply(this, arguments);\n }\n\n return TableBody;\n}(table_RowContainer);\n\nTableBody.blotName = 'tableBody';\nTableBody.tagName = 'TBODY';\n\nvar TableHeader = /*#__PURE__*/function (_RowContainer2) {\n _inherits(TableHeader, _RowContainer2);\n\n var _super11 = _createSuper(TableHeader);\n\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n\n return _super11.apply(this, arguments);\n }\n\n return TableHeader;\n}(table_RowContainer);\n\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = 'THEAD';\n\nvar table_TableContainer = /*#__PURE__*/function (_Container4) {\n _inherits(TableContainer, _Container4);\n\n var _super12 = _createSuper(TableContainer);\n\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n\n return _super12.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.cellFormats(row.children.head.domNode);\n }\n\n var blot = _this4.scroll.create(CellClass.blotName, value);\n\n var cellLine = _this4.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 _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 var CellLineBlot = blot === TableHeader ? HeaderCellLine : table_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 = _this6.scroll.create(CellBlot.blotName, {\n row: value.row\n });\n\n var cellLine = _this6.scroll.create(CellLineBlot.blotName, {\n row: value.row\n });\n\n var emptyLine = _this6.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 _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 row: id\n });\n body.children.head.children.forEach(function () {\n var cell = _this7.scroll.create(TableCell.blotName, {\n row: id\n });\n\n var cellLine = _this7.scroll.create(table_CellLine.blotName, {\n row: id\n });\n\n var emptyLine = _this7.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 _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, {\n row: id\n });\n\n var cellLine = _this8.scroll.create(HeaderCellLine.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 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 key: \"formats\",\n value: function formats() {\n var formats = {};\n var childElem = this.cells()[0].domNode.firstElementChild;\n Object.keys(attributors_table[\"b\" /* TABLE_FORMATS */]).forEach(function (format) {\n var value = childElem.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var tableFormat = attributors_table[\"b\" /* TABLE_FORMATS */][name];\n\n if (tableFormat) {\n var attrName = \"data-\".concat(name.toLowerCase());\n this.cells().forEach(function (cell) {\n Object(toggle_attribute[\"a\" /* default */])(cell.children.head.domNode, attrName, value);\n });\n tableFormat.add(this.domNode, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableContainer), \"create\", this).call(this, value);\n\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _TABLE_FORMATS$format;\n\n (_TABLE_FORMATS$format = attributors_table[\"b\" /* TABLE_FORMATS */][format]) === null || _TABLE_FORMATS$format === void 0 ? void 0 : _TABLE_FORMATS$format.add(node, value[format]);\n });\n }\n\n return node;\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;\ntable_CellLine.requiredContainer = TableCell;\nTableCell.allowedChildren = [table_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__(28);\n\n// EXTERNAL MODULE: ./modules/table/utils/make_table_arrow_handler.js\nvar make_table_arrow_handler = __webpack_require__(51);\n\n// EXTERNAL MODULE: ./modules/table/utils/prepare_attr_matcher.js\nvar prepare_attr_matcher = __webpack_require__(52);\n\n// CONCATENATED MODULE: ./modules/table/index.js\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\n\n\n\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 = [table_CellLine.blotName, HeaderCellLine.blotName];\n\n _this.tableBlots.forEach(function (blotName) {\n _this.quill.editor.addImmediateFormat(blotName);\n });\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 _this2.quill.clipboard.addTableBlot(blotName);\n });\n this.quill.clipboard.addMatcher('td, th', matchCell);\n this.quill.clipboard.addMatcher('table', Object(prepare_attr_matcher[\"a\" /* default */])('table'));\n this.quill.clipboard.addMatcher('td, th', Object(prepare_attr_matcher[\"a\" /* default */])('cell'));\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(table_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 [attributors_table[\"b\" /* TABLE_FORMATS */], attributors_cell[\"b\" /* CELL_FORMATS */]].forEach(function (formats) {\n Object.keys(formats).forEach(function (name) {\n quill[\"a\" /* default */].register(_defineProperty({}, \"formats/\".concat(name), formats[name]), true);\n });\n });\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\n/* harmony default export */ var modules_table = __webpack_exports__[\"a\"] = (table_Table);\n\n/***/ }),\n/* 62 */\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/* 63 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar requireObjectCoercible = __webpack_require__(65);\n\nvar Object = global.Object;\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/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\n\nvar TypeError = global.TypeError;\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/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar definePropertyModule = __webpack_require__(49);\nvar createPropertyDescriptor = __webpack_require__(67);\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/* 67 */\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/* 68 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 69 */\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 _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 ElementAttributor = /*#__PURE__*/function (_Attributor) {\n _inherits(ElementAttributor, _Attributor);\n\n var _super = _createSuper(ElementAttributor);\n\n function ElementAttributor(attrName, keyName) {\n var _options$allowedTags;\n\n var _this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n allowedTags: []\n };\n\n _classCallCheck(this, ElementAttributor);\n\n _this = _super.call(this, attrName, keyName, options);\n _this.allowedTags = (_options$allowedTags = options.allowedTags) !== null && _options$allowedTags !== void 0 ? _options$allowedTags : [];\n return _this;\n }\n\n _createClass(ElementAttributor, [{\n key: \"canAdd\",\n value: function canAdd(node, value) {\n var isNodeAllowed = this.allowedTags.indexOf(node.tagName) > -1;\n return isNodeAllowed && _get(_getPrototypeOf(ElementAttributor.prototype), \"canAdd\", this).call(this, node, value);\n }\n }]);\n\n return ElementAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ElementAttributor);\n\n/***/ }),\n/* 70 */\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 _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 ElementStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(ElementStyleAttributor, _StyleAttributor);\n\n var _super = _createSuper(ElementStyleAttributor);\n\n function ElementStyleAttributor(attrName, keyName) {\n var _options$allowedTags;\n\n var _this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n allowedTags: []\n };\n\n _classCallCheck(this, ElementStyleAttributor);\n\n _this = _super.call(this, attrName, keyName, options);\n _this.allowedTags = (_options$allowedTags = options.allowedTags) !== null && _options$allowedTags !== void 0 ? _options$allowedTags : [];\n return _this;\n }\n\n _createClass(ElementStyleAttributor, [{\n key: \"canAdd\",\n value: function canAdd(node, value) {\n var isNodeAllowed = this.allowedTags.indexOf(node.tagName) > -1;\n return isNodeAllowed && _get(_getPrototypeOf(ElementStyleAttributor.prototype), \"canAdd\", this).call(this, node, value);\n }\n }]);\n\n return ElementStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ElementStyleAttributor);\n\n/***/ }),\n/* 71 */\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__(14);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./utils/is_defined.js\nvar is_defined = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./formats/table/attributors/table.js\nvar attributors_table = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./formats/table/get_id.js\nvar get_id = __webpack_require__(60);\n\n// EXTERNAL MODULE: ./formats/table/toggle_attribute.js\nvar toggle_attribute = __webpack_require__(45);\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\n\n\nvar TABLE_TAGS = ['TD', 'TH', 'TR', 'TBODY', 'THEAD', 'TABLE'];\nvar DATA_PREFIX = 'data-tablelite-';\n\nvar lite_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: \"format\",\n value: function format(name, value) {\n if (attributors_table[\"b\" /* TABLE_FORMATS */][name]) {\n var _this$row, _this$row$table;\n\n var attrName = \"data-\".concat(name.toLowerCase());\n Object(toggle_attribute[\"a\" /* default */])(this.domNode, attrName, value);\n (_this$row = this.row()) === null || _this$row === void 0 ? void 0 : (_this$row$table = _this$row.table()) === null || _this$row$table === void 0 ? void 0 : _this$row$table.format(name, value);\n } else {\n _get(_getPrototypeOf(BaseCell.prototype), \"format\", this).call(this, name, value);\n }\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 'table' in this.parent ? this.parent : null;\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$row2;\n\n return (_this$row2 = this.row()) === null || _this$row2 === void 0 ? void 0 : _this$row2.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 Object(toggle_attribute[\"a\" /* default */])(node, attrName, value !== null && value !== void 0 ? value : tableId());\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\nlite_BaseCell.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}(lite_BaseCell);\n\nTableCell.blotName = 'table';\nTableCell.dataAttribute = \"\".concat(DATA_PREFIX, \"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}(lite_BaseCell);\n\nTableHeaderCell.tagName = ['TH', 'TD'];\nTableHeaderCell.blotName = 'tableHeaderCell';\nTableHeaderCell.dataAttribute = \"\".concat(DATA_PREFIX, \"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 lite_RowContainer = /*#__PURE__*/function (_Container2) {\n _inherits(RowContainer, _Container2);\n\n var _super7 = _createSuper(RowContainer);\n\n function RowContainer() {\n _classCallCheck(this, RowContainer);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(RowContainer, [{\n key: \"optimize\",\n value: function optimize() {\n var _get3;\n\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n var domNode = this.children.head.children.head.domNode;\n var formats = {};\n Object.keys(attributors_table[\"b\" /* TABLE_FORMATS */]).forEach(function (format) {\n var value = domNode.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n this.wrap(this.statics.requiredContainer.blotName, formats);\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(RowContainer.prototype), \"optimize\", this)).call.apply(_get3, [this].concat(args));\n }\n }]);\n\n return RowContainer;\n}(container[\"a\" /* default */]);\n\nvar TableBody = /*#__PURE__*/function (_RowContainer) {\n _inherits(TableBody, _RowContainer);\n\n var _super8 = _createSuper(TableBody);\n\n function TableBody() {\n _classCallCheck(this, TableBody);\n\n return _super8.apply(this, arguments);\n }\n\n return TableBody;\n}(lite_RowContainer);\n\nTableBody.blotName = 'tableBody';\nTableBody.tagName = ['TBODY'];\n\nvar TableHeader = /*#__PURE__*/function (_RowContainer2) {\n _inherits(TableHeader, _RowContainer2);\n\n var _super9 = _createSuper(TableHeader);\n\n function TableHeader() {\n _classCallCheck(this, TableHeader);\n\n return _super9.apply(this, arguments);\n }\n\n return TableHeader;\n}(lite_RowContainer);\n\nTableHeader.blotName = 'tableHeader';\nTableHeader.tagName = ['THEAD'];\n\nvar lite_TableContainer = /*#__PURE__*/function (_Container3) {\n _inherits(TableContainer, _Container3);\n\n var _super10 = _createSuper(TableContainer);\n\n function TableContainer() {\n _classCallCheck(this, TableContainer);\n\n return _super10.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 key: \"formats\",\n value: function formats() {\n var formats = {};\n var childElem = this.cells()[0].domNode;\n Object.keys(attributors_table[\"b\" /* TABLE_FORMATS */]).forEach(function (format) {\n var value = childElem.dataset[format.toLowerCase()];\n\n if (value) {\n formats[format] = value;\n }\n });\n return formats;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var tableFormat = attributors_table[\"b\" /* TABLE_FORMATS */][name];\n\n if (tableFormat) {\n var attrName = \"data-\".concat(name.toLowerCase());\n this.cells().forEach(function (cell) {\n Object(toggle_attribute[\"a\" /* default */])(cell.domNode, attrName, value);\n });\n tableFormat.add(this.domNode, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(TableContainer), \"create\", this).call(this, value);\n\n if (value) {\n Object.keys(value).forEach(function (format) {\n var _TABLE_FORMATS$format;\n\n (_TABLE_FORMATS$format = attributors_table[\"b\" /* TABLE_FORMATS */][format]) === null || _TABLE_FORMATS$format === void 0 ? void 0 : _TABLE_FORMATS$format.add(node, value[format]);\n });\n }\n\n return node;\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__(28);\n\n// EXTERNAL MODULE: ./modules/table/utils/make_table_arrow_handler.js\nvar make_table_arrow_handler = __webpack_require__(51);\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// EXTERNAL MODULE: ./modules/table/utils/prepare_attr_matcher.js\nvar prepare_attr_matcher = __webpack_require__(52);\n\n// EXTERNAL MODULE: ./formats/table/attributors/cell.js\nvar attributors_cell = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./modules/table/lite.js\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 _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 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\n\n\n\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.tableBlots.forEach(function (blotName) {\n _this.quill.editor.addImmediateFormat(blotName);\n });\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('table', Object(prepare_attr_matcher[\"a\" /* default */])('table'));\n this.quill.clipboard.addMatcher('td, th', Object(prepare_attr_matcher[\"a\" /* default */])('cell'));\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 [attributors_table[\"b\" /* TABLE_FORMATS */], attributors_cell[\"b\" /* CELL_FORMATS */]].forEach(function (formats) {\n Object.keys(formats).forEach(function (name) {\n core_quill[\"a\" /* default */].register(_defineProperty({}, \"formats/\".concat(name), formats[name]), true);\n });\n });\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\n/* harmony default export */ var lite = __webpack_exports__[\"a\"] = (lite_TableLite);\n\n/***/ }),\n/* 72 */\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__(16);\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__(14);\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__(12);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(19);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28);\n/* harmony import */ var _utils_has_window__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(17);\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/* 73 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar classof = __webpack_require__(75);\n\nvar String = global.String;\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/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(122);\nvar isCallable = __webpack_require__(22);\nvar classofRaw = __webpack_require__(78);\nvar wellKnownSymbol = __webpack_require__(27);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\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/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar setGlobal = __webpack_require__(77);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar isCallable = __webpack_require__(22);\nvar store = __webpack_require__(76);\n\nvar functionToString = uncurryThis(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(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(126);\nvar isSymbol = __webpack_require__(99);\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 : key + '';\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(82);\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/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isCallable = __webpack_require__(22);\nvar tryToString = __webpack_require__(100);\n\nvar TypeError = global.TypeError;\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/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(92);\nvar uid = __webpack_require__(93);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar call = __webpack_require__(39);\nvar propertyIsEnumerableModule = __webpack_require__(101);\nvar createPropertyDescriptor = __webpack_require__(67);\nvar toIndexedObject = __webpack_require__(59);\nvar toPropertyKey = __webpack_require__(80);\nvar hasOwn = __webpack_require__(33);\nvar IE8_DOM_DEFINE = __webpack_require__(97);\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 (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isCallable = __webpack_require__(22);\nvar hasOwn = __webpack_require__(33);\nvar createNonEnumerableProperty = __webpack_require__(66);\nvar setGlobal = __webpack_require__(77);\nvar inspectSource = __webpack_require__(79);\nvar InternalStateModule = __webpack_require__(96);\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(102).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 (!hasOwn(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/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toLength = __webpack_require__(105);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n/***/ }),\n/* 88 */\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/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(37);\nvar defineProperties = __webpack_require__(138);\nvar enumBugKeys = __webpack_require__(88);\nvar hiddenKeys = __webpack_require__(84);\nvar html = __webpack_require__(139);\nvar documentCreateElement = __webpack_require__(98);\nvar sharedKey = __webpack_require__(83);\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/* 90 */\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__(116));\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/* 91 */\n/***/ (function(module, exports) {\n\n'use strict';\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 ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(63);\nvar store = __webpack_require__(76);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(123);\nvar fails = __webpack_require__(36);\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/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(94);\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(125);\nvar global = __webpack_require__(10);\nvar uncurryThis = __webpack_require__(21);\nvar isObject = __webpack_require__(48);\nvar createNonEnumerableProperty = __webpack_require__(66);\nvar hasOwn = __webpack_require__(33);\nvar shared = __webpack_require__(76);\nvar sharedKey = __webpack_require__(83);\nvar hiddenKeys = __webpack_require__(84);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\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 = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(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 hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(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/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar fails = __webpack_require__(36);\nvar createElement = __webpack_require__(98);\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/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isObject = __webpack_require__(48);\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/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar getBuiltIn = __webpack_require__(57);\nvar isCallable = __webpack_require__(22);\nvar isPrototypeOf = __webpack_require__(127);\nvar USE_SYMBOL_AS_UID = __webpack_require__(95);\n\nvar Object = global.Object;\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) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ }),\n/* 101 */\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/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar hasOwn = __webpack_require__(33);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(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/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar hasOwn = __webpack_require__(33);\nvar toIndexedObject = __webpack_require__(59);\nvar indexOf = __webpack_require__(134).indexOf;\nvar hiddenKeys = __webpack_require__(84);\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(73);\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(73);\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(36);\nvar isCallable = __webpack_require__(22);\nvar create = __webpack_require__(89);\nvar getPrototypeOf = __webpack_require__(108);\nvar redefine = __webpack_require__(86);\nvar wellKnownSymbol = __webpack_require__(27);\nvar IS_PURE = __webpack_require__(63);\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/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(103);\nvar enumBugKeys = __webpack_require__(88);\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/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar hasOwn = __webpack_require__(33);\nvar isCallable = __webpack_require__(22);\nvar toObject = __webpack_require__(64);\nvar sharedKey = __webpack_require__(83);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(140);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(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/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(49).f;\nvar hasOwn = __webpack_require__(33);\nvar wellKnownSymbol = __webpack_require__(27);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(75);\nvar getMethod = __webpack_require__(81);\nvar Iterators = __webpack_require__(68);\nvar wellKnownSymbol = __webpack_require__(27);\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/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar uncurryThis = __webpack_require__(21);\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n\n\n/***/ }),\n/* 113 */\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__(117);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\nvar fill = __webpack_require__(153);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/object/values.js\nvar values = __webpack_require__(159);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\nvar ends_with = __webpack_require__(164);\n\n// CONCATENATED MODULE: ./polyfills.js\n// IE11 support\n\n\n\n\n\n// EXTERNAL MODULE: ./core.js\nvar core = __webpack_require__(25);\n\n// EXTERNAL MODULE: ./formats/align.js\nvar align = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./formats/direction.js\nvar direction = __webpack_require__(32);\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__(15);\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__(42);\n\n// EXTERNAL MODULE: ./formats/color.js\nvar color = __webpack_require__(31);\n\n// EXTERNAL MODULE: ./formats/font.js\nvar font = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./formats/size.js\nvar size = __webpack_require__(44);\n\n// EXTERNAL MODULE: ./formats/bold.js\nvar bold = __webpack_require__(46);\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__(40);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(16);\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__(53);\n\n// EXTERNAL MODULE: ./utils/has_window.js\nvar has_window = __webpack_require__(17);\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__(19);\n\n// EXTERNAL MODULE: ./modules/syntax.js\nvar syntax = __webpack_require__(72);\n\n// EXTERNAL MODULE: ./modules/table/index.js + 1 modules\nvar table = __webpack_require__(61);\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__(14);\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__(71);\n\n// EXTERNAL MODULE: ./formats/table/attributors/cell.js\nvar cell = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./formats/table/attributors/table.js\nvar attributors_table = __webpack_require__(8);\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\n\n\ncore[\"default\"].register({\n 'attributors/attribute/direction': direction[\"a\" /* DirectionAttribute */],\n 'attributors/attribute/tableWidth': attributors_table[\"k\" /* TableWidthAttribute */],\n 'attributors/attribute/tableHeight': attributors_table[\"h\" /* TableHeightAttribute */],\n 'attributors/attribute/cellWidth': cell[\"q\" /* CellWidthAttribute */],\n 'attributors/attribute/cellHeight': cell[\"h\" /* CellHeightAttribute */],\n 'attributors/class/align': align[\"b\" /* AlignClass */],\n 'attributors/class/background': background[\"a\" /* BackgroundClass */],\n 'attributors/class/color': color[\"b\" /* ColorClass */],\n 'attributors/class/direction': direction[\"b\" /* DirectionClass */],\n 'attributors/class/font': font[\"a\" /* FontClass */],\n 'attributors/class/size': size[\"a\" /* SizeClass */],\n 'attributors/style/align': align[\"c\" /* AlignStyle */],\n 'attributors/style/background': background[\"b\" /* BackgroundStyle */],\n 'attributors/style/color': color[\"c\" /* ColorStyle */],\n 'attributors/style/direction': direction[\"c\" /* DirectionStyle */],\n 'attributors/style/font': font[\"b\" /* FontStyle */],\n 'attributors/style/size': size[\"b\" /* SizeStyle */],\n 'attributors/style/tableTextAlign': attributors_table[\"j\" /* TableTextAlignStyle */],\n 'attributors/style/tableBackgroundColor': attributors_table[\"c\" /* TableBackgroundColorStyle */],\n 'attributors/style/tableBorder': attributors_table[\"e\" /* TableBorderStyle */],\n 'attributors/style/tableBorderStyle': attributors_table[\"f\" /* TableBorderStyleStyle */],\n 'attributors/style/tableBorderColor': attributors_table[\"d\" /* TableBorderColorStyle */],\n 'attributors/style/tableBorderWidth': attributors_table[\"g\" /* TableBorderWidthStyle */],\n 'attributors/style/tableWidth': attributors_table[\"l\" /* TableWidthStyle */],\n 'attributors/style/tableHeight': attributors_table[\"i\" /* TableHeightStyle */],\n 'attributors/style/cellBackground': cell[\"c\" /* CellBackgroundColorStyle */],\n 'attributors/style/cellBorder': cell[\"e\" /* CellBorderStyle */],\n 'attributors/style/cellBorderStyle': cell[\"f\" /* CellBorderStyleStyle */],\n 'attributors/style/cellBorderWidth': cell[\"g\" /* CellBorderWidthStyle */],\n 'attributors/style/cellBorderColor': cell[\"d\" /* CellBorderColorStyle */],\n 'attributors/style/cellPadding': cell[\"m\" /* CellPaddingStyle */],\n 'attributors/style/cellPaddingTop': cell[\"n\" /* CellPaddingTopStyle */],\n 'attributors/style/cellPaddingBottom': cell[\"j\" /* CellPaddingBottomStyle */],\n 'attributors/style/cellPaddingLeft': cell[\"k\" /* CellPaddingLeftStyle */],\n 'attributors/style/cellPaddingRight': cell[\"l\" /* CellPaddingRightStyle */],\n 'attributors/style/cellVerticalAlign': cell[\"p\" /* CellVerticalAlignStyle */],\n 'attributors/style/cellTextAlign': cell[\"o\" /* CellTextAlignStyle */],\n 'attributors/style/cellWidth': cell[\"r\" /* CellWidthStyle */],\n 'attributors/style/cellHeight': cell[\"i\" /* CellHeightStyle */]\n}, true);\ncore[\"default\"].register({\n 'formats/align': align[\"b\" /* AlignClass */],\n 'formats/direction': direction[\"b\" /* DirectionClass */],\n 'formats/indent': indent,\n 'formats/background': background[\"b\" /* BackgroundStyle */],\n 'formats/color': color[\"c\" /* ColorStyle */],\n 'formats/font': font[\"a\" /* FontClass */],\n 'formats/size': size[\"a\" /* SizeClass */],\n 'formats/blockquote': blockquote,\n 'formats/code-block': code[\"c\" /* default */],\n 'formats/header': header,\n 'formats/list': list_ListItem,\n 'formats/bold': bold[\"a\" /* default */],\n 'formats/code': code[\"a\" /* Code */],\n 'formats/italic': italic,\n 'formats/link': formats_link[\"a\" /* default */],\n 'formats/script': script,\n 'formats/strike': strike,\n 'formats/underline': underline,\n 'formats/formula': formula,\n 'formats/image': formats_image,\n 'formats/video': video,\n 'tableModules/lite': lite[\"a\" /* default */],\n 'tableModules/main': table[\"a\" /* default */],\n 'modules/syntax': syntax[\"b\" /* default */],\n 'modules/multiline': multiline,\n 'modules/table': table[\"a\" /* default */]\n}, true);\n/* harmony default export */ var quill_0 = __webpack_exports__[\"default\"] = (core[\"default\"]);\n\n/***/ }),\n/* 114 */\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/* 115 */\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__(18));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(29));\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/* 116 */\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__(90));\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/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(118);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(119);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(120);\n__webpack_require__(143);\nvar path = __webpack_require__(111);\n\nmodule.exports = path.Array.from;\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(121).charAt;\nvar toString = __webpack_require__(74);\nvar InternalStateModule = __webpack_require__(96);\nvar defineIterator = __webpack_require__(129);\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/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar toIntegerOrInfinity = __webpack_require__(73);\nvar toString = __webpack_require__(74);\nvar requireObjectCoercible = __webpack_require__(65);\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(27);\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/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar userAgent = __webpack_require__(124);\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 // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(57);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isCallable = __webpack_require__(22);\nvar inspectSource = __webpack_require__(79);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar call = __webpack_require__(39);\nvar isObject = __webpack_require__(48);\nvar isSymbol = __webpack_require__(99);\nvar getMethod = __webpack_require__(81);\nvar ordinaryToPrimitive = __webpack_require__(128);\nvar wellKnownSymbol = __webpack_require__(27);\n\nvar TypeError = global.TypeError;\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 = call(exoticToPrim, 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/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar call = __webpack_require__(39);\nvar isCallable = __webpack_require__(22);\nvar isObject = __webpack_require__(48);\n\nvar TypeError = global.TypeError;\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 = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(58);\nvar call = __webpack_require__(39);\nvar IS_PURE = __webpack_require__(63);\nvar FunctionName = __webpack_require__(102);\nvar isCallable = __webpack_require__(22);\nvar createIteratorConstructor = __webpack_require__(137);\nvar getPrototypeOf = __webpack_require__(108);\nvar setPrototypeOf = __webpack_require__(141);\nvar setToStringTag = __webpack_require__(109);\nvar createNonEnumerableProperty = __webpack_require__(66);\nvar redefine = __webpack_require__(86);\nvar wellKnownSymbol = __webpack_require__(27);\nvar Iterators = __webpack_require__(68);\nvar IteratorsCore = __webpack_require__(106);\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 call(nativeIterator, 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/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar uncurryThis = __webpack_require__(21);\nvar fails = __webpack_require__(36);\nvar classof = __webpack_require__(78);\n\nvar Object = global.Object;\nvar split = uncurryThis(''.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(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasOwn = __webpack_require__(33);\nvar ownKeys = __webpack_require__(132);\nvar getOwnPropertyDescriptorModule = __webpack_require__(85);\nvar definePropertyModule = __webpack_require__(49);\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 (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(57);\nvar uncurryThis = __webpack_require__(21);\nvar getOwnPropertyNamesModule = __webpack_require__(133);\nvar getOwnPropertySymbolsModule = __webpack_require__(135);\nvar anObject = __webpack_require__(37);\n\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(103);\nvar enumBugKeys = __webpack_require__(88);\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/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(59);\nvar toAbsoluteIndex = __webpack_require__(104);\nvar lengthOfArrayLike = __webpack_require__(87);\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 = lengthOfArrayLike(O);\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/* 135 */\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\nvar isCallable = __webpack_require__(22);\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/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(106).IteratorPrototype;\nvar create = __webpack_require__(89);\nvar createPropertyDescriptor = __webpack_require__(67);\nvar setToStringTag = __webpack_require__(109);\nvar Iterators = __webpack_require__(68);\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/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar definePropertyModule = __webpack_require__(49);\nvar anObject = __webpack_require__(37);\nvar toIndexedObject = __webpack_require__(59);\nvar objectKeys = __webpack_require__(107);\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 props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(57);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(36);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThis = __webpack_require__(21);\nvar anObject = __webpack_require__(37);\nvar aPossiblePrototype = __webpack_require__(142);\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 = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(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(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isCallable = __webpack_require__(22);\n\nvar String = global.String;\nvar TypeError = global.TypeError;\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/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(58);\nvar from = __webpack_require__(144);\nvar checkCorrectnessOfIteration = __webpack_require__(152);\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/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(10);\nvar bind = __webpack_require__(145);\nvar call = __webpack_require__(39);\nvar toObject = __webpack_require__(64);\nvar callWithSafeIterationClosing = __webpack_require__(146);\nvar isArrayIteratorMethod = __webpack_require__(148);\nvar isConstructor = __webpack_require__(149);\nvar lengthOfArrayLike = __webpack_require__(87);\nvar createProperty = __webpack_require__(150);\nvar getIterator = __webpack_require__(151);\nvar getIteratorMethod = __webpack_require__(110);\n\nvar Array = global.Array;\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);\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 = call(next, 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 = lengthOfArrayLike(O);\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/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar aCallable = __webpack_require__(82);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(37);\nvar iteratorClose = __webpack_require__(147);\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/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(39);\nvar anObject = __webpack_require__(37);\nvar getMethod = __webpack_require__(81);\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 = call(innerResult, 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/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(27);\nvar Iterators = __webpack_require__(68);\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/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(21);\nvar fails = __webpack_require__(36);\nvar isCallable = __webpack_require__(22);\nvar classof = __webpack_require__(75);\nvar getBuiltIn = __webpack_require__(57);\nvar inspectSource = __webpack_require__(79);\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, 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(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/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(80);\nvar definePropertyModule = __webpack_require__(49);\nvar createPropertyDescriptor = __webpack_require__(67);\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/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar call = __webpack_require__(39);\nvar aCallable = __webpack_require__(82);\nvar anObject = __webpack_require__(37);\nvar tryToString = __webpack_require__(100);\nvar getIteratorMethod = __webpack_require__(110);\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(27);\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/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(154);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(155);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(156);\nvar entryUnbind = __webpack_require__(112);\n\nmodule.exports = entryUnbind('Array', 'fill');\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(58);\nvar fill = __webpack_require__(157);\nvar addToUnscopables = __webpack_require__(158);\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/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(64);\nvar toAbsoluteIndex = __webpack_require__(104);\nvar lengthOfArrayLike = __webpack_require__(87);\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 = lengthOfArrayLike(O);\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/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(27);\nvar create = __webpack_require__(89);\nvar definePropertyModule = __webpack_require__(49);\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/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(160);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(161);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(162);\nvar path = __webpack_require__(111);\n\nmodule.exports = path.Object.values;\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(58);\nvar $values = __webpack_require__(163).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/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(38);\nvar uncurryThis = __webpack_require__(21);\nvar objectKeys = __webpack_require__(107);\nvar toIndexedObject = __webpack_require__(59);\nvar $propertyIsEnumerable = __webpack_require__(101).f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\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(O, key)) {\n push(result, 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/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(165);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(166);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(167);\nvar entryUnbind = __webpack_require__(112);\n\nmodule.exports = entryUnbind('String', 'endsWith');\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(58);\nvar uncurryThis = __webpack_require__(21);\nvar getOwnPropertyDescriptor = __webpack_require__(85).f;\nvar toLength = __webpack_require__(105);\nvar toString = __webpack_require__(74);\nvar notARegExp = __webpack_require__(168);\nvar requireObjectCoercible = __webpack_require__(65);\nvar correctIsRegExpLogic = __webpack_require__(170);\nvar IS_PURE = __webpack_require__(63);\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\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 = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(10);\nvar isRegExp = __webpack_require__(169);\n\nvar TypeError = global.TypeError;\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/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(48);\nvar classof = __webpack_require__(78);\nvar wellKnownSymbol = __webpack_require__(27);\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/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(27);\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/* 171 */,\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(113);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});"],"sourceRoot":""}